Skip to content

Commit af11d3d

Browse files
committed
test: Add case for #2644
1 parent 936ba46 commit af11d3d

File tree

8 files changed

+163
-0
lines changed

8 files changed

+163
-0
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
https://github.com/sqlc-dev/sqlc/issues/2644
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"contexts": ["managed-db"]
3+
}

internal/endtoend/testdata/cte_recursive_subquery/postgresql/pgx/go/db.go

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

internal/endtoend/testdata/cte_recursive_subquery/postgresql/pgx/go/models.go

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

internal/endtoend/testdata/cte_recursive_subquery/postgresql/pgx/go/query.sql.go

Lines changed: 60 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
-- name: GetLatestVersion :one
2+
WITH RECURSIVE search_tree(id, chain_id, chain_counter) AS (
3+
SELECT base.id, base.id AS chain_id, 0 as chain_counter
4+
FROM versions AS base
5+
WHERE base.previous_version_id IS NULL
6+
UNION ALL
7+
SELECT v.id, search_tree.chain_id, search_tree.chain_counter + 1
8+
FROM versions AS v
9+
INNER JOIN search_tree ON search_tree.id = v.previous_version_id
10+
)
11+
SELECT DISTINCT ON (search_tree.chain_id)
12+
search_tree.id
13+
FROM search_tree
14+
ORDER BY search_tree.chain_id, chain_counter DESC;
15+
16+
-- name: GetLatestVersionWithSubquery :one
17+
SELECT id
18+
FROM versions
19+
WHERE versions.id IN (
20+
WITH RECURSIVE search_tree(id, chain_id, chain_counter) AS (
21+
SELECT base.id, base.id AS chain_id, 0 as chain_counter
22+
FROM versions AS base
23+
WHERE versions.previous_version_id IS NULL
24+
UNION ALL
25+
SELECT v.id, search_tree.chain_id, search_tree.chain_counter + 1
26+
FROM versions AS v
27+
INNER JOIN search_tree ON search_tree.id = v.previous_version_id
28+
)
29+
SELECT DISTINCT ON (search_tree.chain_id)
30+
search_tree.id
31+
FROM search_tree
32+
ORDER BY search_tree.chain_id, chain_counter DESC
33+
);
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
CREATE TABLE versions (
2+
id BIGSERIAL PRIMARY KEY,
3+
name TEXT,
4+
previous_version_id bigint NOT NULL
5+
);
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
version: "2"
2+
cloud:
3+
project: "01HAQMMECEYQYKFJN8MP16QC41"
4+
sql:
5+
- engine: "postgresql"
6+
schema: "schema.sql"
7+
queries: "query.sql"
8+
gen:
9+
go:
10+
package: "querytest"
11+
out: "go"
12+
sql_package: "pgx/v5"
13+
database:
14+
managed: true

0 commit comments

Comments
 (0)