8000 fix(codegen/go): Prevent filtering of embedded struct fields (#2868) · sqlc-dev/sqlc@bd46afa · GitHub
[go: up one dir, main page]

Skip to content

Commit bd46afa

Browse files
fix(codegen/go): Prevent filtering of embedded struct fields (#2868)
Resolves #2860
1 parent 2de390d commit bd46afa

File tree

5 files changed

+78
-2
lines changed

5 files changed

+78
-2
lines changed

internal/codegen/golang/gen.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,9 @@ func filterUnusedStructs(enums []Enum, structs []Struct, queries []Query) ([]Enu
345345
if query.Ret.IsStruct() {
346346
for _, field := range query.Ret.Struct.Fields {
347347
keepTypes[field.Type] = struct{}{}
348+
for _, embedField := range field.EmbedFields {
349+
keepTypes[embedField.Type] = struct{}{}
350+
}
348351
}
349352
}
350353
}

internal/endtoend/testdata/omit_unused_structs/postgresql/stdlib/go/models.go

Lines changed: 47 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/endtoend/testdata/omit_unused_structs/postgresql/stdlib/go/query.sql.go

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/endtoend/testdata/omit_unused_structs/postgresql/stdlib/query.sql

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,7 @@ SELECT id FROM query_param_struct_enum_table WHERE id = $1 AND value = $2;
1111
SELECT value FROM query_return_enum_table WHERE id = $1;
1212

1313
-- name: query_return_struct_enum_table :one
14-
SELECT value, another FROM query_return_struct_enum_table WHERE id = $1;
14+
SELECT value, another FROM query_return_struct_enum_table WHERE id = $1;
15+
16+
-- name: query_sqlc_embed_table :one
17+
SELECT sqlc.embed(query_sqlc_embed_table) FROM query_sqlc_embed_table WHERE id = $1;

internal/endtoend/testdata/omit_unused_structs/postgresql/stdlib/schema.sql

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,4 +50,12 @@ CREATE TABLE query_return_struct_enum_table (
5050
id INTEGER PRIMARY KEY,
5151
value query_return_struct_enum_table_enum,
5252
another INTEGER
53-
);
53+
);
54+
55+
CREATE TYPE query_sqlc_embed_enum AS ENUM (
56+
'm', 'n'
57+
);
58+
CREATE TABLE query_sqlc_embed_table (
59+
id INTEGER PRIMARY KEY,
60+
value query_sqlc_embed_enum
61+
)

0 commit comments

Comments
 (0)
0