diff --git a/internal/endtoend/testdata/sqlc_arg/mysql/go/query.sql.go b/internal/endtoend/testdata/sqlc_arg/mysql/go/query.sql.go index 828ccb337e..55bccc88d4 100644 --- a/internal/endtoend/testdata/sqlc_arg/mysql/go/query.sql.go +++ b/internal/endtoend/testdata/sqlc_arg/mysql/go/query.sql.go @@ -9,6 +9,38 @@ import ( "context" ) +const complicated = `-- name: Complicated :many +WITH names AS (SELECT name from foo WHERE foo.name = ?) +SELECT name FROM names WHERE name IN (SELECT name FROM foo WHERE foo.name = ?) +` + +type ComplicatedParams struct { + Slug string +} + +func (q *Queries) Complicated(ctx context.Context, arg ComplicatedParams) ([]string, error) { + rows, err := q.db.QueryContext(ctx, complicated, arg.Slug, arg.Slug) + if err != nil { + return nil, err + } + defer rows.Close() + var items []string + for rows.Next() { + var name string + if err := rows.Scan(&name); err != nil { + return nil, err + } + items = append(items, name) + } + if err := rows.Close(); err != nil { + return nil, err + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + const funcParamIdent = `-- name: FuncParamIdent :many SELECT name FROM foo WHERE name = ? ` diff --git a/internal/endtoend/testdata/sqlc_arg/mysql/query.sql b/internal/endtoend/testdata/sqlc_arg/mysql/query.sql index a8a16f7de9..a5fa3f06ec 100644 --- a/internal/endtoend/testdata/sqlc_arg/mysql/query.sql +++ b/internal/endtoend/testdata/sqlc_arg/mysql/query.sql @@ -5,3 +5,7 @@ SELECT name FROM foo WHERE name = sqlc.arg(slug); /* name: FuncParamString :many */ SELECT name FROM foo WHERE name = sqlc.arg('slug'); + +/* name: Complicated :many */ +WITH names AS (SELECT name from foo WHERE foo.name = sqlc.arg('slug')) +SELECT name FROM names WHERE name IN (SELECT name FROM foo WHERE foo.name = sqlc.arg('slug'));