mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-08-28 10:54:59 +00:00
139 lines
3.6 KiB
Go
139 lines
3.6 KiB
Go
package defs
|
|
|
|
import "github.com/featurebasedb/featurebase/v3/pql"
|
|
|
|
var selectHavingTests = TableTest{
|
|
name: "select-having",
|
|
Table: tbl(
|
|
"having_test",
|
|
srcHdrs(
|
|
srcHdr("_id", fldTypeID),
|
|
srcHdr("an_int", fldTypeInt, "min 0", "max 100"),
|
|
srcHdr("an_id_set", fldTypeIDSet),
|
|
srcHdr("an_id", fldTypeID),
|
|
srcHdr("a_string", fldTypeString),
|
|
srcHdr("a_string_set", fldTypeStringSet),
|
|
srcHdr("a_decimal", fldTypeDecimal2),
|
|
),
|
|
srcRows(
|
|
srcRow(int64(1), int64(11), []int64{11, 12, 13}, int64(101), "str1", []string{"a1", "b1", "c1"}, float64(123.45)),
|
|
srcRow(int64(2), int64(22), []int64{21, 22, 23}, int64(201), "str2", []string{"a2", "b2", "c2"}, float64(234.56)),
|
|
srcRow(int64(3), int64(33), []int64{31, 32, 33}, int64(301), "str3", []string{"a3", "b3", "c3"}, float64(345.67)),
|
|
srcRow(int64(4), int64(44), []int64{41, 42, 43}, int64(401), "str4", []string{"a4", "b4", "c4"}, float64(456.78)),
|
|
srcRow(int64(5), int64(11), []int64{11, 12, 13}, int64(101), "str1", []string{"a5", "b5", "c5"}, float64(567.89)),
|
|
),
|
|
),
|
|
SQLTests: []SQLTest{
|
|
{
|
|
name: "countfieldincluded",
|
|
SQLs: sqls(
|
|
"select count(an_int), an_int from having_test group by an_int having count(an_int) = 1",
|
|
),
|
|
ExpHdrs: hdrs(
|
|
hdr("", fldTypeInt),
|
|
hdr("an_int", fldTypeInt),
|
|
),
|
|
ExpRows: rows(
|
|
row(int64(1), int64(22)),
|
|
row(int64(1), int64(33)),
|
|
row(int64(1), int64(44)),
|
|
),
|
|
Compare: CompareExactUnordered,
|
|
SortStringKeys: true,
|
|
},
|
|
{
|
|
name: "countfieldnotincluded",
|
|
SQLs: sqls(
|
|
"select an_int from having_test group by an_int having count(an_int) = 1",
|
|
),
|
|
ExpHdrs: hdrs(
|
|
hdr("an_int", fldTypeInt),
|
|
),
|
|
ExpRows: rows(
|
|
row(int64(22)),
|
|
row(int64(33)),
|
|
row(int64(44)),
|
|
),
|
|
Compare: CompareExactUnordered,
|
|
SortStringKeys: true,
|
|
},
|
|
{
|
|
name: "countstarincluded",
|
|
SQLs: sqls(
|
|
"select count(*), an_int from having_test group by an_int having count(*) > 1",
|
|
),
|
|
ExpHdrs: hdrs(
|
|
hdr("", fldTypeInt),
|
|
hdr("an_int", fldTypeInt),
|
|
),
|
|
ExpRows: rows(
|
|
row(int64(2), int64(11)),
|
|
),
|
|
Compare: CompareExactUnordered,
|
|
SortStringKeys: true,
|
|
},
|
|
{
|
|
name: "countstarnotincluded",
|
|
SQLs: sqls(
|
|
"select an_int from having_test group by an_int having count(*) > 1",
|
|
),
|
|
ExpHdrs: hdrs(
|
|
hdr("an_int", fldTypeInt),
|
|
),
|
|
ExpRows: rows(
|
|
row(
|
|
int64(11),
|
|
),
|
|
),
|
|
Compare: CompareExactUnordered,
|
|
SortStringKeys: true,
|
|
},
|
|
{
|
|
name: "sum-dec",
|
|
SQLs: sqls(
|
|
"select sum(a_decimal), an_int from having_test group by an_int having sum(a_decimal) < 250.00",
|
|
),
|
|
ExpHdrs: hdrs(
|
|
hdr("", fldTypeDecimal2),
|
|
hdr("an_int", fldTypeInt),
|
|
),
|
|
ExpRows: rows(
|
|
row(pql.NewDecimal(23456, 2), int64(22)),
|
|
),
|
|
Compare: CompareExactUnordered,
|
|
SortStringKeys: true,
|
|
},
|
|
{
|
|
name: "sum-int",
|
|
SQLs: sqls(
|
|
"select sum(an_int), an_int from having_test group by an_int having sum(an_int) < 25",
|
|
),
|
|
ExpHdrs: hdrs(
|
|
hdr("", fldTypeInt),
|
|
hdr("an_int", fldTypeInt),
|
|
),
|
|
ExpRows: rows(
|
|
row(int64(22), int64(11)),
|
|
row(int64(22), int64(22)),
|
|
),
|
|
Compare: CompareExactUnordered,
|
|
SortStringKeys: true,
|
|
},
|
|
// may fail in DAX due to missing string translation.
|
|
{
|
|
name: "string",
|
|
SQLs: sqls(
|
|
"select a_string, count(*) from having_test group by a_string having count(*) > 1",
|
|
),
|
|
ExpHdrs: hdrs(
|
|
hdr("a_string", fldTypeString),
|
|
hdr("", fldTypeInt),
|
|
),
|
|
ExpRows: rows(
|
|
row(string("str1"), int64(2)),
|
|
),
|
|
Compare: CompareExactUnordered,
|
|
SortStringKeys: true,
|
|
},
|
|
},
|
|
}
|