Merge pull request #25358 from taosdata/feat/TS-4243-3.0
fix: extracted data block shall initialize pks of datablock info
This commit is contained in:
commit
e0cb17211b
|
@ -653,25 +653,15 @@ SSDataBlock* blockDataExtractBlock(SSDataBlock* pBlock, int32_t startIndex, int3
|
|||
return NULL;
|
||||
}
|
||||
|
||||
SSDataBlock* pDst = createDataBlock();
|
||||
SSDataBlock* pDst = createOneDataBlock(pBlock, false);
|
||||
if (pDst == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
pDst->info = pBlock->info;
|
||||
pDst->info.rows = 0;
|
||||
pDst->info.capacity = 0;
|
||||
pDst->info.rowSize = 0;
|
||||
size_t numOfCols = taosArrayGetSize(pBlock->pDataBlock);
|
||||
for (int32_t i = 0; i < numOfCols; ++i) {
|
||||
SColumnInfoData colInfo = {0};
|
||||
SColumnInfoData* pSrcCol = taosArrayGet(pBlock->pDataBlock, i);
|
||||
colInfo.info = pSrcCol->info;
|
||||
blockDataAppendColInfo(pDst, &colInfo);
|
||||
}
|
||||
|
||||
blockDataEnsureCapacity(pDst, rowCount);
|
||||
|
||||
size_t numOfCols = taosArrayGetSize(pBlock->pDataBlock);
|
||||
for (int32_t i = 0; i < numOfCols; ++i) {
|
||||
SColumnInfoData* pColData = taosArrayGet(pBlock->pDataBlock, i);
|
||||
SColumnInfoData* pDstCol = taosArrayGet(pDst->pDataBlock, i);
|
||||
|
|
|
@ -126,7 +126,7 @@ int32_t tsdbRowCompareWithoutVersion(const void *p1, const void *p2);
|
|||
int32_t tsdbRowKeyCmpr(const STsdbRowKey *key1, const STsdbRowKey *key2);
|
||||
void tsdbRowGetKey(TSDBROW *row, STsdbRowKey *key);
|
||||
void tColRowGetKey(SBlockData *pBlock, int32_t irow, SRowKey *key);
|
||||
int32_t tRowKeyAssign(SRowKey *pDst, SRowKey *pSrc);
|
||||
|
||||
|
||||
// STSDBRowIter
|
||||
int32_t tsdbRowIterOpen(STSDBRowIter *pIter, TSDBROW *pRow, STSchema *pTSchema);
|
||||
|
|
|
@ -124,7 +124,7 @@ int32_t pkCompEx(SRowKey* p1, SRowKey* p2) {
|
|||
if (p1->pks[0].val == p2->pks[0].val) {
|
||||
return 0;
|
||||
} else {
|
||||
return p1->pks[0].val > p2->pks[0].val? 1:-1;
|
||||
return tValueCompare(&p1->pks[0], &p2->pks[0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -136,20 +136,51 @@ int32_t initRowKey(SRowKey* pKey, int64_t ts, int32_t numOfPks, int32_t type, in
|
|||
|
||||
if (numOfPks > 0) {
|
||||
pKey->pks[0].type = type;
|
||||
if (IS_NUMERIC_TYPE(pKey->pks[0].type)) {
|
||||
|
||||
if (IS_NUMERIC_TYPE(type)) {
|
||||
if (asc) {
|
||||
switch(pKey->pks[0].type) {
|
||||
case TSDB_DATA_TYPE_BIGINT:pKey->pks[0].val = INT64_MIN;break;
|
||||
case TSDB_DATA_TYPE_INT:pKey->pks[0].val = INT32_MIN;break;
|
||||
case TSDB_DATA_TYPE_SMALLINT:pKey->pks[0].val = INT16_MIN;break;
|
||||
case TSDB_DATA_TYPE_TINYINT:pKey->pks[0].val = INT8_MIN;break;
|
||||
switch(type) {
|
||||
case TSDB_DATA_TYPE_BIGINT: {
|
||||
pKey->pks[0].val = INT64_MIN;
|
||||
break;
|
||||
}
|
||||
case TSDB_DATA_TYPE_INT:{
|
||||
int32_t min = INT32_MIN;
|
||||
memcpy(&pKey->pks[0].val, &min, tDataTypes[type].bytes);
|
||||
break;
|
||||
}
|
||||
case TSDB_DATA_TYPE_SMALLINT:{
|
||||
int16_t min = INT16_MIN;
|
||||
memcpy(&pKey->pks[0].val, &min, tDataTypes[type].bytes);
|
||||
break;
|
||||
}
|
||||
case TSDB_DATA_TYPE_TINYINT:{
|
||||
int8_t min = INT8_MIN;
|
||||
memcpy(&pKey->pks[0].val, &min, tDataTypes[type].bytes);
|
||||
break;
|
||||
}
|
||||
case TSDB_DATA_TYPE_UTINYINT:
|
||||
case TSDB_DATA_TYPE_USMALLINT:
|
||||
case TSDB_DATA_TYPE_UINT:
|
||||
case TSDB_DATA_TYPE_UBIGINT: {
|
||||
pKey->pks[0].val = 0;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
ASSERT(0);
|
||||
}
|
||||
} else {
|
||||
switch(pKey->pks[0].type) {
|
||||
switch(type) {
|
||||
case TSDB_DATA_TYPE_BIGINT:pKey->pks[0].val = INT64_MAX;break;
|
||||
case TSDB_DATA_TYPE_INT:pKey->pks[0].val = INT32_MAX;break;
|
||||
case TSDB_DATA_TYPE_SMALLINT:pKey->pks[0].val = INT16_MAX;break;
|
||||
case TSDB_DATA_TYPE_TINYINT:pKey->pks[0].val = INT8_MAX;break;
|
||||
case TSDB_DATA_TYPE_UBIGINT:pKey->pks[0].val = UINT64_MAX;break;
|
||||
case TSDB_DATA_TYPE_UINT:pKey->pks[0].val = UINT32_MAX;break;
|
||||
case TSDB_DATA_TYPE_USMALLINT:pKey->pks[0].val = UINT16_MAX;break;
|
||||
case TSDB_DATA_TYPE_UTINYINT:pKey->pks[0].val = UINT8_MAX;break;
|
||||
default:
|
||||
ASSERT(0);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -3006,15 +3006,9 @@ static int32_t lastRowScanOptimize(SOptimizeContext* pCxt, SLogicSubplan* pLogic
|
|||
if (FUNCTION_TYPE_LAST == funcType) {
|
||||
nodesWalkExpr(nodesListGetNode(pFunc->pParameterList, 0), lastRowScanOptSetColDataType, &cxt);
|
||||
nodesListErase(pFunc->pParameterList, nodesListGetCell(pFunc->pParameterList, 1));
|
||||
if (pFunc->hasPk) {
|
||||
if (LIST_LENGTH(pFunc->pParameterList) != 2) {
|
||||
planError("last func which has pk but its parameter list length is not %d", 2);
|
||||
nodesClearList(cxt.pLastCols);
|
||||
taosArrayDestroy(isDuplicateCol);
|
||||
return TSDB_CODE_PLAN_INTERNAL_ERROR;
|
||||
}
|
||||
nodesWalkExpr(nodesListGetNode(pFunc->pParameterList, 1), lastRowScanOptSetColDataType, &cxt);
|
||||
}
|
||||
}
|
||||
if (pFunc->hasPk) {
|
||||
nodesListMakeAppend(&cxt.pOtherCols, nodesListGetNode(pFunc->pParameterList, LIST_LENGTH(pFunc->pParameterList) - 1));
|
||||
}
|
||||
} else {
|
||||
pNode = nodesListGetNode(pFunc->pParameterList, 0);
|
||||
|
|
|
@ -47,6 +47,7 @@
|
|||
|
||||
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/pk_error.py
|
||||
,,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/pk_varchar.py
|
||||
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/pk_func_group.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
|
||||
|
|
|
@ -643,6 +643,11 @@ class TDTestCase:
|
|||
tdSql.checkData(7, 1, 8)
|
||||
tdSql.checkData(7, 2, 8)
|
||||
|
||||
tdSql.query('select ts, last(pk) from d1.st order by pk')
|
||||
tdSql.checkRows(1)
|
||||
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
|
||||
tdSql.checkData(0, 1, 8)
|
||||
|
||||
tdSql.execute('drop database pk_func')
|
||||
def stop(self):
|
||||
tdSql.close()
|
||||
|
|
|
@ -0,0 +1,306 @@
|
|||
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_varchar")
|
||||
|
||||
def run(self):
|
||||
print("running {}".format(__file__))
|
||||
tdSql.execute("drop database if exists pk_varchar")
|
||||
tdSql.execute("create database if not exists pk_varchar")
|
||||
tdSql.execute('use pk_varchar')
|
||||
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 varchar(256) 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 first(*) from d1.st partition by tbname order by tbname;')
|
||||
tdSql.checkRows(2)
|
||||
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, '3')
|
||||
tdSql.checkData(1, 2, 3)
|
||||
|
||||
tdSql.query('select last(*) from d1.st partition by tbname order by tbname;')
|
||||
tdSql.checkRows(2)
|
||||
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
|
||||
tdSql.checkData(0, 1, '6')
|
||||
tdSql.checkData(0, 2, 6)
|
||||
tdSql.checkData(1, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
|
||||
tdSql.checkData(1, 1, '8')
|
||||
tdSql.checkData(1, 2, 8)
|
||||
|
||||
tdSql.query('select last_row(*) from d1.st partition by tbname order by tbname;')
|
||||
tdSql.checkRows(2)
|
||||
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
|
||||
tdSql.checkData(0, 1, '6')
|
||||
tdSql.checkData(0, 2, 6)
|
||||
tdSql.checkData(1, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
|
||||
tdSql.checkData(1, 1, '8')
|
||||
tdSql.checkData(1, 2, 8)
|
||||
|
||||
tdSql.query('select ts,diff(f) from d1.st partition by tbname order by tbname;')
|
||||
tdSql.checkRows(4)
|
||||
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.checkData(2, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
|
||||
tdSql.checkData(2, 1, -1)
|
||||
tdSql.checkData(3, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
|
||||
tdSql.checkData(3, 1, 5)
|
||||
|
||||
tdSql.query('select irate(f) from d1.st partition by tbname order by tbname;')
|
||||
tdSql.checkRows(2)
|
||||
tdSql.checkData(0, 0, 4.0)
|
||||
tdSql.checkData(1, 0, 5.0)
|
||||
|
||||
tdSql.query('select ts,derivative(f, 1s, 0) from d1.st partition by tbname order by tbname;')
|
||||
tdSql.checkRows(4)
|
||||
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.checkData(2, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
|
||||
tdSql.checkData(2, 1, -1.0)
|
||||
tdSql.checkData(3, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
|
||||
tdSql.checkData(3, 1, 5.0)
|
||||
|
||||
tdSql.query('select twa(f) from d1.st partition by tbname order by tbname;')
|
||||
tdSql.checkRows(2)
|
||||
tdSql.checkData(0, 0, 2.0)
|
||||
tdSql.checkData(1, 0, 3.5)
|
||||
|
||||
tdSql.query('select ts,pk,unique(f) from d1.st partition by tbname order by tbname,ts,pk;')
|
||||
tdSql.checkRows(10)
|
||||
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.checkData(5, 0, datetime.datetime(2021, 4, 19, 0, 0))
|
||||
tdSql.checkData(5, 1, '3')
|
||||
tdSql.checkData(5, 2, 3)
|
||||
tdSql.checkData(6, 0, datetime.datetime(2021, 4, 19, 0, 0))
|
||||
tdSql.checkData(6, 1, '4')
|
||||
tdSql.checkData(6, 2, 4)
|
||||
tdSql.checkData(7, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
|
||||
tdSql.checkData(7, 1, '2')
|
||||
tdSql.checkData(7, 2, 2)
|
||||
tdSql.checkData(8, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
|
||||
tdSql.checkData(8, 1, '7')
|
||||
tdSql.checkData(8, 2, 7)
|
||||
tdSql.checkData(9, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
|
||||
tdSql.checkData(9, 1, '8')
|
||||
tdSql.checkData(9, 2, 8)
|
||||
|
||||
tdSql.query('select * from d1.st order by ts limit 2;')
|
||||
tdSql.checkRows(2)
|
||||
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.execute('create database d2 vgroups 2')
|
||||
|
||||
tdSql.execute('use d2;')
|
||||
|
||||
tdSql.execute('create table st(ts timestamp, pk varchar(256) 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 first(*) from d2.st partition by tbname order by tbname;')
|
||||
tdSql.checkRows(2)
|
||||
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, '3')
|
||||
tdSql.checkData(1, 2, 3)
|
||||
|
||||
tdSql.query('select last(*) from d2.st partition by tbname order by tbname;')
|
||||
tdSql.checkRows(2)
|
||||
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
|
||||
tdSql.checkData(0, 1, '6')
|
||||
tdSql.checkData(0, 2, 6)
|
||||
tdSql.checkData(1, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
|
||||
tdSql.checkData(1, 1, '8')
|
||||
tdSql.checkData(1, 2, 8)
|
||||
|
||||
tdSql.query('select last_row(*) from d2.st partition by tbname order by tbname;')
|
||||
tdSql.checkRows(2)
|
||||
tdSql.checkData(0, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
|
||||
tdSql.checkData(0, 1, '6')
|
||||
tdSql.checkData(0, 2, 6)
|
||||
tdSql.checkData(1, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
|
||||
tdSql.checkData(1, 1, '8')
|
||||
tdSql.checkData(1, 2, 8)
|
||||
|
||||
tdSql.query('select ts,diff(f) from d2.st partition by tbname order by tbname;')
|
||||
tdSql.checkRows(4)
|
||||
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.checkData(2, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
|
||||
tdSql.checkData(2, 1, -1)
|
||||
tdSql.checkData(3, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
|
||||
tdSql.checkData(3, 1, 5)
|
||||
|
||||
tdSql.query('select irate(f) from d2.st partition by tbname order by tbname;')
|
||||
tdSql.checkRows(2)
|
||||
tdSql.checkData(0, 0, 4.0)
|
||||
tdSql.checkData(1, 0, 5.0)
|
||||
|
||||
tdSql.query('select ts,derivative(f, 1s, 0) from d2.st partition by tbname order by tbname;')
|
||||
tdSql.checkRows(4)
|
||||
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.checkData(2, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
|
||||
tdSql.checkData(2, 1, -1.0)
|
||||
tdSql.checkData(3, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
|
||||
tdSql.checkData(3, 1, 5.0)
|
||||
|
||||
tdSql.query('select twa(f) from d2.st partition by tbname order by tbname;')
|
||||
tdSql.checkRows(2)
|
||||
tdSql.checkData(0, 0, 2.0)
|
||||
tdSql.checkData(1, 0, 3.5)
|
||||
|
||||
tdSql.query('select ts,pk,unique(f) from d2.st partition by tbname order by tbname,ts,pk;')
|
||||
tdSql.checkRows(10)
|
||||
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.checkData(5, 0, datetime.datetime(2021, 4, 19, 0, 0))
|
||||
tdSql.checkData(5, 1, '3')
|
||||
tdSql.checkData(5, 2, 3)
|
||||
tdSql.checkData(6, 0, datetime.datetime(2021, 4, 19, 0, 0))
|
||||
tdSql.checkData(6, 1, '4')
|
||||
tdSql.checkData(6, 2, 4)
|
||||
tdSql.checkData(7, 0, datetime.datetime(2021, 4, 19, 0, 0, 1))
|
||||
tdSql.checkData(7, 1, '2')
|
||||
tdSql.checkData(7, 2, 2)
|
||||
tdSql.checkData(8, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
|
||||
tdSql.checkData(8, 1, '7')
|
||||
tdSql.checkData(8, 2, 7)
|
||||
tdSql.checkData(9, 0, datetime.datetime(2021, 4, 19, 0, 0, 2))
|
||||
tdSql.checkData(9, 1, '8')
|
||||
tdSql.checkData(9, 2, 8)
|
||||
|
||||
tdSql.query('select * from d2.st order by ts limit 2;')
|
||||
tdSql.checkRows(2)
|
||||
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.execute('drop database pk_varchar')
|
||||
def stop(self):
|
||||
tdSql.close()
|
||||
tdLog.success("%s successfully executed" % __file__)
|
||||
|
||||
tdCases.addWindows(__file__, TDTestCase())
|
||||
tdCases.addLinux(__file__, TDTestCase())
|
Loading…
Reference in New Issue