diff --git a/internal/codegen/golang/result.go b/internal/codegen/golang/result.go index ccab7e4544..e4b83fa868 100644 --- a/internal/codegen/golang/result.go +++ b/internal/codegen/golang/result.go @@ -363,6 +363,7 @@ func columnsToStruct(req *plugin.CodeGenRequest, name string, columns []goColumn if req.Settings.Go.EmitJsonTags { tags["json"] = JSONTagName(tagName, req.Settings) } + addExtraGoStructTags(tags, req, c.Column) f := Field{ Name: fieldName, DBName: colName, diff --git a/internal/endtoend/testdata/overrides_result_tag/stdlib/go/db.go b/internal/endtoend/testdata/overrides_result_tag/stdlib/go/db.go new file mode 100644 index 0000000000..8c5b31f933 --- /dev/null +++ b/internal/endtoend/testdata/overrides_result_tag/stdlib/go/db.go @@ -0,0 +1,31 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.18.0 + +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/overrides_result_tag/stdlib/go/models.go b/internal/endtoend/testdata/overrides_result_tag/stdlib/go/models.go new file mode 100644 index 0000000000..7badf0acf6 --- /dev/null +++ b/internal/endtoend/testdata/overrides_result_tag/stdlib/go/models.go @@ -0,0 +1,21 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.18.0 + +package querytest + +import ( + "database/sql" + + "github.com/google/uuid" +) + +type Account struct { + ID uuid.UUID `sometagtype:"some_value"` + State sql.NullString +} + +type UsersAccount struct { + Id2 uuid.UUID + Name sql.NullString +} diff --git a/internal/endtoend/testdata/overrides_result_tag/stdlib/go/query.sql.go b/internal/endtoend/testdata/overrides_result_tag/stdlib/go/query.sql.go new file mode 100644 index 0000000000..22bab7710c --- /dev/null +++ b/internal/endtoend/testdata/overrides_result_tag/stdlib/go/query.sql.go @@ -0,0 +1,38 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.18.0 +// source: query.sql + +package querytest + +import ( + "context" + "database/sql" + + "github.com/google/uuid" +) + +const findAccount = `-- name: FindAccount :one +SELECT + a.id, a.state, + ua.name + -- other fields +FROM + accounts a + INNER JOIN users_accounts ua ON a.id = ua.id2 +WHERE + a.id = $1 +` + +type FindAccountRow struct { + ID uuid.UUID `sometagtype:"some_value"` + State sql.NullString + Name sql.NullString +} + +func (q *Queries) FindAccount(ctx context.Context, accountID uuid.UUID) (FindAccountRow, error) { + row := q.db.QueryRowContext(ctx, findAccount, accountID) + var i FindAccountRow + err := row.Scan(&i.ID, &i.State, &i.Name) + return i, err +} diff --git a/internal/endtoend/testdata/overrides_result_tag/stdlib/query.sql b/internal/endtoend/testdata/overrides_result_tag/stdlib/query.sql new file mode 100644 index 0000000000..f6ec96af94 --- /dev/null +++ b/internal/endtoend/testdata/overrides_result_tag/stdlib/query.sql @@ -0,0 +1,20 @@ +CREATE TABLE public.accounts ( + id uuid DEFAULT public.uuid_generate_v4() NOT NULL, + state character varying +); + +CREATE TABLE public.users_accounts ( + ID2 uuid DEFAULT public.uuid_generate_v4() NOT NULL, + name character varying +); + +-- name: FindAccount :one +SELECT + a.*, + ua.name + -- other fields +FROM + accounts a + INNER JOIN users_accounts ua ON a.id = ua.id2 +WHERE + a.id = @account_id; \ No newline at end of file diff --git a/internal/endtoend/testdata/overrides_result_tag/stdlib/sqlc.yaml b/internal/endtoend/testdata/overrides_result_tag/stdlib/sqlc.yaml new file mode 100644 index 0000000000..032c4f7fc0 --- /dev/null +++ b/internal/endtoend/testdata/overrides_result_tag/stdlib/sqlc.yaml @@ -0,0 +1,12 @@ +version: "2" +sql: + - schema: "query.sql" + queries: "query.sql" + engine: "postgresql" + gen: + go: + package: "querytest" + out: "go" + overrides: + - column: accounts.id + go_struct_tag: sometagtype:"some_value" \ No newline at end of file