Extend set operator to accept sets as parameters.

This commit is contained in:
zer0sub 2019-05-13 11:48:58 +02:00
parent 240ddd65e6
commit 1fd63b8783
4 changed files with 57 additions and 8 deletions

View file

@ -126,3 +126,39 @@ OFFSET $2;
`)
assert.Equal(t, len(args), 2)
}
func TestUnionInUnion(t *testing.T) {
expectedSql := `
(
(
SELECT table2.col3 AS "table2.col3",
table2.col3 AS "table2.col3"
FROM db.table2
)
UNION
(
(
SELECT table1.col1 AS "table1.col1"
FROM db.table1
)
UNION ALL
(
SELECT table2.col3 AS "table2.col3"
FROM db.table2
)
)
);
`
query := UNION(
SELECT(table2Col3, table2Col3).FROM(table2),
UNION_ALL(table1.SELECT(table1Col1), table2.SELECT(table2Col3)),
)
queryStr, args, err := query.Sql()
fmt.Println(queryStr)
assert.NilError(t, err)
assert.Equal(t, len(args), 0)
assert.Equal(t, queryStr, expectedSql)
}