Skip to content

Commit

Permalink
fix(codegen): use correct Go types for bit strings and cid/oid/tid/xi…
Browse files Browse the repository at this point in the history
…d with pgx/v4 (#2668)

resolves #2667
  • Loading branch information
andrewmbenton committed Aug 30, 2023
1 parent e0353d3 commit faa1c9d
Show file tree
Hide file tree
Showing 26 changed files with 642 additions and 7 deletions.
35 changes: 28 additions & 7 deletions internal/codegen/golang/postgresql_type.go
Original file line number Diff line number Diff line change
Expand Up @@ -343,7 +343,6 @@ func postgresType(req *plugin.CodeGenRequest, col *plugin.Column) string {
if driver == SQLDriverPGXV5 {
return "pgtype.Interval"
}

if notNull {
return "int64"
}
Expand Down Expand Up @@ -467,25 +466,47 @@ func postgresType(req *plugin.CodeGenRequest, col *plugin.Column) string {
return "interface{}"

case "bit", "varbit", "pg_catalog.bit", "pg_catalog.varbit":
if driver.IsPGX() {
if driver == SQLDriverPGXV5 {
return "pgtype.Bits"
}
if driver == SQLDriverPGXV4 {
return "pgtype.Varbit"
}

case "box":
if driver.IsPGX() {
return "pgtype.Box"
case "cid":
if driver == SQLDriverPGXV5 {
return "pgtype.Uint32"
}
if driver == SQLDriverPGXV4 {
return "pgtype.CID"
}

case "cid", "oid":
if driver.IsPGX() {
case "oid":
if driver == SQLDriverPGXV5 {
return "pgtype.Uint32"
}
if driver == SQLDriverPGXV4 {
return "pgtype.OID"
}

case "tid":
if driver.IsPGX() {
return "pgtype.TID"
}

case "xid":
if driver == SQLDriverPGXV5 {
return "pgtype.Uint32"
}
if driver == SQLDriverPGXV4 {
return "pgtype.XID"
}

case "box":
if driver.IsPGX() {
return "pgtype.Box"
}

case "circle":
if driver.IsPGX() {
return "pgtype.Circle"
Expand Down
32 changes: 32 additions & 0 deletions internal/endtoend/testdata/bit_string/pgx/v4/go/db.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 16 additions & 0 deletions internal/endtoend/testdata/bit_string/pgx/v4/go/models.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

40 changes: 40 additions & 0 deletions internal/endtoend/testdata/bit_string/pgx/v4/go/query.sql.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions internal/endtoend/testdata/bit_string/pgx/v4/query.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
CREATE TABLE test_table
(
v_bit_null bit(3),
v_varbit_null bit varying(3),
v_bit bit(3) not null,
v_varbit bit varying(3) not null
);

-- name: SelectTest :many
SELECT *
from test_table;
13 changes: 13 additions & 0 deletions internal/endtoend/testdata/bit_string/pgx/v4/sqlc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"version": "1",
"packages": [
{
"path": "go",
"engine": "postgresql",
"sql_package": "pgx/v4",
"name": "querytest",
"schema": "query.sql",
"queries": "query.sql"
}
]
}
32 changes: 32 additions & 0 deletions internal/endtoend/testdata/bit_string/pgx/v5/go/db.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 16 additions & 0 deletions internal/endtoend/testdata/bit_string/pgx/v5/go/models.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

40 changes: 40 additions & 0 deletions internal/endtoend/testdata/bit_string/pgx/v5/go/query.sql.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions internal/endtoend/testdata/bit_string/pgx/v5/query.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
CREATE TABLE test_table
(
v_bit_null bit(3),
v_varbit_null bit varying(3),
v_bit bit(3) not null,
v_varbit bit varying(3) not null
);

-- name: SelectTest :many
SELECT *
from test_table;
13 changes: 13 additions & 0 deletions internal/endtoend/testdata/bit_string/pgx/v5/sqlc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"version": "1",
"packages": [
{
"path": "go",
"engine": "postgresql",
"sql_package": "pgx/v5",
"name": "querytest",
"schema": "query.sql",
"queries": "query.sql"
}
]
}
32 changes: 32 additions & 0 deletions internal/endtoend/testdata/cid_oid_tid_xid/pgx/v4/go/db.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 20 additions & 0 deletions internal/endtoend/testdata/cid_oid_tid_xid/pgx/v4/go/models.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

44 changes: 44 additions & 0 deletions internal/endtoend/testdata/cid_oid_tid_xid/pgx/v4/go/query.sql.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit faa1c9d

Please sign in to comment.