diff --git a/internal/endtoend/testdata/rename/pgx/v4/go/db.go b/internal/endtoend/testdata/rename/v1/pgx/v4/go/db.go similarity index 100% rename from internal/endtoend/testdata/rename/pgx/v4/go/db.go rename to internal/endtoend/testdata/rename/v1/pgx/v4/go/db.go diff --git a/internal/endtoend/testdata/rename/pgx/v4/go/models.go b/internal/endtoend/testdata/rename/v1/pgx/v4/go/models.go similarity index 100% rename from internal/endtoend/testdata/rename/pgx/v4/go/models.go rename to internal/endtoend/testdata/rename/v1/pgx/v4/go/models.go diff --git a/internal/endtoend/testdata/rename/pgx/v4/go/query.sql.go b/internal/endtoend/testdata/rename/v1/pgx/v4/go/query.sql.go similarity index 100% rename from internal/endtoend/testdata/rename/pgx/v4/go/query.sql.go rename to internal/endtoend/testdata/rename/v1/pgx/v4/go/query.sql.go diff --git a/internal/endtoend/testdata/rename/pgx/v4/query.sql b/internal/endtoend/testdata/rename/v1/pgx/v4/query.sql similarity index 100% rename from internal/endtoend/testdata/rename/pgx/v4/query.sql rename to internal/endtoend/testdata/rename/v1/pgx/v4/query.sql diff --git a/internal/endtoend/testdata/rename/pgx/v4/sqlc.json b/internal/endtoend/testdata/rename/v1/pgx/v4/sqlc.json similarity index 100% rename from internal/endtoend/testdata/rename/pgx/v4/sqlc.json rename to internal/endtoend/testdata/rename/v1/pgx/v4/sqlc.json diff --git a/internal/endtoend/testdata/rename/pgx/v5/go/db.go b/internal/endtoend/testdata/rename/v1/pgx/v5/go/db.go similarity index 100% rename from internal/endtoend/testdata/rename/pgx/v5/go/db.go rename to internal/endtoend/testdata/rename/v1/pgx/v5/go/db.go diff --git a/internal/endtoend/testdata/rename/pgx/v5/go/models.go b/internal/endtoend/testdata/rename/v1/pgx/v5/go/models.go similarity index 100% rename from internal/endtoend/testdata/rename/pgx/v5/go/models.go rename to internal/endtoend/testdata/rename/v1/pgx/v5/go/models.go diff --git a/internal/endtoend/testdata/rename/pgx/v5/go/query.sql.go b/internal/endtoend/testdata/rename/v1/pgx/v5/go/query.sql.go similarity index 100% rename from internal/endtoend/testdata/rename/pgx/v5/go/query.sql.go rename to internal/endtoend/testdata/rename/v1/pgx/v5/go/query.sql.go diff --git a/internal/endtoend/testdata/rename/pgx/v5/query.sql b/internal/endtoend/testdata/rename/v1/pgx/v5/query.sql similarity index 100% rename from internal/endtoend/testdata/rename/pgx/v5/query.sql rename to internal/endtoend/testdata/rename/v1/pgx/v5/query.sql diff --git a/internal/endtoend/testdata/rename/pgx/v5/sqlc.json b/internal/endtoend/testdata/rename/v1/pgx/v5/sqlc.json similarity index 100% rename from internal/endtoend/testdata/rename/pgx/v5/sqlc.json rename to internal/endtoend/testdata/rename/v1/pgx/v5/sqlc.json diff --git a/internal/endtoend/testdata/rename/stdlib/go/db.go b/internal/endtoend/testdata/rename/v1/stdlib/go/db.go similarity index 100% rename from internal/endtoend/testdata/rename/stdlib/go/db.go rename to internal/endtoend/testdata/rename/v1/stdlib/go/db.go diff --git a/internal/endtoend/testdata/rename/stdlib/go/models.go b/internal/endtoend/testdata/rename/v1/stdlib/go/models.go similarity index 100% rename from internal/endtoend/testdata/rename/stdlib/go/models.go rename to internal/endtoend/testdata/rename/v1/stdlib/go/models.go diff --git a/internal/endtoend/testdata/rename/stdlib/go/query.sql.go b/internal/endtoend/testdata/rename/v1/stdlib/go/query.sql.go similarity index 100% rename from internal/endtoend/testdata/rename/stdlib/go/query.sql.go rename to internal/endtoend/testdata/rename/v1/stdlib/go/query.sql.go diff --git a/internal/endtoend/testdata/rename/stdlib/query.sql b/internal/endtoend/testdata/rename/v1/stdlib/query.sql similarity index 100% rename from internal/endtoend/testdata/rename/stdlib/query.sql rename to internal/endtoend/testdata/rename/v1/stdlib/query.sql diff --git a/internal/endtoend/testdata/rename/stdlib/sqlc.json b/internal/endtoend/testdata/rename/v1/stdlib/sqlc.json similarity index 100% rename from internal/endtoend/testdata/rename/stdlib/sqlc.json rename to internal/endtoend/testdata/rename/v1/stdlib/sqlc.json diff --git a/internal/endtoend/testdata/rename/v2/pgx/v4/go/db.go b/internal/endtoend/testdata/rename/v2/pgx/v4/go/db.go new file mode 100644 index 0000000000..439db75e69 --- /dev/null +++ b/internal/endtoend/testdata/rename/v2/pgx/v4/go/db.go @@ -0,0 +1,32 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.17.2 + +package querytest + +import ( + "context" + + "github.com/jackc/pgconn" + "github.com/jackc/pgx/v4" +) + +type DBTX interface { + Exec(context.Context, string, ...interface{}) (pgconn.CommandTag, error) + Query(context.Context, string, ...interface{}) (pgx.Rows, error) + QueryRow(context.Context, string, ...interface{}) pgx.Row +} + +func New(db DBTX) *Queries { + return &Queries{db: db} +} + +type Queries struct { + db DBTX +} + +func (q *Queries) WithTx(tx pgx.Tx) *Queries { + return &Queries{ + db: tx, + } +} diff --git a/internal/endtoend/testdata/rename/v2/pgx/v4/go/models.go b/internal/endtoend/testdata/rename/v2/pgx/v4/go/models.go new file mode 100644 index 0000000000..cc0ed0807b --- /dev/null +++ b/internal/endtoend/testdata/rename/v2/pgx/v4/go/models.go @@ -0,0 +1,58 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.17.2 + +package querytest + +import ( + "database/sql/driver" + "fmt" +) + +type IPProtocol string + +const ( + IPProtocolTCP IPProtocol = "tcp" + IpProtocolIp IPProtocol = "ip" + IpProtocolIcmp IPProtocol = "icmp" +) + +func (e *IPProtocol) Scan(src interface{}) error { + switch s := src.(type) { + case []byte: + *e = IPProtocol(s) + case string: + *e = IPProtocol(s) + default: + return fmt.Errorf("unsupported scan type for IPProtocol: %T", src) + } + return nil +} + +type NullIPProtocol struct { + IPProtocol IPProtocol + Valid bool // Valid is true if IPProtocol is not NULL +} + +// Scan implements the Scanner interface. +func (ns *NullIPProtocol) Scan(value interface{}) error { + if value == nil { + ns.IPProtocol, ns.Valid = "", false + return nil + } + ns.Valid = true + return ns.IPProtocol.Scan(value) +} + +// Value implements the driver Valuer interface. +func (ns NullIPProtocol) Value() (driver.Value, error) { + if !ns.Valid { + return nil, nil + } + return string(ns.IPProtocol), nil +} + +type BarNew struct { + IDNew int32 + IpOld IPProtocol +} diff --git a/internal/endtoend/testdata/rename/v2/pgx/v4/go/query.sql.go b/internal/endtoend/testdata/rename/v2/pgx/v4/go/query.sql.go new file mode 100644 index 0000000000..794178fb96 --- /dev/null +++ b/internal/endtoend/testdata/rename/v2/pgx/v4/go/query.sql.go @@ -0,0 +1,70 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.17.2 +// source: query.sql + +package querytest + +import ( + "context" +) + +const listBar = `-- name: ListBar :many +SELECT id_old, ip_old FROM bar_old +` + +func (q *Queries) ListBar(ctx context.Context) ([]BarNew, error) { + rows, err := q.db.Query(ctx, listBar) + if err != nil { + return nil, err + } + defer rows.Close() + var items []BarNew + for rows.Next() { + var i BarNew + if err := rows.Scan(&i.IDNew, &i.IpOld); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + +const listFoo = `-- name: ListFoo :many +SELECT id_old as foo_old, id_old as baz_old +FROM bar_old +WHERE ip_old = $1 AND id_old = $2 +` + +type ListFooParams struct { + IpOld IPProtocol + IDNew int32 +} + +type ListFooRow struct { + FooNew int32 + BazOld int32 +} + +func (q *Queries) ListFoo(ctx context.Context, arg ListFooParams) ([]ListFooRow, error) { + rows, err := q.db.Query(ctx, listFoo, arg.IpOld, arg.IDNew) + if err != nil { + return nil, err + } + defer rows.Close() + var items []ListFooRow + for rows.Next() { + var i ListFooRow + if err := rows.Scan(&i.FooNew, &i.BazOld); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} diff --git a/internal/endtoend/testdata/rename/v2/pgx/v4/query.sql b/internal/endtoend/testdata/rename/v2/pgx/v4/query.sql new file mode 100644 index 0000000000..e91722b3f3 --- /dev/null +++ b/internal/endtoend/testdata/rename/v2/pgx/v4/query.sql @@ -0,0 +1,12 @@ +CREATE TYPE ip_protocol AS enum('tcp', 'ip', 'icmp'); + +CREATE TABLE bar_old (id_old serial not null, ip_old ip_protocol NOT NULL); + +-- name: ListFoo :many +SELECT id_old as foo_old, id_old as baz_old +FROM bar_old +WHERE ip_old = $1 AND id_old = $2; + +-- name: ListBar :many +SELECT * FROM bar_old; + diff --git a/internal/endtoend/testdata/rename/v2/pgx/v4/sqlc.json b/internal/endtoend/testdata/rename/v2/pgx/v4/sqlc.json new file mode 100644 index 0000000000..6f6b0f7878 --- /dev/null +++ b/internal/endtoend/testdata/rename/v2/pgx/v4/sqlc.json @@ -0,0 +1,24 @@ +{ + "version": "2", + "sql": [ + { + "schema": "query.sql", + "queries": "query.sql", + "engine": "postgresql", + "gen": { + "go": { + "sql_package": "pgx/v4", + "package": "querytest", + "out": "go", + "rename": { + "id_old": "IDNew", + "bar_old": "BarNew", + "foo_old": "FooNew", + "ip_protocol": "IPProtocol", + "ip_protocol_tcp": "IPProtocolTCP" + } + } + } + } + ] +} diff --git a/internal/endtoend/testdata/rename/v2/pgx/v5/go/db.go b/internal/endtoend/testdata/rename/v2/pgx/v5/go/db.go new file mode 100644 index 0000000000..a84825e0e1 --- /dev/null +++ b/internal/endtoend/testdata/rename/v2/pgx/v5/go/db.go @@ -0,0 +1,32 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.17.2 + +package querytest + +import ( + "context" + + "github.com/jackc/pgx/v5" + "github.com/jackc/pgx/v5/pgconn" +) + +type DBTX interface { + Exec(context.Context, string, ...interface{}) (pgconn.CommandTag, error) + Query(context.Context, string, ...interface{}) (pgx.Rows, error) + QueryRow(context.Context, string, ...interface{}) pgx.Row +} + +func New(db DBTX) *Queries { + return &Queries{db: db} +} + +type Queries struct { + db DBTX +} + +func (q *Queries) WithTx(tx pgx.Tx) *Queries { + return &Queries{ + db: tx, + } +} diff --git a/internal/endtoend/testdata/rename/v2/pgx/v5/go/models.go b/internal/endtoend/testdata/rename/v2/pgx/v5/go/models.go new file mode 100644 index 0000000000..cc0ed0807b --- /dev/null +++ b/internal/endtoend/testdata/rename/v2/pgx/v5/go/models.go @@ -0,0 +1,58 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.17.2 + +package querytest + +import ( + "database/sql/driver" + "fmt" +) + +type IPProtocol string + +const ( + IPProtocolTCP IPProtocol = "tcp" + IpProtocolIp IPProtocol = "ip" + IpProtocolIcmp IPProtocol = "icmp" +) + +func (e *IPProtocol) Scan(src interface{}) error { + switch s := src.(type) { + case []byte: + *e = IPProtocol(s) + case string: + *e = IPProtocol(s) + default: + return fmt.Errorf("unsupported scan type for IPProtocol: %T", src) + } + return nil +} + +type NullIPProtocol struct { + IPProtocol IPProtocol + Valid bool // Valid is true if IPProtocol is not NULL +} + +// Scan implements the Scanner interface. +func (ns *NullIPProtocol) Scan(value interface{}) error { + if value == nil { + ns.IPProtocol, ns.Valid = "", false + return nil + } + ns.Valid = true + return ns.IPProtocol.Scan(value) +} + +// Value implements the driver Valuer interface. +func (ns NullIPProtocol) Value() (driver.Value, error) { + if !ns.Valid { + return nil, nil + } + return string(ns.IPProtocol), nil +} + +type BarNew struct { + IDNew int32 + IpOld IPProtocol +} diff --git a/internal/endtoend/testdata/rename/v2/pgx/v5/go/query.sql.go b/internal/endtoend/testdata/rename/v2/pgx/v5/go/query.sql.go new file mode 100644 index 0000000000..794178fb96 --- /dev/null +++ b/internal/endtoend/testdata/rename/v2/pgx/v5/go/query.sql.go @@ -0,0 +1,70 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.17.2 +// source: query.sql + +package querytest + +import ( + "context" +) + +const listBar = `-- name: ListBar :many +SELECT id_old, ip_old FROM bar_old +` + +func (q *Queries) ListBar(ctx context.Context) ([]BarNew, error) { + rows, err := q.db.Query(ctx, listBar) + if err != nil { + return nil, err + } + defer rows.Close() + var items []BarNew + for rows.Next() { + var i BarNew + if err := rows.Scan(&i.IDNew, &i.IpOld); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + +const listFoo = `-- name: ListFoo :many +SELECT id_old as foo_old, id_old as baz_old +FROM bar_old +WHERE ip_old = $1 AND id_old = $2 +` + +type ListFooParams struct { + IpOld IPProtocol + IDNew int32 +} + +type ListFooRow struct { + FooNew int32 + BazOld int32 +} + +func (q *Queries) ListFoo(ctx context.Context, arg ListFooParams) ([]ListFooRow, error) { + rows, err := q.db.Query(ctx, listFoo, arg.IpOld, arg.IDNew) + if err != nil { + return nil, err + } + defer rows.Close() + var items []ListFooRow + for rows.Next() { + var i ListFooRow + if err := rows.Scan(&i.FooNew, &i.BazOld); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} diff --git a/internal/endtoend/testdata/rename/v2/pgx/v5/query.sql b/internal/endtoend/testdata/rename/v2/pgx/v5/query.sql new file mode 100644 index 0000000000..e91722b3f3 --- /dev/null +++ b/internal/endtoend/testdata/rename/v2/pgx/v5/query.sql @@ -0,0 +1,12 @@ +CREATE TYPE ip_protocol AS enum('tcp', 'ip', 'icmp'); + +CREATE TABLE bar_old (id_old serial not null, ip_old ip_protocol NOT NULL); + +-- name: ListFoo :many +SELECT id_old as foo_old, id_old as baz_old +FROM bar_old +WHERE ip_old = $1 AND id_old = $2; + +-- name: ListBar :many +SELECT * FROM bar_old; + diff --git a/internal/endtoend/testdata/rename/v2/pgx/v5/sqlc.json b/internal/endtoend/testdata/rename/v2/pgx/v5/sqlc.json new file mode 100644 index 0000000000..93e41bef62 --- /dev/null +++ b/internal/endtoend/testdata/rename/v2/pgx/v5/sqlc.json @@ -0,0 +1,24 @@ +{ + "version": "2", + "sql": [ + { + "engine": "postgresql", + "schema": "query.sql", + "queries": "query.sql", + "gen": { + "go": { + "package": "querytest", + "out": "go", + "sql_package": "pgx/v5", + "rename": { + "id_old": "IDNew", + "bar_old": "BarNew", + "foo_old": "FooNew", + "ip_protocol": "IPProtocol", + "ip_protocol_tcp": "IPProtocolTCP" + } + } + } + } + ] +} diff --git a/internal/endtoend/testdata/rename/v2/stdlib/go/db.go b/internal/endtoend/testdata/rename/v2/stdlib/go/db.go new file mode 100644 index 0000000000..02974bda59 --- /dev/null +++ b/internal/endtoend/testdata/rename/v2/stdlib/go/db.go @@ -0,0 +1,31 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.17.2 + +package querytest + +import ( + "context" + "database/sql" +) + +type DBTX interface { + ExecContext(context.Context, string, ...interface{}) (sql.Result, error) + PrepareContext(context.Context, string) (*sql.Stmt, error) + QueryContext(context.Context, string, ...interface{}) (*sql.Rows, error) + QueryRowContext(context.Context, string, ...interface{}) *sql.Row +} + +func New(db DBTX) *Queries { + return &Queries{db: db} +} + +type Queries struct { + db DBTX +} + +func (q *Queries) WithTx(tx *sql.Tx) *Queries { + return &Queries{ + db: tx, + } +} diff --git a/internal/endtoend/testdata/rename/v2/stdlib/go/models.go b/internal/endtoend/testdata/rename/v2/stdlib/go/models.go new file mode 100644 index 0000000000..cc0ed0807b --- /dev/null +++ b/internal/endtoend/testdata/rename/v2/stdlib/go/models.go @@ -0,0 +1,58 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.17.2 + +package querytest + +import ( + "database/sql/driver" + "fmt" +) + +type IPProtocol string + +const ( + IPProtocolTCP IPProtocol = "tcp" + IpProtocolIp IPProtocol = "ip" + IpProtocolIcmp IPProtocol = "icmp" +) + +func (e *IPProtocol) Scan(src interface{}) error { + switch s := src.(type) { + case []byte: + *e = IPProtocol(s) + case string: + *e = IPProtocol(s) + default: + return fmt.Errorf("unsupported scan type for IPProtocol: %T", src) + } + return nil +} + +type NullIPProtocol struct { + IPProtocol IPProtocol + Valid bool // Valid is true if IPProtocol is not NULL +} + +// Scan implements the Scanner interface. +func (ns *NullIPProtocol) Scan(value interface{}) error { + if value == nil { + ns.IPProtocol, ns.Valid = "", false + return nil + } + ns.Valid = true + return ns.IPProtocol.Scan(value) +} + +// Value implements the driver Valuer interface. +func (ns NullIPProtocol) Value() (driver.Value, error) { + if !ns.Valid { + return nil, nil + } + return string(ns.IPProtocol), nil +} + +type BarNew struct { + IDNew int32 + IpOld IPProtocol +} diff --git a/internal/endtoend/testdata/rename/v2/stdlib/go/query.sql.go b/internal/endtoend/testdata/rename/v2/stdlib/go/query.sql.go new file mode 100644 index 0000000000..2bf889f5ed --- /dev/null +++ b/internal/endtoend/testdata/rename/v2/stdlib/go/query.sql.go @@ -0,0 +1,76 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.17.2 +// source: query.sql + +package querytest + +import ( + "context" +) + +const listBar = `-- name: ListBar :many +SELECT id_old, ip_old FROM bar_old +` + +func (q *Queries) ListBar(ctx context.Context) ([]BarNew, error) { + rows, err := q.db.QueryContext(ctx, listBar) + if err != nil { + return nil, err + } + defer rows.Close() + var items []BarNew + for rows.Next() { + var i BarNew + if err := rows.Scan(&i.IDNew, &i.IpOld); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Close(); err != nil { + return nil, err + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + +const listFoo = `-- name: ListFoo :many +SELECT id_old as foo_old, id_old as baz_old +FROM bar_old +WHERE ip_old = $1 AND id_old = $2 +` + +type ListFooParams struct { + IpOld IPProtocol + IDNew int32 +} + +type ListFooRow struct { + FooNew int32 + BazOld int32 +} + +func (q *Queries) ListFoo(ctx context.Context, arg ListFooParams) ([]ListFooRow, error) { + rows, err := q.db.QueryContext(ctx, listFoo, arg.IpOld, arg.IDNew) + if err != nil { + return nil, err + } + defer rows.Close() + var items []ListFooRow + for rows.Next() { + var i ListFooRow + if err := rows.Scan(&i.FooNew, &i.BazOld); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Close(); err != nil { + return nil, err + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} diff --git a/internal/endtoend/testdata/rename/v2/stdlib/query.sql b/internal/endtoend/testdata/rename/v2/stdlib/query.sql new file mode 100644 index 0000000000..e91722b3f3 --- /dev/null +++ b/internal/endtoend/testdata/rename/v2/stdlib/query.sql @@ -0,0 +1,12 @@ +CREATE TYPE ip_protocol AS enum('tcp', 'ip', 'icmp'); + +CREATE TABLE bar_old (id_old serial not null, ip_old ip_protocol NOT NULL); + +-- name: ListFoo :many +SELECT id_old as foo_old, id_old as baz_old +FROM bar_old +WHERE ip_old = $1 AND id_old = $2; + +-- name: ListBar :many +SELECT * FROM bar_old; + diff --git a/internal/endtoend/testdata/rename/v2/stdlib/sqlc.json b/internal/endtoend/testdata/rename/v2/stdlib/sqlc.json new file mode 100644 index 0000000000..38190bc1de --- /dev/null +++ b/internal/endtoend/testdata/rename/v2/stdlib/sqlc.json @@ -0,0 +1,23 @@ +{ + "version": "2", + "sql": [ + { + "schema": "query.sql", + "queries": "query.sql", + "engine": "postgresql", + "gen": { + "go": { + "package": "querytest", + "out": "go", + "rename": { + "id_old": "IDNew", + "bar_old": "BarNew", + "foo_old": "FooNew", + "ip_protocol": "IPProtocol", + "ip_protocol_tcp": "IPProtocolTCP" + } + } + } + } + ], +}