Skip to content

Commit 66326ef

Browse files
authored
Check aliases when resolving references (#1110)
* compiler: Check aliases when resolving references * Add testcase for nextval
1 parent 6f9bf21 commit 66326ef

File tree

11 files changed

+240
-0
lines changed

11 files changed

+240
-0
lines changed

internal/compiler/resolve.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,9 @@ func resolveCatalogRefs(c *catalog.Catalog, qc *QueryCatalog, rvs []*ast.RangeVa
6060
if err != nil {
6161
return nil, err
6262
}
63+
if _, found := aliasMap[fqn.Name]; found {
64+
continue
65+
}
6366
table, err := c.GetTable(fqn)
6467
if err != nil {
6568
// If the table name doesn't exist, fisrt check if it's a CTE

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

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

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

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

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

Lines changed: 71 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
create table events
2+
(
3+
ID int
4+
);
5+
6+
create table handled_events
7+
(
8+
last_handled_id int,
9+
handler text
10+
);
11+
12+
13+
-- name: SelectAllJoinedAlias :many
14+
select e.* from events e
15+
inner join handled_events he
16+
on e.ID > he.last_handled_id
17+
where he.handler = $1
18+
for update of he skip locked;
19+
20+
-- name: SelectAllJoined :many
21+
select events.* from events
22+
inner join handled_events
23+
on events.ID > handled_events.last_handled_id
24+
where handled_events.handler = $1
25+
for update of handled_events skip locked;
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"version": "1",
3+
"packages": [
4+
{
5+
"path": "go",
6+
"engine": "postgresql",
7+
"name": "querytest",
8+
"schema": "query.sql",
9+
"queries": "query.sql"
10+
}
11+
]
12+
}

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

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

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

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

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

Lines changed: 25 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
-- Simple table
2+
CREATE TABLE authors (
3+
id BIGSERIAL PRIMARY KEY
4+
);
5+
6+
-- name: GetNextID :one
7+
SELECT pk, pk FROM
8+
(SELECT nextval('authors_id_seq') as pk) AS alias;
9+
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"version": "1",
3+
"packages": [
4+
{
5+
"path": "go",
6+
"engine": "postgresql",
7+
"name": "querytest",
8+
"schema": "query.sql",
9+
"queries": "query.sql"
10+
}
11+
]
12+
}

0 commit comments

Comments
 (0)