Skip to content

Commit 5789c85

Browse files
authored
fix(compiler): Respect alias name for coalesce (#1232)
1 parent 02d449f commit 5789c85

File tree

16 files changed

+319
-1
lines changed

16 files changed

+319
-1
lines changed

internal/compiler/output_columns.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,10 @@ func outputColumns(qc *QueryCatalog, node ast.Node) ([]*Column, error) {
127127
}
128128

129129
case *ast.CoalesceExpr:
130+
name := "coalesce"
131+
if res.Name != nil {
132+
name = *res.Name
133+
}
130134
var found bool
131135
for _, arg := range n.Args.Items {
132136
if found {
@@ -146,7 +150,7 @@ func outputColumns(qc *QueryCatalog, node ast.Node) ([]*Column, error) {
146150
}
147151
}
148152
if !found {
149-
cols = append(cols, &Column{Name: "coalesce", DataType: "any", NotNull: false})
153+
cols = append(cols, &Column{Name: name, DataType: "any", NotNull: false})
150154
}
151155

152156
case *ast.ColumnRef:

internal/endtoend/testdata/coalesce_as/mysql/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/coalesce_as/mysql/go/models.go

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

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

Lines changed: 43 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+
CREATE TABLE foo (
2+
bar text,
3+
baz integer
4+
);
5+
6+
-- name: SumBaz :many
7+
SELECT bar, coalesce(sum(baz), 0) as quantity
8+
FROM foo
9+
GROUP BY 1;
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": "mysql",
7+
"name": "querytest",
8+
"schema": "query.sql",
9+
"queries": "query.sql"
10+
}
11+
]
12+
}

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

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

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

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

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

Lines changed: 40 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+
CREATE TABLE foo (
2+
bar text,
3+
baz bigint
4+
);
5+
6+
-- name: SumBaz :many
7+
SELECT bar, coalesce(sum(baz), 0) as quantity
8+
FROM foo
9+
GROUP BY 1;
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"version": "1",
3+
"packages": [
4+
{
5+
"path": "go",
6+
"engine": "postgresql",
7+
"sql_package": "pgx/v4",
8+
"name": "querytest",
9+
"schema": "query.sql",
10+
"queries": "query.sql"
11+
}
12+
]
13+
}

internal/endtoend/testdata/coalesce_as/postgresql/stdlib/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/coalesce_as/postgresql/stdlib/go/models.go

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

internal/endtoend/testdata/coalesce_as/postgresql/stdlib/go/query.sql.go

Lines changed: 43 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+
CREATE TABLE foo (
2+
bar text,
3+
baz bigint
4+
);
5+
6+
-- name: SumBaz :many
7+
SELECT bar, coalesce(sum(baz), 0) as quantity
8+
FROM foo
9+
GROUP BY 1;
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)