Skip to content

Commit f0aba1b

Browse files
authored
Support casting coalesce funcs (sqlc-dev#62)
1 parent 7d6f0ec commit f0aba1b

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

internal/dinosql/parser.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,9 @@ func outputColumns(c core.Catalog, node nodes.Node) ([]core.Column, error) {
445445
if ref, ok := n.Arg.(nodes.ColumnRef); ok {
446446
name = join(ref.Fields, "_")
447447
}
448+
if res.Name != nil {
449+
name = *res.Name
450+
}
448451
// TODO Validate column names
449452
col := catalog.ToColumn(n.TypeName)
450453
col.Name = name

internal/dinosql/query_test.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -518,6 +518,20 @@ func TestQueries(t *testing.T) {
518518
},
519519
},
520520
},
521+
{
522+
"cast coalesce",
523+
`
524+
CREATE TABLE foo (bar text);
525+
526+
SELECT coalesce(bar, '')::text as login
527+
FROM foo;
528+
`,
529+
Query{
530+
Columns: []core.Column{
531+
{Name: "login", DataType: "text", NotNull: true},
532+
},
533+
},
534+
},
521535
} {
522536
test := tc
523537
t.Run(test.name, func(t *testing.T) {

0 commit comments

Comments
 (0)