Skip to content

Commit f61a5d5

Browse files
authored
fix: batch imports filter queries, update cmds having ret type (#1842)
1 parent 4ca759f commit f61a5d5

File tree

8 files changed

+94
-13
lines changed

8 files changed

+94
-13
lines changed

examples/batch/postgresql/batch.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.

examples/batch/postgresql/models.go

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

examples/batch/postgresql/querier.go

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

examples/batch/postgresql/query.sql

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
SELECT * FROM authors
33
WHERE author_id = $1;
44

5+
-- name: DeleteBookExecResult :execresult
6+
DELETE FROM books
7+
WHERE book_id = $1;
8+
59
-- name: DeleteBook :batchexec
610
DELETE FROM books
711
WHERE book_id = $1;
@@ -38,3 +42,7 @@ RETURNING *;
3842
UPDATE books
3943
SET title = $1, tags = $2
4044
WHERE book_id = $3;
45+
46+
-- name: GetBiography :batchone
47+
SELECT biography FROM authors
48+
WHERE author_id = $1;

examples/batch/postgresql/query.sql.go

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

examples/batch/postgresql/schema.sql

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
CREATE TABLE authors (
22
author_id SERIAL PRIMARY KEY,
3-
name text NOT NULL DEFAULT ''
3+
name text NOT NULL DEFAULT '',
4+
biography JSONB
45
);
56

67
CREATE TYPE book_type AS ENUM (

internal/codegen/golang/imports.go

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,9 @@ func (i *importer) interfaceImports() fileImports {
239239
std, pkg := buildImports(i.Settings, i.Queries, func(name string) bool {
240240
for _, q := range i.Queries {
241241
if q.hasRetType() {
242+
if usesBatch([]Query{q}) {
243+
continue
244+
}
242245
if strings.HasPrefix(q.Ret.Type(), name) {
243246
return true
244247
}
@@ -407,11 +410,14 @@ func (i *importer) copyfromImports() fileImports {
407410
}
408411

409412
func (i *importer) batchImports(filename string) fileImports {
410-
std, pkg := buildImports(i.Settings, i.Queries, func(name string) bool {
411-
for _, q := range i.Queries {
412-
if !usesBatch([]Query{q}) {
413-
continue
414-
}
413+
batchQueries := make([]Query, 0, len(i.Queries))
414+
for _, q := range i.Queries {
415+
if usesBatch([]Query{q}) {
416+
batchQueries = append(batchQueries, q)
417+
}
418+
}
419+
std, pkg := buildImports(i.Settings, batchQueries, func(name string) bool {
420+
for _, q := range batchQueries {
415421
if q.hasRetType() {
416422
if q.Ret.EmitStruct() {
417423
for _, f := range q.Ret.Struct.Fields {

internal/codegen/golang/query.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,8 @@ type Query struct {
165165
}
166166

167167
func (q Query) hasRetType() bool {
168-
scanned := q.Cmd == metadata.CmdOne || q.Cmd == metadata.CmdMany
168+
scanned := q.Cmd == metadata.CmdOne || q.Cmd == metadata.CmdMany ||
169+
q.Cmd == metadata.CmdBatchMany || q.Cmd == metadata.CmdBatchOne
169170
return scanned && !q.Ret.isEmpty()
170171
}
171172

0 commit comments

Comments
 (0)