diff --git a/internal/codegen/golang/imports.go b/internal/codegen/golang/imports.go index 72c97b4fea..e46c53d611 100644 --- a/internal/codegen/golang/imports.go +++ b/internal/codegen/golang/imports.go @@ -150,6 +150,7 @@ var pgtypeTypes = map[string]struct{}{ "pgtype.Macaddr": {}, "pgtype.Numeric": {}, "pgtype.Numrange": {}, + "pgtype.Time": {}, "pgtype.Tsrange": {}, "pgtype.Tstzrange": {}, } diff --git a/internal/codegen/golang/postgresql_type.go b/internal/codegen/golang/postgresql_type.go index afa5a21aa7..9f0eebde9b 100644 --- a/internal/codegen/golang/postgresql_type.go +++ b/internal/codegen/golang/postgresql_type.go @@ -143,7 +143,10 @@ func postgresType(req *plugin.CodeGenRequest, col *plugin.Column) string { } return "sql.NullTime" - case "pg_catalog.time", "pg_catalog.timetz": + case "pg_catalog.time": + return "pgtype.Time" + + case "pg_catalog.timetz": if notNull { return "time.Time" } diff --git a/internal/endtoend/testdata/cast_null/pgx/go/query.sql.go b/internal/endtoend/testdata/cast_null/pgx/go/query.sql.go index 01382a670d..206150ca21 100644 --- a/internal/endtoend/testdata/cast_null/pgx/go/query.sql.go +++ b/internal/endtoend/testdata/cast_null/pgx/go/query.sql.go @@ -8,6 +8,8 @@ package querytest import ( "context" "database/sql" + + "github.com/jackc/pgtype" ) const listNullable = `-- name: ListNullable :many @@ -23,7 +25,7 @@ type ListNullableRow struct { A sql.NullString B sql.NullInt32 C sql.NullInt64 - D sql.NullTime + D pgtype.Time } func (q *Queries) ListNullable(ctx context.Context) ([]ListNullableRow, error) { diff --git a/internal/endtoend/testdata/cast_null/stdlib/go/query.sql.go b/internal/endtoend/testdata/cast_null/stdlib/go/query.sql.go index c60aee8a52..b85124a754 100644 --- a/internal/endtoend/testdata/cast_null/stdlib/go/query.sql.go +++ b/internal/endtoend/testdata/cast_null/stdlib/go/query.sql.go @@ -8,6 +8,8 @@ package querytest import ( "context" "database/sql" + + "github.com/jackc/pgtype" ) const listNullable = `-- name: ListNullable :many @@ -23,7 +25,7 @@ type ListNullableRow struct { A sql.NullString B sql.NullInt32 C sql.NullInt64 - D sql.NullTime + D pgtype.Time } func (q *Queries) ListNullable(ctx context.Context) ([]ListNullableRow, error) { diff --git a/internal/endtoend/testdata/datatype/pgx/go/models.go b/internal/endtoend/testdata/datatype/pgx/go/models.go index f703fafa66..b588a38024 100644 --- a/internal/endtoend/testdata/datatype/pgx/go/models.go +++ b/internal/endtoend/testdata/datatype/pgx/go/models.go @@ -29,8 +29,8 @@ type DtCharacterNotNull struct { type DtDatetime struct { A sql.NullTime - B sql.NullTime - C sql.NullTime + B pgtype.Time + C pgtype.Time D sql.NullTime E sql.NullTime F sql.NullTime @@ -40,8 +40,8 @@ type DtDatetime struct { type DtDatetimeNotNull struct { A time.Time - B time.Time - C time.Time + B pgtype.Time + C pgtype.Time D time.Time E time.Time F time.Time diff --git a/internal/endtoend/testdata/datatype/stdlib/go/models.go b/internal/endtoend/testdata/datatype/stdlib/go/models.go index 0916ca8931..b5a40b86ee 100644 --- a/internal/endtoend/testdata/datatype/stdlib/go/models.go +++ b/internal/endtoend/testdata/datatype/stdlib/go/models.go @@ -8,6 +8,7 @@ import ( "database/sql" "time" + "github.com/jackc/pgtype" "github.com/tabbed/pqtype" ) @@ -29,8 +30,8 @@ type DtCharacterNotNull struct { type DtDatetime struct { A sql.NullTime - B sql.NullTime - C sql.NullTime + B pgtype.Time + C pgtype.Time D sql.NullTime E sql.NullTime F sql.NullTime @@ -40,8 +41,8 @@ type DtDatetime struct { type DtDatetimeNotNull struct { A time.Time - B time.Time - C time.Time + B pgtype.Time + C pgtype.Time D time.Time E time.Time F time.Time