test cases: window
This commit is contained in:
parent
fa61c13a75
commit
450d262415
|
@ -930,7 +930,7 @@ int32_t setNullSelectivityValue(SqlFunctionCtx* pCtx, SSDataBlock* pBlock, int32
|
||||||
|
|
||||||
SColumnInfoData* pDstCol = taosArrayGet(pBlock->pDataBlock, dstSlotId);
|
SColumnInfoData* pDstCol = taosArrayGet(pBlock->pDataBlock, dstSlotId);
|
||||||
if (NULL == pDstCol) {
|
if (NULL == pDstCol) {
|
||||||
return TSDB_CODE_OUT_OF_RANGE;
|
return terrno;
|
||||||
}
|
}
|
||||||
colDataSetNULL(pDstCol, rowIndex);
|
colDataSetNULL(pDstCol, rowIndex);
|
||||||
}
|
}
|
||||||
|
@ -964,7 +964,7 @@ int32_t setSelectivityValue(SqlFunctionCtx* pCtx, SSDataBlock* pBlock, const STu
|
||||||
|
|
||||||
SColumnInfoData* pDstCol = taosArrayGet(pBlock->pDataBlock, dstSlotId);
|
SColumnInfoData* pDstCol = taosArrayGet(pBlock->pDataBlock, dstSlotId);
|
||||||
if (NULL == pDstCol) {
|
if (NULL == pDstCol) {
|
||||||
return TSDB_CODE_OUT_OF_RANGE;
|
return terrno;
|
||||||
}
|
}
|
||||||
if (nullList[j]) {
|
if (nullList[j]) {
|
||||||
colDataSetNULL(pDstCol, rowIndex);
|
colDataSetNULL(pDstCol, rowIndex);
|
||||||
|
|
|
@ -942,6 +942,86 @@ class TDTestCase:
|
||||||
tdSql.checkCols(5)
|
tdSql.checkCols(5)
|
||||||
tdSql.checkData(0, 4, 2)
|
tdSql.checkData(0, 4, 2)
|
||||||
|
|
||||||
|
tdSql.query(f'select c0, cols(first(ts), c0, c1) from test.meters state_window(c0) order by c0')
|
||||||
|
tdSql.checkRows(4)
|
||||||
|
tdSql.checkCols(3)
|
||||||
|
tdSql.checkData(0, 0, 1)
|
||||||
|
tdSql.checkData(0, 1, 1)
|
||||||
|
tdSql.checkData(0, 2, 1)
|
||||||
|
tdSql.checkData(1, 0, 2)
|
||||||
|
tdSql.checkData(1, 1, 2)
|
||||||
|
tdSql.checkData(1, 2, 2)
|
||||||
|
tdSql.checkData(2, 0, 3)
|
||||||
|
|
||||||
|
tdSql.query(f'select c0, cols(first(ts), c0, c1), tbname from test.meters state_window(c0)')
|
||||||
|
tdSql.checkRows(4)
|
||||||
|
tdSql.checkCols(4)
|
||||||
|
tdSql.checkData(0, 0, 1)
|
||||||
|
tdSql.checkData(0, 1, 1)
|
||||||
|
tdSql.checkData(0, 2, 1)
|
||||||
|
tdSql.checkData(0, 3, 'd0')
|
||||||
|
tdSql.checkData(1, 0, 2)
|
||||||
|
tdSql.checkData(1, 1, 2)
|
||||||
|
tdSql.checkData(1, 2, 2)
|
||||||
|
tdSql.checkData(2, 0, 3)
|
||||||
|
|
||||||
|
tdSql.query(f'select c0, cols(first(ts), c0, c1), t1 from test.meters state_window(c0)')
|
||||||
|
tdSql.checkRows(4)
|
||||||
|
tdSql.checkCols(4)
|
||||||
|
tdSql.checkData(0, 0, 1)
|
||||||
|
tdSql.checkData(0, 1, 1)
|
||||||
|
tdSql.checkData(0, 2, 1)
|
||||||
|
tdSql.checkData(0, 3, 'st1')
|
||||||
|
tdSql.checkData(1, 0, 2)
|
||||||
|
tdSql.checkData(1, 1, 2)
|
||||||
|
tdSql.checkData(1, 2, 2)
|
||||||
|
tdSql.checkData(2, 0, 3)
|
||||||
|
|
||||||
|
tdSql.error(f'select tbname, c0, cols(first(ts), c0, c1), cols(last(ts), c0) from test.meters state_window(c0)')
|
||||||
|
|
||||||
|
def window_test2(self):
|
||||||
|
tdSql.query(f'select cols(first(ts), c0, c1), count(1) from test.meters session(ts, 3)')
|
||||||
|
tdSql.checkRows(2)
|
||||||
|
tdSql.checkCols(3)
|
||||||
|
tdSql.checkData(0, 0, 1)
|
||||||
|
tdSql.checkData(0, 1, 1)
|
||||||
|
tdSql.checkData(0, 2, 6)
|
||||||
|
tdSql.checkData(1, 0, 0)
|
||||||
|
tdSql.checkData(1, 1, None)
|
||||||
|
tdSql.checkData(1, 2, 5)
|
||||||
|
|
||||||
|
tdSql.query(f'select cols(max(c0), c1), count(1) from test.meters session(ts, 3)')
|
||||||
|
tdSql.checkRows(2)
|
||||||
|
tdSql.checkCols(2)
|
||||||
|
tdSql.checkData(0, 0, 4)
|
||||||
|
tdSql.checkData(0, 1, 6)
|
||||||
|
tdSql.checkData(1, 0, None)
|
||||||
|
tdSql.checkData(1, 1, 5)
|
||||||
|
|
||||||
|
tdSql.query(f'select cols(first(ts), c0, c1), first(ts), count(1) from test.meters session(ts, 3)')
|
||||||
|
tdSql.checkRows(2)
|
||||||
|
tdSql.checkCols(4)
|
||||||
|
|
||||||
|
tdSql.query(f'select cols(first(ts), c0, c1), first(ts), count(1) from test.meters event_window start with c3=true end with c3!=true')
|
||||||
|
tdSql.checkRows(2)
|
||||||
|
tdSql.checkCols(4)
|
||||||
|
tdSql.checkData(0, 0, 1)
|
||||||
|
tdSql.checkData(0, 1, 1)
|
||||||
|
tdSql.checkData(0, 2, 1734574929000)
|
||||||
|
tdSql.checkData(0, 3, 3)
|
||||||
|
tdSql.checkData(1, 0, 3)
|
||||||
|
tdSql.checkData(1, 1, 3)
|
||||||
|
tdSql.checkData(1, 2, 1734574929003)
|
||||||
|
tdSql.checkData(1, 3, 2)
|
||||||
|
|
||||||
|
tdSql.query(f'select first(ts), count(1) from test.meters event_window start with c3=true end with c3!=true')
|
||||||
|
tdSql.checkRows(2)
|
||||||
|
tdSql.checkCols(2)
|
||||||
|
tdSql.checkData(0, 0, 1734574929000)
|
||||||
|
tdSql.checkData(0, 1, 3)
|
||||||
|
tdSql.checkData(1, 0, 1734574929003)
|
||||||
|
tdSql.checkData(1, 1, 2)
|
||||||
|
|
||||||
|
|
||||||
def join_test(self):
|
def join_test(self):
|
||||||
tdSql.query(f'select cols(last(a.ts), a.c0) from test.d0 a join test.d1 b on a.ts = b.ts;')
|
tdSql.query(f'select cols(last(a.ts), a.c0) from test.d0 a join test.d1 b on a.ts = b.ts;')
|
||||||
|
@ -1235,6 +1315,7 @@ class TDTestCase:
|
||||||
self.having_test("test.meters", False)
|
self.having_test("test.meters", False)
|
||||||
self.having_test("(select tbname, * from test.meters)", True)
|
self.having_test("(select tbname, * from test.meters)", True)
|
||||||
self.test_null2()
|
self.test_null2()
|
||||||
|
self.window_test2()
|
||||||
|
|
||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
|
|
Loading…
Reference in New Issue