Documentation
¶
Overview ¶
Package zeronull contains types that automatically convert between database NULLs and Go zero values.
Sometimes the distinction between a zero value and a NULL value is not useful at the application level. For example, in GaussDB an empty string may be stored as NULL. There is usually no application level distinction between an empty string and a NULL string. Package zeronull implements types that seamlessly convert between GaussDB NULL and the zero value.
It is recommended to convert types at usage time rather than instantiate these types directly. In the example below, middlename would be stored as a NULL.
firstname := "John" middlename := "" lastname := "Smith" _, err := conn.Exec( ctx, "insert into people(firstname, middlename, lastname) values($1, $2, $3)", zeronull.Text(firstname), zeronull.Text(middlename), zeronull.Text(lastname), )
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Register ¶
func Register(m *gaussdbtype.Map)
Register registers the zeronull types so they can be used in query exec modes that do not know the server OIDs.
Types ¶
type Float8 ¶
type Float8 float64
func (Float8) Float64Value ¶
func (f Float8) Float64Value() (gaussdbtype.Float8, error)
func (*Float8) ScanFloat64 ¶
func (f *Float8) ScanFloat64(n gaussdbtype.Float8) error
ScanFloat64 implements the Float64Scanner interface.
func (Float8) SkipUnderlyingTypePlan ¶
func (Float8) SkipUnderlyingTypePlan()
type Int2 ¶
type Int2 int16
func (Int2) SkipUnderlyingTypePlan ¶
func (Int2) SkipUnderlyingTypePlan()
type Int4 ¶
type Int4 int32
func (Int4) SkipUnderlyingTypePlan ¶
func (Int4) SkipUnderlyingTypePlan()
type Int8 ¶
type Int8 int64
func (Int8) SkipUnderlyingTypePlan ¶
func (Int8) SkipUnderlyingTypePlan()
type Text ¶
type Text string
func (*Text) ScanText ¶
func (dst *Text) ScanText(v gaussdbtype.Text) error
ScanText implements the TextScanner interface.
func (Text) SkipUnderlyingTypePlan ¶
func (Text) SkipUnderlyingTypePlan()
type Timestamp ¶
func (*Timestamp) ScanTimestamp ¶
func (ts *Timestamp) ScanTimestamp(v gaussdbtype.Timestamp) error
func (Timestamp) SkipUnderlyingTypePlan ¶
func (Timestamp) SkipUnderlyingTypePlan()
func (Timestamp) TimestampValue ¶
func (ts Timestamp) TimestampValue() (gaussdbtype.Timestamp, error)
type Timestamptz ¶
func (*Timestamptz) Scan ¶
func (ts *Timestamptz) Scan(src any) error
Scan implements the database/sql Scanner interface.
func (*Timestamptz) ScanTimestamptz ¶
func (ts *Timestamptz) ScanTimestamptz(v gaussdbtype.Timestamptz) error
func (Timestamptz) SkipUnderlyingTypePlan ¶
func (Timestamptz) SkipUnderlyingTypePlan()
func (Timestamptz) TimestamptzValue ¶
func (ts Timestamptz) TimestamptzValue() (gaussdbtype.Timestamptz, error)