Skip to content

Commit

Permalink
codegen/golang: Use pgtype for hstore when using pgx (#1156)
Browse files Browse the repository at this point in the history
  • Loading branch information
kyleconroy authored Aug 29, 2021
1 parent 7d34722 commit 14631c8
Show file tree
Hide file tree
Showing 12 changed files with 256 additions and 0 deletions.
1 change: 1 addition & 0 deletions internal/codegen/golang/imports.go
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,7 @@ var pgtypeTypes = map[string]struct{}{
"pgtype.Int8range": {},
"pgtype.JSON": {},
"pgtype.JSONB": {},
"pgtype.Hstore": {},
"pgtype.Macaddr": {},
"pgtype.Numeric": {},
"pgtype.Numrange": {},
Expand Down
6 changes: 6 additions & 0 deletions internal/codegen/golang/postgresql_type.go
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,12 @@ func postgresType(r *compiler.Result, col *compiler.Column, settings config.Comb
}
return "interface{}"

case "hstore":
if driver == SQLDriverPGXV4 {
return "pgtype.Hstore"
}
return "interface{}"

case "void":
// A void value can only be scanned into an empty interface.
return "interface{}"
Expand Down
30 changes: 30 additions & 0 deletions internal/endtoend/testdata/hstore/pgx/go/db.go

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

58 changes: 58 additions & 0 deletions internal/endtoend/testdata/hstore/pgx/go/hstore.sql.go

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

12 changes: 12 additions & 0 deletions internal/endtoend/testdata/hstore/pgx/go/models.go

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

12 changes: 12 additions & 0 deletions internal/endtoend/testdata/hstore/pgx/hstore.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
CREATE TABLE foo (
bar hstore NOT NULL,
baz hstore
);

-- name: ListBar :many
SELECT bar FROM foo;

-- name: ListBaz :many
SELECT baz FROM foo;


13 changes: 13 additions & 0 deletions internal/endtoend/testdata/hstore/pgx/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": "hstore",
"schema": "hstore.sql",
"queries": "hstore.sql"
}
]
}
29 changes: 29 additions & 0 deletions internal/endtoend/testdata/hstore/stdlib/go/db.go

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

62 changes: 62 additions & 0 deletions internal/endtoend/testdata/hstore/stdlib/go/hstore.sql.go

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

10 changes: 10 additions & 0 deletions internal/endtoend/testdata/hstore/stdlib/go/models.go

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

12 changes: 12 additions & 0 deletions internal/endtoend/testdata/hstore/stdlib/hstore.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
CREATE TABLE foo (
bar hstore NOT NULL,
baz hstore
);

-- name: ListBar :many
SELECT bar FROM foo;

-- name: ListBaz :many
SELECT baz FROM foo;


11 changes: 11 additions & 0 deletions internal/endtoend/testdata/hstore/stdlib/sqlc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"version": "1",
"packages": [
{
"path": "go",
"name": "hstore",
"schema": "hstore.sql",
"queries": "hstore.sql"
}
]
}

0 comments on commit 14631c8

Please sign in to comment.