Skip to content

Commit 724ab37

Browse files
authored
fix(compiler): Fix between expression handling of table references (#1268)
1 parent c05375b commit 724ab37

File tree

4 files changed

+87
-8
lines changed

4 files changed

+87
-8
lines changed

internal/compiler/resolve.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,8 @@ func resolveCatalogRefs(c *catalog.Catalog, qc *QueryCatalog, rvs []*ast.RangeVa
204204

205205
var key string
206206
if ref, ok := n.Expr.(*ast.ColumnRef); ok {
207-
if str, ok := ref.Fields.Items[0].(*ast.String); ok {
207+
itemsCount := len(ref.Fields.Items)
208+
if str, ok := ref.Fields.Items[itemsCount-1].(*ast.String); ok {
208209
key = str.Str
209210
}
210211
}

internal/endtoend/testdata/between_args/mysql/go/query.sql.go

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

internal/endtoend/testdata/between_args/mysql/query.sql

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,13 @@ CREATE TABLE products (
99
SELECT *
1010
FROM products
1111
WHERE price BETWEEN ? AND ?;
12+
13+
-- name: GetBetweenPricesTable :many
14+
SELECT *
15+
FROM products
16+
WHERE products.price BETWEEN ? AND ?;
17+
18+
-- name: GetBetweenPricesTableAlias :many
19+
SELECT *
20+
FROM products as p
21+
WHERE p.price BETWEEN ? AND ?;
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
{
22
"version": "1",
33
"packages": [
4-
{
5-
"path": "go",
6-
"engine": "mysql",
7-
"name": "querytest",
8-
"schema": "query.sql",
9-
"queries": "query.sql"
10-
}
4+
{
5+
"path": "go",
6+
"engine": "mysql",
7+
"name": "querytest",
8+
"schema": "query.sql",
9+
"queries": "query.sql"
10+
}
1111
]
1212
}

0 commit comments

Comments
 (0)