@@ -25,21 +25,25 @@ func RegisterTypes(ctx context.Context, conn *pgx.Conn) error {
2525 }
2626
2727 tm := conn .TypeMap ()
28- registerType (tm , "vector" , * vectorOid , * vectorArrayOid , & VectorCodec {})
28+ registerType (tm , "vector" , vectorOid , vectorArrayOid , & VectorCodec {})
2929
3030 if halfvecOid != nil {
31- registerType (tm , "halfvec" , * halfvecOid , * halfvecArrayOid , & HalfVectorCodec {})
31+ registerType (tm , "halfvec" , halfvecOid , halfvecArrayOid , & HalfVectorCodec {})
3232 }
3333
3434 if sparsevecOid != nil {
35- registerType (tm , "sparsevec" , * sparsevecOid , * sparsevecArrayOid , & SparseVectorCodec {})
35+ registerType (tm , "sparsevec" , sparsevecOid , sparsevecArrayOid , & SparseVectorCodec {})
3636 }
3737
3838 return nil
3939}
4040
41- func registerType (tm * pgtype.Map , name string , oid uint32 , arrayOid uint32 , codec pgtype.Codec ) {
42- t := pgtype.Type {Name : name , OID : oid , Codec : codec }
41+ func registerType (tm * pgtype.Map , name string , oid * uint32 , arrayOid * uint32 , codec pgtype.Codec ) {
42+ t := pgtype.Type {Name : name , OID : * oid , Codec : codec }
4343 tm .RegisterType (& t )
44- tm .RegisterType (& pgtype.Type {Name : "_" + name , OID : arrayOid , Codec : & pgtype.ArrayCodec {ElementType : & t }})
44+
45+ // should never be nil
46+ if arrayOid != nil {
47+ tm .RegisterType (& pgtype.Type {Name : "_" + name , OID : * arrayOid , Codec : & pgtype.ArrayCodec {ElementType : & t }})
48+ }
4549}
0 commit comments