Skip to content

Commit a733c39

Browse files
authored
fix(codegen/golang): Fixed detection of the used package (#2597)
* fix(codegen/golang): Fixed detection of the used package close #2459 * test: add endtoend
1 parent 779fa3f commit a733c39

File tree

7 files changed

+137
-10
lines changed

7 files changed

+137
-10
lines changed

internal/codegen/golang/imports.go

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -243,8 +243,10 @@ func (i *importer) interfaceImports() fileImports {
243243
}
244244
}
245245
if !q.Arg.isEmpty() {
246-
if hasPrefixIgnoringSliceAndPointerPrefix(q.Arg.Type(), name) {
247-
return true
246+
for _, f := range q.Arg.Fields() {
247+
if hasPrefixIgnoringSliceAndPointerPrefix(f.Type, name) {
248+
return true
249+
}
248250
}
249251
}
250252
}
@@ -311,16 +313,11 @@ func (i *importer) queryImports(filename string) fileImports {
311313
}
312314
}
313315
if !q.Arg.isEmpty() {
314-
if q.Arg.EmitStruct() {
315-
for _, f := range q.Arg.Struct.Fields {
316-
if hasPrefixIgnoringSliceAndPointerPrefix(f.Type, name) {
317-
return true
318-
}
316+
for _, f := range q.Arg.Fields() {
317+
if hasPrefixIgnoringSliceAndPointerPrefix(f.Type, name) {
318+
return true
319319
}
320320
}
321-
if hasPrefixIgnoringSliceAndPointerPrefix(q.Arg.Type(), name) {
322-
return true
323-
}
324321
}
325322
}
326323
return false

internal/endtoend/testdata/query_parameter_limit_param_only/postgresql/go/db.go

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

internal/endtoend/testdata/query_parameter_limit_param_only/postgresql/go/models.go

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

internal/endtoend/testdata/query_parameter_limit_param_only/postgresql/go/querier.go

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

internal/endtoend/testdata/query_parameter_limit_param_only/postgresql/go/query.sql.go

Lines changed: 33 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
CREATE TABLE notice (
2+
id INTEGER NOT NULL,
3+
cnt INTEGER NOT NULL,
4+
status TEXT NOT NULL,
5+
notice_at TIMESTAMP,
6+
created_at TIMESTAMP NOT NULL
7+
);
8+
9+
-- name: MarkNoticeDone :exec
10+
UPDATE notice
11+
SET status='done', notice_at=$1
12+
WHERE id=$2;
13+
14+
-- name: CreateNotice :exec
15+
INSERT INTO notice (cnt, created_at)
16+
VALUES ($1, $2);
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"version": "1",
3+
"packages": [
4+
{
5+
"path": "go",
6+
"engine": "postgresql",
7+
"schema": "query.sql",
8+
"queries": "query.sql",
9+
"query_parameter_limit": 2,
10+
"emit_interface": true,
11+
"name": "querytest"
12+
}
13+
]
14+
}

0 commit comments

Comments
 (0)