snapshot of https://github.com/sqlc-dev/sqlc.git (main, 2026-09-16; blobs > 131072B omitted)
Some checks failed
kotlin / test (push) Has been skipped
python / test (push) Has been skipped
typescript / test (push) Has been skipped
go / build darwin/amd64 (push) Has been cancelled
go / build linux/amd64 (push) Has been cancelled
go / build windows/amd64 (push) Has been cancelled
go / build darwin/arm64 (push) Has been cancelled
go / build linux/arm64 (push) Has been cancelled
go / build windows/arm64 (push) Has been cancelled
go / test (push) Has been cancelled
go / vuln_check (push) Has been cancelled
Some checks failed
kotlin / test (push) Has been skipped
python / test (push) Has been skipped
typescript / test (push) Has been skipped
go / build darwin/amd64 (push) Has been cancelled
go / build linux/amd64 (push) Has been cancelled
go / build windows/amd64 (push) Has been cancelled
go / build darwin/arm64 (push) Has been cancelled
go / build linux/arm64 (push) Has been cancelled
go / build windows/arm64 (push) Has been cancelled
go / test (push) Has been cancelled
go / vuln_check (push) Has been cancelled
This commit is contained in:
1
internal/endtoend/testdata/cte_with_in/issue.md
vendored
Normal file
1
internal/endtoend/testdata/cte_with_in/issue.md
vendored
Normal file
@@ -0,0 +1 @@
|
||||
https://github.com/sqlc-dev/sqlc/issues/2153
|
||||
3
internal/endtoend/testdata/cte_with_in/postgresql/pganalyze/exec.json
vendored
Normal file
3
internal/endtoend/testdata/cte_with_in/postgresql/pganalyze/exec.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"contexts": ["managed-db"]
|
||||
}
|
||||
32
internal/endtoend/testdata/cte_with_in/postgresql/pganalyze/go/db.go
vendored
Normal file
32
internal/endtoend/testdata/cte_with_in/postgresql/pganalyze/go/db.go
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.31.1
|
||||
|
||||
package querytest
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/jackc/pgx/v5"
|
||||
"github.com/jackc/pgx/v5/pgconn"
|
||||
)
|
||||
|
||||
type DBTX interface {
|
||||
Exec(context.Context, string, ...any) (pgconn.CommandTag, error)
|
||||
Query(context.Context, string, ...any) (pgx.Rows, error)
|
||||
QueryRow(context.Context, string, ...any) pgx.Row
|
||||
}
|
||||
|
||||
func New(db DBTX) *Queries {
|
||||
return &Queries{db: db}
|
||||
}
|
||||
|
||||
type Queries struct {
|
||||
db DBTX
|
||||
}
|
||||
|
||||
func (q *Queries) WithTx(tx pgx.Tx) *Queries {
|
||||
return &Queries{
|
||||
db: tx,
|
||||
}
|
||||
}
|
||||
20
internal/endtoend/testdata/cte_with_in/postgresql/pganalyze/go/models.go
vendored
Normal file
20
internal/endtoend/testdata/cte_with_in/postgresql/pganalyze/go/models.go
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.31.1
|
||||
|
||||
package querytest
|
||||
|
||||
import (
|
||||
"github.com/jackc/pgx/v5/pgtype"
|
||||
)
|
||||
|
||||
type L struct {
|
||||
ID int64
|
||||
ParentID pgtype.Int4
|
||||
}
|
||||
|
||||
type T struct {
|
||||
ID int64
|
||||
LID pgtype.Int4
|
||||
F pgtype.Text
|
||||
}
|
||||
164
internal/endtoend/testdata/cte_with_in/postgresql/pganalyze/go/query.sql.go
vendored
Normal file
164
internal/endtoend/testdata/cte_with_in/postgresql/pganalyze/go/query.sql.go
vendored
Normal file
@@ -0,0 +1,164 @@
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.31.1
|
||||
// source: query.sql
|
||||
|
||||
package querytest
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/jackc/pgx/v5/pgtype"
|
||||
)
|
||||
|
||||
const getAll = `-- name: GetAll :many
|
||||
SELECT id, parent_id FROM L
|
||||
`
|
||||
|
||||
func (q *Queries) GetAll(ctx context.Context) ([]L, error) {
|
||||
rows, err := q.db.Query(ctx, getAll)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
var items []L
|
||||
for rows.Next() {
|
||||
var i L
|
||||
if err := rows.Scan(&i.ID, &i.ParentID); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
items = append(items, i)
|
||||
}
|
||||
if err := rows.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return items, nil
|
||||
}
|
||||
|
||||
const getAll1 = `-- name: GetAll1 :many
|
||||
with recursive cte as (
|
||||
select id, L_ID, F from T
|
||||
union all
|
||||
select c.id, c.L_ID, c.F from T as c where c.L_ID = $1
|
||||
) select id, l_id, f from cte
|
||||
`
|
||||
|
||||
type GetAll1Row struct {
|
||||
ID int64
|
||||
LID pgtype.Int4
|
||||
F pgtype.Text
|
||||
}
|
||||
|
||||
func (q *Queries) GetAll1(ctx context.Context, lID pgtype.Int4) ([]GetAll1Row, error) {
|
||||
rows, err := q.db.Query(ctx, getAll1, lID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
var items []GetAll1Row
|
||||
for rows.Next() {
|
||||
var i GetAll1Row
|
||||
if err := rows.Scan(&i.ID, &i.LID, &i.F); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
items = append(items, i)
|
||||
}
|
||||
if err := rows.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return items, nil
|
||||
}
|
||||
|
||||
const getAll2 = `-- name: GetAll2 :many
|
||||
with recursive cte as (
|
||||
select id, L_ID, F from T where T.ID=2
|
||||
union all
|
||||
select c.id, c.L_ID, c.F from T as c where c.L_ID = $1
|
||||
) select id, l_id, f from cte
|
||||
`
|
||||
|
||||
type GetAll2Row struct {
|
||||
ID int64
|
||||
LID pgtype.Int4
|
||||
F pgtype.Text
|
||||
}
|
||||
|
||||
func (q *Queries) GetAll2(ctx context.Context, lID pgtype.Int4) ([]GetAll2Row, error) {
|
||||
rows, err := q.db.Query(ctx, getAll2, lID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
var items []GetAll2Row
|
||||
for rows.Next() {
|
||||
var i GetAll2Row
|
||||
if err := rows.Scan(&i.ID, &i.LID, &i.F); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
items = append(items, i)
|
||||
}
|
||||
if err := rows.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return items, nil
|
||||
}
|
||||
|
||||
const getAll3 = `-- name: GetAll3 :many
|
||||
select id from T where L_ID in(
|
||||
with recursive cte as (
|
||||
select id, L_ID, F from T where T.ID =2
|
||||
union all
|
||||
select c.id, c.L_ID, c.F from T as c where c.L_ID = $1
|
||||
) select l_id from cte
|
||||
)
|
||||
`
|
||||
|
||||
func (q *Queries) GetAll3(ctx context.Context, dollar_1 pgtype.Int4) ([]int64, error) {
|
||||
rows, err := q.db.Query(ctx, getAll3, dollar_1)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
var items []int64
|
||||
for rows.Next() {
|
||||
var id int64
|
||||
if err := rows.Scan(&id); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
items = append(items, id)
|
||||
}
|
||||
if err := rows.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return items, nil
|
||||
}
|
||||
|
||||
const getAll4 = `-- name: GetAll4 :many
|
||||
select id from T where L_ID in(
|
||||
with recursive L as (
|
||||
select id, L_ID, F from T where T.ID =2
|
||||
union all
|
||||
select c.id, c.L_ID, c.F from T as c where c.L_ID = $1
|
||||
) select l_id from L
|
||||
)
|
||||
`
|
||||
|
||||
func (q *Queries) GetAll4(ctx context.Context, lID pgtype.Int4) ([]int64, error) {
|
||||
rows, err := q.db.Query(ctx, getAll4, lID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
var items []int64
|
||||
for rows.Next() {
|
||||
var id int64
|
||||
if err := rows.Scan(&id); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
items = append(items, id)
|
||||
}
|
||||
if err := rows.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return items, nil
|
||||
}
|
||||
34
internal/endtoend/testdata/cte_with_in/postgresql/pganalyze/query.sql
vendored
Normal file
34
internal/endtoend/testdata/cte_with_in/postgresql/pganalyze/query.sql
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
-- name: GetAll :many
|
||||
SELECT * FROM L;
|
||||
|
||||
-- name: GetAll1 :many
|
||||
with recursive cte as (
|
||||
select id, L_ID, F from T
|
||||
union all
|
||||
select c.id, c.L_ID, c.F from T as c where c.L_ID = $1
|
||||
) select id, l_id, f from cte;
|
||||
|
||||
-- name: GetAll2 :many
|
||||
with recursive cte as (
|
||||
select id, L_ID, F from T where T.ID=2
|
||||
union all
|
||||
select c.id, c.L_ID, c.F from T as c where c.L_ID = $1
|
||||
) select id, l_id, f from cte;
|
||||
|
||||
-- name: GetAll4 :many
|
||||
select id from T where L_ID in(
|
||||
with recursive L as (
|
||||
select id, L_ID, F from T where T.ID =2
|
||||
union all
|
||||
select c.id, c.L_ID, c.F from T as c where c.L_ID = $1
|
||||
) select l_id from L
|
||||
);
|
||||
|
||||
-- name: GetAll3 :many
|
||||
select id from T where L_ID in(
|
||||
with recursive cte as (
|
||||
select id, L_ID, F from T where T.ID =2
|
||||
union all
|
||||
select c.id, c.L_ID, c.F from T as c where c.L_ID = $1
|
||||
) select l_id from cte
|
||||
);
|
||||
12
internal/endtoend/testdata/cte_with_in/postgresql/pganalyze/schema.sql
vendored
Normal file
12
internal/endtoend/testdata/cte_with_in/postgresql/pganalyze/schema.sql
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
-- https://github.com/sqlc-dev/sqlc/issues/2153
|
||||
|
||||
CREATE TABLE L (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
parent_id int null
|
||||
);
|
||||
|
||||
CREATE TABLE T (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
L_ID int,
|
||||
F varchar(256)
|
||||
);
|
||||
14
internal/endtoend/testdata/cte_with_in/postgresql/pganalyze/sqlc.json
vendored
Normal file
14
internal/endtoend/testdata/cte_with_in/postgresql/pganalyze/sqlc.json
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"version": "1",
|
||||
"packages": [
|
||||
{
|
||||
"path": "go",
|
||||
"name": "querytest",
|
||||
"engine": "postgresql",
|
||||
"schema": "schema.sql",
|
||||
"queries": "query.sql",
|
||||
"sql_package": "pgx/v5"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user