Merge branch 'feat/TS-4243-3.0' of https://github.com/taosdata/TDengine into feat/ly-TS-4243-3.0

This commit is contained in:
54liuyao 2024-03-28 09:11:36 +08:00
commit 3dd7f0731e
4 changed files with 676 additions and 1 deletions

View File

@ -365,7 +365,7 @@ static int32_t loadSttStatisticsBlockData(SSttFileReader *pSttFileReader, SSttBl
}
if (pStatisBlkArray->data[k].maxTbid.suid == suid) {
taosArrayAddBatch(pBlockLoadInfo->info.pUid, tBufferGetDataAt(&block.suids, i * sizeof(int64_t)), rows - i);
taosArrayAddBatch(pBlockLoadInfo->info.pUid, tBufferGetDataAt(&block.uids, i * sizeof(int64_t)), rows - i);
taosArrayAddBatch(pBlockLoadInfo->info.pFirstKey,
tBufferGetDataAt(&block.firstKeyTimestamps, i * sizeof(int64_t)), rows - i);
taosArrayAddBatch(pBlockLoadInfo->info.pLastKey,

View File

@ -46,6 +46,8 @@ typedef struct STimeSliceOperatorInfo {
SSDataBlock* pNextGroupRes;
SSDataBlock* pRemainRes; // save block unfinished processing
int32_t remainIndex; // the remaining index in the block to be processed
bool hasPk;
SColumn pkCol;
} STimeSliceOperatorInfo;
static void destroyTimeSliceOperatorInfo(void* param);
@ -953,6 +955,25 @@ _finished:
return pResBlock->info.rows == 0 ? NULL : pResBlock;
}
static int32_t extractPkColumnFromFuncs(SNodeList* pFuncs, bool* pHasPk, SColumn* pPkColumn) {
SNode* pNode;
FOREACH(pNode, pFuncs) {
if ((nodeType(pNode) == QUERY_NODE_TARGET) &&
(nodeType(((STargetNode*)pNode)->pExpr) == QUERY_NODE_FUNCTION)) {
SFunctionNode* pFunc = (SFunctionNode*)((STargetNode*)pNode)->pExpr;
if (fmIsInterpFunc(pFunc->funcId) && pFunc->hasPk) {
SNode* pNode2 = (pFunc->pParameterList->pTail->pNode);
if ((nodeType(pNode2) == QUERY_NODE_COLUMN) && ((SColumnNode*)pNode2)->isPk) {
*pHasPk = true;
*pPkColumn = extractColumnFromColumnNode((SColumnNode*)pNode2);
break;
}
}
}
}
return TSDB_CODE_SUCCESS;
}
SOperatorInfo* createTimeSliceOperatorInfo(SOperatorInfo* downstream, SPhysiNode* pPhyNode, SExecTaskInfo* pTaskInfo) {
STimeSliceOperatorInfo* pInfo = taosMemoryCalloc(1, sizeof(STimeSliceOperatorInfo));
SOperatorInfo* pOperator = taosMemoryCalloc(1, sizeof(SOperatorInfo));
@ -985,6 +1006,7 @@ SOperatorInfo* createTimeSliceOperatorInfo(SOperatorInfo* downstream, SPhysiNode
}
pInfo->tsCol = extractColumnFromColumnNode((SColumnNode*)pInterpPhyNode->pTimeSeries);
extractPkColumnFromFuncs(pInterpPhyNode->pFuncs, &pInfo->hasPk, &pInfo->pkCol);
pInfo->fillType = convertFillType(pInterpPhyNode->fillMode);
initResultSizeInfo(&pOperator->resultInfo, 4096);

View File

@ -45,6 +45,7 @@
#,,n,system-test,python3 ./test.py -f 8-stream/snode_restart.py -N 4
,,n,system-test,python3 ./test.py -f 8-stream/snode_restart_with_checkpoint.py -N 4
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/pk_func.py
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/partition_expr.py
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/project_group.py
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/tbname_vgroup.py

View File

@ -0,0 +1,652 @@
import sys
from util.log import *
from util.cases import *
from util.sql import *
from util.dnodes import tdDnodes
from math import inf
class TDTestCase:
def caseDescription(self):
'''
case1<shenglian zhou>: [TD-]
'''
return
def init(self, conn, logSql, replicaVer=1):
tdLog.debug("start to execute %s" % __file__)
tdSql.init(conn.cursor(), True)
self.conn = conn
def restartTaosd(self, index=1, dbname="db"):
tdDnodes.stop(index)
tdDnodes.startWithoutSleep(index)
tdSql.execute(f"use pk_func")
def run(self):
print("running {}".format(__file__))
tdSql.execute("drop database if exists pk_func")
tdSql.execute("create database if not exists pk_func")
tdSql.execute('use pk_func')
tdSql.execute('drop database IF EXISTS d1;')
tdSql.execute('drop database IF EXISTS d2;')
tdSql.execute('create database d1 vgroups 1')
tdSql.execute('use d1;')
tdSql.execute('create table st(ts timestamp, pk int primary key, f int) tags(t int);')
tdSql.execute("insert into ct1 using st tags(1) values('2021-04-19 00:00:00', 1, 1);")
tdSql.execute("insert into ct1 using st tags(1) values('2021-04-19 00:00:00', 2, 2);")
tdSql.execute("insert into ct2 using st tags(2) values('2021-04-19 00:00:00', 3, 3);")
tdSql.execute("insert into ct2 using st tags(2) values('2021-04-19 00:00:00', 4, 4);")
tdSql.execute("insert into ct1 using st tags(1) values('2021-04-19 00:00:01', 1, 1);")
tdSql.execute("insert into ct1 using st tags(1) values('2021-04-19 00:00:01', 4, 4);")
tdSql.execute("insert into ct2 using st tags(2) values('2021-04-19 00:00:01', 3, 3);")
tdSql.execute("insert into ct2 using st tags(2) values('2021-04-19 00:00:01', 2, 2);")
tdSql.execute("insert into ct1 using st tags(1) values('2021-04-19 00:00:02', 6, 6);")
tdSql.execute("insert into ct1 using st tags(1) values('2021-04-19 00:00:02', 5, 5);")
tdSql.execute("insert into ct2 using st tags(2) values('2021-04-19 00:00:02', 8, 8);")
tdSql.execute("insert into ct2 using st tags(2) values('2021-04-19 00:00:02', 7, 7);")
tdSql.query('select * from d1.ct1 order by ts,pk;')
tdSql.checkRows(6)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(0, 1, 1)
tdSql.checkData(0, 2, 1)
tdSql.checkData(1, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(1, 1, 2)
tdSql.checkData(1, 2, 2)
tdSql.checkData(2, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(2, 1, 1)
tdSql.checkData(2, 2, 1)
tdSql.checkData(3, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(3, 1, 4)
tdSql.checkData(3, 2, 4)
tdSql.checkData(4, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(4, 1, 5)
tdSql.checkData(4, 2, 5)
tdSql.checkData(5, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(5, 1, 6)
tdSql.checkData(5, 2, 6)
tdSql.query('select * from d1.ct2 order by ts,pk;')
tdSql.checkRows(6)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(0, 1, 3)
tdSql.checkData(0, 2, 3)
tdSql.checkData(1, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(1, 1, 4)
tdSql.checkData(1, 2, 4)
tdSql.checkData(2, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(2, 1, 2)
tdSql.checkData(2, 2, 2)
tdSql.checkData(3, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(3, 1, 3)
tdSql.checkData(3, 2, 3)
tdSql.checkData(4, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(4, 1, 7)
tdSql.checkData(4, 2, 7)
tdSql.checkData(5, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(5, 1, 8)
tdSql.checkData(5, 2, 8)
tdSql.query('select * from d1.st order by ts,pk;')
tdSql.checkRows(12)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(0, 1, 1)
tdSql.checkData(0, 2, 1)
tdSql.checkData(0, 3, 1)
tdSql.checkData(1, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(1, 1, 2)
tdSql.checkData(1, 2, 2)
tdSql.checkData(1, 3, 1)
tdSql.checkData(2, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(2, 1, 3)
tdSql.checkData(2, 2, 3)
tdSql.checkData(2, 3, 2)
tdSql.checkData(3, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(3, 1, 4)
tdSql.checkData(3, 2, 4)
tdSql.checkData(3, 3, 2)
tdSql.checkData(4, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(4, 1, 1)
tdSql.checkData(4, 2, 1)
tdSql.checkData(4, 3, 1)
tdSql.checkData(5, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(5, 1, 2)
tdSql.checkData(5, 2, 2)
tdSql.checkData(5, 3, 2)
tdSql.checkData(6, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(6, 1, 3)
tdSql.checkData(6, 2, 3)
tdSql.checkData(6, 3, 2)
tdSql.checkData(7, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(7, 1, 4)
tdSql.checkData(7, 2, 4)
tdSql.checkData(7, 3, 1)
tdSql.checkData(8, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(8, 1, 5)
tdSql.checkData(8, 2, 5)
tdSql.checkData(8, 3, 1)
tdSql.checkData(9, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(9, 1, 6)
tdSql.checkData(9, 2, 6)
tdSql.checkData(9, 3, 1)
tdSql.checkData(10, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(10, 1, 7)
tdSql.checkData(10, 2, 7)
tdSql.checkData(10, 3, 2)
tdSql.checkData(11, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(11, 1, 8)
tdSql.checkData(11, 2, 8)
tdSql.checkData(11, 3, 2)
tdSql.query('select first(*) from d1.ct1;')
tdSql.checkRows(1)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(0, 1, 1)
tdSql.checkData(0, 2, 1)
tdSql.query('select first(*) from d1.ct2;')
tdSql.checkRows(1)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(0, 1, 3)
tdSql.checkData(0, 2, 3)
tdSql.query('select first(*) from d1.st;')
tdSql.checkRows(1)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(0, 1, 1)
tdSql.checkData(0, 2, 1)
tdSql.query('select last(*) from d1.ct1;')
tdSql.checkRows(1)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(0, 1, 6)
tdSql.checkData(0, 2, 6)
tdSql.query('select last(*) from d1.ct2;')
tdSql.checkRows(1)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(0, 1, 8)
tdSql.checkData(0, 2, 8)
tdSql.query('select last(*) from d1.st;')
tdSql.checkRows(1)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(0, 1, 8)
tdSql.checkData(0, 2, 8)
tdSql.query('select last_row(*) from d1.ct1;')
tdSql.checkRows(1)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(0, 1, 6)
tdSql.checkData(0, 2, 6)
tdSql.query('select last_row(*) from d1.ct2;')
tdSql.checkRows(1)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(0, 1, 8)
tdSql.checkData(0, 2, 8)
tdSql.query('select last_row(*) from d1.st;')
tdSql.checkRows(1)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(0, 1, 8)
tdSql.checkData(0, 2, 8)
tdSql.query('select ts,diff(f) from d1.ct1;')
tdSql.checkRows(2)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(0, 1, 0)
tdSql.checkData(1, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(1, 1, 4)
tdSql.query('select ts,diff(f) from d1.ct2;')
tdSql.checkRows(2)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(0, 1, -1)
tdSql.checkData(1, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(1, 1, 5)
tdSql.query('select ts,diff(f) from d1.st;')
tdSql.checkRows(2)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(0, 1, 0)
tdSql.checkData(1, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(1, 1, 4)
tdSql.query('select irate(f) from d1.ct1;')
tdSql.checkRows(1)
tdSql.checkData(0, 0, 4.0)
tdSql.query('select irate(f) from d1.ct2;')
tdSql.checkRows(1)
tdSql.checkData(0, 0, 5.0)
tdSql.query('select irate(f) from d1.st;')
tdSql.checkRows(1)
tdSql.checkData(0, 0, 4.0)
tdSql.query('select ts,derivative(f, 1s, 0) from d1.ct1;')
tdSql.checkRows(2)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(0, 1, 0.0)
tdSql.checkData(1, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(1, 1, 4.0)
tdSql.query('select ts,derivative(f, 1s, 0) from d1.ct2;')
tdSql.checkRows(2)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(0, 1, -1.0)
tdSql.checkData(1, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(1, 1, 5.0)
tdSql.query('select ts,derivative(f, 1s, 0) from d1.st;')
tdSql.checkRows(2)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(0, 1, 0.0)
tdSql.checkData(1, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(1, 1, 4.0)
tdSql.query('select twa(f) from d1.ct1;')
tdSql.checkRows(1)
tdSql.checkData(0, 0, 2.0)
tdSql.query('select twa(f) from d1.ct2;')
tdSql.checkRows(1)
tdSql.checkData(0, 0, 3.5)
tdSql.query('select twa(f) from d1.st;')
tdSql.checkRows(1)
tdSql.checkData(0, 0, 2.0)
tdSql.query('select ts,pk,unique(f) from d1.ct1 order by ts,pk;')
tdSql.checkRows(5)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(0, 1, 1)
tdSql.checkData(0, 2, 1)
tdSql.checkData(1, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(1, 1, 2)
tdSql.checkData(1, 2, 2)
tdSql.checkData(2, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(2, 1, 4)
tdSql.checkData(2, 2, 4)
tdSql.checkData(3, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(3, 1, 5)
tdSql.checkData(3, 2, 5)
tdSql.checkData(4, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(4, 1, 6)
tdSql.checkData(4, 2, 6)
tdSql.query('select ts,pk,unique(f) from d1.ct2 order by ts,pk;')
tdSql.checkRows(5)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(0, 1, 3)
tdSql.checkData(0, 2, 3)
tdSql.checkData(1, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(1, 1, 4)
tdSql.checkData(1, 2, 4)
tdSql.checkData(2, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(2, 1, 2)
tdSql.checkData(2, 2, 2)
tdSql.checkData(3, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(3, 1, 7)
tdSql.checkData(3, 2, 7)
tdSql.checkData(4, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(4, 1, 8)
tdSql.checkData(4, 2, 8)
tdSql.query('select ts,pk,unique(f) from d1.st order by ts,pk;')
tdSql.checkRows(8)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(0, 1, 1)
tdSql.checkData(0, 2, 1)
tdSql.checkData(1, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(1, 1, 2)
tdSql.checkData(1, 2, 2)
tdSql.checkData(2, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(2, 1, 3)
tdSql.checkData(2, 2, 3)
tdSql.checkData(3, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(3, 1, 4)
tdSql.checkData(3, 2, 4)
tdSql.checkData(4, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(4, 1, 5)
tdSql.checkData(4, 2, 5)
tdSql.checkData(5, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(5, 1, 6)
tdSql.checkData(5, 2, 6)
tdSql.checkData(6, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(6, 1, 7)
tdSql.checkData(6, 2, 7)
tdSql.checkData(7, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(7, 1, 8)
tdSql.checkData(7, 2, 8)
tdSql.execute('create database d2 vgroups 2')
tdSql.execute('use d2;')
tdSql.execute('create table st(ts timestamp, pk int primary key, f int) tags(t int);')
tdSql.execute("insert into ct1 using st tags(1) values('2021-04-19 00:00:00', 1, 1);")
tdSql.execute("insert into ct1 using st tags(1) values('2021-04-19 00:00:00', 2, 2);")
tdSql.execute("insert into ct2 using st tags(2) values('2021-04-19 00:00:00', 3, 3);")
tdSql.execute("insert into ct2 using st tags(2) values('2021-04-19 00:00:00', 4, 4);")
tdSql.execute("insert into ct1 using st tags(1) values('2021-04-19 00:00:01', 1, 1);")
tdSql.execute("insert into ct1 using st tags(1) values('2021-04-19 00:00:01', 4, 4);")
tdSql.execute("insert into ct2 using st tags(2) values('2021-04-19 00:00:01', 3, 3);")
tdSql.execute("insert into ct2 using st tags(2) values('2021-04-19 00:00:01', 2, 2);")
tdSql.execute("insert into ct1 using st tags(1) values('2021-04-19 00:00:02', 6, 6);")
tdSql.execute("insert into ct1 using st tags(1) values('2021-04-19 00:00:02', 5, 5);")
tdSql.execute("insert into ct2 using st tags(2) values('2021-04-19 00:00:02', 8, 8);")
tdSql.execute("insert into ct2 using st tags(2) values('2021-04-19 00:00:02', 7, 7);")
tdSql.query('select * from d2.ct1 order by ts,pk;')
tdSql.checkRows(6)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(0, 1, 1)
tdSql.checkData(0, 2, 1)
tdSql.checkData(1, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(1, 1, 2)
tdSql.checkData(1, 2, 2)
tdSql.checkData(2, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(2, 1, 1)
tdSql.checkData(2, 2, 1)
tdSql.checkData(3, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(3, 1, 4)
tdSql.checkData(3, 2, 4)
tdSql.checkData(4, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(4, 1, 5)
tdSql.checkData(4, 2, 5)
tdSql.checkData(5, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(5, 1, 6)
tdSql.checkData(5, 2, 6)
tdSql.query('select * from d2.ct2 order by ts,pk;')
tdSql.checkRows(6)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(0, 1, 3)
tdSql.checkData(0, 2, 3)
tdSql.checkData(1, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(1, 1, 4)
tdSql.checkData(1, 2, 4)
tdSql.checkData(2, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(2, 1, 2)
tdSql.checkData(2, 2, 2)
tdSql.checkData(3, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(3, 1, 3)
tdSql.checkData(3, 2, 3)
tdSql.checkData(4, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(4, 1, 7)
tdSql.checkData(4, 2, 7)
tdSql.checkData(5, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(5, 1, 8)
tdSql.checkData(5, 2, 8)
tdSql.query('select * from d2.st order by ts,pk;')
tdSql.checkRows(12)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(0, 1, 1)
tdSql.checkData(0, 2, 1)
tdSql.checkData(0, 3, 1)
tdSql.checkData(1, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(1, 1, 2)
tdSql.checkData(1, 2, 2)
tdSql.checkData(1, 3, 1)
tdSql.checkData(2, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(2, 1, 3)
tdSql.checkData(2, 2, 3)
tdSql.checkData(2, 3, 2)
tdSql.checkData(3, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(3, 1, 4)
tdSql.checkData(3, 2, 4)
tdSql.checkData(3, 3, 2)
tdSql.checkData(4, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(4, 1, 1)
tdSql.checkData(4, 2, 1)
tdSql.checkData(4, 3, 1)
tdSql.checkData(5, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(5, 1, 2)
tdSql.checkData(5, 2, 2)
tdSql.checkData(5, 3, 2)
tdSql.checkData(6, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(6, 1, 3)
tdSql.checkData(6, 2, 3)
tdSql.checkData(6, 3, 2)
tdSql.checkData(7, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(7, 1, 4)
tdSql.checkData(7, 2, 4)
tdSql.checkData(7, 3, 1)
tdSql.checkData(8, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(8, 1, 5)
tdSql.checkData(8, 2, 5)
tdSql.checkData(8, 3, 1)
tdSql.checkData(9, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(9, 1, 6)
tdSql.checkData(9, 2, 6)
tdSql.checkData(9, 3, 1)
tdSql.checkData(10, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(10, 1, 7)
tdSql.checkData(10, 2, 7)
tdSql.checkData(10, 3, 2)
tdSql.checkData(11, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(11, 1, 8)
tdSql.checkData(11, 2, 8)
tdSql.checkData(11, 3, 2)
tdSql.query('select first(*) from d2.ct1;')
tdSql.checkRows(1)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(0, 1, 1)
tdSql.checkData(0, 2, 1)
tdSql.query('select first(*) from d2.ct2;')
tdSql.checkRows(1)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(0, 1, 3)
tdSql.checkData(0, 2, 3)
tdSql.query('select first(*) from d2.st;')
tdSql.checkRows(1)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(0, 1, 1)
tdSql.checkData(0, 2, 1)
tdSql.query('select last(*) from d2.ct1;')
tdSql.checkRows(1)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(0, 1, 6)
tdSql.checkData(0, 2, 6)
tdSql.query('select last(*) from d2.ct2;')
tdSql.checkRows(1)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(0, 1, 8)
tdSql.checkData(0, 2, 8)
tdSql.query('select last(*) from d2.st;')
tdSql.checkRows(1)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(0, 1, 8)
tdSql.checkData(0, 2, 8)
tdSql.query('select last_row(*) from d2.ct1;')
tdSql.checkRows(1)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(0, 1, 6)
tdSql.checkData(0, 2, 6)
tdSql.query('select last_row(*) from d2.ct2;')
tdSql.checkRows(1)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(0, 1, 8)
tdSql.checkData(0, 2, 8)
tdSql.query('select last_row(*) from d2.st;')
tdSql.checkRows(1)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(0, 1, 8)
tdSql.checkData(0, 2, 8)
tdSql.query('select ts,diff(f) from d2.ct1;')
tdSql.checkRows(2)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(0, 1, 0)
tdSql.checkData(1, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(1, 1, 4)
tdSql.query('select ts,diff(f) from d2.ct2;')
tdSql.checkRows(2)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(0, 1, -1)
tdSql.checkData(1, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(1, 1, 5)
tdSql.query('select ts,diff(f) from d2.st;')
tdSql.checkRows(2)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(0, 1, 0)
tdSql.checkData(1, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(1, 1, 4)
tdSql.query('select irate(f) from d2.ct1;')
tdSql.checkRows(1)
tdSql.checkData(0, 0, 4.0)
tdSql.query('select irate(f) from d2.ct2;')
tdSql.checkRows(1)
tdSql.checkData(0, 0, 5.0)
tdSql.query('select irate(f) from d2.st;')
tdSql.checkRows(1)
tdSql.checkData(0, 0, 4.0)
tdSql.query('select ts,derivative(f, 1s, 0) from d2.ct1;')
tdSql.checkRows(2)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(0, 1, 0.0)
tdSql.checkData(1, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(1, 1, 4.0)
tdSql.query('select ts,derivative(f, 1s, 0) from d2.ct2;')
tdSql.checkRows(2)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(0, 1, -1.0)
tdSql.checkData(1, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(1, 1, 5.0)
tdSql.query('select ts,derivative(f, 1s, 0) from d2.st;')
tdSql.checkRows(2)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(0, 1, 0.0)
tdSql.checkData(1, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(1, 1, 4.0)
tdSql.query('select twa(f) from d2.ct1;')
tdSql.checkRows(1)
tdSql.checkData(0, 0, 2.0)
tdSql.query('select twa(f) from d2.ct2;')
tdSql.checkRows(1)
tdSql.checkData(0, 0, 3.5)
tdSql.query('select twa(f) from d2.st;')
tdSql.checkRows(1)
tdSql.checkData(0, 0, 2.0)
tdSql.query('select ts,pk,unique(f) from d2.ct1 order by ts,pk;')
tdSql.checkRows(5)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(0, 1, 1)
tdSql.checkData(0, 2, 1)
tdSql.checkData(1, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(1, 1, 2)
tdSql.checkData(1, 2, 2)
tdSql.checkData(2, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(2, 1, 4)
tdSql.checkData(2, 2, 4)
tdSql.checkData(3, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(3, 1, 5)
tdSql.checkData(3, 2, 5)
tdSql.checkData(4, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(4, 1, 6)
tdSql.checkData(4, 2, 6)
tdSql.query('select ts,pk,unique(f) from d2.ct2 order by ts,pk;')
tdSql.checkRows(5)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(0, 1, 3)
tdSql.checkData(0, 2, 3)
tdSql.checkData(1, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(1, 1, 4)
tdSql.checkData(1, 2, 4)
tdSql.checkData(2, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
tdSql.checkData(2, 1, 2)
tdSql.checkData(2, 2, 2)
tdSql.checkData(3, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(3, 1, 7)
tdSql.checkData(3, 2, 7)
tdSql.checkData(4, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(4, 1, 8)
tdSql.checkData(4, 2, 8)
tdSql.query('select ts,pk,unique(f) from d2.st order by ts,pk;')
tdSql.checkRows(8)
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(0, 1, 1)
tdSql.checkData(0, 2, 1)
tdSql.checkData(1, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(1, 1, 2)
tdSql.checkData(1, 2, 2)
tdSql.checkData(2, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(2, 1, 3)
tdSql.checkData(2, 2, 3)
tdSql.checkData(3, 0, datetime.datetime(2021, 4, 19, 0, 0))
tdSql.checkData(3, 1, 4)
tdSql.checkData(3, 2, 4)
tdSql.checkData(4, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(4, 1, 5)
tdSql.checkData(4, 2, 5)
tdSql.checkData(5, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(5, 1, 6)
tdSql.checkData(5, 2, 6)
tdSql.checkData(6, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(6, 1, 7)
tdSql.checkData(6, 2, 7)
tdSql.checkData(7, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
tdSql.checkData(7, 1, 8)
tdSql.checkData(7, 2, 8)
tdSql.execute('drop database pk_func')
def stop(self):
tdSql.close()
tdLog.success("%s successfully executed" % __file__)
tdCases.addWindows(__file__, TDTestCase())
tdCases.addLinux(__file__, TDTestCase())