Skip to content

Commit 6051c03

Browse files
authored
fix(golang): Prevent duplicate enum output (#2447)
1 parent a60acbf commit 6051c03

File tree

5 files changed

+16
-10
lines changed

5 files changed

+16
-10
lines changed

internal/codegen/golang/gen.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -318,10 +318,9 @@ func filterUnusedStructs(enums []Enum, structs []Struct, queries []Query) ([]Enu
318318

319319
keepEnums := make([]Enum, 0, len(enums))
320320
for _, enum := range enums {
321-
if _, ok := keepTypes[enum.Name]; ok {
322-
keepEnums = append(keepEnums, enum)
323-
}
324-
if _, ok := keepTypes["Null"+enum.Name]; ok {
321+
_, keep := keepTypes[enum.Name]
322+
_, keepNull := keepTypes["Null"+enum.Name]
323+
if keep || keepNull {
325324
keepEnums = append(keepEnums, enum)
326325
}
327326
}

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

Lines changed: 6 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: 5 additions & 5 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: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
SELECT * FROM query_return_full_table;
33

44
-- name: query_param_enum_table :one
5-
SELECT id FROM query_param_enum_table WHERE value = $1;
5+
SELECT * FROM query_param_enum_table WHERE value = $1;
66

77
-- name: query_param_struct_enum_table :one
88
SELECT id FROM query_param_struct_enum_table WHERE id = $1 AND value = $2;

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ CREATE TYPE query_param_enum_table_enum AS ENUM (
2323
);
2424
CREATE TABLE query_param_enum_table (
2525
id INTEGER PRIMARY KEY,
26+
other query_param_enum_table_enum NOT NULL,
2627
value query_param_enum_table_enum
2728
);
2829

0 commit comments

Comments
 (0)