test cases: window

This commit is contained in:
facetosea 2025-02-21 16:32:39 +08:00
parent fa61c13a75
commit 450d262415
2 changed files with 83 additions and 2 deletions

View File

@ -930,7 +930,7 @@ int32_t setNullSelectivityValue(SqlFunctionCtx* pCtx, SSDataBlock* pBlock, int32
SColumnInfoData* pDstCol = taosArrayGet(pBlock->pDataBlock, dstSlotId);
if (NULL == pDstCol) {
return TSDB_CODE_OUT_OF_RANGE;
return terrno;
}
colDataSetNULL(pDstCol, rowIndex);
}
@ -964,7 +964,7 @@ int32_t setSelectivityValue(SqlFunctionCtx* pCtx, SSDataBlock* pBlock, const STu
SColumnInfoData* pDstCol = taosArrayGet(pBlock->pDataBlock, dstSlotId);
if (NULL == pDstCol) {
return TSDB_CODE_OUT_OF_RANGE;
return terrno;
}
if (nullList[j]) {
colDataSetNULL(pDstCol, rowIndex);

View File

@ -942,6 +942,86 @@ class TDTestCase:
tdSql.checkCols(5)
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):
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("(select tbname, * from test.meters)", True)
self.test_null2()
self.window_test2()
def stop(self):