package pgtype

Import Path
	github.com/jackc/pgx/v5/pgtype (on go.dev)

Dependency Relation
	imports 22 packages, and imported by 2 packages

Involved Source Files array.go array_codec.go bits.go bool.go box.go builtin_wrappers.go bytea.go circle.go composite.go convert.go date.go Package pgtype converts between Go and PostgreSQL values. The primary type is the Map type. It is a map of PostgreSQL types identified by OID (object ID) to a Codec. A Codec is responsible for converting between Go and PostgreSQL values. NewMap creates a Map with all supported standard PostgreSQL types already registered. Additional types can be registered with Map.RegisterType. Use Map.Scan and Map.Encode to decode PostgreSQL values to Go and encode Go values to PostgreSQL respectively. Base Type Mapping pgtype maps between all common base types directly between Go and PostgreSQL. In particular: Go PostgreSQL ----------------------- string varchar text // Integers are automatically be converted to any other integer type if // it can be done without overflow or underflow. int8 int16 smallint int32 int int64 bigint int uint8 uint16 uint32 uint64 uint // Floats are strict and do not automatically convert like integers. float32 float4 float64 float8 time.Time date timestamp timestamptz netip.Addr inet netip.Prefix cidr []byte bytea Null Values pgtype can map NULLs in two ways. The first is types that can directly represent NULL such as Int4. They work in a similar fashion to database/sql. The second is to use a pointer to a pointer. var foo pgtype.Text var bar *string err := conn.QueryRow("select foo, bar from widgets where id=$1", 42).Scan(&foo, &bar) if err != nil { return err } JSON Support pgtype automatically marshals and unmarshals data from json and jsonb PostgreSQL types. Extending Existing PostgreSQL Type Support Generally, all Codecs will support interfaces that can be implemented to enable scanning and encoding. For example, PointCodec can use any Go type that implements the PointScanner and PointValuer interfaces. So rather than use pgtype.Point and application can directly use its own point type with pgtype as long as it implements those interfaces. See example_custom_type_test.go for an example of a custom type for the PostgreSQL point type. Sometimes pgx supports a PostgreSQL type such as numeric but the Go type is in an external package that does not have pgx support such as github.com/shopspring/decimal. These types can be registered with pgtype with custom conversion logic. See https://github.com/jackc/pgx-shopspring-decimal and https://github.com/jackc/pgx-gofrs-uuid for a example integrations. New PostgreSQL Type Support pgtype uses the PostgreSQL OID to determine how to encode or decode a value. pgtype supports array, composite, domain, and enum types. However, any type created in PostgreSQL with CREATE TYPE will receive a new OID. This means that the OID of each new PostgreSQL type must be registered for pgtype to handle values of that type with the correct Codec. The pgx.Conn LoadType method can return a *Type for array, composite, domain, and enum types by inspecting the database metadata. This *Type can then be registered with Map.RegisterType. For example, the following function could be called after a connection is established: func RegisterDataTypes(ctx context.Context, conn *pgx.Conn) error { dataTypeNames := []string{ "foo", "_foo", "bar", "_bar", } for _, typeName := range dataTypeNames { dataType, err := conn.LoadType(ctx, typeName) if err != nil { return err } conn.TypeMap().RegisterType(dataType) } return nil } A type cannot be registered unless all types it depends on are already registered. e.g. An array type cannot be registered until its element type is registered. ArrayCodec implements support for arrays. If pgtype supports type T then it can easily support []T by registering an ArrayCodec for the appropriate PostgreSQL OID. In addition, Array[T] type can support multi-dimensional arrays. CompositeCodec implements support for PostgreSQL composite types. Go structs can be scanned into if the public fields of the struct are in the exact order and type of the PostgreSQL type or by implementing CompositeIndexScanner and CompositeIndexGetter. Domain types are treated as their underlying type if the underlying type and the domain type are registered. PostgreSQL enums can usually be treated as text. However, EnumCodec implements support for interning strings which can reduce memory usage. While pgtype will often still work with unregistered types it is highly recommended that all types be registered due to an improvement in performance and the elimination of certain edge cases. If an entirely new PostgreSQL type (e.g. PostGIS types) is used then the application or a library can create a new Codec. Then the OID / Codec mapping can be registered with Map.RegisterType. There is no difference between a Codec defined and registered by the application and a Codec built in to pgtype. See any of the Codecs in pgtype for Codec examples and for examples of type registration. Encoding Unknown Types pgtype works best when the OID of the PostgreSQL type is known. But in some cases such as using the simple protocol the OID is unknown. In this case Map.RegisterDefaultPgType can be used to register an assumed OID for a particular Go type. Renamed Types If pgtype does not recognize a type and that type is a renamed simple type simple (e.g. type MyInt32 int32) pgtype acts as if it is the underlying type. It currently cannot automatically detect the underlying type of renamed structs (eg.g. type MyTime time.Time). Compatibility with database/sql pgtype also includes support for custom types implementing the database/sql.Scanner and database/sql/driver.Valuer interfaces. Child Records pgtype's support for arrays and composite records can be used to load records and their children in a single query. See example_child_records_test.go for an example. Overview of Scanning Implementation The first step is to use the OID to lookup the correct Codec. If the OID is unavailable, Map will try to find the OID from previous calls of Map.RegisterDefaultPgType. The Map will call the Codec's PlanScan method to get a plan for scanning into the Go value. A Codec will support scanning into one or more Go types. Oftentime these Go types are interfaces rather than explicit types. For example, PointCodec can use any Go type that implments the PointScanner and PointValuer interfaces. If a Go value is not supported directly by a Codec then Map will try wrapping it with additional logic and try again. For example, Int8Codec does not support scanning into a renamed type (e.g. type myInt64 int64). But Map will detect that myInt64 is a renamed type and create a plan that converts the value to the underlying int64 type and then passes that to the Codec (see TryFindUnderlyingTypeScanPlan). These plan wrappers are contained in Map.TryWrapScanPlanFuncs. By default these contain shared logic to handle renamed types, pointers to pointers, slices, composite types, etc. Additional plan wrappers can be added to seamlessly integrate types that do not support pgx directly. For example, the before mentioned https://github.com/jackc/pgx-shopspring-decimal package detects decimal.Decimal values, wraps them in something implementing NumericScanner and passes that to the Codec. Map.Scan and Map.Encode are convenience methods that wrap Map.PlanScan and Map.PlanEncode. Determining how to scan or encode a particular type may be a time consuming operation. Hence the planning and execution steps of a conversion are internally separated. Reducing Compiled Binary Size pgx.QueryExecModeExec and pgx.QueryExecModeSimpleProtocol require the default PostgreSQL type to be registered for each Go type used as a query parameter. By default pgx does this for all supported types and their array variants. If an application does not use those query execution modes or manually registers the default PostgreSQL type for the types it uses as query parameters it can use the build tag nopgxregisterdefaulttypes. This omits the default type registration and reduces the compiled binary size by ~2MB. enum_codec.go float4.go float8.go hstore.go inet.go Do not edit. Generated from pgtype/int.go.erb interval.go json.go jsonb.go line.go lseg.go macaddr.go multirange.go numeric.go path.go pgtype.go pgtype_default.go point.go polygon.go qchar.go range.go range_codec.go record_codec.go register_default_pg_types.go text.go text_format_only_codec.go tid.go time.go timestamp.go timestamptz.go uint32.go uuid.go
Code Examples package main import ( "context" "fmt" "os" "time" "github.com/jackc/pgx/v5" ) type Player struct { Name string Position string } type Team struct { Name string Players []Player } // This example uses a single query to return parent and child records. func main() { ctx, cancel := context.WithTimeout(context.Background(), 120*time.Second) defer cancel() conn, err := pgx.Connect(ctx, os.Getenv("PGX_TEST_DATABASE")) if err != nil { fmt.Printf("Unable to establish connection: %v", err) return } if conn.PgConn().ParameterStatus("crdb_version") != "" { // Skip test / example when running on CockroachDB. Since an example can't be skipped fake success instead. fmt.Println(`Alpha Adam: wing Bill: halfback Charlie: fullback Beta Don: halfback Edgar: halfback Frank: fullback`) return } // Setup example schema and data. _, err = conn.Exec(ctx, ` create temporary table teams ( name text primary key ); create temporary table players ( name text primary key, team_name text, position text ); insert into teams (name) values ('Alpha'), ('Beta'); insert into players (name, team_name, position) values ('Adam', 'Alpha', 'wing'), ('Bill', 'Alpha', 'halfback'), ('Charlie', 'Alpha', 'fullback'), ('Don', 'Beta', 'halfback'), ('Edgar', 'Beta', 'halfback'), ('Frank', 'Beta', 'fullback') `) if err != nil { fmt.Printf("Unable to setup example schema and data: %v", err) return } rows, _ := conn.Query(ctx, ` select t.name, (select array_agg(row(p.name, position) order by p.name) from players p where p.team_name = t.name) from teams t order by t.name `) teams, err := pgx.CollectRows(rows, pgx.RowToStructByPos[Team]) if err != nil { fmt.Printf("CollectRows error: %v", err) return } for _, team := range teams { fmt.Println(team.Name) for _, player := range team.Players { fmt.Printf(" %s: %s\n", player.Name, player.Position) } } } package main import ( "context" "fmt" "os" "github.com/jackc/pgx/v5" "github.com/jackc/pgx/v5/pgtype" ) // Point represents a point that may be null. type Point struct { X, Y float32 // Coordinates of point Valid bool } func (p *Point) ScanPoint(v pgtype.Point) error { *p = Point{ X: float32(v.P.X), Y: float32(v.P.Y), Valid: v.Valid, } return nil } func (p Point) PointValue() (pgtype.Point, error) { return pgtype.Point{ P: pgtype.Vec2{X: float64(p.X), Y: float64(p.Y)}, Valid: true, }, nil } func (src *Point) String() string { if !src.Valid { return "null point" } return fmt.Sprintf("%.1f, %.1f", src.X, src.Y) } func main() { conn, err := pgx.Connect(context.Background(), os.Getenv("PGX_TEST_DATABASE")) if err != nil { fmt.Printf("Unable to establish connection: %v", err) return } defer conn.Close(context.Background()) if conn.PgConn().ParameterStatus("crdb_version") != "" { // Skip test / example when running on CockroachDB which doesn't support the point type. Since an example can't be // skipped fake success instead. fmt.Println("null point") fmt.Println("1.5, 2.5") return } p := &Point{} err = conn.QueryRow(context.Background(), "select null::point").Scan(p) if err != nil { fmt.Println(err) return } fmt.Println(p) err = conn.QueryRow(context.Background(), "select point(1.5,2.5)").Scan(p) if err != nil { fmt.Println(err) return } fmt.Println(p) } { conn, err := pgx.Connect(context.Background(), os.Getenv("PGX_TEST_DATABASE")) if err != nil { fmt.Printf("Unable to establish connection: %v", err) return } type person struct { Name string `json:"name"` Age int `json:"age"` } input := person{ Name: "John", Age: 42, } var output person err = conn.QueryRow(context.Background(), "select $1::json", input).Scan(&output) if err != nil { fmt.Println(err) return } fmt.Println(output.Name, output.Age) }
Package-Level Type Names (total 146)
/* sort by: | */
Type Parameters: T: any Array represents a PostgreSQL array for T. It implements the ArrayGetter and ArraySetter interfaces. It preserves PostgreSQL dimensions and custom lower bounds. Use FlatArray if these are not needed. Dims []ArrayDimension Elements []T Valid bool ( Array[T]) Dimensions() []ArrayDimension ( Array[T]) Index(i int) any ( Array[T]) IndexType() any ( Array[T]) ScanIndex(i int) any ( Array[T]) ScanIndexType() any (*Array[T]) SetDimensions(dimensions []ArrayDimension) error Array : ArrayGetter *Array : ArraySetter
ArrayCodec is a codec for any array type. ElementType *Type (*ArrayCodec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) (*ArrayCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) (*ArrayCodec) FormatSupported(format int16) bool (*ArrayCodec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan (*ArrayCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan (*ArrayCodec) PreferredFormat() int16 *ArrayCodec : Codec
Length int32 LowerBound int32 func Array[T].Dimensions() []ArrayDimension func ArrayGetter.Dimensions() []ArrayDimension func FlatArray[T].Dimensions() []ArrayDimension func (*Array)[T].SetDimensions(dimensions []ArrayDimension) error func ArraySetter.SetDimensions(dimensions []ArrayDimension) error func (*FlatArray)[T].SetDimensions(dimensions []ArrayDimension) error
ArrayGetter is a type that can be converted into a PostgreSQL array. Dimensions returns the array dimensions. If array is nil then nil is returned. Index returns the element at i. IndexType returns a non-nil scan target of the type Index will return. This is used by ArrayCodec.PlanEncode. Array[...] FlatArray[...]
ArraySetter is a type can be set from a PostgreSQL array. ScanIndex returns a value usable as a scan target for i. SetDimensions must be called before ScanIndex. ScanIndexType returns a non-nil scan target of the type ScanIndex will return. This is used by ArrayCodec.PlanScan. SetDimensions prepares the value such that ScanIndex can be called for each element. This will remove any existing elements. dimensions may be nil to indicate a NULL array. If unable to exactly preserve dimensions SetDimensions may return an error or silently flatten the array dimensions. *Array[...] *FlatArray[...]
Bits represents the PostgreSQL bit and varbit types. Bytes []byte // Number of bits Valid bool ( Bits) BitsValue() (Bits, error) Scan implements the database/sql Scanner interface. (*Bits) ScanBits(v Bits) error Value implements the database/sql/driver Valuer interface. *Bits : BitsScanner Bits : BitsValuer *Bits : database/sql.Scanner Bits : database/sql/driver.Valuer func Bits.BitsValue() (Bits, error) func BitsValuer.BitsValue() (Bits, error) func (*Bits).ScanBits(v Bits) error func BitsScanner.ScanBits(v Bits) error
( BitsCodec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( BitsCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( BitsCodec) FormatSupported(format int16) bool ( BitsCodec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( BitsCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( BitsCodec) PreferredFormat() int16 BitsCodec : Codec
( BitsScanner) ScanBits(v Bits) error *Bits
( BitsValuer) BitsValue() (Bits, error) Bits
Bool bool // Valid is true if Bool is not NULL ( Bool) BoolValue() (Bool, error) ( Bool) MarshalJSON() ([]byte, error) Scan implements the database/sql Scanner interface. (*Bool) ScanBool(v Bool) error (*Bool) UnmarshalJSON(b []byte) error Value implements the database/sql/driver Valuer interface. *Bool : BoolScanner Bool : BoolValuer *Bool : database/sql.Scanner Bool : database/sql/driver.Valuer Bool : encoding/json.Marshaler *Bool : encoding/json.Unmarshaler func Bool.BoolValue() (Bool, error) func BoolValuer.BoolValue() (Bool, error) func (*Bool).ScanBool(v Bool) error func BoolScanner.ScanBool(v Bool) error
( BoolCodec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( BoolCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( BoolCodec) FormatSupported(format int16) bool ( BoolCodec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( BoolCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( BoolCodec) PreferredFormat() int16 BoolCodec : Codec
( BoolScanner) ScanBool(v Bool) error *Bool
( BoolValuer) BoolValue() (Bool, error) Bool
( BoundType) String() string BoundType : github.com/ChrisTrenkamp/goxpath/tree.Result BoundType : fmt.Stringer func Range[T].BoundTypes() (lower, upper BoundType) func RangeValuer.BoundTypes() (lower, upper BoundType) func (*Range)[T].SetBoundTypes(lower, upper BoundType) error func RangeScanner.SetBoundTypes(lower, upper BoundType) error const Empty const Exclusive const Inclusive const Unbounded
P [2]Vec2 Valid bool ( Box) BoxValue() (Box, error) Scan implements the database/sql Scanner interface. (*Box) ScanBox(v Box) error Value implements the database/sql/driver Valuer interface. *Box : BoxScanner Box : BoxValuer *Box : database/sql.Scanner Box : database/sql/driver.Valuer func Box.BoxValue() (Box, error) func BoxValuer.BoxValue() (Box, error) func (*Box).ScanBox(v Box) error func BoxScanner.ScanBox(v Box) error
( BoxCodec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( BoxCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( BoxCodec) FormatSupported(format int16) bool ( BoxCodec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( BoxCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( BoxCodec) PreferredFormat() int16 BoxCodec : Codec
( BoxScanner) ScanBox(v Box) error *Box
( BoxValuer) BoxValue() (Box, error) Box
( ByteaCodec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( ByteaCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( ByteaCodec) FormatSupported(format int16) bool ( ByteaCodec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( ByteaCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( ByteaCodec) PreferredFormat() int16 ByteaCodec : Codec
ScanBytes receives a byte slice of driver memory that is only valid until the next database method call. *DriverBytes *PreallocBytes
BytesValue returns a byte slice of the byte data. The caller must not change the returned slice.
P Vec2 R float64 Valid bool ( Circle) CircleValue() (Circle, error) Scan implements the database/sql Scanner interface. (*Circle) ScanCircle(v Circle) error Value implements the database/sql/driver Valuer interface. *Circle : CircleScanner Circle : CircleValuer *Circle : database/sql.Scanner Circle : database/sql/driver.Valuer func Circle.CircleValue() (Circle, error) func CircleValuer.CircleValue() (Circle, error) func (*Circle).ScanCircle(v Circle) error func CircleScanner.ScanCircle(v Circle) error
( CircleCodec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( CircleCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( CircleCodec) FormatSupported(format int16) bool ( CircleCodec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( CircleCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( CircleCodec) PreferredFormat() int16 CircleCodec : Codec
( CircleScanner) ScanCircle(v Circle) error *Circle
( CircleValuer) CircleValue() (Circle, error) Circle
A Codec converts between Go and PostgreSQL values. A Codec must not be mutated after it is registered with a Map. DecodeDatabaseSQLValue returns src decoded into a value compatible with the sql.Scanner interface. DecodeValue returns src decoded into its default format. FormatSupported returns true if the format is supported. PlanEncode returns an EncodePlan for encoding value into PostgreSQL format for oid and format. If no plan can be found then nil is returned. PlanScan returns a ScanPlan for scanning a PostgreSQL value into a destination with the same type as target. If no plan can be found then nil is returned. PreferredFormat returns the preferred format. *ArrayCodec BitsCodec BoolCodec BoxCodec ByteaCodec CircleCodec *CompositeCodec DateCodec *EnumCodec Float4Codec Float8Codec HstoreCodec InetCodec Int2Codec Int4Codec Int8Codec IntervalCodec JSONBCodec JSONCodec LineCodec LsegCodec MacaddrCodec *MultirangeCodec NumericCodec PathCodec PointCodec PolygonCodec QCharCodec *RangeCodec RecordCodec TextCodec *TextFormatOnlyCodec TIDCodec TimeCodec TimestampCodec TimestamptzCodec Uint32Codec UUIDCodec
(*CompositeBinaryBuilder) AppendValue(oid uint32, field any) (*CompositeBinaryBuilder) Finish() ([]byte, error) func NewCompositeBinaryBuilder(m *Map, buf []byte) *CompositeBinaryBuilder
Bytes returns the bytes of the field most recently read by Scan(). Err returns any error encountered by the scanner. (*CompositeBinaryScanner) FieldCount() int Next advances the scanner to the next field. It returns false after the last field is read or an error occurs. After Next returns false, the Err method can be called to check if any errors occurred. OID returns the OID of the field most recently read by Scan(). func NewCompositeBinaryScanner(m *Map, src []byte) *CompositeBinaryScanner
Fields []CompositeCodecField (*CompositeCodec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) (*CompositeCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) (*CompositeCodec) FormatSupported(format int16) bool (*CompositeCodec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan (*CompositeCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan (*CompositeCodec) PreferredFormat() int16 *CompositeCodec : Codec
Name string Type *Type
CompositeFields represents the values of a composite value. It can be used as an encoding source or as a scan target. It cannot scan a NULL, but the composite fields can be NULL. ( CompositeFields) Index(i int) any ( CompositeFields) IsNull() bool ( CompositeFields) ScanIndex(i int) any ( CompositeFields) ScanNull() error ( CompositeFields) SkipUnderlyingTypePlan() CompositeFields : CompositeIndexGetter CompositeFields : CompositeIndexScanner CompositeFields : SkipUnderlyingTypePlanner
CompositeIndexGetter is a type accessed by index that can be converted into a PostgreSQL composite. Index returns the element at i. IsNull returns true if the value is SQL NULL. CompositeFields Multirange[...] MultirangeGetter (interface)
CompositeIndexScanner is a type accessed by index that can be scanned from a PostgreSQL composite. ScanIndex returns a value usable as a scan target for i. ScanNull sets the value to SQL NULL. CompositeFields *Multirange[...] MultirangeSetter (interface)
(*CompositeTextBuilder) AppendValue(oid uint32, field any) (*CompositeTextBuilder) Finish() ([]byte, error) func NewCompositeTextBuilder(m *Map, buf []byte) *CompositeTextBuilder
Bytes returns the bytes of the field most recently read by Scan(). Err returns any error encountered by the scanner. Next advances the scanner to the next field. It returns false after the last field is read or an error occurs. After Next returns false, the Err method can be called to check if any errors occurred. func NewCompositeTextScanner(m *Map, src []byte) *CompositeTextScanner
InfinityModifier InfinityModifier Time time.Time Valid bool ( Date) DateValue() (Date, error) ( Date) MarshalJSON() ([]byte, error) Scan implements the database/sql Scanner interface. (*Date) ScanDate(v Date) error (*Date) UnmarshalJSON(b []byte) error Value implements the database/sql/driver Valuer interface. *Date : DateScanner Date : DateValuer *Date : database/sql.Scanner Date : database/sql/driver.Valuer Date : encoding/json.Marshaler *Date : encoding/json.Unmarshaler func Date.DateValue() (Date, error) func DateValuer.DateValue() (Date, error) func (*Date).ScanDate(v Date) error func DateScanner.ScanDate(v Date) error
( DateCodec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( DateCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( DateCodec) FormatSupported(format int16) bool ( DateCodec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( DateCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( DateCodec) PreferredFormat() int16 DateCodec : Codec
( DateScanner) ScanDate(v Date) error *Date
( DateValuer) DateValue() (Date, error) Date
DriverBytes is a byte slice that holds a reference to memory owned by the driver. It is only valid from the time it is scanned until Rows.Next or Rows.Close is called. It is never safe to use DriverBytes with QueryRow as Row.Scan internally calls Rows.Close before returning. (*DriverBytes) ScanBytes(v []byte) error *DriverBytes : BytesScanner
EncodePlan is a precompiled plan to encode a particular type into a particular OID and format. Encode appends the encoded bytes of value to buf. If value is the SQL value NULL then append nothing and return (nil, nil). The caller of Encode is responsible for writing the correct NULL value or the length of the data written. WrappedEncodePlanNextSetter (interface) func (*ArrayCodec).PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func BitsCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func BoolCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func BoxCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func ByteaCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func CircleCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func Codec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func (*CompositeCodec).PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func DateCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func EnumCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func Float4Codec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func Float8Codec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func HstoreCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func InetCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func Int2Codec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func Int4Codec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func Int8Codec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func IntervalCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func JSONBCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func JSONCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func LineCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func LsegCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func MacaddrCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func (*Map).PlanEncode(oid uint32, format int16, value any) EncodePlan func (*MultirangeCodec).PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func NumericCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func PathCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func PointCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func PolygonCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func QCharCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func (*RangeCodec).PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func RecordCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func TextCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func TIDCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func TimeCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func TimestampCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func TimestamptzCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func Uint32Codec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func UUIDCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func WrappedEncodePlanNextSetter.SetNext(EncodePlan)
EnumCodec is a codec that caches the strings it decodes. If the same string is read multiple times only one copy is allocated. These strings are only garbage collected when the EnumCodec is garbage collected. EnumCodec can be used for any text type not only enums, but it should only be used when there are a small number of possible values. (*EnumCodec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) (*EnumCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( EnumCodec) FormatSupported(format int16) bool ( EnumCodec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan (*EnumCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( EnumCodec) PreferredFormat() int16 *EnumCodec : Codec
Type Parameters: T: any FlatArray implements the ArrayGetter and ArraySetter interfaces for any slice of T. It ignores PostgreSQL dimensions and custom lower bounds. Use Array to preserve these. ( FlatArray[T]) Dimensions() []ArrayDimension ( FlatArray[T]) Index(i int) any ( FlatArray[T]) IndexType() any ( FlatArray[T]) ScanIndex(i int) any ( FlatArray[T]) ScanIndexType() any (*FlatArray[T]) SetDimensions(dimensions []ArrayDimension) error FlatArray : ArrayGetter *FlatArray : ArraySetter
Float32 float32 Valid bool ( Float4) Float64Value() (Float8, error) ( Float4) Int64Value() (Int8, error) Scan implements the database/sql Scanner interface. ScanFloat64 implements the Float64Scanner interface. (*Float4) ScanInt64(n Int8) error Value implements the database/sql/driver Valuer interface. *Float4 : Float64Scanner Float4 : Float64Valuer *Float4 : Int64Scanner Float4 : Int64Valuer *Float4 : database/sql.Scanner Float4 : database/sql/driver.Valuer
( Float4Codec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( Float4Codec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( Float4Codec) FormatSupported(format int16) bool ( Float4Codec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( Float4Codec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( Float4Codec) PreferredFormat() int16 Float4Codec : Codec
( Float64Scanner) ScanFloat64(Float8) error *Float4 *Float8
( Float64Valuer) Float64Value() (Float8, error) Float4 Float8 Numeric
Float64 float64 // Valid is true if Float64 is not NULL ( Float8) Float64Value() (Float8, error) ( Float8) Int64Value() (Int8, error) (*Float8) MarshalJSON() ([]byte, error) Scan implements the database/sql Scanner interface. ScanFloat64 implements the Float64Scanner interface. (*Float8) ScanInt64(n Int8) error Value implements the database/sql/driver Valuer interface. *Float8 : Float64Scanner Float8 : Float64Valuer *Float8 : Int64Scanner Float8 : Int64Valuer *Float8 : database/sql.Scanner Float8 : database/sql/driver.Valuer *Float8 : encoding/json.Marshaler func Float4.Float64Value() (Float8, error) func Float64Valuer.Float64Value() (Float8, error) func Float8.Float64Value() (Float8, error) func Numeric.Float64Value() (Float8, error) func (*Float4).ScanFloat64(n Float8) error func Float64Scanner.ScanFloat64(Float8) error func (*Float8).ScanFloat64(n Float8) error
( Float8Codec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( Float8Codec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( Float8Codec) FormatSupported(format int16) bool ( Float8Codec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( Float8Codec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( Float8Codec) PreferredFormat() int16 Float8Codec : Codec
Hstore represents an hstore column that can be null or have null values associated with its keys. ( Hstore) HstoreValue() (Hstore, error) Scan implements the database/sql Scanner interface. (*Hstore) ScanHstore(v Hstore) error Value implements the database/sql/driver Valuer interface. *Hstore : HstoreScanner Hstore : HstoreValuer *Hstore : database/sql.Scanner Hstore : database/sql/driver.Valuer func Hstore.HstoreValue() (Hstore, error) func HstoreValuer.HstoreValue() (Hstore, error) func (*Hstore).ScanHstore(v Hstore) error func HstoreScanner.ScanHstore(v Hstore) error
( HstoreCodec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( HstoreCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( HstoreCodec) FormatSupported(format int16) bool ( HstoreCodec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( HstoreCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( HstoreCodec) PreferredFormat() int16 HstoreCodec : Codec
( HstoreScanner) ScanHstore(v Hstore) error *Hstore
( HstoreValuer) HstoreValue() (Hstore, error) Hstore
InetCodec handles both inet and cidr PostgreSQL types. The preferred Go types are netip.Prefix and netip.Addr. If IsValid() is false then they are treated as SQL NULL. ( InetCodec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( InetCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( InetCodec) FormatSupported(format int16) bool ( InetCodec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( InetCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( InetCodec) PreferredFormat() int16 InetCodec : Codec
( InfinityModifier) String() string InfinityModifier : github.com/ChrisTrenkamp/goxpath/tree.Result InfinityModifier : fmt.Stringer const Finite const Infinity const NegativeInfinity
Int16 int16 // Valid is true if Int16 is not NULL ( Int2) Int64Value() (Int8, error) ( Int2) MarshalJSON() ([]byte, error) Scan implements the database/sql Scanner interface. ScanInt64 implements the Int64Scanner interface. (*Int2) UnmarshalJSON(b []byte) error Value implements the database/sql/driver Valuer interface. *Int2 : Int64Scanner Int2 : Int64Valuer *Int2 : database/sql.Scanner Int2 : database/sql/driver.Valuer Int2 : encoding/json.Marshaler *Int2 : encoding/json.Unmarshaler
( Int2Codec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( Int2Codec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( Int2Codec) FormatSupported(format int16) bool ( Int2Codec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( Int2Codec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( Int2Codec) PreferredFormat() int16 Int2Codec : Codec
Int32 int32 // Valid is true if Int32 is not NULL ( Int4) Int64Value() (Int8, error) ( Int4) MarshalJSON() ([]byte, error) Scan implements the database/sql Scanner interface. ScanInt64 implements the Int64Scanner interface. (*Int4) UnmarshalJSON(b []byte) error Value implements the database/sql/driver Valuer interface. *Int4 : Int64Scanner Int4 : Int64Valuer *Int4 : database/sql.Scanner Int4 : database/sql/driver.Valuer Int4 : encoding/json.Marshaler *Int4 : encoding/json.Unmarshaler
( Int4Codec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( Int4Codec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( Int4Codec) FormatSupported(format int16) bool ( Int4Codec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( Int4Codec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( Int4Codec) PreferredFormat() int16 Int4Codec : Codec
( Int64Scanner) ScanInt64(Int8) error *Float4 *Float8 *Int2 *Int4 *Int8 *Numeric
( Int64Valuer) Int64Value() (Int8, error) Float4 Float8 Int2 Int4 Int8 Numeric
Int64 int64 // Valid is true if Int64 is not NULL ( Int8) Int64Value() (Int8, error) ( Int8) MarshalJSON() ([]byte, error) Scan implements the database/sql Scanner interface. ScanInt64 implements the Int64Scanner interface. (*Int8) UnmarshalJSON(b []byte) error Value implements the database/sql/driver Valuer interface. *Int8 : Int64Scanner Int8 : Int64Valuer *Int8 : database/sql.Scanner Int8 : database/sql/driver.Valuer Int8 : encoding/json.Marshaler *Int8 : encoding/json.Unmarshaler func Float4.Int64Value() (Int8, error) func Float8.Int64Value() (Int8, error) func Int2.Int64Value() (Int8, error) func Int4.Int64Value() (Int8, error) func Int64Valuer.Int64Value() (Int8, error) func Int8.Int64Value() (Int8, error) func Numeric.Int64Value() (Int8, error) func (*Float4).ScanInt64(n Int8) error func (*Float8).ScanInt64(n Int8) error func (*Int2).ScanInt64(n Int8) error func (*Int4).ScanInt64(n Int8) error func Int64Scanner.ScanInt64(Int8) error func (*Int8).ScanInt64(n Int8) error func (*Numeric).ScanInt64(v Int8) error
( Int8Codec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( Int8Codec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( Int8Codec) FormatSupported(format int16) bool ( Int8Codec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( Int8Codec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( Int8Codec) PreferredFormat() int16 Int8Codec : Codec
Days int32 Microseconds int64 Months int32 Valid bool ( Interval) IntervalValue() (Interval, error) Scan implements the database/sql Scanner interface. (*Interval) ScanInterval(v Interval) error Value implements the database/sql/driver Valuer interface. *Interval : IntervalScanner Interval : IntervalValuer *Interval : database/sql.Scanner Interval : database/sql/driver.Valuer func Interval.IntervalValue() (Interval, error) func IntervalValuer.IntervalValue() (Interval, error) func (*Interval).ScanInterval(v Interval) error func IntervalScanner.ScanInterval(v Interval) error
( IntervalCodec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( IntervalCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( IntervalCodec) FormatSupported(format int16) bool ( IntervalCodec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( IntervalCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( IntervalCodec) PreferredFormat() int16 IntervalCodec : Codec
( IntervalScanner) ScanInterval(v Interval) error *Interval
( IntervalValuer) IntervalValue() (Interval, error) Interval
( JSONBCodec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( JSONBCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( JSONBCodec) FormatSupported(format int16) bool ( JSONBCodec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( JSONBCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( JSONBCodec) PreferredFormat() int16 JSONBCodec : Codec
( JSONCodec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( JSONCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( JSONCodec) FormatSupported(format int16) bool ( JSONCodec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( JSONCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( JSONCodec) PreferredFormat() int16 JSONCodec : Codec
A float64 B float64 C float64 Valid bool ( Line) LineValue() (Line, error) Scan implements the database/sql Scanner interface. (*Line) ScanLine(v Line) error (*Line) Set(src any) error Value implements the database/sql/driver Valuer interface. *Line : LineScanner Line : LineValuer *Line : database/sql.Scanner Line : database/sql/driver.Valuer func Line.LineValue() (Line, error) func LineValuer.LineValue() (Line, error) func (*Line).ScanLine(v Line) error func LineScanner.ScanLine(v Line) error
( LineCodec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( LineCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( LineCodec) FormatSupported(format int16) bool ( LineCodec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( LineCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( LineCodec) PreferredFormat() int16 LineCodec : Codec
( LineScanner) ScanLine(v Line) error *Line
( LineValuer) LineValue() (Line, error) Line
P [2]Vec2 Valid bool ( Lseg) LsegValue() (Lseg, error) Scan implements the database/sql Scanner interface. (*Lseg) ScanLseg(v Lseg) error Value implements the database/sql/driver Valuer interface. *Lseg : LsegScanner Lseg : LsegValuer *Lseg : database/sql.Scanner Lseg : database/sql/driver.Valuer func Lseg.LsegValue() (Lseg, error) func LsegValuer.LsegValue() (Lseg, error) func (*Lseg).ScanLseg(v Lseg) error func LsegScanner.ScanLseg(v Lseg) error
( LsegCodec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( LsegCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( LsegCodec) FormatSupported(format int16) bool ( LsegCodec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( LsegCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( LsegCodec) PreferredFormat() int16 LsegCodec : Codec
( LsegScanner) ScanLseg(v Lseg) error *Lseg
( LsegValuer) LsegValue() (Lseg, error) Lseg
( MacaddrCodec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( MacaddrCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( MacaddrCodec) FormatSupported(format int16) bool ( MacaddrCodec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( MacaddrCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( MacaddrCodec) PreferredFormat() int16 MacaddrCodec : Codec
Map is the mapping between PostgreSQL server types and Go type handling logic. It can encode values for transmission to a PostgreSQL server and scan received values. TryWrapEncodePlanFuncs is a slice of functions that will wrap a value that cannot be encoded by the Codec. Every time a wrapper is found the PlanEncode method will be recursively called with the new value. This allows several layers of wrappers to be built up. There are default functions placed in this slice by NewMap(). In most cases these functions should run last. i.e. Additional functions should typically be prepended not appended. TryWrapScanPlanFuncs is a slice of functions that will wrap a target that cannot be scanned into by the Codec. Every time a wrapper is found the PlanScan method will be recursively called with the new target. This allows several layers of wrappers to be built up. There are default functions placed in this slice by NewMap(). In most cases these functions should run last. i.e. Additional functions should typically be prepended not appended. Encode appends the encoded bytes of value to buf. If value is the SQL value NULL then append nothing and return (nil, nil). The caller of Encode is responsible for writing the correct NULL value or the length of the data written. FormatCodeForOID returns the preferred format code for type oid. If the type is not registered it returns the text format code. PlanEncode returns an Encode plan for encoding value into PostgreSQL format for oid and format. If no plan can be found then nil is returned. PlanScan prepares a plan to scan a value into target. RegisterDefaultPgType registers a mapping of a Go type to a PostgreSQL type name. Typically the data type to be encoded or decoded is determined by the PostgreSQL OID. But if the OID of a value to be encoded or decoded is unknown, this additional mapping will be used by TypeForValue to determine a suitable data type. RegisterType registers a data type with the Map. t must not be mutated after it is registered. SQLScanner returns a database/sql.Scanner for v. This is necessary for types like Array[T] and Range[T] where the type needs assistance from Map to implement the sql.Scanner interface. It is not necessary for types like Box that implement sql.Scanner directly. This uses the type of v to look up the PostgreSQL OID that v presumably came from. This means v must be registered with m by calling RegisterDefaultPgType. (*Map) Scan(oid uint32, formatCode int16, src []byte, dst any) error TypeForName returns the Type registered for the given name. The returned Type must not be mutated. TypeForOID returns the Type registered for the given OID. The returned Type must not be mutated. TypeForValue finds a data type suitable for v. Use RegisterType to register types that can encode and decode themselves. Use RegisterDefaultPgType to register that can be handled by a registered data type. The returned Type must not be mutated. func NewMap() *Map func github.com/jackc/pgx/v5.(*Conn).TypeMap() *Map func NewCompositeBinaryBuilder(m *Map, buf []byte) *CompositeBinaryBuilder func NewCompositeBinaryScanner(m *Map, src []byte) *CompositeBinaryScanner func NewCompositeTextBuilder(m *Map, buf []byte) *CompositeTextBuilder func NewCompositeTextScanner(m *Map, src []byte) *CompositeTextScanner func (*ArrayCodec).DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func (*ArrayCodec).DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func (*ArrayCodec).PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func (*ArrayCodec).PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func BitsCodec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func BitsCodec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func BitsCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func BitsCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func BoolCodec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func BoolCodec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func BoolCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func BoolCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func BoxCodec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func BoxCodec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func BoxCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func BoxCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func ByteaCodec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func ByteaCodec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func ByteaCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func ByteaCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func CircleCodec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func CircleCodec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func CircleCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func CircleCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func Codec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func Codec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func Codec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func Codec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func (*CompositeCodec).DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func (*CompositeCodec).DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func (*CompositeCodec).PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func (*CompositeCodec).PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func DateCodec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func DateCodec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func DateCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func DateCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func (*EnumCodec).DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func (*EnumCodec).DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func EnumCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func (*EnumCodec).PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func Float4Codec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func Float4Codec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func Float4Codec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func Float4Codec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func Float8Codec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func Float8Codec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func Float8Codec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func Float8Codec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func HstoreCodec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func HstoreCodec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func HstoreCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func HstoreCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func InetCodec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func InetCodec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func InetCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func InetCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func Int2Codec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func Int2Codec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func Int2Codec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func Int2Codec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func Int4Codec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func Int4Codec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func Int4Codec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func Int4Codec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func Int8Codec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func Int8Codec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func Int8Codec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func Int8Codec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func IntervalCodec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func IntervalCodec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func IntervalCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func IntervalCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func JSONBCodec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func JSONBCodec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func JSONBCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func JSONBCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func JSONCodec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func JSONCodec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func JSONCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func JSONCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func LineCodec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func LineCodec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func LineCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func LineCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func LsegCodec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func LsegCodec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func LsegCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func LsegCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func MacaddrCodec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func MacaddrCodec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func MacaddrCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func MacaddrCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func (*MultirangeCodec).DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func (*MultirangeCodec).DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func (*MultirangeCodec).PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func (*MultirangeCodec).PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func NumericCodec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func NumericCodec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func NumericCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func NumericCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func PathCodec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func PathCodec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func PathCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func PathCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func PointCodec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func PointCodec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func PointCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func PointCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func PolygonCodec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func PolygonCodec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func PolygonCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func PolygonCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func QCharCodec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func QCharCodec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func QCharCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func QCharCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func (*RangeCodec).DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func (*RangeCodec).DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func (*RangeCodec).PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func (*RangeCodec).PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func RecordCodec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func RecordCodec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func RecordCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func RecordCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func TextCodec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func TextCodec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func TextCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func TextCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func TIDCodec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func TIDCodec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func TIDCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func TIDCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func TimeCodec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func TimeCodec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func TimeCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func TimeCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func TimestampCodec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func TimestampCodec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func TimestampCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func TimestampCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func TimestamptzCodec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func TimestamptzCodec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func TimestamptzCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func TimestamptzCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func Uint32Codec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func Uint32Codec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func Uint32Codec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func Uint32Codec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func UUIDCodec.DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) func UUIDCodec.DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) func UUIDCodec.PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan func UUIDCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func github.com/jackc/pgx/v5.RowsFromResultReader(typeMap *Map, resultReader *pgconn.ResultReader) pgx.Rows func github.com/jackc/pgx/v5.ScanRow(typeMap *Map, fieldDescriptions []pgconn.FieldDescription, values [][]byte, dest ...any) error func github.com/jackc/pgx/v5.(*ExtendedQueryBuilder).Build(m *Map, sd *pgconn.StatementDescription, args []any) error
Type Parameters: T: RangeValuer Multirange is a generic multirange type. T should implement RangeValuer and *T should implement RangeScanner. However, there does not appear to be a way to enforce the RangeScanner constraint. ( Multirange[T]) Index(i int) any ( Multirange[T]) IndexType() any ( Multirange[T]) IsNull() bool ( Multirange[T]) Len() int ( Multirange[T]) ScanIndex(i int) any ( Multirange[T]) ScanIndexType() any (*Multirange[T]) ScanNull() error (*Multirange[T]) SetLen(n int) error Multirange : CompositeIndexGetter *Multirange : CompositeIndexScanner Multirange : MultirangeGetter *Multirange : MultirangeSetter
MultirangeCodec is a codec for any multirange type. ElementType *Type (*MultirangeCodec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) (*MultirangeCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) (*MultirangeCodec) FormatSupported(format int16) bool (*MultirangeCodec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan (*MultirangeCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan (*MultirangeCodec) PreferredFormat() int16 *MultirangeCodec : Codec
MultirangeGetter is a type that can be converted into a PostgreSQL multirange. Index returns the element at i. IndexType returns a non-nil scan target of the type Index will return. This is used by MultirangeCodec.PlanEncode. IsNull returns true if the value is SQL NULL. Len returns the number of elements in the multirange. Multirange[...] MultirangeGetter : CompositeIndexGetter
MultirangeSetter is a type can be set from a PostgreSQL multirange. ScanIndex returns a value usable as a scan target for i. SetLen must be called before ScanIndex. ScanIndexType returns a non-nil scan target of the type ScanIndex will return. This is used by MultirangeCodec.PlanScan. ScanNull sets the value to SQL NULL. SetLen prepares the value such that ScanIndex can be called for each element. This will remove any existing elements. *Multirange[...] MultirangeSetter : CompositeIndexScanner
( NetipPrefixScanner) ScanNetipPrefix(v netip.Prefix) error
( NetipPrefixValuer) NetipPrefixValue() (netip.Prefix, error)
Exp int32 InfinityModifier InfinityModifier Int *big.Int NaN bool Valid bool ( Numeric) Float64Value() (Float8, error) ( Numeric) Int64Value() (Int8, error) ( Numeric) MarshalJSON() ([]byte, error) ( Numeric) NumericValue() (Numeric, error) Scan implements the database/sql Scanner interface. (*Numeric) ScanInt64(v Int8) error (*Numeric) ScanNumeric(v Numeric) error (*Numeric) UnmarshalJSON(src []byte) error Value implements the database/sql/driver Valuer interface. Numeric : Float64Valuer *Numeric : Int64Scanner Numeric : Int64Valuer *Numeric : NumericScanner Numeric : NumericValuer *Numeric : database/sql.Scanner Numeric : database/sql/driver.Valuer Numeric : encoding/json.Marshaler *Numeric : encoding/json.Unmarshaler func Numeric.NumericValue() (Numeric, error) func NumericValuer.NumericValue() (Numeric, error) func (*Numeric).ScanNumeric(v Numeric) error func NumericScanner.ScanNumeric(v Numeric) error
( NumericCodec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( NumericCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( NumericCodec) FormatSupported(format int16) bool ( NumericCodec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( NumericCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( NumericCodec) PreferredFormat() int16 NumericCodec : Codec
( NumericScanner) ScanNumeric(v Numeric) error *Numeric
( NumericValuer) NumericValue() (Numeric, error) Numeric
Closed bool P []Vec2 Valid bool ( Path) PathValue() (Path, error) Scan implements the database/sql Scanner interface. (*Path) ScanPath(v Path) error Value implements the database/sql/driver Valuer interface. *Path : PathScanner Path : PathValuer *Path : database/sql.Scanner Path : database/sql/driver.Valuer func Path.PathValue() (Path, error) func PathValuer.PathValue() (Path, error) func (*Path).ScanPath(v Path) error func PathScanner.ScanPath(v Path) error
( PathCodec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( PathCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( PathCodec) FormatSupported(format int16) bool ( PathCodec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( PathCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( PathCodec) PreferredFormat() int16 PathCodec : Codec
( PathScanner) ScanPath(v Path) error *Path
( PathValuer) PathValue() (Path, error) Path
P Vec2 Valid bool ( Point) MarshalJSON() ([]byte, error) ( Point) PointValue() (Point, error) Scan implements the database/sql Scanner interface. (*Point) ScanPoint(v Point) error (*Point) UnmarshalJSON(point []byte) error Value implements the database/sql/driver Valuer interface. *Point : PointScanner Point : PointValuer *Point : database/sql.Scanner Point : database/sql/driver.Valuer Point : encoding/json.Marshaler *Point : encoding/json.Unmarshaler func Point.PointValue() (Point, error) func PointValuer.PointValue() (Point, error) func (*Point).ScanPoint(v Point) error func PointScanner.ScanPoint(v Point) error
( PointCodec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( PointCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( PointCodec) FormatSupported(format int16) bool ( PointCodec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( PointCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( PointCodec) PreferredFormat() int16 PointCodec : Codec
( PointScanner) ScanPoint(v Point) error *Point
( PointValuer) PointValue() (Point, error) Point
P []Vec2 Valid bool ( Polygon) PolygonValue() (Polygon, error) Scan implements the database/sql Scanner interface. (*Polygon) ScanPolygon(v Polygon) error Value implements the database/sql/driver Valuer interface. *Polygon : PolygonScanner Polygon : PolygonValuer *Polygon : database/sql.Scanner Polygon : database/sql/driver.Valuer func Polygon.PolygonValue() (Polygon, error) func PolygonValuer.PolygonValue() (Polygon, error) func (*Polygon).ScanPolygon(v Polygon) error func PolygonScanner.ScanPolygon(v Polygon) error
( PolygonCodec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( PolygonCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( PolygonCodec) FormatSupported(format int16) bool ( PolygonCodec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( PolygonCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( PolygonCodec) PreferredFormat() int16 PolygonCodec : Codec
( PolygonScanner) ScanPolygon(v Polygon) error *Polygon
( PolygonValuer) PolygonValue() (Polygon, error) Polygon
PreallocBytes is a byte slice of preallocated memory that scanned bytes will be copied to. If it is too small a new slice will be allocated. (*PreallocBytes) ScanBytes(v []byte) error *PreallocBytes : BytesScanner
QCharCodec is for PostgreSQL's special 8-bit-only "char" type more akin to the C language's char type, or Go's byte type. (Note that the name in PostgreSQL itself is "char", in double-quotes, and not char.) It gets used a lot in PostgreSQL's system tables to hold a single ASCII character value (eg pg_class.relkind). It is named Qchar for quoted char to disambiguate from SQL standard type char. ( QCharCodec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( QCharCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( QCharCodec) FormatSupported(format int16) bool ( QCharCodec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( QCharCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( QCharCodec) PreferredFormat() int16 QCharCodec : Codec
Type Parameters: T: any Range is a generic range type. Lower T LowerType BoundType Upper T UpperType BoundType Valid bool ( Range[T]) BoundTypes() (lower, upper BoundType) ( Range[T]) Bounds() (lower, upper any) ( Range[T]) IsNull() bool (*Range[T]) ScanBounds() (lowerTarget, upperTarget any) (*Range[T]) ScanNull() error (*Range[T]) SetBoundTypes(lower, upper BoundType) error *Range : RangeScanner Range : RangeValuer
RangeCodec is a codec for any range type. ElementType *Type (*RangeCodec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) (*RangeCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) (*RangeCodec) FormatSupported(format int16) bool (*RangeCodec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan (*RangeCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan (*RangeCodec) PreferredFormat() int16 *RangeCodec : Codec
RangeScanner is a type can be scanned from a PostgreSQL range. ScanBounds returns values usable as a scan target. The returned values may not be scanned if the range is empty or the bound type is unbounded. ScanNull sets the value to SQL NULL. SetBoundTypes sets the lower and upper bound types. ScanBounds will be called and the returned values scanned (if appropriate) before SetBoundTypes is called. If the bound types are unbounded or empty this method must also set the bound values. *Range[...]
RangeValuer is a type that can be converted into a PostgreSQL range. BoundTypes returns the lower and upper bound types. Bounds returns the lower and upper range values. IsNull returns true if the value is SQL NULL. Range[...]
RecordCodec is a codec for the generic PostgreSQL record type such as is created with the "row" function. Record can only decode the binary format. The text format output format from PostgreSQL does not include type information and is therefore impossible to decode. Encoding is impossible because PostgreSQL does not support input of generic records. ( RecordCodec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( RecordCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( RecordCodec) FormatSupported(format int16) bool ( RecordCodec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( RecordCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( RecordCodec) PreferredFormat() int16 RecordCodec : Codec
ScanPlan is a precompiled plan to scan into a type of destination. Scan scans src into target. src is only valid during the call to Scan. The ScanPlan must not retain a reference to src. WrappedScanPlanNextSetter (interface) func (*ArrayCodec).PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func BitsCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func BoolCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func BoxCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func ByteaCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func CircleCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func Codec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func (*CompositeCodec).PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func DateCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func (*EnumCodec).PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func Float4Codec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func Float8Codec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func HstoreCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func InetCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func Int2Codec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func Int4Codec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func Int8Codec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func IntervalCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func JSONBCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func JSONCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func LineCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func LsegCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func MacaddrCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func (*Map).PlanScan(oid uint32, formatCode int16, target any) ScanPlan func (*MultirangeCodec).PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func NumericCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func PathCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func PointCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func PolygonCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func QCharCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func (*RangeCodec).PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func RecordCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func TextCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func TIDCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func TimeCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func TimestampCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func TimestamptzCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func Uint32Codec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func UUIDCodec.PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan func WrappedScanPlanNextSetter.SetNext(ScanPlan)
SkipUnderlyingTypePlanner prevents PlanScan and PlanDecode from trying to use the underlying type. ( SkipUnderlyingTypePlanner) SkipUnderlyingTypePlan() CompositeFields
String string // Valid is true if String is not NULL ( Text) MarshalJSON() ([]byte, error) Scan implements the database/sql Scanner interface. (*Text) ScanText(v Text) error ( Text) TextValue() (Text, error) (*Text) UnmarshalJSON(b []byte) error Value implements the database/sql/driver Valuer interface. *Text : TextScanner Text : TextValuer *Text : database/sql.Scanner Text : database/sql/driver.Valuer Text : encoding/json.Marshaler *Text : encoding/json.Unmarshaler func Text.TextValue() (Text, error) func TextValuer.TextValue() (Text, error) func (*Text).ScanText(v Text) error func TextScanner.ScanText(v Text) error
( TextCodec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( TextCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( TextCodec) FormatSupported(format int16) bool ( TextCodec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( TextCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( TextCodec) PreferredFormat() int16 TextCodec : Codec
Codec Codec DecodeDatabaseSQLValue returns src decoded into a value compatible with the sql.Scanner interface. DecodeValue returns src decoded into its default format. (*TextFormatOnlyCodec) FormatSupported(format int16) bool PlanEncode returns an EncodePlan for encoding value into PostgreSQL format for oid and format. If no plan can be found then nil is returned. PlanScan returns a ScanPlan for scanning a PostgreSQL value into a destination with the same type as target. If no plan can be found then nil is returned. ( TextFormatOnlyCodec) PreferredFormat() int16 *TextFormatOnlyCodec : Codec
( TextScanner) ScanText(v Text) error *Text
( TextValuer) TextValue() (Text, error) Text
TID is PostgreSQL's Tuple Identifier type. When one does select ctid, * from some_table; it is the data type of the ctid hidden system column. It is currently implemented as a pair unsigned two byte integers. Its conversion functions can be found in src/backend/utils/adt/tid.c in the PostgreSQL sources. BlockNumber uint32 OffsetNumber uint16 Valid bool Scan implements the database/sql Scanner interface. (*TID) ScanTID(v TID) error ( TID) TIDValue() (TID, error) Value implements the database/sql/driver Valuer interface. *TID : TIDScanner TID : TIDValuer *TID : database/sql.Scanner TID : database/sql/driver.Valuer func TID.TIDValue() (TID, error) func TIDValuer.TIDValue() (TID, error) func (*TID).ScanTID(v TID) error func TIDScanner.ScanTID(v TID) error
( TIDCodec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( TIDCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( TIDCodec) FormatSupported(format int16) bool ( TIDCodec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( TIDCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( TIDCodec) PreferredFormat() int16 TIDCodec : Codec
( TIDScanner) ScanTID(v TID) error *TID
( TIDValuer) TIDValue() (TID, error) TID
Time represents the PostgreSQL time type. The PostgreSQL time is a time of day without time zone. Time is represented as the number of microseconds since midnight in the same way that PostgreSQL does. Other time and date types in pgtype can use time.Time as the underlying representation. However, pgtype.Time type cannot due to needing to handle 24:00:00. time.Time converts that to 00:00:00 on the following day. // Number of microseconds since midnight Valid bool Scan implements the database/sql Scanner interface. (*Time) ScanTime(v Time) error ( Time) TimeValue() (Time, error) Value implements the database/sql/driver Valuer interface. *Time : TimeScanner Time : TimeValuer *Time : database/sql.Scanner Time : database/sql/driver.Valuer func Time.TimeValue() (Time, error) func TimeValuer.TimeValue() (Time, error) func (*Time).ScanTime(v Time) error func TimeScanner.ScanTime(v Time) error
( TimeCodec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( TimeCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( TimeCodec) FormatSupported(format int16) bool ( TimeCodec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( TimeCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( TimeCodec) PreferredFormat() int16 TimeCodec : Codec
( TimeScanner) ScanTime(v Time) error *Time
Timestamp represents the PostgreSQL timestamp type. InfinityModifier InfinityModifier Time time.Time Valid bool ( Timestamp) MarshalJSON() ([]byte, error) Scan implements the database/sql Scanner interface. (*Timestamp) ScanTimestamp(v Timestamp) error ( Timestamp) TimestampValue() (Timestamp, error) (*Timestamp) UnmarshalJSON(b []byte) error Value implements the database/sql/driver Valuer interface. *Timestamp : TimestampScanner Timestamp : TimestampValuer *Timestamp : database/sql.Scanner Timestamp : database/sql/driver.Valuer Timestamp : encoding/json.Marshaler *Timestamp : encoding/json.Unmarshaler func Timestamp.TimestampValue() (Timestamp, error) func TimestampValuer.TimestampValue() (Timestamp, error) func (*Timestamp).ScanTimestamp(v Timestamp) error func TimestampScanner.ScanTimestamp(v Timestamp) error
( TimestampCodec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( TimestampCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( TimestampCodec) FormatSupported(format int16) bool ( TimestampCodec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( TimestampCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( TimestampCodec) PreferredFormat() int16 TimestampCodec : Codec
( TimestampScanner) ScanTimestamp(v Timestamp) error *Timestamp
Timestamptz represents the PostgreSQL timestamptz type. InfinityModifier InfinityModifier Time time.Time Valid bool ( Timestamptz) MarshalJSON() ([]byte, error) Scan implements the database/sql Scanner interface. (*Timestamptz) ScanTimestamptz(v Timestamptz) error ( Timestamptz) TimestamptzValue() (Timestamptz, error) (*Timestamptz) UnmarshalJSON(b []byte) error Value implements the database/sql/driver Valuer interface. *Timestamptz : TimestamptzScanner Timestamptz : TimestamptzValuer *Timestamptz : database/sql.Scanner Timestamptz : database/sql/driver.Valuer Timestamptz : encoding/json.Marshaler *Timestamptz : encoding/json.Unmarshaler func Timestamptz.TimestamptzValue() (Timestamptz, error) func TimestamptzValuer.TimestamptzValue() (Timestamptz, error) func (*Timestamptz).ScanTimestamptz(v Timestamptz) error func TimestamptzScanner.ScanTimestamptz(v Timestamptz) error
( TimestamptzCodec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( TimestamptzCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( TimestamptzCodec) FormatSupported(format int16) bool ( TimestamptzCodec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( TimestamptzCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( TimestamptzCodec) PreferredFormat() int16 TimestamptzCodec : Codec
( TimestamptzScanner) ScanTimestamptz(v Timestamptz) error *Timestamptz
( TimestamptzValuer) TimestamptzValue() (Timestamptz, error) Timestamptz
( TimestampValuer) TimestampValue() (Timestamp, error) Timestamp
( TimeValuer) TimeValue() (Time, error) Time
TryWrapEncodePlanFunc is a function that tries to create a wrapper plan for value. If successful it returns a plan that will convert the value passed to Encode and then call the next plan. nextValue is value as it will be converted by plan. It must be used to find another suitable EncodePlan. When it is found SetNext must be called on plan for it to be usabled. ok indicates if a suitable wrapper was found.
TryWrapScanPlanFunc is a function that tries to create a wrapper plan for target. If successful it returns a plan that will convert the target passed to Scan and then call the next plan. nextTarget is target as it will be converted by plan. It must be used to find another suitable ScanPlan. When it is found SetNext must be called on plan for it to be usabled. ok indicates if a suitable wrapper was found.
Type represents a PostgreSQL data type. It must not be mutated after it is registered with a Map. Codec Codec Name string OID uint32 func (*Map).TypeForName(name string) (*Type, bool) func (*Map).TypeForOID(oid uint32) (*Type, bool) func (*Map).TypeForValue(v any) (*Type, bool) func github.com/jackc/pgx/v5.(*Conn).LoadType(ctx context.Context, typeName string) (*Type, error) func (*Map).RegisterType(t *Type)
Uint32 is the core type that is used to represent PostgreSQL types such as OID, CID, and XID. Uint32 uint32 Valid bool Scan implements the database/sql Scanner interface. (*Uint32) ScanUint32(v Uint32) error ( Uint32) Uint32Value() (Uint32, error) Value implements the database/sql/driver Valuer interface. *Uint32 : Uint32Scanner Uint32 : Uint32Valuer *Uint32 : database/sql.Scanner Uint32 : database/sql/driver.Valuer func Uint32.Uint32Value() (Uint32, error) func Uint32Valuer.Uint32Value() (Uint32, error) func (*Uint32).ScanUint32(v Uint32) error func Uint32Scanner.ScanUint32(v Uint32) error
( Uint32Codec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( Uint32Codec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( Uint32Codec) FormatSupported(format int16) bool ( Uint32Codec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( Uint32Codec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( Uint32Codec) PreferredFormat() int16 Uint32Codec : Codec
( Uint32Scanner) ScanUint32(v Uint32) error *Uint32
( Uint32Valuer) Uint32Value() (Uint32, error) Uint32
UndecodedBytes can be used as a scan target to get the raw bytes from PostgreSQL without any decoding.
Bytes [16]byte Valid bool ( UUID) MarshalJSON() ([]byte, error) Scan implements the database/sql Scanner interface. (*UUID) ScanUUID(v UUID) error ( UUID) UUIDValue() (UUID, error) (*UUID) UnmarshalJSON(src []byte) error Value implements the database/sql/driver Valuer interface. *UUID : UUIDScanner UUID : UUIDValuer *UUID : database/sql.Scanner UUID : database/sql/driver.Valuer UUID : encoding/json.Marshaler *UUID : encoding/json.Unmarshaler func UUID.UUIDValue() (UUID, error) func UUIDValuer.UUIDValue() (UUID, error) func (*UUID).ScanUUID(v UUID) error func UUIDScanner.ScanUUID(v UUID) error
( UUIDCodec) DecodeDatabaseSQLValue(m *Map, oid uint32, format int16, src []byte) (driver.Value, error) ( UUIDCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) ( UUIDCodec) FormatSupported(format int16) bool ( UUIDCodec) PlanEncode(m *Map, oid uint32, format int16, value any) EncodePlan ( UUIDCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan ( UUIDCodec) PreferredFormat() int16 UUIDCodec : Codec
( UUIDScanner) ScanUUID(v UUID) error *UUID
( UUIDValuer) UUIDValue() (UUID, error) UUID
X float64 Y float64
Encode appends the encoded bytes of value to buf. If value is the SQL value NULL then append nothing and return (nil, nil). The caller of Encode is responsible for writing the correct NULL value or the length of the data written. ( WrappedEncodePlanNextSetter) SetNext(EncodePlan) WrappedEncodePlanNextSetter : EncodePlan func TryWrapArrayEncodePlan(value any) (plan WrappedEncodePlanNextSetter, nextValue any, ok bool) func TryWrapBuiltinTypeEncodePlan(value any) (plan WrappedEncodePlanNextSetter, nextValue any, ok bool) func TryWrapDerefPointerEncodePlan(value any) (plan WrappedEncodePlanNextSetter, nextValue any, ok bool) func TryWrapFindUnderlyingTypeEncodePlan(value any) (plan WrappedEncodePlanNextSetter, nextValue any, ok bool) func TryWrapMultiDimSliceEncodePlan(value any) (plan WrappedEncodePlanNextSetter, nextValue any, ok bool) func TryWrapSliceEncodePlan(value any) (plan WrappedEncodePlanNextSetter, nextValue any, ok bool) func TryWrapStructEncodePlan(value any) (plan WrappedEncodePlanNextSetter, nextValue any, ok bool)
Scan scans src into target. src is only valid during the call to Scan. The ScanPlan must not retain a reference to src. ( WrappedScanPlanNextSetter) SetNext(ScanPlan) WrappedScanPlanNextSetter : ScanPlan func TryFindUnderlyingTypeScanPlan(dst any) (plan WrappedScanPlanNextSetter, nextDst any, ok bool) func TryPointerPointerScanPlan(target any) (plan WrappedScanPlanNextSetter, nextTarget any, ok bool) func TryWrapBuiltinTypeScanPlan(target any) (plan WrappedScanPlanNextSetter, nextDst any, ok bool) func TryWrapPtrArrayScanPlan(target any) (plan WrappedScanPlanNextSetter, nextValue any, ok bool) func TryWrapPtrMultiDimSliceScanPlan(target any) (plan WrappedScanPlanNextSetter, nextValue any, ok bool) func TryWrapPtrSliceScanPlan(target any) (plan WrappedScanPlanNextSetter, nextValue any, ok bool) func TryWrapStructScanPlan(target any) (plan WrappedScanPlanNextSetter, nextValue any, ok bool)
Package-Level Functions (total 21)
GetAssignToDstType attempts to convert dst to something AssignTo can assign to. If dst is a pointer to pointer it allocates a value and returns the dereferences pointer. If dst is a named type such as *Foo where Foo is type Foo int16, it converts dst to *int16. GetAssignToDstType returns the converted dst and a bool representing if any change was made.
NewCompositeBinaryScanner a scanner over a binary encoded composite balue.
NewCompositeTextScanner a scanner over a text encoded composite value.
func NewMap() *Map
TryFindUnderlyingTypeScanPlan tries to convert to a Go builtin type. e.g. If value was of type MyString and MyString was defined as a string then a wrapper plan would be returned that converts MyString to string.
TryPointerPointerScanPlan handles a pointer to a pointer by setting the target to nil for SQL NULL and allocating and scanning for non-NULL.
TryWrapBuiltinTypeEncodePlan tries to wrap a builtin type with a wrapper that provides additional methods. e.g. If value was of type int32 then a wrapper plan would be returned that converts value to a type that implements Int64Valuer.
TryWrapBuiltinTypeScanPlan tries to wrap a builtin type with a wrapper that provides additional methods. e.g. If value was of type int32 then a wrapper plan would be returned that converts target to a value that implements Int64Scanner.
TryWrapDerefPointerEncodePlan tries to dereference a pointer. e.g. If value was of type *string then a wrapper plan would be returned that derefences the value.
TryWrapFindUnderlyingTypeEncodePlan tries to convert to a Go builtin type. e.g. If value was of type MyString and MyString was defined as a string then a wrapper plan would be returned that converts MyString to string.
TryWrapPtrArrayScanPlan tries to wrap a pointer to a single dimension array.
TryWrapPtrMultiDimSliceScanPlan tries to wrap a pointer to a multi-dimension slice.
TryWrapPtrSliceScanPlan tries to wrap a pointer to a single dimension slice.
TryWrapStructPlan tries to wrap a struct with a wrapper that implements CompositeIndexGetter.
TryWrapStructPlan tries to wrap a struct with a wrapper that implements CompositeIndexGetter.
Package-Level Variables (only one)
Package-Level Constants (total 114)
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL format codes
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
const Empty BoundType = 69
const Exclusive BoundType = 101
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
const Inclusive BoundType = 105
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL format codes
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
const Unbounded BoundType = 85
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types
PostgreSQL oids for common types