65 lines
2 KiB
Go
65 lines
2 KiB
Go
package jet
|
|
|
|
import "testing"
|
|
|
|
func TestProjectionAs(t *testing.T) {
|
|
projectionList := ProjectionList{
|
|
table1Col3,
|
|
SUM(table1ColInt).AS("sum"),
|
|
SUM(table1ColInt).AS("table.sum"),
|
|
ProjectionList{
|
|
table1ColBool,
|
|
AVG(table1ColInt).AS("avg"),
|
|
AVG(table1ColInt).AS("t.avg"),
|
|
},
|
|
ColumnList{table2Col3, table2Col4},
|
|
}
|
|
|
|
aliasedProjectionList := projectionList.As("new_alias.*")
|
|
|
|
assertProjectionSerialize(t, aliasedProjectionList,
|
|
`table1.col3 AS "new_alias.col3",
|
|
SUM(table1.col_int) AS "new_alias.sum",
|
|
SUM(table1.col_int) AS "new_alias.sum",
|
|
table1.col_bool AS "new_alias.col_bool",
|
|
AVG(table1.col_int) AS "new_alias.avg",
|
|
AVG(table1.col_int) AS "new_alias.avg",
|
|
table2.col3 AS "new_alias.col3",
|
|
table2.col4 AS "new_alias.col4"`)
|
|
|
|
aliasedProjectionList = projectionList.As("")
|
|
|
|
assertProjectionSerialize(t, aliasedProjectionList,
|
|
`table1.col3 AS "col3",
|
|
SUM(table1.col_int) AS "sum",
|
|
SUM(table1.col_int) AS "sum",
|
|
table1.col_bool AS "col_bool",
|
|
AVG(table1.col_int) AS "avg",
|
|
AVG(table1.col_int) AS "avg",
|
|
table2.col3 AS "col3",
|
|
table2.col4 AS "col4"`)
|
|
|
|
subQueryProjections := projectionList.fromImpl(NewSelectTable(nil, "subQuery", nil))
|
|
|
|
assertProjectionSerialize(t, subQueryProjections,
|
|
`"subQuery"."table1.col3" AS "table1.col3",
|
|
"subQuery".sum AS "sum",
|
|
"subQuery"."table.sum" AS "table.sum",
|
|
"subQuery"."table1.col_bool" AS "table1.col_bool",
|
|
"subQuery".avg AS "avg",
|
|
"subQuery"."t.avg" AS "t.avg",
|
|
"subQuery"."table2.col3" AS "table2.col3",
|
|
"subQuery"."table2.col4" AS "table2.col4"`)
|
|
|
|
aliasedSubQueryProjectionList := subQueryProjections.(ProjectionList).As("subAlias")
|
|
|
|
assertProjectionSerialize(t, aliasedSubQueryProjectionList,
|
|
`"subQuery"."table1.col3" AS "subAlias.col3",
|
|
"subQuery".sum AS "subAlias.sum",
|
|
"subQuery"."table.sum" AS "subAlias.sum",
|
|
"subQuery"."table1.col_bool" AS "subAlias.col_bool",
|
|
"subQuery".avg AS "subAlias.avg",
|
|
"subQuery"."t.avg" AS "subAlias.avg",
|
|
"subQuery"."table2.col3" AS "subAlias.col3",
|
|
"subQuery"."table2.col4" AS "subAlias.col4"`)
|
|
}
|