From 743b98b298a35453b2a8abf8e4002f8897cf3d47 Mon Sep 17 00:00:00 2001 From: Jack Christensen Date: Sat, 11 Mar 2017 17:03:23 -0600 Subject: [PATCH] Name PG types as words Though this doesn't follow Go naming conventions exactly it makes names more consistent with PostgreSQL and it is easier to read. For example, TIDOID becomes TidOid. In addition this is one less breaking change in the move to V3. --- conn.go | 126 ++++++------- conn_pool.go | 4 +- conn_test.go | 2 +- copy_to_test.go | 2 +- doc.go | 6 +- example_custom_type_test.go | 7 +- fastpath.go | 14 +- large_objects.go | 12 +- messages.go | 4 +- pgtype/aclitem.go | 26 +-- pgtype/aclitem_array.go | 34 ++-- pgtype/aclitem_array_test.go | 74 ++++---- pgtype/aclitem_test.go | 36 ++-- pgtype/array.go | 6 +- pgtype/bool_array.go | 6 +- pgtype/bytea_array.go | 6 +- pgtype/cid.go | 20 +- pgtype/cid_test.go | 30 +-- pgtype/cidr_array.go | 2 +- pgtype/date_array.go | 6 +- pgtype/extra-interface.txt | 2 +- pgtype/float4_array.go | 6 +- pgtype/float8_array.go | 6 +- pgtype/inet_array.go | 6 +- pgtype/inet_array_test.go | 36 ++-- pgtype/inet_test.go | 38 ++-- pgtype/int2_array.go | 6 +- pgtype/int4_array.go | 6 +- pgtype/int8_array.go | 6 +- pgtype/oid.go | 20 +- pgtype/oid_test.go | 30 +-- pgtype/pgtype.go | 82 ++++----- pgtype/pgtype_test.go | 2 +- pgtype/pguint32.go | 2 +- pgtype/text_array.go | 6 +- pgtype/tid.go | 20 +- pgtype/tid_test.go | 8 +- pgtype/timestamp_array.go | 6 +- pgtype/timestamptz_array.go | 6 +- pgtype/typed_array.go.erb | 4 +- pgtype/typed_array_gen.sh | 26 +-- pgtype/varchar_array.go | 2 +- pgtype/xid.go | 20 +- pgtype/xid_test.go | 30 +-- query.go | 82 ++++----- query_test.go | 8 +- stdlib/sql.go | 28 +-- v3.md | 6 - value_reader.go | 4 +- values.go | 344 +++++++++++++++++------------------ values_test.go | 112 ++++++------ 51 files changed, 689 insertions(+), 694 deletions(-) diff --git a/conn.go b/conn.go index c2cc5d3c..21bd8f1b 100644 --- a/conn.go +++ b/conn.go @@ -77,7 +77,7 @@ type Conn struct { pid int32 // backend pid secretKey int32 // key to use to send a cancel query message to the server RuntimeParams map[string]string // parameters that have been reported by the server - PgTypes map[OID]PgType // oids to PgTypes + PgTypes map[Oid]PgType // oids to PgTypes config ConnConfig // config used when establishing this connection txStatus byte preparedStatements map[string]*PreparedStatement @@ -102,7 +102,7 @@ type Conn struct { doneChan chan struct{} closedChan chan error - oidPgtypeValues map[OID]pgtype.Value + oidPgtypeValues map[Oid]pgtype.Value } // PreparedStatement is a description of a prepared statement @@ -110,12 +110,12 @@ type PreparedStatement struct { Name string SQL string FieldDescriptions []FieldDescription - ParameterOIDs []OID + ParameterOids []Oid } // PrepareExOptions is an option struct that can be passed to PrepareEx type PrepareExOptions struct { - ParameterOIDs []OID + ParameterOids []Oid } // Notification is a message received from the PostgreSQL LISTEN/NOTIFY system @@ -180,13 +180,13 @@ func Connect(config ConnConfig) (c *Conn, err error) { return connect(config, nil) } -func connect(config ConnConfig, pgTypes map[OID]PgType) (c *Conn, err error) { +func connect(config ConnConfig, pgTypes map[Oid]PgType) (c *Conn, err error) { c = new(Conn) c.config = config if pgTypes != nil { - c.PgTypes = make(map[OID]PgType, len(pgTypes)) + c.PgTypes = make(map[Oid]PgType, len(pgTypes)) for k, v := range pgTypes { c.PgTypes[k] = v } @@ -267,43 +267,43 @@ func (c *Conn) connect(config ConnConfig, network, address string, tlsConfig *tl c.doneChan = make(chan struct{}) c.closedChan = make(chan error) - c.oidPgtypeValues = map[OID]pgtype.Value{ - ACLItemArrayOID: &pgtype.ACLItemArray{}, - ACLItemOID: &pgtype.ACLItem{}, - BoolArrayOID: &pgtype.BoolArray{}, - BoolOID: &pgtype.Bool{}, - ByteaArrayOID: &pgtype.ByteaArray{}, - ByteaOID: &pgtype.Bytea{}, - CharOID: &pgtype.QChar{}, - CIDOID: &pgtype.CID{}, - CidrArrayOID: &pgtype.CidrArray{}, - CidrOID: &pgtype.Inet{}, - DateArrayOID: &pgtype.DateArray{}, - DateOID: &pgtype.Date{}, - Float4ArrayOID: &pgtype.Float4Array{}, - Float4OID: &pgtype.Float4{}, - Float8ArrayOID: &pgtype.Float8Array{}, - Float8OID: &pgtype.Float8{}, - InetArrayOID: &pgtype.InetArray{}, - InetOID: &pgtype.Inet{}, - Int2ArrayOID: &pgtype.Int2Array{}, - Int2OID: &pgtype.Int2{}, - Int4ArrayOID: &pgtype.Int4Array{}, - Int4OID: &pgtype.Int4{}, - Int8ArrayOID: &pgtype.Int8Array{}, - Int8OID: &pgtype.Int8{}, - NameOID: &pgtype.Name{}, - OIDOID: &pgtype.OID{}, - TextArrayOID: &pgtype.TextArray{}, - TextOID: &pgtype.Text{}, - TIDOID: &pgtype.TID{}, - TimestampArrayOID: &pgtype.TimestampArray{}, - TimestampOID: &pgtype.Timestamp{}, - TimestampTzArrayOID: &pgtype.TimestamptzArray{}, - TimestampTzOID: &pgtype.Timestamptz{}, - VarcharArrayOID: &pgtype.VarcharArray{}, - VarcharOID: &pgtype.Text{}, - XIDOID: &pgtype.XID{}, + c.oidPgtypeValues = map[Oid]pgtype.Value{ + AclitemArrayOid: &pgtype.AclitemArray{}, + AclitemOid: &pgtype.Aclitem{}, + BoolArrayOid: &pgtype.BoolArray{}, + BoolOid: &pgtype.Bool{}, + ByteaArrayOid: &pgtype.ByteaArray{}, + ByteaOid: &pgtype.Bytea{}, + CharOid: &pgtype.QChar{}, + CidOid: &pgtype.Cid{}, + CidrArrayOid: &pgtype.CidrArray{}, + CidrOid: &pgtype.Inet{}, + DateArrayOid: &pgtype.DateArray{}, + DateOid: &pgtype.Date{}, + Float4ArrayOid: &pgtype.Float4Array{}, + Float4Oid: &pgtype.Float4{}, + Float8ArrayOid: &pgtype.Float8Array{}, + Float8Oid: &pgtype.Float8{}, + InetArrayOid: &pgtype.InetArray{}, + InetOid: &pgtype.Inet{}, + Int2ArrayOid: &pgtype.Int2Array{}, + Int2Oid: &pgtype.Int2{}, + Int4ArrayOid: &pgtype.Int4Array{}, + Int4Oid: &pgtype.Int4{}, + Int8ArrayOid: &pgtype.Int8Array{}, + Int8Oid: &pgtype.Int8{}, + NameOid: &pgtype.Name{}, + OidOid: &pgtype.Oid{}, + TextArrayOid: &pgtype.TextArray{}, + TextOid: &pgtype.Text{}, + TidOid: &pgtype.Tid{}, + TimestampArrayOid: &pgtype.TimestampArray{}, + TimestampOid: &pgtype.Timestamp{}, + TimestampTzArrayOid: &pgtype.TimestamptzArray{}, + TimestampTzOid: &pgtype.Timestamptz{}, + VarcharArrayOid: &pgtype.VarcharArray{}, + VarcharOid: &pgtype.Text{}, + XidOid: &pgtype.Xid{}, } if tlsConfig != nil { @@ -397,7 +397,7 @@ where ( return err } - c.PgTypes = make(map[OID]PgType, 128) + c.PgTypes = make(map[Oid]PgType, 128) for rows.Next() { var oid uint32 @@ -408,7 +408,7 @@ where ( // The zero value is text format so we ignore any types without a default type format t.DefaultFormat, _ = DefaultTypeFormats[t.Name] - c.PgTypes[OID(oid)] = t + c.PgTypes[Oid(oid)] = t } return rows.Err() @@ -669,7 +669,7 @@ func (c *Conn) Prepare(name, sql string) (ps *PreparedStatement, err error) { // PrepareEx creates a prepared statement with name and sql. sql can contain placeholders // for bound parameters. These placeholders are referenced positional as $1, $2, etc. -// It defers from Prepare as it allows additional options (such as parameter OIDs) to be passed via struct +// It defers from Prepare as it allows additional options (such as parameter Oids) to be passed via struct // // PrepareEx is idempotent; i.e. it is safe to call PrepareEx multiple times with the same // name and sql arguments. This allows a code path to PrepareEx and Query/Exec without @@ -719,11 +719,11 @@ func (c *Conn) prepareEx(name, sql string, opts *PrepareExOptions) (ps *Prepared wbuf.WriteCString(sql) if opts != nil { - if len(opts.ParameterOIDs) > 65535 { - return nil, fmt.Errorf("Number of PrepareExOptions ParameterOIDs must be between 0 and 65535, received %d", len(opts.ParameterOIDs)) + if len(opts.ParameterOids) > 65535 { + return nil, fmt.Errorf("Number of PrepareExOptions ParameterOids must be between 0 and 65535, received %d", len(opts.ParameterOids)) } - wbuf.WriteInt16(int16(len(opts.ParameterOIDs))) - for _, oid := range opts.ParameterOIDs { + wbuf.WriteInt16(int16(len(opts.ParameterOids))) + for _, oid := range opts.ParameterOids { wbuf.WriteInt32(int32(oid)) } } else { @@ -760,10 +760,10 @@ func (c *Conn) prepareEx(name, sql string, opts *PrepareExOptions) (ps *Prepared switch t { case parameterDescription: - ps.ParameterOIDs = c.rxParameterDescription(r) + ps.ParameterOids = c.rxParameterDescription(r) - if len(ps.ParameterOIDs) > 65535 && softErr == nil { - softErr = fmt.Errorf("PostgreSQL supports maximum of 65535 parameters, received %d", len(ps.ParameterOIDs)) + if len(ps.ParameterOids) > 65535 && softErr == nil { + softErr = fmt.Errorf("PostgreSQL supports maximum of 65535 parameters, received %d", len(ps.ParameterOids)) } case rowDescription: ps.FieldDescriptions = c.rxRowDescription(r) @@ -970,8 +970,8 @@ func (c *Conn) sendSimpleQuery(sql string, args ...interface{}) error { } func (c *Conn) sendPreparedQuery(ps *PreparedStatement, arguments ...interface{}) (err error) { - if len(ps.ParameterOIDs) != len(arguments) { - return fmt.Errorf("Prepared statement \"%v\" requires %d parameters, but %d were provided", ps.Name, len(ps.ParameterOIDs), len(arguments)) + if len(ps.ParameterOids) != len(arguments) { + return fmt.Errorf("Prepared statement \"%v\" requires %d parameters, but %d were provided", ps.Name, len(ps.ParameterOids), len(arguments)) } if err := c.ensureConnectionReadyForQuery(); err != nil { @@ -983,8 +983,8 @@ func (c *Conn) sendPreparedQuery(ps *PreparedStatement, arguments ...interface{} wbuf.WriteByte(0) wbuf.WriteCString(ps.Name) - wbuf.WriteInt16(int16(len(ps.ParameterOIDs))) - for i, oid := range ps.ParameterOIDs { + wbuf.WriteInt16(int16(len(ps.ParameterOids))) + for i, oid := range ps.ParameterOids { switch arg := arguments[i].(type) { case Encoder: wbuf.WriteInt16(arg.FormatCode()) @@ -1000,7 +1000,7 @@ func (c *Conn) sendPreparedQuery(ps *PreparedStatement, arguments ...interface{} } wbuf.WriteInt16(int16(len(arguments))) - for i, oid := range ps.ParameterOIDs { + for i, oid := range ps.ParameterOids { if err := Encode(wbuf, oid, arguments[i]); err != nil { return err } @@ -1188,9 +1188,9 @@ func (c *Conn) rxRowDescription(r *msgReader) (fields []FieldDescription) { for i := int16(0); i < fieldCount; i++ { f := &fields[i] f.Name = r.readCString() - f.Table = OID(r.readUint32()) + f.Table = Oid(r.readUint32()) f.AttributeNumber = r.readInt16() - f.DataType = OID(r.readUint32()) + f.DataType = Oid(r.readUint32()) f.DataTypeSize = r.readInt16() f.Modifier = r.readInt32() f.FormatCode = r.readInt16() @@ -1198,7 +1198,7 @@ func (c *Conn) rxRowDescription(r *msgReader) (fields []FieldDescription) { return } -func (c *Conn) rxParameterDescription(r *msgReader) (parameters []OID) { +func (c *Conn) rxParameterDescription(r *msgReader) (parameters []Oid) { // Internally, PostgreSQL supports greater than 64k parameters to a prepared // statement. But the parameter description uses a 16-bit integer for the // count of parameters. If there are more than 64K parameters, this count is @@ -1207,10 +1207,10 @@ func (c *Conn) rxParameterDescription(r *msgReader) (parameters []OID) { r.readInt16() parameterCount := len(r.msgBody[r.rp:]) / 4 - parameters = make([]OID, 0, parameterCount) + parameters = make([]Oid, 0, parameterCount) for i := 0; i < parameterCount; i++ { - parameters = append(parameters, OID(r.readUint32())) + parameters = append(parameters, Oid(r.readUint32())) } return } diff --git a/conn_pool.go b/conn_pool.go index fd632006..3081105c 100644 --- a/conn_pool.go +++ b/conn_pool.go @@ -28,7 +28,7 @@ type ConnPool struct { closed bool preparedStatements map[string]*PreparedStatement acquireTimeout time.Duration - pgTypes map[OID]PgType + pgTypes map[Oid]PgType txAfterClose func(tx *Tx) rowsAfterClose func(rows *Rows) } @@ -446,7 +446,7 @@ func (p *ConnPool) Prepare(name, sql string) (*PreparedStatement, error) { // // PrepareEx creates a prepared statement with name and sql. sql can contain placeholders // for bound parameters. These placeholders are referenced positional as $1, $2, etc. -// It defers from Prepare as it allows additional options (such as parameter OIDs) to be passed via struct +// It defers from Prepare as it allows additional options (such as parameter Oids) to be passed via struct // // PrepareEx is idempotent; i.e. it is safe to call PrepareEx multiple times with the same // name and sql arguments. This allows a code path to PrepareEx and Query/Exec/Prepare without diff --git a/conn_test.go b/conn_test.go index b44fd6db..a6034be6 100644 --- a/conn_test.go +++ b/conn_test.go @@ -1042,7 +1042,7 @@ func TestPrepareEx(t *testing.T) { conn := mustConnect(t, *defaultConnConfig) defer closeConn(t, conn) - _, err := conn.PrepareEx("test", "select $1", &pgx.PrepareExOptions{ParameterOIDs: []pgx.OID{pgx.TextOID}}) + _, err := conn.PrepareEx("test", "select $1", &pgx.PrepareExOptions{ParameterOids: []pgx.Oid{pgx.TextOid}}) if err != nil { t.Errorf("Unable to prepare statement: %v", err) return diff --git a/copy_to_test.go b/copy_to_test.go index 7d5f2509..ee96054a 100644 --- a/copy_to_test.go +++ b/copy_to_test.go @@ -125,7 +125,7 @@ func TestConnCopyToJSON(t *testing.T) { conn := mustConnect(t, *defaultConnConfig) defer closeConn(t, conn) - for _, oid := range []pgx.OID{pgx.JSONOID, pgx.JSONBOID} { + for _, oid := range []pgx.Oid{pgx.JsonOid, pgx.JsonbOid} { if _, ok := conn.PgTypes[oid]; !ok { return // No JSON/JSONB type -- must be running against old PostgreSQL } diff --git a/doc.go b/doc.go index 514d51a0..5f3490ca 100644 --- a/doc.go +++ b/doc.go @@ -169,10 +169,10 @@ there. pgx.DefaultTypeFormats["point"] = pgx.BinaryFormatCode -Note that the type is referred to by name, not by OID. This is because custom -PostgreSQL types like hstore will have different OIDs on different servers. When +Note that the type is referred to by name, not by Oid. This is because custom +PostgreSQL types like hstore will have different Oids on different servers. When pgx establishes a connection it queries the pg_type table for all types. It then -matches the names in DefaultTypeFormats with the returned OIDs and stores it in +matches the names in DefaultTypeFormats with the returned Oids and stores it in Conn.PgTypes. See example_custom_type_test.go for an example of a custom type for the diff --git a/example_custom_type_test.go b/example_custom_type_test.go index 674466f3..74fbab67 100644 --- a/example_custom_type_test.go +++ b/example_custom_type_test.go @@ -3,9 +3,10 @@ package pgx_test import ( "errors" "fmt" - "github.com/jackc/pgx" "regexp" "strconv" + + "github.com/jackc/pgx" ) var pointRegexp *regexp.Regexp = regexp.MustCompile(`^\((.*),(.*)\)$`) @@ -20,7 +21,7 @@ type NullPoint struct { func (p *NullPoint) ScanPgx(vr *pgx.ValueReader) error { if vr.Type().DataTypeName != "point" { - return pgx.SerializationError(fmt.Sprintf("NullPoint.Scan cannot decode %s (OID %d)", vr.Type().DataTypeName, vr.Type().DataType)) + return pgx.SerializationError(fmt.Sprintf("NullPoint.Scan cannot decode %s (Oid %d)", vr.Type().DataTypeName, vr.Type().DataType)) } if vr.Len() == -1 { @@ -57,7 +58,7 @@ func (p *NullPoint) ScanPgx(vr *pgx.ValueReader) error { func (p NullPoint) FormatCode() int16 { return pgx.BinaryFormatCode } -func (p NullPoint) Encode(w *pgx.WriteBuf, oid pgx.OID) error { +func (p NullPoint) Encode(w *pgx.WriteBuf, oid pgx.Oid) error { if !p.Valid { w.WriteInt32(-1) return nil diff --git a/fastpath.go b/fastpath.go index af055e56..d58a7754 100644 --- a/fastpath.go +++ b/fastpath.go @@ -5,26 +5,26 @@ import ( ) func newFastpath(cn *Conn) *fastpath { - return &fastpath{cn: cn, fns: make(map[string]OID)} + return &fastpath{cn: cn, fns: make(map[string]Oid)} } type fastpath struct { cn *Conn - fns map[string]OID + fns map[string]Oid } -func (f *fastpath) functionOID(name string) OID { +func (f *fastpath) functionOid(name string) Oid { return f.fns[name] } -func (f *fastpath) addFunction(name string, oid OID) { +func (f *fastpath) addFunction(name string, oid Oid) { f.fns[name] = oid } func (f *fastpath) addFunctions(rows *Rows) error { for rows.Next() { var name string - var oid OID + var oid Oid if err := rows.Scan(&name, &oid); err != nil { return err } @@ -47,7 +47,7 @@ func fpInt64Arg(n int64) fpArg { return res } -func (f *fastpath) Call(oid OID, args []fpArg) (res []byte, err error) { +func (f *fastpath) Call(oid Oid, args []fpArg) (res []byte, err error) { if err := f.cn.ensureConnectionReadyForQuery(); err != nil { return nil, err } @@ -93,7 +93,7 @@ func (f *fastpath) Call(oid OID, args []fpArg) (res []byte, err error) { } func (f *fastpath) CallFn(fn string, args []fpArg) ([]byte, error) { - return f.Call(f.functionOID(fn), args) + return f.Call(f.functionOid(fn), args) } func fpInt32(data []byte, err error) (int32, error) { diff --git a/large_objects.go b/large_objects.go index 5b3e3a33..960e1e25 100644 --- a/large_objects.go +++ b/large_objects.go @@ -59,20 +59,20 @@ const ( ) // Create creates a new large object. If id is zero, the server assigns an -// unused OID. -func (o *LargeObjects) Create(id OID) (OID, error) { - newOID, err := fpInt32(o.fp.CallFn("lo_create", []fpArg{fpIntArg(int32(id))})) - return OID(newOID), err +// unused Oid. +func (o *LargeObjects) Create(id Oid) (Oid, error) { + newOid, err := fpInt32(o.fp.CallFn("lo_create", []fpArg{fpIntArg(int32(id))})) + return Oid(newOid), err } // Open opens an existing large object with the given mode. -func (o *LargeObjects) Open(oid OID, mode LargeObjectMode) (*LargeObject, error) { +func (o *LargeObjects) Open(oid Oid, mode LargeObjectMode) (*LargeObject, error) { fd, err := fpInt32(o.fp.CallFn("lo_open", []fpArg{fpIntArg(int32(oid)), fpIntArg(int32(mode))})) return &LargeObject{fd: fd, lo: o}, err } // Unlink removes a large object from the database. -func (o *LargeObjects) Unlink(oid OID) error { +func (o *LargeObjects) Unlink(oid Oid) error { _, err := o.fp.CallFn("lo_unlink", []fpArg{fpIntArg(int32(oid))}) return err } diff --git a/messages.go b/messages.go index f6be9ff9..0c14c61d 100644 --- a/messages.go +++ b/messages.go @@ -55,9 +55,9 @@ func (s *startupMessage) Bytes() (buf []byte) { type FieldDescription struct { Name string - Table OID + Table Oid AttributeNumber int16 - DataType OID + DataType Oid DataTypeSize int16 DataTypeName string Modifier int32 diff --git a/pgtype/aclitem.go b/pgtype/aclitem.go index bd7b7d45..821c5001 100644 --- a/pgtype/aclitem.go +++ b/pgtype/aclitem.go @@ -6,7 +6,7 @@ import ( "reflect" ) -// ACLItem is used for PostgreSQL's aclitem data type. A sample aclitem +// Aclitem is used for PostgreSQL's aclitem data type. A sample aclitem // might look like this: // // postgres=arwdDxt/postgres @@ -18,34 +18,34 @@ import ( // // postgres=arwdDxt/"role with spaces" // -type ACLItem struct { +type Aclitem struct { String string Status Status } -func (dst *ACLItem) ConvertFrom(src interface{}) error { +func (dst *Aclitem) ConvertFrom(src interface{}) error { switch value := src.(type) { - case ACLItem: + case Aclitem: *dst = value case string: - *dst = ACLItem{String: value, Status: Present} + *dst = Aclitem{String: value, Status: Present} case *string: if value == nil { - *dst = ACLItem{Status: Null} + *dst = Aclitem{Status: Null} } else { - *dst = ACLItem{String: *value, Status: Present} + *dst = Aclitem{String: *value, Status: Present} } default: if originalSrc, ok := underlyingStringType(src); ok { return dst.ConvertFrom(originalSrc) } - return fmt.Errorf("cannot convert %v to ACLItem", value) + return fmt.Errorf("cannot convert %v to Aclitem", value) } return nil } -func (src *ACLItem) AssignTo(dst interface{}) error { +func (src *Aclitem) AssignTo(dst interface{}) error { switch v := dst.(type) { case *string: if src.Status != Present { @@ -81,17 +81,17 @@ func (src *ACLItem) AssignTo(dst interface{}) error { return nil } -func (dst *ACLItem) DecodeText(src []byte) error { +func (dst *Aclitem) DecodeText(src []byte) error { if src == nil { - *dst = ACLItem{Status: Null} + *dst = Aclitem{Status: Null} return nil } - *dst = ACLItem{String: string(src), Status: Present} + *dst = Aclitem{String: string(src), Status: Present} return nil } -func (src ACLItem) EncodeText(w io.Writer) (bool, error) { +func (src Aclitem) EncodeText(w io.Writer) (bool, error) { switch src.Status { case Null: return true, nil diff --git a/pgtype/aclitem_array.go b/pgtype/aclitem_array.go index d69cd83c..48f5cd38 100644 --- a/pgtype/aclitem_array.go +++ b/pgtype/aclitem_array.go @@ -8,30 +8,30 @@ import ( "github.com/jackc/pgx/pgio" ) -type ACLItemArray struct { - Elements []ACLItem +type AclitemArray struct { + Elements []Aclitem Dimensions []ArrayDimension Status Status } -func (dst *ACLItemArray) ConvertFrom(src interface{}) error { +func (dst *AclitemArray) ConvertFrom(src interface{}) error { switch value := src.(type) { - case ACLItemArray: + case AclitemArray: *dst = value case []string: if value == nil { - *dst = ACLItemArray{Status: Null} + *dst = AclitemArray{Status: Null} } else if len(value) == 0 { - *dst = ACLItemArray{Status: Present} + *dst = AclitemArray{Status: Present} } else { - elements := make([]ACLItem, len(value)) + elements := make([]Aclitem, len(value)) for i := range value { if err := elements[i].ConvertFrom(value[i]); err != nil { return err } } - *dst = ACLItemArray{ + *dst = AclitemArray{ Elements: elements, Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}}, Status: Present, @@ -42,13 +42,13 @@ func (dst *ACLItemArray) ConvertFrom(src interface{}) error { if originalSrc, ok := underlyingSliceType(src); ok { return dst.ConvertFrom(originalSrc) } - return fmt.Errorf("cannot convert %v to ACLItem", value) + return fmt.Errorf("cannot convert %v to Aclitem", value) } return nil } -func (src *ACLItemArray) AssignTo(dst interface{}) error { +func (src *AclitemArray) AssignTo(dst interface{}) error { switch v := dst.(type) { case *[]string: @@ -73,9 +73,9 @@ func (src *ACLItemArray) AssignTo(dst interface{}) error { return nil } -func (dst *ACLItemArray) DecodeText(src []byte) error { +func (dst *AclitemArray) DecodeText(src []byte) error { if src == nil { - *dst = ACLItemArray{Status: Null} + *dst = AclitemArray{Status: Null} return nil } @@ -84,13 +84,13 @@ func (dst *ACLItemArray) DecodeText(src []byte) error { return err } - var elements []ACLItem + var elements []Aclitem if len(uta.Elements) > 0 { - elements = make([]ACLItem, len(uta.Elements)) + elements = make([]Aclitem, len(uta.Elements)) for i, s := range uta.Elements { - var elem ACLItem + var elem Aclitem var elemSrc []byte if s != "NULL" { elemSrc = []byte(s) @@ -104,12 +104,12 @@ func (dst *ACLItemArray) DecodeText(src []byte) error { } } - *dst = ACLItemArray{Elements: elements, Dimensions: uta.Dimensions, Status: Present} + *dst = AclitemArray{Elements: elements, Dimensions: uta.Dimensions, Status: Present} return nil } -func (src *ACLItemArray) EncodeText(w io.Writer) (bool, error) { +func (src *AclitemArray) EncodeText(w io.Writer) (bool, error) { switch src.Status { case Null: return true, nil diff --git a/pgtype/aclitem_array_test.go b/pgtype/aclitem_array_test.go index 8c01ac66..e78f14c6 100644 --- a/pgtype/aclitem_array_test.go +++ b/pgtype/aclitem_array_test.go @@ -7,40 +7,40 @@ import ( "github.com/jackc/pgx/pgtype" ) -func TestACLItemArrayTranscode(t *testing.T) { +func TestAclitemArrayTranscode(t *testing.T) { testSuccessfulTranscode(t, "aclitem[]", []interface{}{ - &pgtype.ACLItemArray{ + &pgtype.AclitemArray{ Elements: nil, Dimensions: nil, Status: pgtype.Present, }, - &pgtype.ACLItemArray{ - Elements: []pgtype.ACLItem{ - pgtype.ACLItem{String: "=r/postgres", Status: pgtype.Present}, - pgtype.ACLItem{Status: pgtype.Null}, + &pgtype.AclitemArray{ + Elements: []pgtype.Aclitem{ + pgtype.Aclitem{String: "=r/postgres", Status: pgtype.Present}, + pgtype.Aclitem{Status: pgtype.Null}, }, Dimensions: []pgtype.ArrayDimension{{Length: 2, LowerBound: 1}}, Status: pgtype.Present, }, - &pgtype.ACLItemArray{Status: pgtype.Null}, - &pgtype.ACLItemArray{ - Elements: []pgtype.ACLItem{ - pgtype.ACLItem{String: "=r/postgres", Status: pgtype.Present}, - pgtype.ACLItem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present}, - pgtype.ACLItem{String: `postgres=arwdDxt/" tricky, ' } "" \ test user "`, Status: pgtype.Present}, - pgtype.ACLItem{String: "=r/postgres", Status: pgtype.Present}, - pgtype.ACLItem{Status: pgtype.Null}, - pgtype.ACLItem{String: "=r/postgres", Status: pgtype.Present}, + &pgtype.AclitemArray{Status: pgtype.Null}, + &pgtype.AclitemArray{ + Elements: []pgtype.Aclitem{ + pgtype.Aclitem{String: "=r/postgres", Status: pgtype.Present}, + pgtype.Aclitem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present}, + pgtype.Aclitem{String: `postgres=arwdDxt/" tricky, ' } "" \ test user "`, Status: pgtype.Present}, + pgtype.Aclitem{String: "=r/postgres", Status: pgtype.Present}, + pgtype.Aclitem{Status: pgtype.Null}, + pgtype.Aclitem{String: "=r/postgres", Status: pgtype.Present}, }, Dimensions: []pgtype.ArrayDimension{{Length: 3, LowerBound: 1}, {Length: 2, LowerBound: 1}}, Status: pgtype.Present, }, - &pgtype.ACLItemArray{ - Elements: []pgtype.ACLItem{ - pgtype.ACLItem{String: "=r/postgres", Status: pgtype.Present}, - pgtype.ACLItem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present}, - pgtype.ACLItem{String: "=r/postgres", Status: pgtype.Present}, - pgtype.ACLItem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present}, + &pgtype.AclitemArray{ + Elements: []pgtype.Aclitem{ + pgtype.Aclitem{String: "=r/postgres", Status: pgtype.Present}, + pgtype.Aclitem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present}, + pgtype.Aclitem{String: "=r/postgres", Status: pgtype.Present}, + pgtype.Aclitem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present}, }, Dimensions: []pgtype.ArrayDimension{ {Length: 2, LowerBound: 4}, @@ -51,26 +51,26 @@ func TestACLItemArrayTranscode(t *testing.T) { }) } -func TestACLItemArrayConvertFrom(t *testing.T) { +func TestAclitemArrayConvertFrom(t *testing.T) { successfulTests := []struct { source interface{} - result pgtype.ACLItemArray + result pgtype.AclitemArray }{ { source: []string{"=r/postgres"}, - result: pgtype.ACLItemArray{ - Elements: []pgtype.ACLItem{{String: "=r/postgres", Status: pgtype.Present}}, + result: pgtype.AclitemArray{ + Elements: []pgtype.Aclitem{{String: "=r/postgres", Status: pgtype.Present}}, Dimensions: []pgtype.ArrayDimension{{LowerBound: 1, Length: 1}}, Status: pgtype.Present}, }, { source: (([]string)(nil)), - result: pgtype.ACLItemArray{Status: pgtype.Null}, + result: pgtype.AclitemArray{Status: pgtype.Null}, }, } for i, tt := range successfulTests { - var r pgtype.ACLItemArray + var r pgtype.AclitemArray err := r.ConvertFrom(tt.source) if err != nil { t.Errorf("%d: %v", i, err) @@ -82,19 +82,19 @@ func TestACLItemArrayConvertFrom(t *testing.T) { } } -func TestACLItemArrayAssignTo(t *testing.T) { +func TestAclitemArrayAssignTo(t *testing.T) { var stringSlice []string type _stringSlice []string var namedStringSlice _stringSlice simpleTests := []struct { - src pgtype.ACLItemArray + src pgtype.AclitemArray dst interface{} expected interface{} }{ { - src: pgtype.ACLItemArray{ - Elements: []pgtype.ACLItem{{String: "=r/postgres", Status: pgtype.Present}}, + src: pgtype.AclitemArray{ + Elements: []pgtype.Aclitem{{String: "=r/postgres", Status: pgtype.Present}}, Dimensions: []pgtype.ArrayDimension{{LowerBound: 1, Length: 1}}, Status: pgtype.Present, }, @@ -102,8 +102,8 @@ func TestACLItemArrayAssignTo(t *testing.T) { expected: []string{"=r/postgres"}, }, { - src: pgtype.ACLItemArray{ - Elements: []pgtype.ACLItem{{String: "=r/postgres", Status: pgtype.Present}}, + src: pgtype.AclitemArray{ + Elements: []pgtype.Aclitem{{String: "=r/postgres", Status: pgtype.Present}}, Dimensions: []pgtype.ArrayDimension{{LowerBound: 1, Length: 1}}, Status: pgtype.Present, }, @@ -111,7 +111,7 @@ func TestACLItemArrayAssignTo(t *testing.T) { expected: _stringSlice{"=r/postgres"}, }, { - src: pgtype.ACLItemArray{Status: pgtype.Null}, + src: pgtype.AclitemArray{Status: pgtype.Null}, dst: &stringSlice, expected: (([]string)(nil)), }, @@ -129,12 +129,12 @@ func TestACLItemArrayAssignTo(t *testing.T) { } errorTests := []struct { - src pgtype.ACLItemArray + src pgtype.AclitemArray dst interface{} }{ { - src: pgtype.ACLItemArray{ - Elements: []pgtype.ACLItem{{Status: pgtype.Null}}, + src: pgtype.AclitemArray{ + Elements: []pgtype.Aclitem{{Status: pgtype.Null}}, Dimensions: []pgtype.ArrayDimension{{LowerBound: 1, Length: 1}}, Status: pgtype.Present, }, diff --git a/pgtype/aclitem_test.go b/pgtype/aclitem_test.go index 0b2b6cfa..fc429acc 100644 --- a/pgtype/aclitem_test.go +++ b/pgtype/aclitem_test.go @@ -7,26 +7,26 @@ import ( "github.com/jackc/pgx/pgtype" ) -func TestACLItemTranscode(t *testing.T) { +func TestAclitemTranscode(t *testing.T) { testSuccessfulTranscode(t, "aclitem", []interface{}{ - pgtype.ACLItem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present}, - pgtype.ACLItem{String: `postgres=arwdDxt/" tricky, ' } "" \ test user "`, Status: pgtype.Present}, - pgtype.ACLItem{Status: pgtype.Null}, + pgtype.Aclitem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present}, + pgtype.Aclitem{String: `postgres=arwdDxt/" tricky, ' } "" \ test user "`, Status: pgtype.Present}, + pgtype.Aclitem{Status: pgtype.Null}, }) } -func TestACLItemConvertFrom(t *testing.T) { +func TestAclitemConvertFrom(t *testing.T) { successfulTests := []struct { source interface{} - result pgtype.ACLItem + result pgtype.Aclitem }{ - {source: pgtype.ACLItem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present}, result: pgtype.ACLItem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present}}, - {source: "postgres=arwdDxt/postgres", result: pgtype.ACLItem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present}}, - {source: (*string)(nil), result: pgtype.ACLItem{Status: pgtype.Null}}, + {source: pgtype.Aclitem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present}, result: pgtype.Aclitem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present}}, + {source: "postgres=arwdDxt/postgres", result: pgtype.Aclitem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present}}, + {source: (*string)(nil), result: pgtype.Aclitem{Status: pgtype.Null}}, } for i, tt := range successfulTests { - var d pgtype.ACLItem + var d pgtype.Aclitem err := d.ConvertFrom(tt.source) if err != nil { t.Errorf("%d: %v", i, err) @@ -38,17 +38,17 @@ func TestACLItemConvertFrom(t *testing.T) { } } -func TestACLItemAssignTo(t *testing.T) { +func TestAclitemAssignTo(t *testing.T) { var s string var ps *string simpleTests := []struct { - src pgtype.ACLItem + src pgtype.Aclitem dst interface{} expected interface{} }{ - {src: pgtype.ACLItem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present}, dst: &s, expected: "postgres=arwdDxt/postgres"}, - {src: pgtype.ACLItem{Status: pgtype.Null}, dst: &ps, expected: ((*string)(nil))}, + {src: pgtype.Aclitem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present}, dst: &s, expected: "postgres=arwdDxt/postgres"}, + {src: pgtype.Aclitem{Status: pgtype.Null}, dst: &ps, expected: ((*string)(nil))}, } for i, tt := range simpleTests { @@ -63,11 +63,11 @@ func TestACLItemAssignTo(t *testing.T) { } pointerAllocTests := []struct { - src pgtype.ACLItem + src pgtype.Aclitem dst interface{} expected interface{} }{ - {src: pgtype.ACLItem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present}, dst: &ps, expected: "postgres=arwdDxt/postgres"}, + {src: pgtype.Aclitem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present}, dst: &ps, expected: "postgres=arwdDxt/postgres"}, } for i, tt := range pointerAllocTests { @@ -82,10 +82,10 @@ func TestACLItemAssignTo(t *testing.T) { } errorTests := []struct { - src pgtype.ACLItem + src pgtype.Aclitem dst interface{} }{ - {src: pgtype.ACLItem{Status: pgtype.Null}, dst: &s}, + {src: pgtype.Aclitem{Status: pgtype.Null}, dst: &s}, } for i, tt := range errorTests { diff --git a/pgtype/array.go b/pgtype/array.go index 90092c8d..dff0fe81 100644 --- a/pgtype/array.go +++ b/pgtype/array.go @@ -18,7 +18,7 @@ import ( type ArrayHeader struct { ContainsNull bool - ElementOID int32 + ElementOid int32 Dimensions []ArrayDimension } @@ -40,7 +40,7 @@ func (dst *ArrayHeader) DecodeBinary(src []byte) (int, error) { dst.ContainsNull = binary.BigEndian.Uint32(src[rp:]) == 1 rp += 4 - dst.ElementOID = int32(binary.BigEndian.Uint32(src[rp:])) + dst.ElementOid = int32(binary.BigEndian.Uint32(src[rp:])) rp += 4 if numDims > 0 { @@ -75,7 +75,7 @@ func (src *ArrayHeader) EncodeBinary(w io.Writer) error { return err } - _, err = pgio.WriteInt32(w, src.ElementOID) + _, err = pgio.WriteInt32(w, src.ElementOid) if err != nil { return err } diff --git a/pgtype/bool_array.go b/pgtype/bool_array.go index 65a6bc9c..a74e9f90 100644 --- a/pgtype/bool_array.go +++ b/pgtype/bool_array.go @@ -229,10 +229,10 @@ func (src *BoolArray) EncodeText(w io.Writer) (bool, error) { } func (src *BoolArray) EncodeBinary(w io.Writer) (bool, error) { - return src.encodeBinary(w, BoolOID) + return src.encodeBinary(w, BoolOid) } -func (src *BoolArray) encodeBinary(w io.Writer, elementOID int32) (bool, error) { +func (src *BoolArray) encodeBinary(w io.Writer, elementOid int32) (bool, error) { switch src.Status { case Null: return true, nil @@ -241,7 +241,7 @@ func (src *BoolArray) encodeBinary(w io.Writer, elementOID int32) (bool, error) } arrayHeader := ArrayHeader{ - ElementOID: elementOID, + ElementOid: elementOid, Dimensions: src.Dimensions, } diff --git a/pgtype/bytea_array.go b/pgtype/bytea_array.go index 7a4f1601..9003eafd 100644 --- a/pgtype/bytea_array.go +++ b/pgtype/bytea_array.go @@ -229,10 +229,10 @@ func (src *ByteaArray) EncodeText(w io.Writer) (bool, error) { } func (src *ByteaArray) EncodeBinary(w io.Writer) (bool, error) { - return src.encodeBinary(w, ByteaOID) + return src.encodeBinary(w, ByteaOid) } -func (src *ByteaArray) encodeBinary(w io.Writer, elementOID int32) (bool, error) { +func (src *ByteaArray) encodeBinary(w io.Writer, elementOid int32) (bool, error) { switch src.Status { case Null: return true, nil @@ -241,7 +241,7 @@ func (src *ByteaArray) encodeBinary(w io.Writer, elementOID int32) (bool, error) } arrayHeader := ArrayHeader{ - ElementOID: elementOID, + ElementOid: elementOid, Dimensions: src.Dimensions, } diff --git a/pgtype/cid.go b/pgtype/cid.go index 41b817bb..be93a03e 100644 --- a/pgtype/cid.go +++ b/pgtype/cid.go @@ -4,7 +4,7 @@ import ( "io" ) -// CID is PostgreSQL's Command Identifier type. +// Cid is PostgreSQL's Command Identifier type. // // When one does // @@ -15,33 +15,33 @@ import ( // It is currently implemented as an unsigned four byte integer. // Its definition can be found in src/include/c.h as CommandId // in the PostgreSQL sources. -type CID pguint32 +type Cid pguint32 -// ConvertFrom converts from src to dst. Note that as CID is not a general +// ConvertFrom converts from src to dst. Note that as Cid is not a general // number type ConvertFrom does not do automatic type conversion as other number // types do. -func (dst *CID) ConvertFrom(src interface{}) error { +func (dst *Cid) ConvertFrom(src interface{}) error { return (*pguint32)(dst).ConvertFrom(src) } -// AssignTo assigns from src to dst. Note that as CID is not a general number +// AssignTo assigns from src to dst. Note that as Cid is not a general number // type AssignTo does not do automatic type conversion as other number types do. -func (src *CID) AssignTo(dst interface{}) error { +func (src *Cid) AssignTo(dst interface{}) error { return (*pguint32)(src).AssignTo(dst) } -func (dst *CID) DecodeText(src []byte) error { +func (dst *Cid) DecodeText(src []byte) error { return (*pguint32)(dst).DecodeText(src) } -func (dst *CID) DecodeBinary(src []byte) error { +func (dst *Cid) DecodeBinary(src []byte) error { return (*pguint32)(dst).DecodeBinary(src) } -func (src CID) EncodeText(w io.Writer) (bool, error) { +func (src Cid) EncodeText(w io.Writer) (bool, error) { return (pguint32)(src).EncodeText(w) } -func (src CID) EncodeBinary(w io.Writer) (bool, error) { +func (src Cid) EncodeBinary(w io.Writer) (bool, error) { return (pguint32)(src).EncodeBinary(w) } diff --git a/pgtype/cid_test.go b/pgtype/cid_test.go index 72f5dfea..7d9fde34 100644 --- a/pgtype/cid_test.go +++ b/pgtype/cid_test.go @@ -7,23 +7,23 @@ import ( "github.com/jackc/pgx/pgtype" ) -func TestCIDTranscode(t *testing.T) { +func TestCidTranscode(t *testing.T) { testSuccessfulTranscode(t, "cid", []interface{}{ - pgtype.CID{Uint: 42, Status: pgtype.Present}, - pgtype.CID{Status: pgtype.Null}, + pgtype.Cid{Uint: 42, Status: pgtype.Present}, + pgtype.Cid{Status: pgtype.Null}, }) } -func TestCIDConvertFrom(t *testing.T) { +func TestCidConvertFrom(t *testing.T) { successfulTests := []struct { source interface{} - result pgtype.CID + result pgtype.Cid }{ - {source: uint32(1), result: pgtype.CID{Uint: 1, Status: pgtype.Present}}, + {source: uint32(1), result: pgtype.Cid{Uint: 1, Status: pgtype.Present}}, } for i, tt := range successfulTests { - var r pgtype.CID + var r pgtype.Cid err := r.ConvertFrom(tt.source) if err != nil { t.Errorf("%d: %v", i, err) @@ -35,17 +35,17 @@ func TestCIDConvertFrom(t *testing.T) { } } -func TestCIDAssignTo(t *testing.T) { +func TestCidAssignTo(t *testing.T) { var ui32 uint32 var pui32 *uint32 simpleTests := []struct { - src pgtype.CID + src pgtype.Cid dst interface{} expected interface{} }{ - {src: pgtype.CID{Uint: 42, Status: pgtype.Present}, dst: &ui32, expected: uint32(42)}, - {src: pgtype.CID{Status: pgtype.Null}, dst: &pui32, expected: ((*uint32)(nil))}, + {src: pgtype.Cid{Uint: 42, Status: pgtype.Present}, dst: &ui32, expected: uint32(42)}, + {src: pgtype.Cid{Status: pgtype.Null}, dst: &pui32, expected: ((*uint32)(nil))}, } for i, tt := range simpleTests { @@ -60,11 +60,11 @@ func TestCIDAssignTo(t *testing.T) { } pointerAllocTests := []struct { - src pgtype.CID + src pgtype.Cid dst interface{} expected interface{} }{ - {src: pgtype.CID{Uint: 42, Status: pgtype.Present}, dst: &pui32, expected: uint32(42)}, + {src: pgtype.Cid{Uint: 42, Status: pgtype.Present}, dst: &pui32, expected: uint32(42)}, } for i, tt := range pointerAllocTests { @@ -79,10 +79,10 @@ func TestCIDAssignTo(t *testing.T) { } errorTests := []struct { - src pgtype.CID + src pgtype.Cid dst interface{} }{ - {src: pgtype.CID{Status: pgtype.Null}, dst: &ui32}, + {src: pgtype.Cid{Status: pgtype.Null}, dst: &ui32}, } for i, tt := range errorTests { diff --git a/pgtype/cidr_array.go b/pgtype/cidr_array.go index cb81d2b9..e0219ee5 100644 --- a/pgtype/cidr_array.go +++ b/pgtype/cidr_array.go @@ -27,5 +27,5 @@ func (src *CidrArray) EncodeText(w io.Writer) (bool, error) { } func (src *CidrArray) EncodeBinary(w io.Writer) (bool, error) { - return (*InetArray)(src).encodeBinary(w, CidrOID) + return (*InetArray)(src).encodeBinary(w, CidrOid) } diff --git a/pgtype/date_array.go b/pgtype/date_array.go index 623ff9b3..8f7cba18 100644 --- a/pgtype/date_array.go +++ b/pgtype/date_array.go @@ -230,10 +230,10 @@ func (src *DateArray) EncodeText(w io.Writer) (bool, error) { } func (src *DateArray) EncodeBinary(w io.Writer) (bool, error) { - return src.encodeBinary(w, DateOID) + return src.encodeBinary(w, DateOid) } -func (src *DateArray) encodeBinary(w io.Writer, elementOID int32) (bool, error) { +func (src *DateArray) encodeBinary(w io.Writer, elementOid int32) (bool, error) { switch src.Status { case Null: return true, nil @@ -242,7 +242,7 @@ func (src *DateArray) encodeBinary(w io.Writer, elementOID int32) (bool, error) } arrayHeader := ArrayHeader{ - ElementOID: elementOID, + ElementOid: elementOid, Dimensions: src.Dimensions, } diff --git a/pgtype/extra-interface.txt b/pgtype/extra-interface.txt index 16453823..f07818bc 100644 --- a/pgtype/extra-interface.txt +++ b/pgtype/extra-interface.txt @@ -1,3 +1,3 @@ Can pass function to get inet data and function to get oid/name mapping as optional interface with io.Reader or io.Writer -Could be useful for arrays of types without defined OIDs like hstore. +Could be useful for arrays of types without defined Oids like hstore. diff --git a/pgtype/float4_array.go b/pgtype/float4_array.go index c55f76d0..632e7e4b 100644 --- a/pgtype/float4_array.go +++ b/pgtype/float4_array.go @@ -229,10 +229,10 @@ func (src *Float4Array) EncodeText(w io.Writer) (bool, error) { } func (src *Float4Array) EncodeBinary(w io.Writer) (bool, error) { - return src.encodeBinary(w, Float4OID) + return src.encodeBinary(w, Float4Oid) } -func (src *Float4Array) encodeBinary(w io.Writer, elementOID int32) (bool, error) { +func (src *Float4Array) encodeBinary(w io.Writer, elementOid int32) (bool, error) { switch src.Status { case Null: return true, nil @@ -241,7 +241,7 @@ func (src *Float4Array) encodeBinary(w io.Writer, elementOID int32) (bool, error } arrayHeader := ArrayHeader{ - ElementOID: elementOID, + ElementOid: elementOid, Dimensions: src.Dimensions, } diff --git a/pgtype/float8_array.go b/pgtype/float8_array.go index d08a5351..68cf30f2 100644 --- a/pgtype/float8_array.go +++ b/pgtype/float8_array.go @@ -229,10 +229,10 @@ func (src *Float8Array) EncodeText(w io.Writer) (bool, error) { } func (src *Float8Array) EncodeBinary(w io.Writer) (bool, error) { - return src.encodeBinary(w, Float8OID) + return src.encodeBinary(w, Float8Oid) } -func (src *Float8Array) encodeBinary(w io.Writer, elementOID int32) (bool, error) { +func (src *Float8Array) encodeBinary(w io.Writer, elementOid int32) (bool, error) { switch src.Status { case Null: return true, nil @@ -241,7 +241,7 @@ func (src *Float8Array) encodeBinary(w io.Writer, elementOID int32) (bool, error } arrayHeader := ArrayHeader{ - ElementOID: elementOID, + ElementOid: elementOid, Dimensions: src.Dimensions, } diff --git a/pgtype/inet_array.go b/pgtype/inet_array.go index 12d9493b..629cd51f 100644 --- a/pgtype/inet_array.go +++ b/pgtype/inet_array.go @@ -261,10 +261,10 @@ func (src *InetArray) EncodeText(w io.Writer) (bool, error) { } func (src *InetArray) EncodeBinary(w io.Writer) (bool, error) { - return src.encodeBinary(w, InetOID) + return src.encodeBinary(w, InetOid) } -func (src *InetArray) encodeBinary(w io.Writer, elementOID int32) (bool, error) { +func (src *InetArray) encodeBinary(w io.Writer, elementOid int32) (bool, error) { switch src.Status { case Null: return true, nil @@ -273,7 +273,7 @@ func (src *InetArray) encodeBinary(w io.Writer, elementOID int32) (bool, error) } arrayHeader := ArrayHeader{ - ElementOID: elementOID, + ElementOid: elementOid, Dimensions: src.Dimensions, } diff --git a/pgtype/inet_array_test.go b/pgtype/inet_array_test.go index 8cab5355..523a9f8d 100644 --- a/pgtype/inet_array_test.go +++ b/pgtype/inet_array_test.go @@ -17,7 +17,7 @@ func TestInetArrayTranscode(t *testing.T) { }, &pgtype.InetArray{ Elements: []pgtype.Inet{ - pgtype.Inet{IPNet: mustParseCIDR(t, "12.34.56.0/32"), Status: pgtype.Present}, + pgtype.Inet{IPNet: mustParseCidr(t, "12.34.56.0/32"), Status: pgtype.Present}, pgtype.Inet{Status: pgtype.Null}, }, Dimensions: []pgtype.ArrayDimension{{Length: 2, LowerBound: 1}}, @@ -26,22 +26,22 @@ func TestInetArrayTranscode(t *testing.T) { &pgtype.InetArray{Status: pgtype.Null}, &pgtype.InetArray{ Elements: []pgtype.Inet{ - pgtype.Inet{IPNet: mustParseCIDR(t, "127.0.0.1/32"), Status: pgtype.Present}, - pgtype.Inet{IPNet: mustParseCIDR(t, "12.34.56.0/32"), Status: pgtype.Present}, - pgtype.Inet{IPNet: mustParseCIDR(t, "192.168.0.1/32"), Status: pgtype.Present}, - pgtype.Inet{IPNet: mustParseCIDR(t, "2607:f8b0:4009:80b::200e/128"), Status: pgtype.Present}, + pgtype.Inet{IPNet: mustParseCidr(t, "127.0.0.1/32"), Status: pgtype.Present}, + pgtype.Inet{IPNet: mustParseCidr(t, "12.34.56.0/32"), Status: pgtype.Present}, + pgtype.Inet{IPNet: mustParseCidr(t, "192.168.0.1/32"), Status: pgtype.Present}, + pgtype.Inet{IPNet: mustParseCidr(t, "2607:f8b0:4009:80b::200e/128"), Status: pgtype.Present}, pgtype.Inet{Status: pgtype.Null}, - pgtype.Inet{IPNet: mustParseCIDR(t, "255.0.0.0/8"), Status: pgtype.Present}, + pgtype.Inet{IPNet: mustParseCidr(t, "255.0.0.0/8"), Status: pgtype.Present}, }, Dimensions: []pgtype.ArrayDimension{{Length: 3, LowerBound: 1}, {Length: 2, LowerBound: 1}}, Status: pgtype.Present, }, &pgtype.InetArray{ Elements: []pgtype.Inet{ - pgtype.Inet{IPNet: mustParseCIDR(t, "127.0.0.1/32"), Status: pgtype.Present}, - pgtype.Inet{IPNet: mustParseCIDR(t, "12.34.56.0/32"), Status: pgtype.Present}, - pgtype.Inet{IPNet: mustParseCIDR(t, "192.168.0.1/32"), Status: pgtype.Present}, - pgtype.Inet{IPNet: mustParseCIDR(t, "2607:f8b0:4009:80b::200e/128"), Status: pgtype.Present}, + pgtype.Inet{IPNet: mustParseCidr(t, "127.0.0.1/32"), Status: pgtype.Present}, + pgtype.Inet{IPNet: mustParseCidr(t, "12.34.56.0/32"), Status: pgtype.Present}, + pgtype.Inet{IPNet: mustParseCidr(t, "192.168.0.1/32"), Status: pgtype.Present}, + pgtype.Inet{IPNet: mustParseCidr(t, "2607:f8b0:4009:80b::200e/128"), Status: pgtype.Present}, }, Dimensions: []pgtype.ArrayDimension{ {Length: 2, LowerBound: 4}, @@ -58,9 +58,9 @@ func TestInetArrayConvertFrom(t *testing.T) { result pgtype.InetArray }{ { - source: []*net.IPNet{mustParseCIDR(t, "127.0.0.1/32")}, + source: []*net.IPNet{mustParseCidr(t, "127.0.0.1/32")}, result: pgtype.InetArray{ - Elements: []pgtype.Inet{{IPNet: mustParseCIDR(t, "127.0.0.1/32"), Status: pgtype.Present}}, + Elements: []pgtype.Inet{{IPNet: mustParseCidr(t, "127.0.0.1/32"), Status: pgtype.Present}}, Dimensions: []pgtype.ArrayDimension{{LowerBound: 1, Length: 1}}, Status: pgtype.Present}, }, @@ -69,9 +69,9 @@ func TestInetArrayConvertFrom(t *testing.T) { result: pgtype.InetArray{Status: pgtype.Null}, }, { - source: []net.IP{mustParseCIDR(t, "127.0.0.1/32").IP}, + source: []net.IP{mustParseCidr(t, "127.0.0.1/32").IP}, result: pgtype.InetArray{ - Elements: []pgtype.Inet{{IPNet: mustParseCIDR(t, "127.0.0.1/32"), Status: pgtype.Present}}, + Elements: []pgtype.Inet{{IPNet: mustParseCidr(t, "127.0.0.1/32"), Status: pgtype.Present}}, Dimensions: []pgtype.ArrayDimension{{LowerBound: 1, Length: 1}}, Status: pgtype.Present}, }, @@ -105,12 +105,12 @@ func TestInetArrayAssignTo(t *testing.T) { }{ { src: pgtype.InetArray{ - Elements: []pgtype.Inet{{IPNet: mustParseCIDR(t, "127.0.0.1/32"), Status: pgtype.Present}}, + Elements: []pgtype.Inet{{IPNet: mustParseCidr(t, "127.0.0.1/32"), Status: pgtype.Present}}, Dimensions: []pgtype.ArrayDimension{{LowerBound: 1, Length: 1}}, Status: pgtype.Present, }, dst: &ipnetSlice, - expected: []*net.IPNet{mustParseCIDR(t, "127.0.0.1/32")}, + expected: []*net.IPNet{mustParseCidr(t, "127.0.0.1/32")}, }, { src: pgtype.InetArray{ @@ -123,12 +123,12 @@ func TestInetArrayAssignTo(t *testing.T) { }, { src: pgtype.InetArray{ - Elements: []pgtype.Inet{{IPNet: mustParseCIDR(t, "127.0.0.1/32"), Status: pgtype.Present}}, + Elements: []pgtype.Inet{{IPNet: mustParseCidr(t, "127.0.0.1/32"), Status: pgtype.Present}}, Dimensions: []pgtype.ArrayDimension{{LowerBound: 1, Length: 1}}, Status: pgtype.Present, }, dst: &ipSlice, - expected: []net.IP{mustParseCIDR(t, "127.0.0.1/32").IP}, + expected: []net.IP{mustParseCidr(t, "127.0.0.1/32").IP}, }, { src: pgtype.InetArray{ diff --git a/pgtype/inet_test.go b/pgtype/inet_test.go index 5e86376b..5a326810 100644 --- a/pgtype/inet_test.go +++ b/pgtype/inet_test.go @@ -11,16 +11,16 @@ import ( func TestInetTranscode(t *testing.T) { for _, pgTypeName := range []string{"inet", "cidr"} { testSuccessfulTranscode(t, pgTypeName, []interface{}{ - pgtype.Inet{IPNet: mustParseCIDR(t, "0.0.0.0/32"), Status: pgtype.Present}, - pgtype.Inet{IPNet: mustParseCIDR(t, "127.0.0.1/32"), Status: pgtype.Present}, - pgtype.Inet{IPNet: mustParseCIDR(t, "12.34.56.0/32"), Status: pgtype.Present}, - pgtype.Inet{IPNet: mustParseCIDR(t, "192.168.1.0/24"), Status: pgtype.Present}, - pgtype.Inet{IPNet: mustParseCIDR(t, "255.0.0.0/8"), Status: pgtype.Present}, - pgtype.Inet{IPNet: mustParseCIDR(t, "255.255.255.255/32"), Status: pgtype.Present}, - pgtype.Inet{IPNet: mustParseCIDR(t, "::/128"), Status: pgtype.Present}, - pgtype.Inet{IPNet: mustParseCIDR(t, "::/0"), Status: pgtype.Present}, - pgtype.Inet{IPNet: mustParseCIDR(t, "::1/128"), Status: pgtype.Present}, - pgtype.Inet{IPNet: mustParseCIDR(t, "2607:f8b0:4009:80b::200e/128"), Status: pgtype.Present}, + pgtype.Inet{IPNet: mustParseCidr(t, "0.0.0.0/32"), Status: pgtype.Present}, + pgtype.Inet{IPNet: mustParseCidr(t, "127.0.0.1/32"), Status: pgtype.Present}, + pgtype.Inet{IPNet: mustParseCidr(t, "12.34.56.0/32"), Status: pgtype.Present}, + pgtype.Inet{IPNet: mustParseCidr(t, "192.168.1.0/24"), Status: pgtype.Present}, + pgtype.Inet{IPNet: mustParseCidr(t, "255.0.0.0/8"), Status: pgtype.Present}, + pgtype.Inet{IPNet: mustParseCidr(t, "255.255.255.255/32"), Status: pgtype.Present}, + pgtype.Inet{IPNet: mustParseCidr(t, "::/128"), Status: pgtype.Present}, + pgtype.Inet{IPNet: mustParseCidr(t, "::/0"), Status: pgtype.Present}, + pgtype.Inet{IPNet: mustParseCidr(t, "::1/128"), Status: pgtype.Present}, + pgtype.Inet{IPNet: mustParseCidr(t, "2607:f8b0:4009:80b::200e/128"), Status: pgtype.Present}, pgtype.Inet{Status: pgtype.Null}, }) } @@ -31,10 +31,10 @@ func TestInetConvertFrom(t *testing.T) { source interface{} result pgtype.Inet }{ - {source: pgtype.Inet{IPNet: mustParseCIDR(t, "127.0.0.1/32"), Status: pgtype.Null}, result: pgtype.Inet{IPNet: mustParseCIDR(t, "127.0.0.1/32"), Status: pgtype.Null}}, - {source: mustParseCIDR(t, "127.0.0.1/32"), result: pgtype.Inet{IPNet: mustParseCIDR(t, "127.0.0.1/32"), Status: pgtype.Present}}, - {source: mustParseCIDR(t, "127.0.0.1/32").IP, result: pgtype.Inet{IPNet: mustParseCIDR(t, "127.0.0.1/32"), Status: pgtype.Present}}, - {source: "127.0.0.1/32", result: pgtype.Inet{IPNet: mustParseCIDR(t, "127.0.0.1/32"), Status: pgtype.Present}}, + {source: pgtype.Inet{IPNet: mustParseCidr(t, "127.0.0.1/32"), Status: pgtype.Null}, result: pgtype.Inet{IPNet: mustParseCidr(t, "127.0.0.1/32"), Status: pgtype.Null}}, + {source: mustParseCidr(t, "127.0.0.1/32"), result: pgtype.Inet{IPNet: mustParseCidr(t, "127.0.0.1/32"), Status: pgtype.Present}}, + {source: mustParseCidr(t, "127.0.0.1/32").IP, result: pgtype.Inet{IPNet: mustParseCidr(t, "127.0.0.1/32"), Status: pgtype.Present}}, + {source: "127.0.0.1/32", result: pgtype.Inet{IPNet: mustParseCidr(t, "127.0.0.1/32"), Status: pgtype.Present}}, } for i, tt := range successfulTests { @@ -61,8 +61,8 @@ func TestInetAssignTo(t *testing.T) { dst interface{} expected interface{} }{ - {src: pgtype.Inet{IPNet: mustParseCIDR(t, "127.0.0.1/32"), Status: pgtype.Present}, dst: &ipnet, expected: *mustParseCIDR(t, "127.0.0.1/32")}, - {src: pgtype.Inet{IPNet: mustParseCIDR(t, "127.0.0.1/32"), Status: pgtype.Present}, dst: &ip, expected: mustParseCIDR(t, "127.0.0.1/32").IP}, + {src: pgtype.Inet{IPNet: mustParseCidr(t, "127.0.0.1/32"), Status: pgtype.Present}, dst: &ipnet, expected: *mustParseCidr(t, "127.0.0.1/32")}, + {src: pgtype.Inet{IPNet: mustParseCidr(t, "127.0.0.1/32"), Status: pgtype.Present}, dst: &ip, expected: mustParseCidr(t, "127.0.0.1/32").IP}, {src: pgtype.Inet{Status: pgtype.Null}, dst: &pipnet, expected: ((*net.IPNet)(nil))}, {src: pgtype.Inet{Status: pgtype.Null}, dst: &pip, expected: ((*net.IP)(nil))}, } @@ -83,8 +83,8 @@ func TestInetAssignTo(t *testing.T) { dst interface{} expected interface{} }{ - {src: pgtype.Inet{IPNet: mustParseCIDR(t, "127.0.0.1/32"), Status: pgtype.Present}, dst: &pipnet, expected: *mustParseCIDR(t, "127.0.0.1/32")}, - {src: pgtype.Inet{IPNet: mustParseCIDR(t, "127.0.0.1/32"), Status: pgtype.Present}, dst: &pip, expected: mustParseCIDR(t, "127.0.0.1/32").IP}, + {src: pgtype.Inet{IPNet: mustParseCidr(t, "127.0.0.1/32"), Status: pgtype.Present}, dst: &pipnet, expected: *mustParseCidr(t, "127.0.0.1/32")}, + {src: pgtype.Inet{IPNet: mustParseCidr(t, "127.0.0.1/32"), Status: pgtype.Present}, dst: &pip, expected: mustParseCidr(t, "127.0.0.1/32").IP}, } for i, tt := range pointerAllocTests { @@ -102,7 +102,7 @@ func TestInetAssignTo(t *testing.T) { src pgtype.Inet dst interface{} }{ - {src: pgtype.Inet{IPNet: mustParseCIDR(t, "192.168.0.0/16"), Status: pgtype.Present}, dst: &ip}, + {src: pgtype.Inet{IPNet: mustParseCidr(t, "192.168.0.0/16"), Status: pgtype.Present}, dst: &ip}, {src: pgtype.Inet{Status: pgtype.Null}, dst: &ipnet}, } diff --git a/pgtype/int2_array.go b/pgtype/int2_array.go index 37ee9926..d8268c0a 100644 --- a/pgtype/int2_array.go +++ b/pgtype/int2_array.go @@ -260,10 +260,10 @@ func (src *Int2Array) EncodeText(w io.Writer) (bool, error) { } func (src *Int2Array) EncodeBinary(w io.Writer) (bool, error) { - return src.encodeBinary(w, Int2OID) + return src.encodeBinary(w, Int2Oid) } -func (src *Int2Array) encodeBinary(w io.Writer, elementOID int32) (bool, error) { +func (src *Int2Array) encodeBinary(w io.Writer, elementOid int32) (bool, error) { switch src.Status { case Null: return true, nil @@ -272,7 +272,7 @@ func (src *Int2Array) encodeBinary(w io.Writer, elementOID int32) (bool, error) } arrayHeader := ArrayHeader{ - ElementOID: elementOID, + ElementOid: elementOid, Dimensions: src.Dimensions, } diff --git a/pgtype/int4_array.go b/pgtype/int4_array.go index f6f62e4b..dcdb50c1 100644 --- a/pgtype/int4_array.go +++ b/pgtype/int4_array.go @@ -260,10 +260,10 @@ func (src *Int4Array) EncodeText(w io.Writer) (bool, error) { } func (src *Int4Array) EncodeBinary(w io.Writer) (bool, error) { - return src.encodeBinary(w, Int4OID) + return src.encodeBinary(w, Int4Oid) } -func (src *Int4Array) encodeBinary(w io.Writer, elementOID int32) (bool, error) { +func (src *Int4Array) encodeBinary(w io.Writer, elementOid int32) (bool, error) { switch src.Status { case Null: return true, nil @@ -272,7 +272,7 @@ func (src *Int4Array) encodeBinary(w io.Writer, elementOID int32) (bool, error) } arrayHeader := ArrayHeader{ - ElementOID: elementOID, + ElementOid: elementOid, Dimensions: src.Dimensions, } diff --git a/pgtype/int8_array.go b/pgtype/int8_array.go index 92d8ec46..ed82f079 100644 --- a/pgtype/int8_array.go +++ b/pgtype/int8_array.go @@ -260,10 +260,10 @@ func (src *Int8Array) EncodeText(w io.Writer) (bool, error) { } func (src *Int8Array) EncodeBinary(w io.Writer) (bool, error) { - return src.encodeBinary(w, Int8OID) + return src.encodeBinary(w, Int8Oid) } -func (src *Int8Array) encodeBinary(w io.Writer, elementOID int32) (bool, error) { +func (src *Int8Array) encodeBinary(w io.Writer, elementOid int32) (bool, error) { switch src.Status { case Null: return true, nil @@ -272,7 +272,7 @@ func (src *Int8Array) encodeBinary(w io.Writer, elementOID int32) (bool, error) } arrayHeader := ArrayHeader{ - ElementOID: elementOID, + ElementOid: elementOid, Dimensions: src.Dimensions, } diff --git a/pgtype/oid.go b/pgtype/oid.go index e1bee4cf..c77f3f10 100644 --- a/pgtype/oid.go +++ b/pgtype/oid.go @@ -4,38 +4,38 @@ import ( "io" ) -// OID (Object Identifier Type) is, according to +// Oid (Object Identifier Type) is, according to // https://www.postgresql.org/docs/current/static/datatype-oid.html, used // internally by PostgreSQL as a primary key for various system tables. It is // currently implemented as an unsigned four-byte integer. Its definition can be // found in src/include/postgres_ext.h in the PostgreSQL sources. -type OID pguint32 +type Oid pguint32 -// ConvertFrom converts from src to dst. Note that as OID is not a general +// ConvertFrom converts from src to dst. Note that as Oid is not a general // number type ConvertFrom does not do automatic type conversion as other number // types do. -func (dst *OID) ConvertFrom(src interface{}) error { +func (dst *Oid) ConvertFrom(src interface{}) error { return (*pguint32)(dst).ConvertFrom(src) } -// AssignTo assigns from src to dst. Note that as OID is not a general number +// AssignTo assigns from src to dst. Note that as Oid is not a general number // type AssignTo does not do automatic type conversion as other number types do. -func (src *OID) AssignTo(dst interface{}) error { +func (src *Oid) AssignTo(dst interface{}) error { return (*pguint32)(src).AssignTo(dst) } -func (dst *OID) DecodeText(src []byte) error { +func (dst *Oid) DecodeText(src []byte) error { return (*pguint32)(dst).DecodeText(src) } -func (dst *OID) DecodeBinary(src []byte) error { +func (dst *Oid) DecodeBinary(src []byte) error { return (*pguint32)(dst).DecodeBinary(src) } -func (src OID) EncodeText(w io.Writer) (bool, error) { +func (src Oid) EncodeText(w io.Writer) (bool, error) { return (pguint32)(src).EncodeText(w) } -func (src OID) EncodeBinary(w io.Writer) (bool, error) { +func (src Oid) EncodeBinary(w io.Writer) (bool, error) { return (pguint32)(src).EncodeBinary(w) } diff --git a/pgtype/oid_test.go b/pgtype/oid_test.go index c8e0b2d6..bbab6699 100644 --- a/pgtype/oid_test.go +++ b/pgtype/oid_test.go @@ -7,23 +7,23 @@ import ( "github.com/jackc/pgx/pgtype" ) -func TestOIDTranscode(t *testing.T) { +func TestOidTranscode(t *testing.T) { testSuccessfulTranscode(t, "oid", []interface{}{ - pgtype.OID{Uint: 42, Status: pgtype.Present}, - pgtype.OID{Status: pgtype.Null}, + pgtype.Oid{Uint: 42, Status: pgtype.Present}, + pgtype.Oid{Status: pgtype.Null}, }) } -func TestOIDConvertFrom(t *testing.T) { +func TestOidConvertFrom(t *testing.T) { successfulTests := []struct { source interface{} - result pgtype.OID + result pgtype.Oid }{ - {source: uint32(1), result: pgtype.OID{Uint: 1, Status: pgtype.Present}}, + {source: uint32(1), result: pgtype.Oid{Uint: 1, Status: pgtype.Present}}, } for i, tt := range successfulTests { - var r pgtype.OID + var r pgtype.Oid err := r.ConvertFrom(tt.source) if err != nil { t.Errorf("%d: %v", i, err) @@ -35,17 +35,17 @@ func TestOIDConvertFrom(t *testing.T) { } } -func TestOIDAssignTo(t *testing.T) { +func TestOidAssignTo(t *testing.T) { var ui32 uint32 var pui32 *uint32 simpleTests := []struct { - src pgtype.OID + src pgtype.Oid dst interface{} expected interface{} }{ - {src: pgtype.OID{Uint: 42, Status: pgtype.Present}, dst: &ui32, expected: uint32(42)}, - {src: pgtype.OID{Status: pgtype.Null}, dst: &pui32, expected: ((*uint32)(nil))}, + {src: pgtype.Oid{Uint: 42, Status: pgtype.Present}, dst: &ui32, expected: uint32(42)}, + {src: pgtype.Oid{Status: pgtype.Null}, dst: &pui32, expected: ((*uint32)(nil))}, } for i, tt := range simpleTests { @@ -60,11 +60,11 @@ func TestOIDAssignTo(t *testing.T) { } pointerAllocTests := []struct { - src pgtype.OID + src pgtype.Oid dst interface{} expected interface{} }{ - {src: pgtype.OID{Uint: 42, Status: pgtype.Present}, dst: &pui32, expected: uint32(42)}, + {src: pgtype.Oid{Uint: 42, Status: pgtype.Present}, dst: &pui32, expected: uint32(42)}, } for i, tt := range pointerAllocTests { @@ -79,10 +79,10 @@ func TestOIDAssignTo(t *testing.T) { } errorTests := []struct { - src pgtype.OID + src pgtype.Oid dst interface{} }{ - {src: pgtype.OID{Status: pgtype.Null}, dst: &ui32}, + {src: pgtype.Oid{Status: pgtype.Null}, dst: &ui32}, } for i, tt := range errorTests { diff --git a/pgtype/pgtype.go b/pgtype/pgtype.go index 8c67c630..cbcd6bd5 100644 --- a/pgtype/pgtype.go +++ b/pgtype/pgtype.go @@ -7,47 +7,47 @@ import ( // PostgreSQL oids for common types const ( - BoolOID = 16 - ByteaOID = 17 - CharOID = 18 - NameOID = 19 - Int8OID = 20 - Int2OID = 21 - Int4OID = 23 - TextOID = 25 - OIDOID = 26 - TIDOID = 27 - XIDOID = 28 - CIDOID = 29 - JSONOID = 114 - CidrOID = 650 - CidrArrayOID = 651 - Float4OID = 700 - Float8OID = 701 - UnknownOID = 705 - InetOID = 869 - BoolArrayOID = 1000 - Int2ArrayOID = 1005 - Int4ArrayOID = 1007 - TextArrayOID = 1009 - ByteaArrayOID = 1001 - VarcharArrayOID = 1015 - Int8ArrayOID = 1016 - Float4ArrayOID = 1021 - Float8ArrayOID = 1022 - ACLItemOID = 1033 - ACLItemArrayOID = 1034 - InetArrayOID = 1041 - VarcharOID = 1043 - DateOID = 1082 - TimestampOID = 1114 - TimestampArrayOID = 1115 - DateArrayOID = 1182 - TimestamptzOID = 1184 - TimestamptzArrayOID = 1185 - RecordOID = 2249 - UUIDOID = 2950 - JSONBOID = 3802 + BoolOid = 16 + ByteaOid = 17 + CharOid = 18 + NameOid = 19 + Int8Oid = 20 + Int2Oid = 21 + Int4Oid = 23 + TextOid = 25 + OidOid = 26 + TidOid = 27 + XidOid = 28 + CidOid = 29 + JsonOid = 114 + CidrOid = 650 + CidrArrayOid = 651 + Float4Oid = 700 + Float8Oid = 701 + UnknownOid = 705 + InetOid = 869 + BoolArrayOid = 1000 + Int2ArrayOid = 1005 + Int4ArrayOid = 1007 + TextArrayOid = 1009 + ByteaArrayOid = 1001 + VarcharArrayOid = 1015 + Int8ArrayOid = 1016 + Float4ArrayOid = 1021 + Float8ArrayOid = 1022 + AclitemOid = 1033 + AclitemArrayOid = 1034 + InetArrayOid = 1041 + VarcharOid = 1043 + DateOid = 1082 + TimestampOid = 1114 + TimestampArrayOid = 1115 + DateArrayOid = 1182 + TimestamptzOid = 1184 + TimestamptzArrayOid = 1185 + RecordOid = 2249 + UuidOid = 2950 + JsonbOid = 3802 ) type Status byte diff --git a/pgtype/pgtype_test.go b/pgtype/pgtype_test.go index 07a40160..f9b6f56d 100644 --- a/pgtype/pgtype_test.go +++ b/pgtype/pgtype_test.go @@ -47,7 +47,7 @@ func mustClose(t testing.TB, conn interface { } } -func mustParseCIDR(t testing.TB, s string) *net.IPNet { +func mustParseCidr(t testing.TB, s string) *net.IPNet { _, ipnet, err := net.ParseCIDR(s) if err != nil { t.Fatal(err) diff --git a/pgtype/pguint32.go b/pgtype/pguint32.go index df9e0d36..c636e1c4 100644 --- a/pgtype/pguint32.go +++ b/pgtype/pguint32.go @@ -10,7 +10,7 @@ import ( ) // pguint32 is the core type that is used to implement PostgreSQL types such as -// CID and XID. +// Cid and Xid. type pguint32 struct { Uint uint32 Status Status diff --git a/pgtype/text_array.go b/pgtype/text_array.go index 182e76f5..06e3c0df 100644 --- a/pgtype/text_array.go +++ b/pgtype/text_array.go @@ -229,10 +229,10 @@ func (src *TextArray) EncodeText(w io.Writer) (bool, error) { } func (src *TextArray) EncodeBinary(w io.Writer) (bool, error) { - return src.encodeBinary(w, TextOID) + return src.encodeBinary(w, TextOid) } -func (src *TextArray) encodeBinary(w io.Writer, elementOID int32) (bool, error) { +func (src *TextArray) encodeBinary(w io.Writer, elementOid int32) (bool, error) { switch src.Status { case Null: return true, nil @@ -241,7 +241,7 @@ func (src *TextArray) encodeBinary(w io.Writer, elementOID int32) (bool, error) } arrayHeader := ArrayHeader{ - ElementOID: elementOID, + ElementOid: elementOid, Dimensions: src.Dimensions, } diff --git a/pgtype/tid.go b/pgtype/tid.go index 804cced2..b67892ff 100644 --- a/pgtype/tid.go +++ b/pgtype/tid.go @@ -10,7 +10,7 @@ import ( "github.com/jackc/pgx/pgio" ) -// TID is PostgreSQL's Tuple Identifier type. +// Tid is PostgreSQL's Tuple Identifier type. // // When one does // @@ -21,15 +21,15 @@ import ( // 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. -type TID struct { +type Tid struct { BlockNumber uint32 OffsetNumber uint16 Status Status } -func (dst *TID) DecodeText(src []byte) error { +func (dst *Tid) DecodeText(src []byte) error { if src == nil { - *dst = TID{Status: Null} + *dst = Tid{Status: Null} return nil } @@ -52,13 +52,13 @@ func (dst *TID) DecodeText(src []byte) error { return err } - *dst = TID{BlockNumber: uint32(blockNumber), OffsetNumber: uint16(offsetNumber), Status: Present} + *dst = Tid{BlockNumber: uint32(blockNumber), OffsetNumber: uint16(offsetNumber), Status: Present} return nil } -func (dst *TID) DecodeBinary(src []byte) error { +func (dst *Tid) DecodeBinary(src []byte) error { if src == nil { - *dst = TID{Status: Null} + *dst = Tid{Status: Null} return nil } @@ -66,7 +66,7 @@ func (dst *TID) DecodeBinary(src []byte) error { return fmt.Errorf("invalid length for tid: %v", len(src)) } - *dst = TID{ + *dst = Tid{ BlockNumber: binary.BigEndian.Uint32(src), OffsetNumber: binary.BigEndian.Uint16(src[4:]), Status: Present, @@ -74,7 +74,7 @@ func (dst *TID) DecodeBinary(src []byte) error { return nil } -func (src TID) EncodeText(w io.Writer) (bool, error) { +func (src Tid) EncodeText(w io.Writer) (bool, error) { switch src.Status { case Null: return true, nil @@ -86,7 +86,7 @@ func (src TID) EncodeText(w io.Writer) (bool, error) { return false, err } -func (src TID) EncodeBinary(w io.Writer) (bool, error) { +func (src Tid) EncodeBinary(w io.Writer) (bool, error) { switch src.Status { case Null: return true, nil diff --git a/pgtype/tid_test.go b/pgtype/tid_test.go index a5aab8a3..56595ef4 100644 --- a/pgtype/tid_test.go +++ b/pgtype/tid_test.go @@ -6,10 +6,10 @@ import ( "github.com/jackc/pgx/pgtype" ) -func TestTIDTranscode(t *testing.T) { +func TestTidTranscode(t *testing.T) { testSuccessfulTranscode(t, "tid", []interface{}{ - pgtype.TID{BlockNumber: 42, OffsetNumber: 43, Status: pgtype.Present}, - pgtype.TID{BlockNumber: 4294967295, OffsetNumber: 65535, Status: pgtype.Present}, - pgtype.TID{Status: pgtype.Null}, + pgtype.Tid{BlockNumber: 42, OffsetNumber: 43, Status: pgtype.Present}, + pgtype.Tid{BlockNumber: 4294967295, OffsetNumber: 65535, Status: pgtype.Present}, + pgtype.Tid{Status: pgtype.Null}, }) } diff --git a/pgtype/timestamp_array.go b/pgtype/timestamp_array.go index b0fb25fa..1ea30ba4 100644 --- a/pgtype/timestamp_array.go +++ b/pgtype/timestamp_array.go @@ -230,10 +230,10 @@ func (src *TimestampArray) EncodeText(w io.Writer) (bool, error) { } func (src *TimestampArray) EncodeBinary(w io.Writer) (bool, error) { - return src.encodeBinary(w, TimestampOID) + return src.encodeBinary(w, TimestampOid) } -func (src *TimestampArray) encodeBinary(w io.Writer, elementOID int32) (bool, error) { +func (src *TimestampArray) encodeBinary(w io.Writer, elementOid int32) (bool, error) { switch src.Status { case Null: return true, nil @@ -242,7 +242,7 @@ func (src *TimestampArray) encodeBinary(w io.Writer, elementOID int32) (bool, er } arrayHeader := ArrayHeader{ - ElementOID: elementOID, + ElementOid: elementOid, Dimensions: src.Dimensions, } diff --git a/pgtype/timestamptz_array.go b/pgtype/timestamptz_array.go index 25374717..fc3ce08c 100644 --- a/pgtype/timestamptz_array.go +++ b/pgtype/timestamptz_array.go @@ -230,10 +230,10 @@ func (src *TimestamptzArray) EncodeText(w io.Writer) (bool, error) { } func (src *TimestamptzArray) EncodeBinary(w io.Writer) (bool, error) { - return src.encodeBinary(w, TimestamptzOID) + return src.encodeBinary(w, TimestamptzOid) } -func (src *TimestamptzArray) encodeBinary(w io.Writer, elementOID int32) (bool, error) { +func (src *TimestamptzArray) encodeBinary(w io.Writer, elementOid int32) (bool, error) { switch src.Status { case Null: return true, nil @@ -242,7 +242,7 @@ func (src *TimestamptzArray) encodeBinary(w io.Writer, elementOID int32) (bool, } arrayHeader := ArrayHeader{ - ElementOID: elementOID, + ElementOid: elementOid, Dimensions: src.Dimensions, } diff --git a/pgtype/typed_array.go.erb b/pgtype/typed_array.go.erb index f9dba308..98c8d845 100644 --- a/pgtype/typed_array.go.erb +++ b/pgtype/typed_array.go.erb @@ -231,7 +231,7 @@ func (src *<%= pgtype_array_type %>) EncodeBinary(w io.Writer) (bool, error) { return src.encodeBinary(w, <%= element_oid %>) } -func (src *<%= pgtype_array_type %>) encodeBinary(w io.Writer, elementOID int32) (bool, error) { +func (src *<%= pgtype_array_type %>) encodeBinary(w io.Writer, elementOid int32) (bool, error) { switch src.Status { case Null: return true, nil @@ -240,7 +240,7 @@ func (src *<%= pgtype_array_type %>) encodeBinary(w io.Writer, elementOID int32) } arrayHeader := ArrayHeader{ - ElementOID: elementOID, + ElementOid: elementOid, Dimensions: src.Dimensions, } diff --git a/pgtype/typed_array_gen.sh b/pgtype/typed_array_gen.sh index 32c298cc..41c1313f 100644 --- a/pgtype/typed_array_gen.sh +++ b/pgtype/typed_array_gen.sh @@ -1,13 +1,13 @@ -erb pgtype_array_type=Int2Array pgtype_element_type=Int2 go_array_types=[]int16,[]uint16 element_oid=Int2OID text_null=NULL typed_array.go.erb > int2_array.go -erb pgtype_array_type=Int4Array pgtype_element_type=Int4 go_array_types=[]int32,[]uint32 element_oid=Int4OID text_null=NULL typed_array.go.erb > int4_array.go -erb pgtype_array_type=Int8Array pgtype_element_type=Int8 go_array_types=[]int64,[]uint64 element_oid=Int8OID text_null=NULL typed_array.go.erb > int8_array.go -erb pgtype_array_type=BoolArray pgtype_element_type=Bool go_array_types=[]bool element_oid=BoolOID text_null=NULL typed_array.go.erb > bool_array.go -erb pgtype_array_type=DateArray pgtype_element_type=Date go_array_types=[]time.Time element_oid=DateOID text_null=NULL typed_array.go.erb > date_array.go -erb pgtype_array_type=TimestamptzArray pgtype_element_type=Timestamptz go_array_types=[]time.Time element_oid=TimestamptzOID text_null=NULL typed_array.go.erb > timestamptz_array.go -erb pgtype_array_type=TimestampArray pgtype_element_type=Timestamp go_array_types=[]time.Time element_oid=TimestampOID text_null=NULL typed_array.go.erb > timestamp_array.go -erb pgtype_array_type=Float4Array pgtype_element_type=Float4 go_array_types=[]float32 element_oid=Float4OID text_null=NULL typed_array.go.erb > float4_array.go -erb pgtype_array_type=Float8Array pgtype_element_type=Float8 go_array_types=[]float64 element_oid=Float8OID text_null=NULL typed_array.go.erb > float8_array.go -erb pgtype_array_type=InetArray pgtype_element_type=Inet go_array_types=[]*net.IPNet,[]net.IP element_oid=InetOID text_null=NULL typed_array.go.erb > inet_array.go -erb pgtype_array_type=TextArray pgtype_element_type=Text go_array_types=[]string element_oid=TextOID text_null='"NULL"' typed_array.go.erb > text_array.go -erb pgtype_array_type=ByteaArray pgtype_element_type=Bytea go_array_types=[][]byte element_oid=ByteaOID text_null=NULL typed_array.go.erb > bytea_array.go -erb pgtype_array_type=ACLItemArray pgtype_element_type=ACLItem go_array_types=[]string element_oid=ACLItemOID text_null=NULL typed_array.go.erb > aclitem_array.go +erb pgtype_array_type=Int2Array pgtype_element_type=Int2 go_array_types=[]int16,[]uint16 element_oid=Int2Oid text_null=NULL typed_array.go.erb > int2_array.go +erb pgtype_array_type=Int4Array pgtype_element_type=Int4 go_array_types=[]int32,[]uint32 element_oid=Int4Oid text_null=NULL typed_array.go.erb > int4_array.go +erb pgtype_array_type=Int8Array pgtype_element_type=Int8 go_array_types=[]int64,[]uint64 element_oid=Int8Oid text_null=NULL typed_array.go.erb > int8_array.go +erb pgtype_array_type=BoolArray pgtype_element_type=Bool go_array_types=[]bool element_oid=BoolOid text_null=NULL typed_array.go.erb > bool_array.go +erb pgtype_array_type=DateArray pgtype_element_type=Date go_array_types=[]time.Time element_oid=DateOid text_null=NULL typed_array.go.erb > date_array.go +erb pgtype_array_type=TimestamptzArray pgtype_element_type=Timestamptz go_array_types=[]time.Time element_oid=TimestamptzOid text_null=NULL typed_array.go.erb > timestamptz_array.go +erb pgtype_array_type=TimestampArray pgtype_element_type=Timestamp go_array_types=[]time.Time element_oid=TimestampOid text_null=NULL typed_array.go.erb > timestamp_array.go +erb pgtype_array_type=Float4Array pgtype_element_type=Float4 go_array_types=[]float32 element_oid=Float4Oid text_null=NULL typed_array.go.erb > float4_array.go +erb pgtype_array_type=Float8Array pgtype_element_type=Float8 go_array_types=[]float64 element_oid=Float8Oid text_null=NULL typed_array.go.erb > float8_array.go +erb pgtype_array_type=InetArray pgtype_element_type=Inet go_array_types=[]*net.IPNet,[]net.IP element_oid=InetOid text_null=NULL typed_array.go.erb > inet_array.go +erb pgtype_array_type=TextArray pgtype_element_type=Text go_array_types=[]string element_oid=TextOid text_null='"NULL"' typed_array.go.erb > text_array.go +erb pgtype_array_type=ByteaArray pgtype_element_type=Bytea go_array_types=[][]byte element_oid=ByteaOid text_null=NULL typed_array.go.erb > bytea_array.go +erb pgtype_array_type=AclitemArray pgtype_element_type=Aclitem go_array_types=[]string element_oid=AclitemOid text_null=NULL typed_array.go.erb > aclitem_array.go diff --git a/pgtype/varchar_array.go b/pgtype/varchar_array.go index 9c8829d0..b9d87b7f 100644 --- a/pgtype/varchar_array.go +++ b/pgtype/varchar_array.go @@ -27,5 +27,5 @@ func (src *VarcharArray) EncodeText(w io.Writer) (bool, error) { } func (src *VarcharArray) EncodeBinary(w io.Writer) (bool, error) { - return (*TextArray)(src).encodeBinary(w, VarcharOID) + return (*TextArray)(src).encodeBinary(w, VarcharOid) } diff --git a/pgtype/xid.go b/pgtype/xid.go index 6635b21e..7deaa4f0 100644 --- a/pgtype/xid.go +++ b/pgtype/xid.go @@ -4,7 +4,7 @@ import ( "io" ) -// XID is PostgreSQL's Transaction ID type. +// Xid is PostgreSQL's Transaction ID type. // // In later versions of PostgreSQL, it is the type used for the backend_xid // and backend_xmin columns of the pg_stat_activity system view. @@ -18,33 +18,33 @@ import ( // It is currently implemented as an unsigned four byte integer. // Its definition can be found in src/include/postgres_ext.h as TransactionId // in the PostgreSQL sources. -type XID pguint32 +type Xid pguint32 -// ConvertFrom converts from src to dst. Note that as XID is not a general +// ConvertFrom converts from src to dst. Note that as Xid is not a general // number type ConvertFrom does not do automatic type conversion as other number // types do. -func (dst *XID) ConvertFrom(src interface{}) error { +func (dst *Xid) ConvertFrom(src interface{}) error { return (*pguint32)(dst).ConvertFrom(src) } -// AssignTo assigns from src to dst. Note that as XID is not a general number +// AssignTo assigns from src to dst. Note that as Xid is not a general number // type AssignTo does not do automatic type conversion as other number types do. -func (src *XID) AssignTo(dst interface{}) error { +func (src *Xid) AssignTo(dst interface{}) error { return (*pguint32)(src).AssignTo(dst) } -func (dst *XID) DecodeText(src []byte) error { +func (dst *Xid) DecodeText(src []byte) error { return (*pguint32)(dst).DecodeText(src) } -func (dst *XID) DecodeBinary(src []byte) error { +func (dst *Xid) DecodeBinary(src []byte) error { return (*pguint32)(dst).DecodeBinary(src) } -func (src XID) EncodeText(w io.Writer) (bool, error) { +func (src Xid) EncodeText(w io.Writer) (bool, error) { return (pguint32)(src).EncodeText(w) } -func (src XID) EncodeBinary(w io.Writer) (bool, error) { +func (src Xid) EncodeBinary(w io.Writer) (bool, error) { return (pguint32)(src).EncodeBinary(w) } diff --git a/pgtype/xid_test.go b/pgtype/xid_test.go index 664920bc..a5c5df51 100644 --- a/pgtype/xid_test.go +++ b/pgtype/xid_test.go @@ -7,23 +7,23 @@ import ( "github.com/jackc/pgx/pgtype" ) -func TestXIDTranscode(t *testing.T) { +func TestXidTranscode(t *testing.T) { testSuccessfulTranscode(t, "xid", []interface{}{ - pgtype.XID{Uint: 42, Status: pgtype.Present}, - pgtype.XID{Status: pgtype.Null}, + pgtype.Xid{Uint: 42, Status: pgtype.Present}, + pgtype.Xid{Status: pgtype.Null}, }) } -func TestXIDConvertFrom(t *testing.T) { +func TestXidConvertFrom(t *testing.T) { successfulTests := []struct { source interface{} - result pgtype.XID + result pgtype.Xid }{ - {source: uint32(1), result: pgtype.XID{Uint: 1, Status: pgtype.Present}}, + {source: uint32(1), result: pgtype.Xid{Uint: 1, Status: pgtype.Present}}, } for i, tt := range successfulTests { - var r pgtype.XID + var r pgtype.Xid err := r.ConvertFrom(tt.source) if err != nil { t.Errorf("%d: %v", i, err) @@ -35,17 +35,17 @@ func TestXIDConvertFrom(t *testing.T) { } } -func TestXIDAssignTo(t *testing.T) { +func TestXidAssignTo(t *testing.T) { var ui32 uint32 var pui32 *uint32 simpleTests := []struct { - src pgtype.XID + src pgtype.Xid dst interface{} expected interface{} }{ - {src: pgtype.XID{Uint: 42, Status: pgtype.Present}, dst: &ui32, expected: uint32(42)}, - {src: pgtype.XID{Status: pgtype.Null}, dst: &pui32, expected: ((*uint32)(nil))}, + {src: pgtype.Xid{Uint: 42, Status: pgtype.Present}, dst: &ui32, expected: uint32(42)}, + {src: pgtype.Xid{Status: pgtype.Null}, dst: &pui32, expected: ((*uint32)(nil))}, } for i, tt := range simpleTests { @@ -60,11 +60,11 @@ func TestXIDAssignTo(t *testing.T) { } pointerAllocTests := []struct { - src pgtype.XID + src pgtype.Xid dst interface{} expected interface{} }{ - {src: pgtype.XID{Uint: 42, Status: pgtype.Present}, dst: &pui32, expected: uint32(42)}, + {src: pgtype.Xid{Uint: 42, Status: pgtype.Present}, dst: &pui32, expected: uint32(42)}, } for i, tt := range pointerAllocTests { @@ -79,10 +79,10 @@ func TestXIDAssignTo(t *testing.T) { } errorTests := []struct { - src pgtype.XID + src pgtype.Xid dst interface{} }{ - {src: pgtype.XID{Status: pgtype.Null}, dst: &ui32}, + {src: pgtype.Xid{Status: pgtype.Null}, dst: &ui32}, } for i, tt := range errorTests { diff --git a/query.go b/query.go index 5730f1c6..2a5d88fc 100644 --- a/query.go +++ b/query.go @@ -202,7 +202,7 @@ func (rows *Rows) Scan(dest ...interface{}) (err error) { if b, ok := d.(*[]byte); ok { // If it actually is a bytea then pass it through decodeBytea (so it can be decoded if it is in text format) // Otherwise read the bytes directly regardless of what the actual type is. - if vr.Type().DataType == ByteaOID { + if vr.Type().DataType == ByteaOid { *b = decodeBytea(vr) } else { if vr.Len() != -1 { @@ -235,25 +235,25 @@ func (rows *Rows) Scan(dest ...interface{}) (err error) { var val interface{} if 0 <= vr.Len() { switch vr.Type().DataType { - case BoolOID: + case BoolOid: val = decodeBool(vr) - case Int8OID: + case Int8Oid: val = int64(decodeInt8(vr)) - case Int2OID: + case Int2Oid: val = int64(decodeInt2(vr)) - case Int4OID: + case Int4Oid: val = int64(decodeInt4(vr)) - case TextOID, VarcharOID: + case TextOid, VarcharOid: val = decodeText(vr) - case Float4OID: + case Float4Oid: val = float64(decodeFloat4(vr)) - case Float8OID: + case Float8Oid: val = decodeFloat8(vr) - case DateOID: + case DateOid: val = decodeDate(vr) - case TimestampOID: + case TimestampOid: val = decodeTimestamp(vr) - case TimestampTzOID: + case TimestampTzOid: val = decodeTimestampTz(vr) default: val = vr.ReadBytes(vr.Len()) @@ -263,14 +263,14 @@ func (rows *Rows) Scan(dest ...interface{}) (err error) { if err != nil { rows.Fatal(scanArgError{col: i, err: err}) } - } else if vr.Type().DataType == JSONOID { + } else if vr.Type().DataType == JsonOid { // Because the argument passed to decodeJSON will escape the heap. // This allows d to be stack allocated and only copied to the heap when // we actually are decoding JSON. This saves one memory allocation per // row. d2 := d decodeJSON(vr, &d2) - } else if vr.Type().DataType == JSONBOID { + } else if vr.Type().DataType == JsonbOid { // Same trick as above for getting stack allocation d2 := d decodeJSONB(vr, &d2) @@ -345,11 +345,11 @@ func (rows *Rows) Values() ([]interface{}, error) { // encoding so anything else should be treated as a string case TextFormatCode: switch vr.Type().DataType { - case JSONOID: + case JsonOid: var d interface{} decodeJSON(vr, &d) values = append(values, d) - case JSONBOID: + case JsonbOid: var d interface{} decodeJSONB(vr, &d) values = append(values, d) @@ -359,33 +359,33 @@ func (rows *Rows) Values() ([]interface{}, error) { case BinaryFormatCode: switch vr.Type().DataType { - case TextOID, VarcharOID: + case TextOid, VarcharOid: values = append(values, decodeText(vr)) - case BoolOID: + case BoolOid: values = append(values, decodeBool(vr)) - case ByteaOID: + case ByteaOid: values = append(values, decodeBytea(vr)) - case Int8OID: + case Int8Oid: values = append(values, decodeInt8(vr)) - case Int2OID: + case Int2Oid: values = append(values, decodeInt2(vr)) - case Int4OID: + case Int4Oid: values = append(values, decodeInt4(vr)) - case Float4OID: + case Float4Oid: values = append(values, decodeFloat4(vr)) - case Float8OID: + case Float8Oid: values = append(values, decodeFloat8(vr)) - case DateOID: + case DateOid: values = append(values, decodeDate(vr)) - case TimestampTzOID: + case TimestampTzOid: values = append(values, decodeTimestampTz(vr)) - case TimestampOID: + case TimestampOid: values = append(values, decodeTimestamp(vr)) - case JSONOID: + case JsonOid: var d interface{} decodeJSON(vr, &d) values = append(values, d) - case JSONBOID: + case JsonbOid: var d interface{} decodeJSONB(vr, &d) values = append(values, d) @@ -432,33 +432,33 @@ func (rows *Rows) ValuesForStdlib() ([]interface{}, error) { values = append(values, vr.ReadString(vr.Len())) case BinaryFormatCode: switch vr.Type().DataType { - case TextOID, VarcharOID: + case TextOid, VarcharOid: values = append(values, decodeText(vr)) - case BoolOID: + case BoolOid: values = append(values, decodeBool(vr)) - case ByteaOID: + case ByteaOid: values = append(values, decodeBytea(vr)) - case Int8OID: + case Int8Oid: values = append(values, decodeInt8(vr)) - case Int2OID: + case Int2Oid: values = append(values, decodeInt2(vr)) - case Int4OID: + case Int4Oid: values = append(values, decodeInt4(vr)) - case Float4OID: + case Float4Oid: values = append(values, decodeFloat4(vr)) - case Float8OID: + case Float8Oid: values = append(values, decodeFloat8(vr)) - case DateOID: + case DateOid: values = append(values, decodeDate(vr)) - case TimestampTzOID: + case TimestampTzOid: values = append(values, decodeTimestampTz(vr)) - case TimestampOID: + case TimestampOid: values = append(values, decodeTimestamp(vr)) - case JSONOID: + case JsonOid: var d interface{} decodeJSON(vr, &d) values = append(values, d) - case JSONBOID: + case JsonbOid: var d interface{} decodeJSONB(vr, &d) values = append(values, d) diff --git a/query_test.go b/query_test.go index bbd7871e..46b012cf 100644 --- a/query_test.go +++ b/query_test.go @@ -197,7 +197,7 @@ func TestConnQueryReadWrongTypeError(t *testing.T) { t.Fatal("Expected Rows to have an error after an improper read but it didn't") } - if rows.Err().Error() != "can't scan into dest[0]: Can't convert OID 23 to time.Time" && !strings.Contains(rows.Err().Error(), "cannot assign") { + if rows.Err().Error() != "can't scan into dest[0]: Can't convert Oid 23 to time.Time" && !strings.Contains(rows.Err().Error(), "cannot assign") { t.Fatalf("Expected different Rows.Err(): %v", rows.Err()) } @@ -403,7 +403,7 @@ type coreEncoder struct{} func (n coreEncoder) FormatCode() int16 { return pgx.TextFormatCode } -func (n *coreEncoder) Encode(w *pgx.WriteBuf, oid pgx.OID) error { +func (n *coreEncoder) Encode(w *pgx.WriteBuf, oid pgx.Oid) error { w.WriteInt32(int32(2)) w.WriteBytes([]byte("42")) return nil @@ -438,7 +438,7 @@ func TestQueryRowCoreTypes(t *testing.T) { f64 float64 b bool t time.Time - oid pgx.OID + oid pgx.Oid } var actual, zero allTypes @@ -456,7 +456,7 @@ func TestQueryRowCoreTypes(t *testing.T) { {"select $1::timestamptz", []interface{}{time.Unix(123, 5000)}, []interface{}{&actual.t}, allTypes{t: time.Unix(123, 5000)}}, {"select $1::timestamp", []interface{}{time.Date(2010, 1, 2, 3, 4, 5, 0, time.UTC)}, []interface{}{&actual.t}, allTypes{t: time.Date(2010, 1, 2, 3, 4, 5, 0, time.UTC)}}, {"select $1::date", []interface{}{time.Date(1987, 1, 2, 0, 0, 0, 0, time.UTC)}, []interface{}{&actual.t}, allTypes{t: time.Date(1987, 1, 2, 0, 0, 0, 0, time.UTC)}}, - {"select $1::oid", []interface{}{pgx.OID(42)}, []interface{}{&actual.oid}, allTypes{oid: 42}}, + {"select $1::oid", []interface{}{pgx.Oid(42)}, []interface{}{&actual.oid}, allTypes{oid: 42}}, } for i, tt := range tests { diff --git a/stdlib/sql.go b/stdlib/sql.go index d138ae1e..07cca7e0 100644 --- a/stdlib/sql.go +++ b/stdlib/sql.go @@ -58,23 +58,23 @@ var openFromConnPoolCount int // oids that map to intrinsic database/sql types. These will be allowed to be // binary, anything else will be forced to text format -var databaseSqlOIDs map[pgx.OID]bool +var databaseSqlOids map[pgx.Oid]bool func init() { d := &Driver{} sql.Register("pgx", d) - databaseSqlOIDs = make(map[pgx.OID]bool) - databaseSqlOIDs[pgx.BoolOID] = true - databaseSqlOIDs[pgx.ByteaOID] = true - databaseSqlOIDs[pgx.Int2OID] = true - databaseSqlOIDs[pgx.Int4OID] = true - databaseSqlOIDs[pgx.Int8OID] = true - databaseSqlOIDs[pgx.Float4OID] = true - databaseSqlOIDs[pgx.Float8OID] = true - databaseSqlOIDs[pgx.DateOID] = true - databaseSqlOIDs[pgx.TimestampTzOID] = true - databaseSqlOIDs[pgx.TimestampOID] = true + databaseSqlOids = make(map[pgx.Oid]bool) + databaseSqlOids[pgx.BoolOid] = true + databaseSqlOids[pgx.ByteaOid] = true + databaseSqlOids[pgx.Int2Oid] = true + databaseSqlOids[pgx.Int4Oid] = true + databaseSqlOids[pgx.Int8Oid] = true + databaseSqlOids[pgx.Float4Oid] = true + databaseSqlOids[pgx.Float8Oid] = true + databaseSqlOids[pgx.DateOid] = true + databaseSqlOids[pgx.TimestampTzOid] = true + databaseSqlOids[pgx.TimestampOid] = true } type Driver struct { @@ -263,7 +263,7 @@ func (c *Conn) queryPreparedContext(ctx context.Context, name string, argsV []dr // (e.g. []int32) func restrictBinaryToDatabaseSqlTypes(ps *pgx.PreparedStatement) { for i, _ := range ps.FieldDescriptions { - intrinsic, _ := databaseSqlOIDs[ps.FieldDescriptions[i].DataType] + intrinsic, _ := databaseSqlOids[ps.FieldDescriptions[i].DataType] if !intrinsic { ps.FieldDescriptions[i].FormatCode = pgx.TextFormatCode } @@ -280,7 +280,7 @@ func (s *Stmt) Close() error { } func (s *Stmt) NumInput() int { - return len(s.ps.ParameterOIDs) + return len(s.ps.ParameterOids) } func (s *Stmt) Exec(argsV []driver.Value) (driver.Result, error) { diff --git a/v3.md b/v3.md index 68619d4d..2f1c353c 100644 --- a/v3.md +++ b/v3.md @@ -2,14 +2,8 @@ ## Changes -Rename Oid to OID in accordance with Go naming conventions. - -Rename Json(b) to JSON(B) in accordance with Go naming conventions. - Rename Pid to PID in accordance with Go naming conventions. -Rename Uuid to UUID in accordance with Go naming conventions. - Logger interface reduced to single Log method. Replace BeginIso with BeginEx. BeginEx adds support for read/write mode and deferrable mode. diff --git a/value_reader.go b/value_reader.go index 85932a7d..364581c9 100644 --- a/value_reader.go +++ b/value_reader.go @@ -116,8 +116,8 @@ func (r *ValueReader) ReadInt64() int64 { return r.mr.readInt64() } -func (r *ValueReader) ReadOID() OID { - return OID(r.ReadUint32()) +func (r *ValueReader) ReadOid() Oid { + return Oid(r.ReadUint32()) } // ReadString reads count bytes and returns as string diff --git a/values.go b/values.go index 72f836bb..778284a4 100644 --- a/values.go +++ b/values.go @@ -19,47 +19,47 @@ import ( // PostgreSQL oids for common types const ( - BoolOID = 16 - ByteaOID = 17 - CharOID = 18 - NameOID = 19 - Int8OID = 20 - Int2OID = 21 - Int4OID = 23 - TextOID = 25 - OIDOID = 26 - TIDOID = 27 - XIDOID = 28 - CIDOID = 29 - JSONOID = 114 - CidrOID = 650 - CidrArrayOID = 651 - Float4OID = 700 - Float8OID = 701 - UnknownOID = 705 - InetOID = 869 - BoolArrayOID = 1000 - Int2ArrayOID = 1005 - Int4ArrayOID = 1007 - TextArrayOID = 1009 - ByteaArrayOID = 1001 - VarcharArrayOID = 1015 - Int8ArrayOID = 1016 - Float4ArrayOID = 1021 - Float8ArrayOID = 1022 - ACLItemOID = 1033 - ACLItemArrayOID = 1034 - InetArrayOID = 1041 - VarcharOID = 1043 - DateOID = 1082 - TimestampOID = 1114 - TimestampArrayOID = 1115 - DateArrayOID = 1182 - TimestampTzOID = 1184 - TimestampTzArrayOID = 1185 - RecordOID = 2249 - UUIDOID = 2950 - JSONBOID = 3802 + BoolOid = 16 + ByteaOid = 17 + CharOid = 18 + NameOid = 19 + Int8Oid = 20 + Int2Oid = 21 + Int4Oid = 23 + TextOid = 25 + OidOid = 26 + TidOid = 27 + XidOid = 28 + CidOid = 29 + JsonOid = 114 + CidrOid = 650 + CidrArrayOid = 651 + Float4Oid = 700 + Float8Oid = 701 + UnknownOid = 705 + InetOid = 869 + BoolArrayOid = 1000 + Int2ArrayOid = 1005 + Int4ArrayOid = 1007 + TextArrayOid = 1009 + ByteaArrayOid = 1001 + VarcharArrayOid = 1015 + Int8ArrayOid = 1016 + Float4ArrayOid = 1021 + Float8ArrayOid = 1022 + AclitemOid = 1033 + AclitemArrayOid = 1034 + InetArrayOid = 1041 + VarcharOid = 1043 + DateOid = 1082 + TimestampOid = 1114 + TimestampArrayOid = 1115 + DateArrayOid = 1182 + TimestampTzOid = 1184 + TimestampTzArrayOid = 1185 + RecordOid = 2249 + UuidOid = 2950 + JsonbOid = 3802 ) // PostgreSQL format codes @@ -81,7 +81,7 @@ const minInt = -maxInt - 1 var DefaultTypeFormats map[string]int16 // internalNativeGoTypeFormats lists the encoding type for native Go types (not handled with Encoder interface) -var internalNativeGoTypeFormats map[OID]int16 +var internalNativeGoTypeFormats map[Oid]int16 func init() { DefaultTypeFormats = map[string]int16{ @@ -120,36 +120,36 @@ func init() { "xid": BinaryFormatCode, } - internalNativeGoTypeFormats = map[OID]int16{ - BoolArrayOID: BinaryFormatCode, - BoolOID: BinaryFormatCode, - ByteaArrayOID: BinaryFormatCode, - ByteaOID: BinaryFormatCode, - CidrArrayOID: BinaryFormatCode, - CidrOID: BinaryFormatCode, - DateOID: BinaryFormatCode, - Float4ArrayOID: BinaryFormatCode, - Float4OID: BinaryFormatCode, - Float8ArrayOID: BinaryFormatCode, - Float8OID: BinaryFormatCode, - InetArrayOID: BinaryFormatCode, - InetOID: BinaryFormatCode, - Int2ArrayOID: BinaryFormatCode, - Int2OID: BinaryFormatCode, - Int4ArrayOID: BinaryFormatCode, - Int4OID: BinaryFormatCode, - Int8ArrayOID: BinaryFormatCode, - Int8OID: BinaryFormatCode, - JSONBOID: BinaryFormatCode, - JSONOID: BinaryFormatCode, - OIDOID: BinaryFormatCode, - RecordOID: BinaryFormatCode, - TextArrayOID: BinaryFormatCode, - TimestampArrayOID: BinaryFormatCode, - TimestampOID: BinaryFormatCode, - TimestampTzArrayOID: BinaryFormatCode, - TimestampTzOID: BinaryFormatCode, - VarcharArrayOID: BinaryFormatCode, + internalNativeGoTypeFormats = map[Oid]int16{ + BoolArrayOid: BinaryFormatCode, + BoolOid: BinaryFormatCode, + ByteaArrayOid: BinaryFormatCode, + ByteaOid: BinaryFormatCode, + CidrArrayOid: BinaryFormatCode, + CidrOid: BinaryFormatCode, + DateOid: BinaryFormatCode, + Float4ArrayOid: BinaryFormatCode, + Float4Oid: BinaryFormatCode, + Float8ArrayOid: BinaryFormatCode, + Float8Oid: BinaryFormatCode, + InetArrayOid: BinaryFormatCode, + InetOid: BinaryFormatCode, + Int2ArrayOid: BinaryFormatCode, + Int2Oid: BinaryFormatCode, + Int4ArrayOid: BinaryFormatCode, + Int4Oid: BinaryFormatCode, + Int8ArrayOid: BinaryFormatCode, + Int8Oid: BinaryFormatCode, + JsonbOid: BinaryFormatCode, + JsonOid: BinaryFormatCode, + OidOid: BinaryFormatCode, + RecordOid: BinaryFormatCode, + TextArrayOid: BinaryFormatCode, + TimestampArrayOid: BinaryFormatCode, + TimestampOid: BinaryFormatCode, + TimestampTzArrayOid: BinaryFormatCode, + TimestampTzOid: BinaryFormatCode, + VarcharArrayOid: BinaryFormatCode, } } @@ -164,7 +164,7 @@ func (e SerializationError) Error() string { // server. To allow types to support pgx and database/sql.Scan this interface // has been deprecated in favor of PgxScanner. type Scanner interface { - // Scan MUST check r.Type().DataType (to check by OID) or + // Scan MUST check r.Type().DataType (to check by Oid) or // r.Type().DataTypeName (to check by name) to ensure that it is scanning an // expected column type. It also MUST check r.Type().FormatCode before // decoding. It should not assume that it was called on a data type or format @@ -176,7 +176,7 @@ type Scanner interface { // It is used exactly the same as the Scanner interface. It simply has renamed // the method. type PgxScanner interface { - // ScanPgx MUST check r.Type().DataType (to check by OID) or + // ScanPgx MUST check r.Type().DataType (to check by Oid) or // r.Type().DataTypeName (to check by name) to ensure that it is scanning an // expected column type. It also MUST check r.Type().FormatCode before // decoding. It should not assume that it was called on a data type or format @@ -196,7 +196,7 @@ type Encoder interface { // expected data size or format of the encoded data does not match. But if // the encoded data is a valid representation of the data type PostgreSQL // expects such as date and int4, incorrect data may be stored. - Encode(w *WriteBuf, oid OID) error + Encode(w *WriteBuf, oid Oid) error // FormatCode returns the format that the encoder writes the value. It must be // either pgx.TextFormatCode or pgx.BinaryFormatCode. @@ -214,8 +214,8 @@ type NullFloat32 struct { } func (n *NullFloat32) Scan(vr *ValueReader) error { - if vr.Type().DataType != Float4OID { - return SerializationError(fmt.Sprintf("NullFloat32.Scan cannot decode OID %d", vr.Type().DataType)) + if vr.Type().DataType != Float4Oid { + return SerializationError(fmt.Sprintf("NullFloat32.Scan cannot decode Oid %d", vr.Type().DataType)) } if vr.Len() == -1 { @@ -229,9 +229,9 @@ func (n *NullFloat32) Scan(vr *ValueReader) error { func (n NullFloat32) FormatCode() int16 { return BinaryFormatCode } -func (n NullFloat32) Encode(w *WriteBuf, oid OID) error { - if oid != Float4OID { - return SerializationError(fmt.Sprintf("NullFloat32.Encode cannot encode into OID %d", oid)) +func (n NullFloat32) Encode(w *WriteBuf, oid Oid) error { + if oid != Float4Oid { + return SerializationError(fmt.Sprintf("NullFloat32.Encode cannot encode into Oid %d", oid)) } if !n.Valid { @@ -253,8 +253,8 @@ type NullFloat64 struct { } func (n *NullFloat64) Scan(vr *ValueReader) error { - if vr.Type().DataType != Float8OID { - return SerializationError(fmt.Sprintf("NullFloat64.Scan cannot decode OID %d", vr.Type().DataType)) + if vr.Type().DataType != Float8Oid { + return SerializationError(fmt.Sprintf("NullFloat64.Scan cannot decode Oid %d", vr.Type().DataType)) } if vr.Len() == -1 { @@ -268,9 +268,9 @@ func (n *NullFloat64) Scan(vr *ValueReader) error { func (n NullFloat64) FormatCode() int16 { return BinaryFormatCode } -func (n NullFloat64) Encode(w *WriteBuf, oid OID) error { - if oid != Float8OID { - return SerializationError(fmt.Sprintf("NullFloat64.Encode cannot encode into OID %d", oid)) +func (n NullFloat64) Encode(w *WriteBuf, oid Oid) error { + if oid != Float8Oid { + return SerializationError(fmt.Sprintf("NullFloat64.Encode cannot encode into Oid %d", oid)) } if !n.Valid { @@ -306,7 +306,7 @@ func (n *NullString) Scan(vr *ValueReader) error { func (n NullString) FormatCode() int16 { return TextFormatCode } -func (s NullString) Encode(w *WriteBuf, oid OID) error { +func (s NullString) Encode(w *WriteBuf, oid Oid) error { if !s.Valid { w.WriteInt32(-1) return nil @@ -326,8 +326,8 @@ type NullInt16 struct { } func (n *NullInt16) Scan(vr *ValueReader) error { - if vr.Type().DataType != Int2OID { - return SerializationError(fmt.Sprintf("NullInt16.Scan cannot decode OID %d", vr.Type().DataType)) + if vr.Type().DataType != Int2Oid { + return SerializationError(fmt.Sprintf("NullInt16.Scan cannot decode Oid %d", vr.Type().DataType)) } if vr.Len() == -1 { @@ -341,9 +341,9 @@ func (n *NullInt16) Scan(vr *ValueReader) error { func (n NullInt16) FormatCode() int16 { return BinaryFormatCode } -func (n NullInt16) Encode(w *WriteBuf, oid OID) error { - if oid != Int2OID { - return SerializationError(fmt.Sprintf("NullInt16.Encode cannot encode into OID %d", oid)) +func (n NullInt16) Encode(w *WriteBuf, oid Oid) error { + if oid != Int2Oid { + return SerializationError(fmt.Sprintf("NullInt16.Encode cannot encode into Oid %d", oid)) } if !n.Valid { @@ -368,8 +368,8 @@ type NullInt32 struct { } func (n *NullInt32) Scan(vr *ValueReader) error { - if vr.Type().DataType != Int4OID { - return SerializationError(fmt.Sprintf("NullInt32.Scan cannot decode OID %d", vr.Type().DataType)) + if vr.Type().DataType != Int4Oid { + return SerializationError(fmt.Sprintf("NullInt32.Scan cannot decode Oid %d", vr.Type().DataType)) } if vr.Len() == -1 { @@ -383,9 +383,9 @@ func (n *NullInt32) Scan(vr *ValueReader) error { func (n NullInt32) FormatCode() int16 { return BinaryFormatCode } -func (n NullInt32) Encode(w *WriteBuf, oid OID) error { - if oid != Int4OID { - return SerializationError(fmt.Sprintf("NullInt32.Encode cannot encode into OID %d", oid)) +func (n NullInt32) Encode(w *WriteBuf, oid Oid) error { + if oid != Int4Oid { + return SerializationError(fmt.Sprintf("NullInt32.Encode cannot encode into Oid %d", oid)) } if !n.Valid { @@ -399,15 +399,15 @@ func (n NullInt32) Encode(w *WriteBuf, oid OID) error { return err } -// OID (Object Identifier Type) is, according to https://www.postgresql.org/docs/current/static/datatype-oid.html, +// Oid (Object Identifier Type) is, according to https://www.postgresql.org/docs/current/static/datatype-oid.html, // used internally by PostgreSQL as a primary key for various system tables. It is currently implemented // as an unsigned four-byte integer. Its definition can be found in src/include/postgres_ext.h -// in the PostgreSQL sources. OID cannot be NULL. To allow for NULL OIDs use pgtype.OID. -type OID uint32 +// in the PostgreSQL sources. Oid cannot be NULL. To allow for NULL Oids use pgtype.Oid. +type Oid uint32 -func (dst *OID) DecodeText(src []byte) error { +func (dst *Oid) DecodeText(src []byte) error { if src == nil { - return fmt.Errorf("cannot decode nil into OID") + return fmt.Errorf("cannot decode nil into Oid") } n, err := strconv.ParseUint(string(src), 10, 32) @@ -415,13 +415,13 @@ func (dst *OID) DecodeText(src []byte) error { return err } - *dst = OID(n) + *dst = Oid(n) return nil } -func (dst *OID) DecodeBinary(src []byte) error { +func (dst *Oid) DecodeBinary(src []byte) error { if src == nil { - return fmt.Errorf("cannot decode nil into OID") + return fmt.Errorf("cannot decode nil into Oid") } if len(src) != 4 { @@ -429,16 +429,16 @@ func (dst *OID) DecodeBinary(src []byte) error { } n := binary.BigEndian.Uint32(src) - *dst = OID(n) + *dst = Oid(n) return nil } -func (src OID) EncodeText(w io.Writer) (bool, error) { +func (src Oid) EncodeText(w io.Writer) (bool, error) { _, err := io.WriteString(w, strconv.FormatUint(uint64(src), 10)) return false, err } -func (src OID) EncodeBinary(w io.Writer) (bool, error) { +func (src Oid) EncodeBinary(w io.Writer) (bool, error) { _, err := pgio.WriteUint32(w, uint32(src)) return false, err } @@ -454,8 +454,8 @@ type NullInt64 struct { } func (n *NullInt64) Scan(vr *ValueReader) error { - if vr.Type().DataType != Int8OID { - return SerializationError(fmt.Sprintf("NullInt64.Scan cannot decode OID %d", vr.Type().DataType)) + if vr.Type().DataType != Int8Oid { + return SerializationError(fmt.Sprintf("NullInt64.Scan cannot decode Oid %d", vr.Type().DataType)) } if vr.Len() == -1 { @@ -469,9 +469,9 @@ func (n *NullInt64) Scan(vr *ValueReader) error { func (n NullInt64) FormatCode() int16 { return BinaryFormatCode } -func (n NullInt64) Encode(w *WriteBuf, oid OID) error { - if oid != Int8OID { - return SerializationError(fmt.Sprintf("NullInt64.Encode cannot encode into OID %d", oid)) +func (n NullInt64) Encode(w *WriteBuf, oid Oid) error { + if oid != Int8Oid { + return SerializationError(fmt.Sprintf("NullInt64.Encode cannot encode into Oid %d", oid)) } if !n.Valid { @@ -496,8 +496,8 @@ type NullBool struct { } func (n *NullBool) Scan(vr *ValueReader) error { - if vr.Type().DataType != BoolOID { - return SerializationError(fmt.Sprintf("NullBool.Scan cannot decode OID %d", vr.Type().DataType)) + if vr.Type().DataType != BoolOid { + return SerializationError(fmt.Sprintf("NullBool.Scan cannot decode Oid %d", vr.Type().DataType)) } if vr.Len() == -1 { @@ -511,9 +511,9 @@ func (n *NullBool) Scan(vr *ValueReader) error { func (n NullBool) FormatCode() int16 { return BinaryFormatCode } -func (n NullBool) Encode(w *WriteBuf, oid OID) error { - if oid != BoolOID { - return SerializationError(fmt.Sprintf("NullBool.Encode cannot encode into OID %d", oid)) +func (n NullBool) Encode(w *WriteBuf, oid Oid) error { + if oid != BoolOid { + return SerializationError(fmt.Sprintf("NullBool.Encode cannot encode into Oid %d", oid)) } if !n.Valid { @@ -540,8 +540,8 @@ type NullTime struct { func (n *NullTime) Scan(vr *ValueReader) error { oid := vr.Type().DataType - if oid != TimestampTzOID && oid != TimestampOID && oid != DateOID { - return SerializationError(fmt.Sprintf("NullTime.Scan cannot decode OID %d", vr.Type().DataType)) + if oid != TimestampTzOid && oid != TimestampOid && oid != DateOid { + return SerializationError(fmt.Sprintf("NullTime.Scan cannot decode Oid %d", vr.Type().DataType)) } if vr.Len() == -1 { @@ -551,11 +551,11 @@ func (n *NullTime) Scan(vr *ValueReader) error { n.Valid = true switch oid { - case TimestampTzOID: + case TimestampTzOid: n.Time = decodeTimestampTz(vr) - case TimestampOID: + case TimestampOid: n.Time = decodeTimestamp(vr) - case DateOID: + case DateOid: n.Time = decodeDate(vr) } @@ -564,9 +564,9 @@ func (n *NullTime) Scan(vr *ValueReader) error { func (n NullTime) FormatCode() int16 { return BinaryFormatCode } -func (n NullTime) Encode(w *WriteBuf, oid OID) error { - if oid != TimestampTzOID && oid != TimestampOID && oid != DateOID { - return SerializationError(fmt.Sprintf("NullTime.Encode cannot encode into OID %d", oid)) +func (n NullTime) Encode(w *WriteBuf, oid Oid) error { + if oid != TimestampTzOid && oid != TimestampOid && oid != DateOid { + return SerializationError(fmt.Sprintf("NullTime.Encode cannot encode into Oid %d", oid)) } if !n.Valid { @@ -616,7 +616,7 @@ func (h *Hstore) Scan(vr *ValueReader) error { func (h Hstore) FormatCode() int16 { return TextFormatCode } -func (h Hstore) Encode(w *WriteBuf, oid OID) error { +func (h Hstore) Encode(w *WriteBuf, oid Oid) error { var buf bytes.Buffer i := 0 @@ -682,7 +682,7 @@ func (h *NullHstore) Scan(vr *ValueReader) error { func (h NullHstore) FormatCode() int16 { return TextFormatCode } -func (h NullHstore) Encode(w *WriteBuf, oid OID) error { +func (h NullHstore) Encode(w *WriteBuf, oid Oid) error { var buf bytes.Buffer if !h.Valid { @@ -714,7 +714,7 @@ func (h NullHstore) Encode(w *WriteBuf, oid OID) error { // Encode encodes arg into wbuf as the type oid. This allows implementations // of the Encoder interface to delegate the actual work of encoding to the // built-in functionality. -func Encode(wbuf *WriteBuf, oid OID, arg interface{}) error { +func Encode(wbuf *WriteBuf, oid Oid, arg interface{}) error { if arg == nil { wbuf.WriteInt32(-1) return nil @@ -772,10 +772,10 @@ func Encode(wbuf *WriteBuf, oid OID, arg interface{}) error { return Encode(wbuf, oid, arg) } - if oid == JSONOID { + if oid == JsonOid { return encodeJSON(wbuf, oid, arg) } - if oid == JSONBOID { + if oid == JsonbOid { return encodeJSONB(wbuf, oid, arg) } @@ -890,7 +890,7 @@ func Decode(vr *ValueReader, d interface{}) error { } func decodeBool(vr *ValueReader) bool { - if vr.Type().DataType != BoolOID { + if vr.Type().DataType != BoolOid { vr.Fatal(ProtocolError(fmt.Sprintf("Cannot decode oid %v into bool", vr.Type().DataType))) return false } @@ -922,11 +922,11 @@ func decodeBool(vr *ValueReader) bool { func decodeInt(vr *ValueReader) int64 { switch vr.Type().DataType { - case Int2OID: + case Int2Oid: return int64(decodeInt2(vr)) - case Int4OID: + case Int4Oid: return int64(decodeInt4(vr)) - case Int8OID: + case Int8Oid: return int64(decodeInt8(vr)) } @@ -940,7 +940,7 @@ func decodeInt8(vr *ValueReader) int64 { return 0 } - if vr.Type().DataType != Int8OID { + if vr.Type().DataType != Int8Oid { vr.Fatal(ProtocolError(fmt.Sprintf("Cannot decode oid %v into int8", vr.Type().DataType))) return 0 } @@ -972,7 +972,7 @@ func decodeInt8(vr *ValueReader) int64 { func decodeInt2(vr *ValueReader) int16 { - if vr.Type().DataType != Int2OID { + if vr.Type().DataType != Int2Oid { vr.Fatal(ProtocolError(fmt.Sprintf("Cannot decode oid %v into int16", vr.Type().DataType))) return 0 } @@ -1008,7 +1008,7 @@ func decodeInt4(vr *ValueReader) int32 { return 0 } - if vr.Type().DataType != Int4OID { + if vr.Type().DataType != Int4Oid { vr.Fatal(ProtocolError(fmt.Sprintf("Cannot decode oid %v into int32", vr.Type().DataType))) return 0 } @@ -1044,7 +1044,7 @@ func decodeFloat4(vr *ValueReader) float32 { return 0 } - if vr.Type().DataType != Float4OID { + if vr.Type().DataType != Float4Oid { vr.Fatal(ProtocolError(fmt.Sprintf("Cannot decode oid %v into float32", vr.Type().DataType))) return 0 } @@ -1063,12 +1063,12 @@ func decodeFloat4(vr *ValueReader) float32 { return math.Float32frombits(uint32(i)) } -func encodeFloat32(w *WriteBuf, oid OID, value float32) error { +func encodeFloat32(w *WriteBuf, oid Oid, value float32) error { switch oid { - case Float4OID: + case Float4Oid: w.WriteInt32(4) w.WriteInt32(int32(math.Float32bits(value))) - case Float8OID: + case Float8Oid: w.WriteInt32(8) w.WriteInt64(int64(math.Float64bits(float64(value)))) default: @@ -1084,7 +1084,7 @@ func decodeFloat8(vr *ValueReader) float64 { return 0 } - if vr.Type().DataType != Float8OID { + if vr.Type().DataType != Float8Oid { vr.Fatal(ProtocolError(fmt.Sprintf("Cannot decode oid %v into float64", vr.Type().DataType))) return 0 } @@ -1103,9 +1103,9 @@ func decodeFloat8(vr *ValueReader) float64 { return math.Float64frombits(uint64(i)) } -func encodeFloat64(w *WriteBuf, oid OID, value float64) error { +func encodeFloat64(w *WriteBuf, oid Oid, value float64) error { switch oid { - case Float8OID: + case Float8Oid: w.WriteInt32(8) w.WriteInt64(int64(math.Float64bits(value))) default: @@ -1138,7 +1138,7 @@ func decodeTextAllowBinary(vr *ValueReader) string { return vr.ReadString(vr.Len()) } -func encodeString(w *WriteBuf, oid OID, value string) error { +func encodeString(w *WriteBuf, oid Oid, value string) error { w.WriteInt32(int32(len(value))) w.WriteBytes([]byte(value)) return nil @@ -1149,7 +1149,7 @@ func decodeBytea(vr *ValueReader) []byte { return nil } - if vr.Type().DataType != ByteaOID { + if vr.Type().DataType != ByteaOid { vr.Fatal(ProtocolError(fmt.Sprintf("Cannot decode oid %v into []byte", vr.Type().DataType))) return nil } @@ -1162,7 +1162,7 @@ func decodeBytea(vr *ValueReader) []byte { return vr.ReadBytes(vr.Len()) } -func encodeByteSlice(w *WriteBuf, oid OID, value []byte) error { +func encodeByteSlice(w *WriteBuf, oid Oid, value []byte) error { w.WriteInt32(int32(len(value))) w.WriteBytes(value) @@ -1174,7 +1174,7 @@ func decodeJSON(vr *ValueReader, d interface{}) error { return nil } - if vr.Type().DataType != JSONOID { + if vr.Type().DataType != JsonOid { vr.Fatal(ProtocolError(fmt.Sprintf("Cannot decode oid %v into json", vr.Type().DataType))) } @@ -1186,8 +1186,8 @@ func decodeJSON(vr *ValueReader, d interface{}) error { return err } -func encodeJSON(w *WriteBuf, oid OID, value interface{}) error { - if oid != JSONOID { +func encodeJSON(w *WriteBuf, oid Oid, value interface{}) error { + if oid != JsonOid { return fmt.Errorf("cannot encode JSON into oid %v", oid) } @@ -1207,7 +1207,7 @@ func decodeJSONB(vr *ValueReader, d interface{}) error { return nil } - if vr.Type().DataType != JSONBOID { + if vr.Type().DataType != JsonbOid { err := ProtocolError(fmt.Sprintf("Cannot decode oid %v into jsonb", vr.Type().DataType)) vr.Fatal(err) return err @@ -1230,8 +1230,8 @@ func decodeJSONB(vr *ValueReader, d interface{}) error { return err } -func encodeJSONB(w *WriteBuf, oid OID, value interface{}) error { - if oid != JSONBOID { +func encodeJSONB(w *WriteBuf, oid Oid, value interface{}) error { + if oid != JsonbOid { return fmt.Errorf("cannot encode JSON into oid %v", oid) } @@ -1248,7 +1248,7 @@ func encodeJSONB(w *WriteBuf, oid OID, value interface{}) error { } func decodeDate(vr *ValueReader) time.Time { - if vr.Type().DataType != DateOID { + if vr.Type().DataType != DateOid { vr.Fatal(ProtocolError(fmt.Sprintf("Cannot decode oid %v into time.Time", vr.Type().DataType))) return time.Time{} } @@ -1278,9 +1278,9 @@ func decodeDate(vr *ValueReader) time.Time { return d.Time } -func encodeTime(w *WriteBuf, oid OID, value time.Time) error { +func encodeTime(w *WriteBuf, oid Oid, value time.Time) error { switch oid { - case DateOID: + case DateOid: var d pgtype.Date err := d.ConvertFrom(value) if err != nil { @@ -1300,7 +1300,7 @@ func encodeTime(w *WriteBuf, oid OID, value time.Time) error { } return nil - case TimestampTzOID, TimestampOID: + case TimestampTzOid, TimestampOid: var t pgtype.Timestamptz err := t.ConvertFrom(value) if err != nil { @@ -1334,7 +1334,7 @@ func decodeTimestampTz(vr *ValueReader) time.Time { return zeroTime } - if vr.Type().DataType != TimestampTzOID { + if vr.Type().DataType != TimestampTzOid { vr.Fatal(ProtocolError(fmt.Sprintf("Cannot decode oid %v into time.Time", vr.Type().DataType))) return zeroTime } @@ -1372,7 +1372,7 @@ func decodeTimestamp(vr *ValueReader) time.Time { return zeroTime } - if vr.Type().DataType != TimestampOID { + if vr.Type().DataType != TimestampOid { vr.Fatal(ProtocolError(fmt.Sprintf("Cannot decode oid %v into time.Time", vr.Type().DataType))) return zeroTime } @@ -1402,7 +1402,7 @@ func decodeRecord(vr *ValueReader) []interface{} { return nil } - if vr.Type().DataType != RecordOID { + if vr.Type().DataType != RecordOid { vr.Fatal(ProtocolError(fmt.Sprintf("Cannot decode oid %v into []interface{}", vr.Type().DataType))) return nil } @@ -1413,32 +1413,32 @@ func decodeRecord(vr *ValueReader) []interface{} { for i := int32(0); i < valueCount; i++ { fd := FieldDescription{FormatCode: BinaryFormatCode} fieldVR := ValueReader{mr: vr.mr, fd: &fd} - fd.DataType = vr.ReadOID() + fd.DataType = vr.ReadOid() fieldVR.valueBytesRemaining = vr.ReadInt32() vr.valueBytesRemaining -= fieldVR.valueBytesRemaining switch fd.DataType { - case BoolOID: + case BoolOid: record = append(record, decodeBool(&fieldVR)) - case ByteaOID: + case ByteaOid: record = append(record, decodeBytea(&fieldVR)) - case Int8OID: + case Int8Oid: record = append(record, decodeInt8(&fieldVR)) - case Int2OID: + case Int2Oid: record = append(record, decodeInt2(&fieldVR)) - case Int4OID: + case Int4Oid: record = append(record, decodeInt4(&fieldVR)) - case Float4OID: + case Float4Oid: record = append(record, decodeFloat4(&fieldVR)) - case Float8OID: + case Float8Oid: record = append(record, decodeFloat8(&fieldVR)) - case DateOID: + case DateOid: record = append(record, decodeDate(&fieldVR)) - case TimestampTzOID: + case TimestampTzOid: record = append(record, decodeTimestampTz(&fieldVR)) - case TimestampOID: + case TimestampOid: record = append(record, decodeTimestamp(&fieldVR)) - case TextOID, VarcharOID, UnknownOID: + case TextOid, VarcharOid, UnknownOid: record = append(record, decodeTextAllowBinary(&fieldVR)) default: vr.Fatal(fmt.Errorf("decodeRecord cannot decode oid %d", fd.DataType)) diff --git a/values_test.go b/values_test.go index eb570fe6..7b82d456 100644 --- a/values_test.go +++ b/values_test.go @@ -84,7 +84,7 @@ func TestJSONAndJSONBTranscode(t *testing.T) { conn := mustConnect(t, *defaultConnConfig) defer closeConn(t, conn) - for _, oid := range []pgx.OID{pgx.JSONOID, pgx.JSONBOID} { + for _, oid := range []pgx.Oid{pgx.JsonOid, pgx.JsonbOid} { if _, ok := conn.PgTypes[oid]; !ok { return // No JSON/JSONB type -- must be running against old PostgreSQL } @@ -232,7 +232,7 @@ func testJSONStruct(t *testing.T, conn *pgx.Conn, typename string, format int16) } } -func mustParseCIDR(t *testing.T, s string) *net.IPNet { +func mustParseCidr(t *testing.T, s string) *net.IPNet { _, ipnet, err := net.ParseCIDR(s) if err != nil { t.Fatal(err) @@ -277,26 +277,26 @@ func TestInetCidrTranscodeIPNet(t *testing.T) { sql string value *net.IPNet }{ - {"select $1::inet", mustParseCIDR(t, "0.0.0.0/32")}, - {"select $1::inet", mustParseCIDR(t, "127.0.0.1/32")}, - {"select $1::inet", mustParseCIDR(t, "12.34.56.0/32")}, - {"select $1::inet", mustParseCIDR(t, "192.168.1.0/24")}, - {"select $1::inet", mustParseCIDR(t, "255.0.0.0/8")}, - {"select $1::inet", mustParseCIDR(t, "255.255.255.255/32")}, - {"select $1::inet", mustParseCIDR(t, "::/128")}, - {"select $1::inet", mustParseCIDR(t, "::/0")}, - {"select $1::inet", mustParseCIDR(t, "::1/128")}, - {"select $1::inet", mustParseCIDR(t, "2607:f8b0:4009:80b::200e/128")}, - {"select $1::cidr", mustParseCIDR(t, "0.0.0.0/32")}, - {"select $1::cidr", mustParseCIDR(t, "127.0.0.1/32")}, - {"select $1::cidr", mustParseCIDR(t, "12.34.56.0/32")}, - {"select $1::cidr", mustParseCIDR(t, "192.168.1.0/24")}, - {"select $1::cidr", mustParseCIDR(t, "255.0.0.0/8")}, - {"select $1::cidr", mustParseCIDR(t, "255.255.255.255/32")}, - {"select $1::cidr", mustParseCIDR(t, "::/128")}, - {"select $1::cidr", mustParseCIDR(t, "::/0")}, - {"select $1::cidr", mustParseCIDR(t, "::1/128")}, - {"select $1::cidr", mustParseCIDR(t, "2607:f8b0:4009:80b::200e/128")}, + {"select $1::inet", mustParseCidr(t, "0.0.0.0/32")}, + {"select $1::inet", mustParseCidr(t, "127.0.0.1/32")}, + {"select $1::inet", mustParseCidr(t, "12.34.56.0/32")}, + {"select $1::inet", mustParseCidr(t, "192.168.1.0/24")}, + {"select $1::inet", mustParseCidr(t, "255.0.0.0/8")}, + {"select $1::inet", mustParseCidr(t, "255.255.255.255/32")}, + {"select $1::inet", mustParseCidr(t, "::/128")}, + {"select $1::inet", mustParseCidr(t, "::/0")}, + {"select $1::inet", mustParseCidr(t, "::1/128")}, + {"select $1::inet", mustParseCidr(t, "2607:f8b0:4009:80b::200e/128")}, + {"select $1::cidr", mustParseCidr(t, "0.0.0.0/32")}, + {"select $1::cidr", mustParseCidr(t, "127.0.0.1/32")}, + {"select $1::cidr", mustParseCidr(t, "12.34.56.0/32")}, + {"select $1::cidr", mustParseCidr(t, "192.168.1.0/24")}, + {"select $1::cidr", mustParseCidr(t, "255.0.0.0/8")}, + {"select $1::cidr", mustParseCidr(t, "255.255.255.255/32")}, + {"select $1::cidr", mustParseCidr(t, "::/128")}, + {"select $1::cidr", mustParseCidr(t, "::/0")}, + {"select $1::cidr", mustParseCidr(t, "::1/128")}, + {"select $1::cidr", mustParseCidr(t, "2607:f8b0:4009:80b::200e/128")}, } for i, tt := range tests { @@ -360,8 +360,8 @@ func TestInetCidrTranscodeIP(t *testing.T) { sql string value *net.IPNet }{ - {"select $1::inet", mustParseCIDR(t, "192.168.1.0/24")}, - {"select $1::cidr", mustParseCIDR(t, "192.168.1.0/24")}, + {"select $1::inet", mustParseCidr(t, "192.168.1.0/24")}, + {"select $1::cidr", mustParseCidr(t, "192.168.1.0/24")}, } for i, tt := range failTests { var actual net.IP @@ -389,31 +389,31 @@ func TestInetCidrArrayTranscodeIPNet(t *testing.T) { { "select $1::inet[]", []*net.IPNet{ - mustParseCIDR(t, "0.0.0.0/32"), - mustParseCIDR(t, "127.0.0.1/32"), - mustParseCIDR(t, "12.34.56.0/32"), - mustParseCIDR(t, "192.168.1.0/24"), - mustParseCIDR(t, "255.0.0.0/8"), - mustParseCIDR(t, "255.255.255.255/32"), - mustParseCIDR(t, "::/128"), - mustParseCIDR(t, "::/0"), - mustParseCIDR(t, "::1/128"), - mustParseCIDR(t, "2607:f8b0:4009:80b::200e/128"), + mustParseCidr(t, "0.0.0.0/32"), + mustParseCidr(t, "127.0.0.1/32"), + mustParseCidr(t, "12.34.56.0/32"), + mustParseCidr(t, "192.168.1.0/24"), + mustParseCidr(t, "255.0.0.0/8"), + mustParseCidr(t, "255.255.255.255/32"), + mustParseCidr(t, "::/128"), + mustParseCidr(t, "::/0"), + mustParseCidr(t, "::1/128"), + mustParseCidr(t, "2607:f8b0:4009:80b::200e/128"), }, }, { "select $1::cidr[]", []*net.IPNet{ - mustParseCIDR(t, "0.0.0.0/32"), - mustParseCIDR(t, "127.0.0.1/32"), - mustParseCIDR(t, "12.34.56.0/32"), - mustParseCIDR(t, "192.168.1.0/24"), - mustParseCIDR(t, "255.0.0.0/8"), - mustParseCIDR(t, "255.255.255.255/32"), - mustParseCIDR(t, "::/128"), - mustParseCIDR(t, "::/0"), - mustParseCIDR(t, "::1/128"), - mustParseCIDR(t, "2607:f8b0:4009:80b::200e/128"), + mustParseCidr(t, "0.0.0.0/32"), + mustParseCidr(t, "127.0.0.1/32"), + mustParseCidr(t, "12.34.56.0/32"), + mustParseCidr(t, "192.168.1.0/24"), + mustParseCidr(t, "255.0.0.0/8"), + mustParseCidr(t, "255.255.255.255/32"), + mustParseCidr(t, "::/128"), + mustParseCidr(t, "::/0"), + mustParseCidr(t, "::1/128"), + mustParseCidr(t, "2607:f8b0:4009:80b::200e/128"), }, }, } @@ -490,15 +490,15 @@ func TestInetCidrArrayTranscodeIP(t *testing.T) { { "select $1::inet[]", []*net.IPNet{ - mustParseCIDR(t, "12.34.56.0/32"), - mustParseCIDR(t, "192.168.1.0/24"), + mustParseCidr(t, "12.34.56.0/32"), + mustParseCidr(t, "192.168.1.0/24"), }, }, { "select $1::cidr[]", []*net.IPNet{ - mustParseCIDR(t, "12.34.56.0/32"), - mustParseCIDR(t, "192.168.1.0/24"), + mustParseCidr(t, "12.34.56.0/32"), + mustParseCidr(t, "192.168.1.0/24"), }, }, } @@ -541,7 +541,7 @@ func TestInetCidrTranscodeWithJustIP(t *testing.T) { } for i, tt := range tests { - expected := mustParseCIDR(t, tt.value) + expected := mustParseCidr(t, tt.value) var actual net.IPNet err := conn.QueryRow(tt.sql, expected.IP).Scan(&actual) @@ -840,13 +840,13 @@ func TestNullXMismatch(t *testing.T) { err string }{ {"select $1::date", []interface{}{pgx.NullString{String: "foo", Valid: true}}, []interface{}{&actual.s}, "invalid input syntax for type date"}, - {"select $1::date", []interface{}{pgx.NullInt16{Int16: 1, Valid: true}}, []interface{}{&actual.i16}, "cannot encode into OID 1082"}, - {"select $1::date", []interface{}{pgx.NullInt32{Int32: 1, Valid: true}}, []interface{}{&actual.i32}, "cannot encode into OID 1082"}, - {"select $1::date", []interface{}{pgx.NullInt64{Int64: 1, Valid: true}}, []interface{}{&actual.i64}, "cannot encode into OID 1082"}, - {"select $1::date", []interface{}{pgx.NullFloat32{Float32: 1.23, Valid: true}}, []interface{}{&actual.f32}, "cannot encode into OID 1082"}, - {"select $1::date", []interface{}{pgx.NullFloat64{Float64: 1.23, Valid: true}}, []interface{}{&actual.f64}, "cannot encode into OID 1082"}, - {"select $1::date", []interface{}{pgx.NullBool{Bool: true, Valid: true}}, []interface{}{&actual.b}, "cannot encode into OID 1082"}, - {"select $1::int4", []interface{}{pgx.NullTime{Time: time.Unix(123, 5000), Valid: true}}, []interface{}{&actual.t}, "cannot encode into OID 23"}, + {"select $1::date", []interface{}{pgx.NullInt16{Int16: 1, Valid: true}}, []interface{}{&actual.i16}, "cannot encode into Oid 1082"}, + {"select $1::date", []interface{}{pgx.NullInt32{Int32: 1, Valid: true}}, []interface{}{&actual.i32}, "cannot encode into Oid 1082"}, + {"select $1::date", []interface{}{pgx.NullInt64{Int64: 1, Valid: true}}, []interface{}{&actual.i64}, "cannot encode into Oid 1082"}, + {"select $1::date", []interface{}{pgx.NullFloat32{Float32: 1.23, Valid: true}}, []interface{}{&actual.f32}, "cannot encode into Oid 1082"}, + {"select $1::date", []interface{}{pgx.NullFloat64{Float64: 1.23, Valid: true}}, []interface{}{&actual.f64}, "cannot encode into Oid 1082"}, + {"select $1::date", []interface{}{pgx.NullBool{Bool: true, Valid: true}}, []interface{}{&actual.b}, "cannot encode into Oid 1082"}, + {"select $1::int4", []interface{}{pgx.NullTime{Time: time.Unix(123, 5000), Valid: true}}, []interface{}{&actual.t}, "cannot encode into Oid 23"}, } for i, tt := range tests {