Package zeronull
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 PostgreSQL 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 PostgreSQL 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),
)
Do not edit. Generated from pgtype/zeronull/int.go.erb
- func Register(m *pgtype.Map)
- type Float8
- func (f Float8) Float64Value() (pgtype.Float8, error)
- func (f *Float8) Scan(src any) error
- func (f *Float8) ScanFloat64(n pgtype.Float8) error
- func (Float8) SkipUnderlyingTypePlan()
- func (f Float8) Value() (driver.Value, error)
- type Int2
- func (dst *Int2) Scan(src any) error
- func (dst *Int2) ScanInt64(n int64, valid bool) error
- func (Int2) SkipUnderlyingTypePlan()
- func (src Int2) Value() (driver.Value, error)
- type Int4
- func (dst *Int4) Scan(src any) error
- func (dst *Int4) ScanInt64(n int64, valid bool) error
- func (Int4) SkipUnderlyingTypePlan()
- func (src Int4) Value() (driver.Value, error)
- type Int8
- func (dst *Int8) Scan(src any) error
- func (dst *Int8) ScanInt64(n int64, valid bool) error
- func (Int8) SkipUnderlyingTypePlan()
- func (src Int8) Value() (driver.Value, error)
- type Text
- func (dst *Text) Scan(src any) error
- func (dst *Text) ScanText(v pgtype.Text) error
- func (Text) SkipUnderlyingTypePlan()
- func (src Text) Value() (driver.Value, error)
- type Timestamp
- func (ts *Timestamp) Scan(src any) error
- func (ts *Timestamp) ScanTimestamp(v pgtype.Timestamp) error
- func (Timestamp) SkipUnderlyingTypePlan()
- func (ts Timestamp) TimestampValue() (pgtype.Timestamp, error)
- func (ts Timestamp) Value() (driver.Value, error)
- type Timestamptz
- func (ts *Timestamptz) Scan(src any) error
- func (ts *Timestamptz) ScanTimestamptz(v pgtype.Timestamptz) error
- func (Timestamptz) SkipUnderlyingTypePlan()
- func (ts Timestamptz) TimestamptzValue() (pgtype.Timestamptz, error)
- func (ts Timestamptz) Value() (driver.Value, error)
- type UUID
- func (u *UUID) Scan(src any) error
- func (u *UUID) ScanUUID(v pgtype.UUID) error
- func (UUID) SkipUnderlyingTypePlan()
- func (u UUID) UUIDValue() (pgtype.UUID, error)
- func (u UUID) Value() (driver.Value, error)
Package files
doc.go
float8.go
int.go
text.go
timestamp.go
timestamptz.go
uuid.go
zeronull.go
func Register(m *pgtype.Map)
Register registers the zeronull types so they can be used in query exec modes that do not know the server OIDs.
type Float8 float64
func (f Float8) Float64Value() (pgtype.Float8, error)
func (*Float8) Scan
¶
func (f *Float8) Scan(src any) error
Scan implements the database/sql Scanner interface.
func (f *Float8) ScanFloat64(n pgtype.Float8) error
ScanFloat64 implements the Float64Scanner interface.
func (Float8) SkipUnderlyingTypePlan()
func (Float8) Value
¶
func (f Float8) Value() (driver.Value, error)
Value implements the database/sql/driver Valuer interface.
type Int2 int16
func (*Int2) Scan
¶
func (dst *Int2) Scan(src any) error
Scan implements the database/sql Scanner interface.
func (dst *Int2) ScanInt64(n int64, valid bool) error
ScanInt64 implements the Int64Scanner interface.
func (Int2) SkipUnderlyingTypePlan()
func (Int2) Value
¶
func (src Int2) Value() (driver.Value, error)
Value implements the database/sql/driver Valuer interface.
type Int4 int32
func (*Int4) Scan
¶
func (dst *Int4) Scan(src any) error
Scan implements the database/sql Scanner interface.
func (dst *Int4) ScanInt64(n int64, valid bool) error
ScanInt64 implements the Int64Scanner interface.
func (Int4) SkipUnderlyingTypePlan()
func (Int4) Value
¶
func (src Int4) Value() (driver.Value, error)
Value implements the database/sql/driver Valuer interface.
type Int8 int64
func (*Int8) Scan
¶
func (dst *Int8) Scan(src any) error
Scan implements the database/sql Scanner interface.
func (dst *Int8) ScanInt64(n int64, valid bool) error
ScanInt64 implements the Int64Scanner interface.
func (Int8) SkipUnderlyingTypePlan()
func (Int8) Value
¶
func (src Int8) Value() (driver.Value, error)
Value implements the database/sql/driver Valuer interface.
type Text string
func (*Text) Scan
¶
func (dst *Text) Scan(src any) error
Scan implements the database/sql Scanner interface.
func (dst *Text) ScanText(v pgtype.Text) error
ScanText implements the TextScanner interface.
func (Text) SkipUnderlyingTypePlan()
func (Text) Value
¶
func (src Text) Value() (driver.Value, error)
Value implements the database/sql/driver Valuer interface.
type Timestamp time.Time
func (*Timestamp) Scan
¶
func (ts *Timestamp) Scan(src any) error
Scan implements the database/sql Scanner interface.
func (ts *Timestamp) ScanTimestamp(v pgtype.Timestamp) error
func (Timestamp) SkipUnderlyingTypePlan()
func (ts Timestamp) TimestampValue() (pgtype.Timestamp, error)
func (Timestamp) Value
¶
func (ts Timestamp) Value() (driver.Value, error)
Value implements the database/sql/driver Valuer interface.
type Timestamptz time.Time
func (*Timestamptz) Scan
¶
func (ts *Timestamptz) Scan(src any) error
Scan implements the database/sql Scanner interface.
func (ts *Timestamptz) ScanTimestamptz(v pgtype.Timestamptz) error
func (Timestamptz) SkipUnderlyingTypePlan()
func (ts Timestamptz) TimestamptzValue() (pgtype.Timestamptz, error)
func (Timestamptz) Value
¶
func (ts Timestamptz) Value() (driver.Value, error)
Value implements the database/sql/driver Valuer interface.
type UUID [16]byte
func (*UUID) Scan
¶
func (u *UUID) Scan(src any) error
Scan implements the database/sql Scanner interface.
func (u *UUID) ScanUUID(v pgtype.UUID) error
ScanUUID implements the UUIDScanner interface.
func (UUID) SkipUnderlyingTypePlan()
func (u UUID) UUIDValue() (pgtype.UUID, error)
func (UUID) Value
¶
func (u UUID) Value() (driver.Value, error)
Value implements the database/sql/driver Valuer interface.