Hotfix/sangshuduo/td 3636 for master (#5735)
* [TD-3652]<test> add case for TD-3652 to resolve TD-3590 * Update fulltest.sh * [TD-3295]<test> add case for TD-3295 * TD-3675 * Hotfix/sangshuduo/td 3607 for master (#5712) * test * [TD-3677]<test>: test pr message 1 * [TD-3671]<test>change target branch * [TD-3677]<test>: test pr message 2 * [TD-3677]<test>: test pr message 3 * Hotfix/sangshuduo/td 3197 fix taosdemo coverity scan (#5688) * [TD-3197] <fix>: fix taosdemo coverity scan issues. * [TD-3197] <fix>: fix taosdemo coverity scan issue. fix subscribeTest pids uninitialized. * [TD-3197] <fix>: fix taosdemo coverity scan issues. * [TD-3197] <fix>: fix coverity scan issues. check super tbl info pointer. * [TD-3197] <fix>: fix coverity scan issues. move sub tbl query thread join into loop * [TD-3197] <fix>: fix coverity scan issues. remove unused variable * [TD-3197] <fix>: fix coverity scan issues. use more secure random library * [TD-3197] <fix>: fix coverity scan issues. use strncpy for more safe * [TD-3197] <fix>: fix taosdemo coverity scan issue. replace arc4random with rand(). * [TD-3197] <fix>: fix coverity scan issues. check stb info pointer for start time * [TD-3197] <fix>: fix coverity scan issues. fix strcpy vulnerability * [TD-3197] <fix>: fix taosdemo coverity scan issue. modify taosdemoTest2. try to check database continously. * [TD-3197] <fix>: taosdemo coverity scan issues. * [TD-3197] <fix>: fix memory leak when parsing arguments. * [TD-3197] <fix>: fix cmake strip arguments. * [TD-3197] <fix>: taosdemo coverity scan. fix cmake string manipulation. Co-authored-by: Shuduo Sang <sdsang@taosdata.com> * remove useless file * fix changing target branch * fix * fix * [TD-3607]<fix>: fix taosdemo limit and offset. if offset+limit > count. * [TD-3607]<fix>: taosdemo limit and offset. if child tbl not exist, dont take limit and offset value. Co-authored-by: huili <52318143+plum-lihui@users.noreply.github.com> Co-authored-by: liuyq-617 <yqliu@taosdata.com> Co-authored-by: plum-lihui <huili@taosdata.com> Co-authored-by: Elias Soong <elias.soong@gmail.com> Co-authored-by: Shuduo Sang <sdsang@taosdata.com> * fix mem leak issue * fix crash issue * [TD-3683]<fix>: reduce buffer size for more stable table creation. (#5720) Co-authored-by: Shuduo Sang <sdsang@taosdata.com> * Hotfix/sangshuduo/td 3607 taosdemo buffer overflow (#5723) * [TD-3607] <fix>: fix taosdemo buffer overflow. * [TD-3607] <fix>: taosdemo buffer overflow. add tmp buffer. * [TD-3607] <fix>: taosdemo buffer overflow. fix data generation. * [TD-3607] <fix>: taosdemo buffer overflow. fix normal table writting. * [TD-3607] <fix>: taosdemo buffer overflow. remove tail spaces. * [TD-3607] <fix>: taosdemo buffer overflow. fix taosdemo alter table test case. * [TD-3607] <fix>: taosdemo buffer overflow. fix taosdemo alter table case. * [TD-3607] <fix>: taosdemo buffer overflow. adjust limit offset count warning. * [TD-3607] <fix>: taosdemo buffer overflow. add more logic for child tables exist. * [TD-3607] <fix>: taosdemo buffer overflow. create database if database be dropped only. * [TD-3607] <fix>: fix taosdemo buffer overflow. adjust limit and offset test cases. * [TD-3607] <fix>: taosdemo buffer overflow. adjust sample data test case. * test * [TD-3677]<test>: test pr message 1 * [TD-3671]<test>change target branch * [TD-3677]<test>: test pr message 2 * [TD-3677]<test>: test pr message 3 * Hotfix/sangshuduo/td 3197 fix taosdemo coverity scan (#5688) * [TD-3197] <fix>: fix taosdemo coverity scan issues. * [TD-3197] <fix>: fix taosdemo coverity scan issue. fix subscribeTest pids uninitialized. * [TD-3197] <fix>: fix taosdemo coverity scan issues. * [TD-3197] <fix>: fix coverity scan issues. check super tbl info pointer. * [TD-3197] <fix>: fix coverity scan issues. move sub tbl query thread join into loop * [TD-3197] <fix>: fix coverity scan issues. remove unused variable * [TD-3197] <fix>: fix coverity scan issues. use more secure random library * [TD-3197] <fix>: fix coverity scan issues. use strncpy for more safe * [TD-3197] <fix>: fix taosdemo coverity scan issue. replace arc4random with rand(). * [TD-3197] <fix>: fix coverity scan issues. check stb info pointer for start time * [TD-3197] <fix>: fix coverity scan issues. fix strcpy vulnerability * [TD-3197] <fix>: fix taosdemo coverity scan issue. modify taosdemoTest2. try to check database continously. * [TD-3197] <fix>: taosdemo coverity scan issues. * [TD-3197] <fix>: fix memory leak when parsing arguments. * [TD-3197] <fix>: fix cmake strip arguments. * [TD-3197] <fix>: taosdemo coverity scan. fix cmake string manipulation. Co-authored-by: Shuduo Sang <sdsang@taosdata.com> * remove useless file * fix changing target branch * fix * fix * [TD-3607]<fix>: taosdemo limit and offset. if limit+offset > count * Hotfix/sangshuduo/td 3607 taosdemo buffer overflow (#5706) * [TD-3607] <fix>: fix taosdemo buffer overflow. * [TD-3607] <fix>: taosdemo buffer overflow. add tmp buffer. * [TD-3607] <fix>: taosdemo buffer overflow. fix data generation. * [TD-3607] <fix>: taosdemo buffer overflow. fix normal table writting. * [TD-3607] <fix>: taosdemo buffer overflow. remove tail spaces. * [TD-3607] <fix>: taosdemo buffer overflow. fix taosdemo alter table test case. * [TD-3607] <fix>: taosdemo buffer overflow. fix taosdemo alter table case. * [TD-3607] <fix>: taosdemo buffer overflow. adjust limit offset count warning. * [TD-3607] <fix>: taosdemo buffer overflow. add more logic for child tables exist. * [TD-3607] <fix>: taosdemo buffer overflow. create database if database be dropped only. * [TD-3607] <fix>: fix taosdemo buffer overflow. adjust limit and offset test cases. * [TD-3607] <fix>: taosdemo buffer overflow. adjust sample data test case. * [TD-3607]<fix>: taosdemo limit and offset. if limit+offset > count Co-authored-by: Shuduo Sang <sdsang@taosdata.com> * [TD-3607]<fix>: taosdemo limit and offset. if child tbl not exist, dont take limit and offset value. * Hotfix/sangshuduo/td 3607 taosdemo buffer overflow (#5713) * [TD-3607] <fix>: fix taosdemo buffer overflow. * [TD-3607] <fix>: taosdemo buffer overflow. add tmp buffer. * [TD-3607] <fix>: taosdemo buffer overflow. fix data generation. * [TD-3607] <fix>: taosdemo buffer overflow. fix normal table writting. * [TD-3607] <fix>: taosdemo buffer overflow. remove tail spaces. * [TD-3607] <fix>: taosdemo buffer overflow. fix taosdemo alter table test case. * [TD-3607] <fix>: taosdemo buffer overflow. fix taosdemo alter table case. * [TD-3607] <fix>: taosdemo buffer overflow. adjust limit offset count warning. * [TD-3607] <fix>: taosdemo buffer overflow. add more logic for child tables exist. * [TD-3607] <fix>: taosdemo buffer overflow. create database if database be dropped only. * [TD-3607] <fix>: fix taosdemo buffer overflow. adjust limit and offset test cases. * [TD-3607] <fix>: taosdemo buffer overflow. adjust sample data test case. * [TD-3607]<fix>: taosdemo limit and offset. if limit+offset > count * [TD-3607]<fix>: taosdemo limit and offset. if child tbl not exist, dont take limit and offset value. Co-authored-by: Shuduo Sang <sdsang@taosdata.com> * fix taosdemo limit invalid warning condition. * [TD-3683]<fix>: reduce buffer size for more stable table creation. (#5719) Co-authored-by: Shuduo Sang <sdsang@taosdata.com> Co-authored-by: Shuduo Sang <sdsang@taosdata.com> Co-authored-by: huili <52318143+plum-lihui@users.noreply.github.com> Co-authored-by: liuyq-617 <yqliu@taosdata.com> Co-authored-by: plum-lihui <huili@taosdata.com> Co-authored-by: Elias Soong <elias.soong@gmail.com> Co-authored-by: Shengliang Guan <slguan@taosdata.com> * TD-3707 * Feature/sangshuduo/td 3408 taosdemo async query (#5731) * test * [TD-3677]<test>: test pr message 1 * [TD-3671]<test>change target branch * [TD-3677]<test>: test pr message 2 * [TD-3677]<test>: test pr message 3 * Hotfix/sangshuduo/td 3197 fix taosdemo coverity scan (#5688) * [TD-3197] <fix>: fix taosdemo coverity scan issues. * [TD-3197] <fix>: fix taosdemo coverity scan issue. fix subscribeTest pids uninitialized. * [TD-3197] <fix>: fix taosdemo coverity scan issues. * [TD-3197] <fix>: fix coverity scan issues. check super tbl info pointer. * [TD-3197] <fix>: fix coverity scan issues. move sub tbl query thread join into loop * [TD-3197] <fix>: fix coverity scan issues. remove unused variable * [TD-3197] <fix>: fix coverity scan issues. use more secure random library * [TD-3197] <fix>: fix coverity scan issues. use strncpy for more safe * [TD-3197] <fix>: fix taosdemo coverity scan issue. replace arc4random with rand(). * [TD-3197] <fix>: fix coverity scan issues. check stb info pointer for start time * [TD-3197] <fix>: fix coverity scan issues. fix strcpy vulnerability * [TD-3197] <fix>: fix taosdemo coverity scan issue. modify taosdemoTest2. try to check database continously. * [TD-3197] <fix>: taosdemo coverity scan issues. * [TD-3197] <fix>: fix memory leak when parsing arguments. * [TD-3197] <fix>: fix cmake strip arguments. * [TD-3197] <fix>: taosdemo coverity scan. fix cmake string manipulation. Co-authored-by: Shuduo Sang <sdsang@taosdata.com> * remove useless file * fix changing target branch * fix * fix * Hotfix/sangshuduo/td 3607 taosdemo buffer overflow (#5706) * [TD-3607] <fix>: fix taosdemo buffer overflow. * [TD-3607] <fix>: taosdemo buffer overflow. add tmp buffer. * [TD-3607] <fix>: taosdemo buffer overflow. fix data generation. * [TD-3607] <fix>: taosdemo buffer overflow. fix normal table writting. * [TD-3607] <fix>: taosdemo buffer overflow. remove tail spaces. * [TD-3607] <fix>: taosdemo buffer overflow. fix taosdemo alter table test case. * [TD-3607] <fix>: taosdemo buffer overflow. fix taosdemo alter table case. * [TD-3607] <fix>: taosdemo buffer overflow. adjust limit offset count warning. * [TD-3607] <fix>: taosdemo buffer overflow. add more logic for child tables exist. * [TD-3607] <fix>: taosdemo buffer overflow. create database if database be dropped only. * [TD-3607] <fix>: fix taosdemo buffer overflow. adjust limit and offset test cases. * [TD-3607] <fix>: taosdemo buffer overflow. adjust sample data test case. * [TD-3607]<fix>: taosdemo limit and offset. if limit+offset > count Co-authored-by: Shuduo Sang <sdsang@taosdata.com> * Hotfix/sangshuduo/td 3607 taosdemo buffer overflow (#5713) * [TD-3607] <fix>: fix taosdemo buffer overflow. * [TD-3607] <fix>: taosdemo buffer overflow. add tmp buffer. * [TD-3607] <fix>: taosdemo buffer overflow. fix data generation. * [TD-3607] <fix>: taosdemo buffer overflow. fix normal table writting. * [TD-3607] <fix>: taosdemo buffer overflow. remove tail spaces. * [TD-3607] <fix>: taosdemo buffer overflow. fix taosdemo alter table test case. * [TD-3607] <fix>: taosdemo buffer overflow. fix taosdemo alter table case. * [TD-3607] <fix>: taosdemo buffer overflow. adjust limit offset count warning. * [TD-3607] <fix>: taosdemo buffer overflow. add more logic for child tables exist. * [TD-3607] <fix>: taosdemo buffer overflow. create database if database be dropped only. * [TD-3607] <fix>: fix taosdemo buffer overflow. adjust limit and offset test cases. * [TD-3607] <fix>: taosdemo buffer overflow. adjust sample data test case. * [TD-3607]<fix>: taosdemo limit and offset. if limit+offset > count * [TD-3607]<fix>: taosdemo limit and offset. if child tbl not exist, dont take limit and offset value. Co-authored-by: Shuduo Sang <sdsang@taosdata.com> * [TD-3683]<fix>: reduce buffer size for more stable table creation. (#5719) Co-authored-by: Shuduo Sang <sdsang@taosdata.com> * [TD-3408]<feature>: taosdemo support async query. * [TD-3408]<feature>: taosdemo support async query. refactor * [TD-3408]<feature>: taosdemo support async query. refactor 2 * [TD-3408]<feature>: taosdemo support async query. refactor 3 * [TD-3408]<feature>: taosdemo support async query. refactor 4 * [TD-3408]<feature>: taosdemo support specified sql more than one line. Co-authored-by: huili <52318143+plum-lihui@users.noreply.github.com> Co-authored-by: liuyq-617 <yqliu@taosdata.com> Co-authored-by: plum-lihui <huili@taosdata.com> Co-authored-by: Elias Soong <elias.soong@gmail.com> Co-authored-by: Shuduo Sang <sdsang@taosdata.com> Co-authored-by: Shengliang Guan <slguan@taosdata.com> * [TD-3636]<fix>: fix taosdemo outorder range algorithm. patch for master. Co-authored-by: wu champion <wuchampion@foxmail.com> Co-authored-by: wu champion <wu_champion@foxmail.com> Co-authored-by: dapan1121 <89396746@qq.com> Co-authored-by: wu champion <cpwu@taosdata.com> Co-authored-by: huili <52318143+plum-lihui@users.noreply.github.com> Co-authored-by: liuyq-617 <yqliu@taosdata.com> Co-authored-by: plum-lihui <huili@taosdata.com> Co-authored-by: Elias Soong <elias.soong@gmail.com> Co-authored-by: Shuduo Sang <sdsang@taosdata.com> Co-authored-by: Shengliang Guan <slguan@taosdata.com> Co-authored-by: haojun Liao <hjxilinx@users.noreply.github.com>
This commit is contained in:
parent
6a0af1593f
commit
20a32bedb2
|
@ -82,7 +82,6 @@ def pre_test(){
|
|||
}
|
||||
}
|
||||
sh '''
|
||||
|
||||
cd ${WK}
|
||||
git pull >/dev/null
|
||||
|
||||
|
|
|
@ -6156,7 +6156,7 @@ int32_t doFunctionsCompatibleCheck(SSqlCmd* pCmd, SQueryInfo* pQueryInfo) {
|
|||
}
|
||||
|
||||
// projection query on super table does not compatible with "group by" syntax
|
||||
if (tscNonOrderedProjectionQueryOnSTable(pQueryInfo, 0)) {
|
||||
if (tscIsProjectionQuery(pQueryInfo)) {
|
||||
return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg3);
|
||||
}
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
#define MAX_IP_SIZE 20
|
||||
#define MAX_PASSWORD_SIZE 20
|
||||
#define MAX_HISTORY_SIZE 1000
|
||||
#define MAX_COMMAND_SIZE 65536
|
||||
#define MAX_COMMAND_SIZE 1048586
|
||||
#define HISTORY_FILE ".taos_history"
|
||||
|
||||
#define DEFAULT_RES_SHOW_NUM 100
|
||||
|
|
|
@ -238,7 +238,7 @@ void resetCommand(Command *cmd, const char s[]) {
|
|||
clearScreen(cmd->endOffset + prompt_size, cmd->screenOffset + prompt_size);
|
||||
memset(cmd->buffer, 0, MAX_COMMAND_SIZE);
|
||||
memset(cmd->command, 0, MAX_COMMAND_SIZE);
|
||||
strcpy(cmd->command, s);
|
||||
strncpy(cmd->command, s, MAX_COMMAND_SIZE);
|
||||
int size = 0;
|
||||
int width = 0;
|
||||
getMbSizeInfo(s, &size, &width);
|
||||
|
|
|
@ -4521,21 +4521,22 @@ static int generateDataTail(char *tableName, int32_t tableSeq,
|
|||
} else if (0 == strncasecmp(superTblInfo->dataSource,
|
||||
"rand", strlen("rand"))) {
|
||||
int rand_num = taosRandom() % 100;
|
||||
int randTail;
|
||||
if (0 != superTblInfo->disorderRatio
|
||||
&& rand_num < superTblInfo->disorderRatio) {
|
||||
int64_t d = startTime
|
||||
+ superTblInfo->timeStampStep * k
|
||||
- taosRandom() % superTblInfo->disorderRange;
|
||||
randTail = (superTblInfo->timeStampStep * k
|
||||
+ (taosRandom() % superTblInfo->disorderRange + 1)) * (-1);
|
||||
debugPrint("rand data generated, back %d\n", randTail);
|
||||
} else {
|
||||
randTail = superTblInfo->timeStampStep * k;
|
||||
}
|
||||
|
||||
uint64_t d = startTime
|
||||
+ randTail;
|
||||
retLen = generateRowData(
|
||||
data,
|
||||
d,
|
||||
superTblInfo);
|
||||
} else {
|
||||
retLen = generateRowData(
|
||||
data,
|
||||
startTime + superTblInfo->timeStampStep * k,
|
||||
superTblInfo);
|
||||
}
|
||||
}
|
||||
|
||||
if (retLen > remainderBufLen) {
|
||||
|
@ -4551,20 +4552,21 @@ static int generateDataTail(char *tableName, int32_t tableSeq,
|
|||
int lenOfBinary = g_args.len_of_binary;
|
||||
|
||||
int rand_num = taosRandom() % 100;
|
||||
int randTail;
|
||||
|
||||
if ((g_args.disorderRatio != 0)
|
||||
&& (rand_num < g_args.disorderRatio)) {
|
||||
|
||||
int64_t d = startTime + DEFAULT_TIMESTAMP_STEP * k
|
||||
- taosRandom() % g_args.disorderRange;
|
||||
|
||||
retLen = generateData(data, data_type,
|
||||
ncols_per_record, d, lenOfBinary);
|
||||
randTail = (DEFAULT_TIMESTAMP_STEP * k
|
||||
+ (taosRandom() % g_args.disorderRange + 1)) * (-1);
|
||||
debugPrint("rand data generated, back %d\n", randTail);
|
||||
} else {
|
||||
randTail = DEFAULT_TIMESTAMP_STEP * k;
|
||||
}
|
||||
|
||||
retLen = generateData(data, data_type,
|
||||
ncols_per_record,
|
||||
startTime + DEFAULT_TIMESTAMP_STEP * k,
|
||||
startTime + randTail,
|
||||
lenOfBinary);
|
||||
}
|
||||
|
||||
if (len > remainderBufLen)
|
||||
break;
|
||||
|
@ -5106,7 +5108,7 @@ static void callBack(void *param, TAOS_RES *res, int code) {
|
|||
int rand_num = taosRandom() % 100;
|
||||
if (0 != winfo->superTblInfo->disorderRatio
|
||||
&& rand_num < winfo->superTblInfo->disorderRatio) {
|
||||
int64_t d = winfo->lastTs - taosRandom() % winfo->superTblInfo->disorderRange;
|
||||
int64_t d = winfo->lastTs - (taosRandom() % winfo->superTblInfo->disorderRange + 1);
|
||||
generateRowData(data, d, winfo->superTblInfo);
|
||||
} else {
|
||||
generateRowData(data, winfo->lastTs += 1000, winfo->superTblInfo);
|
||||
|
|
|
@ -2771,14 +2771,16 @@ static void percentile_function(SQLFunctionCtx *pCtx) {
|
|||
SPercentileInfo *pInfo = GET_ROWCELL_INTERBUF(pResInfo);
|
||||
|
||||
if (pCtx->currentStage == REPEAT_SCAN && pInfo->stage == 0) {
|
||||
pInfo->stage += 1;
|
||||
|
||||
// all data are null, set it completed
|
||||
if (pInfo->numOfElems == 0) {
|
||||
pResInfo->complete = true;
|
||||
|
||||
return;
|
||||
} else {
|
||||
pInfo->pMemBucket = tMemBucketCreate(pCtx->inputBytes, pCtx->inputType, pInfo->minval, pInfo->maxval);
|
||||
}
|
||||
|
||||
pInfo->stage += 1;
|
||||
}
|
||||
|
||||
// the first stage, only acquire the min/max value
|
||||
|
@ -2857,14 +2859,16 @@ static void percentile_function_f(SQLFunctionCtx *pCtx, int32_t index) {
|
|||
SPercentileInfo *pInfo = (SPercentileInfo *)GET_ROWCELL_INTERBUF(pResInfo);
|
||||
|
||||
if (pCtx->currentStage == REPEAT_SCAN && pInfo->stage == 0) {
|
||||
pInfo->stage += 1;
|
||||
|
||||
// all data are null, set it completed
|
||||
if (pInfo->numOfElems == 0) {
|
||||
pResInfo->complete = true;
|
||||
|
||||
return;
|
||||
} else {
|
||||
pInfo->pMemBucket = tMemBucketCreate(pCtx->inputBytes, pCtx->inputType, pInfo->minval, pInfo->maxval);
|
||||
}
|
||||
|
||||
pInfo->stage += 1;
|
||||
}
|
||||
|
||||
if (pInfo->stage == 0) {
|
||||
|
|
|
@ -4020,7 +4020,7 @@ static SFillColInfo* createFillColInfo(SExprInfo* pExpr, int32_t numOfOutput, in
|
|||
return pFillCol;
|
||||
}
|
||||
|
||||
int32_t doInitQInfo(SQInfo *pQInfo, STSBuf *pTsBuf, SArray* prevResult, void *tsdb, int32_t vgId, bool isSTableQuery) {
|
||||
int32_t doInitQInfo(SQInfo *pQInfo, STSBuf *pTsBuf, void *tsdb, int32_t vgId, bool isSTableQuery) {
|
||||
SQueryRuntimeEnv *pRuntimeEnv = &pQInfo->runtimeEnv;
|
||||
|
||||
SQuery *pQuery = pQInfo->runtimeEnv.pQuery;
|
||||
|
@ -4031,8 +4031,6 @@ int32_t doInitQInfo(SQInfo *pQInfo, STSBuf *pTsBuf, SArray* prevResult, void *ts
|
|||
pQuery->timeWindowInterpo = timeWindowInterpoRequired(pQuery);
|
||||
pQuery->stabledev = isStabledev(pQuery);
|
||||
|
||||
pRuntimeEnv->prevResult = prevResult;
|
||||
|
||||
setScanLimitationByResultBuffer(pQuery);
|
||||
|
||||
int32_t code = setupQueryHandle(tsdb, pQInfo, isSTableQuery);
|
||||
|
@ -6654,6 +6652,8 @@ int32_t initQInfo(SQueryTableMsg *pQueryMsg, void *tsdb, int32_t vgId, SQInfo *p
|
|||
SArray* prevResult = NULL;
|
||||
if (pQueryMsg->prevResultLen > 0) {
|
||||
prevResult = interResFromBinary(param->prevResult, pQueryMsg->prevResultLen);
|
||||
|
||||
pRuntimeEnv->prevResult = prevResult;
|
||||
}
|
||||
|
||||
pQuery->precision = tsdbGetCfg(tsdb)->precision;
|
||||
|
@ -6675,7 +6675,7 @@ int32_t initQInfo(SQueryTableMsg *pQueryMsg, void *tsdb, int32_t vgId, SQInfo *p
|
|||
}
|
||||
|
||||
// filter the qualified
|
||||
if ((code = doInitQInfo(pQInfo, pTsBuf, prevResult, tsdb, vgId, isSTable)) != TSDB_CODE_SUCCESS) {
|
||||
if ((code = doInitQInfo(pQInfo, pTsBuf, tsdb, vgId, isSTable)) != TSDB_CODE_SUCCESS) {
|
||||
goto _error;
|
||||
}
|
||||
|
||||
|
|
|
@ -217,8 +217,8 @@ python3 ./test.py -f query/floatCompare.py
|
|||
python3 ./test.py -f query/query1970YearsAf.py
|
||||
python3 ./test.py -f query/bug3351.py
|
||||
python3 ./test.py -f query/bug3375.py
|
||||
|
||||
|
||||
python3 ./test.py -f query/queryJoin10tables.py
|
||||
python3 ./test.py -f query/queryStddevWithGroupby.py
|
||||
|
||||
#stream
|
||||
python3 ./test.py -f stream/metric_1.py
|
||||
|
|
|
@ -0,0 +1,201 @@
|
|||
###################################################################
|
||||
# Copyright (c) 2016 by TAOS Technologies, Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This file is proprietary and confidential to TAOS Technologies.
|
||||
# No part of this file may be reproduced, stored, transmitted,
|
||||
# disclosed or used in any form or by any means other than as
|
||||
# expressly provided by the written permission from Jianhui Tao
|
||||
#
|
||||
###################################################################
|
||||
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import taos
|
||||
import sys
|
||||
|
||||
from util.log import *
|
||||
from util.sql import *
|
||||
from util.cases import *
|
||||
from util.dnodes import *
|
||||
|
||||
class TDTestCase:
|
||||
|
||||
def init(self, conn, logSql):
|
||||
tdLog.debug(f"start to excute {__file__}")
|
||||
tdSql.init(conn.cursor())
|
||||
|
||||
def createtable(self):
|
||||
|
||||
# create stbles
|
||||
tdSql.execute("create table if not exists stb1 (ts timestamp, c1 int) tags(t11 int, t12 int)")
|
||||
tdSql.execute("create table if not exists stb2 (ts timestamp, c2 int) tags(t21 int, t22 int)")
|
||||
tdSql.execute("create table if not exists stb3 (ts timestamp, c3 int) tags(t31 int, t32 int)")
|
||||
tdSql.execute("create table if not exists stb4 (ts timestamp, c4 int) tags(t41 int, t42 int)")
|
||||
tdSql.execute("create table if not exists stb5 (ts timestamp, c5 int) tags(t51 int, t52 int)")
|
||||
tdSql.execute("create table if not exists stb6 (ts timestamp, c6 int) tags(t61 int, t62 int)")
|
||||
tdSql.execute("create table if not exists stb7 (ts timestamp, c7 int) tags(t71 int, t72 int)")
|
||||
tdSql.execute("create table if not exists stb8 (ts timestamp, c8 int) tags(t81 int, t82 int)")
|
||||
tdSql.execute("create table if not exists stb9 (ts timestamp, c9 int) tags(t91 int, t92 int)")
|
||||
tdSql.execute("create table if not exists stb10 (ts timestamp, c10 int) tags(t101 int, t102 int)")
|
||||
tdSql.execute("create table if not exists stb11 (ts timestamp, c11 int) tags(t111 int, t112 int)")
|
||||
|
||||
# create normal tables
|
||||
tdSql.execute("create table t10 using stb1 tags(0, 9)")
|
||||
tdSql.execute("create table t11 using stb1 tags(1, 8)")
|
||||
tdSql.execute("create table t12 using stb1 tags(2, 7)")
|
||||
tdSql.execute("create table t13 using stb1 tags(3, 6)")
|
||||
tdSql.execute("create table t14 using stb1 tags(4, 5)")
|
||||
tdSql.execute("create table t15 using stb1 tags(5, 4)")
|
||||
tdSql.execute("create table t16 using stb1 tags(6, 3)")
|
||||
tdSql.execute("create table t17 using stb1 tags(7, 2)")
|
||||
tdSql.execute("create table t18 using stb1 tags(8, 1)")
|
||||
tdSql.execute("create table t19 using stb1 tags(9, 0)")
|
||||
tdSql.execute("create table t110 using stb1 tags(10, 10)")
|
||||
|
||||
tdSql.execute("create table t20 using stb2 tags(0, 9)")
|
||||
tdSql.execute("create table t21 using stb2 tags(1, 8)")
|
||||
tdSql.execute("create table t22 using stb2 tags(2, 7)")
|
||||
|
||||
tdSql.execute("create table t30 using stb3 tags(0, 9)")
|
||||
tdSql.execute("create table t31 using stb3 tags(1, 8)")
|
||||
tdSql.execute("create table t32 using stb3 tags(2, 7)")
|
||||
|
||||
def inserttable(self):
|
||||
for i in range(100):
|
||||
if i<60:
|
||||
tdSql.execute(f"insert into t20 values('2020-10-01 00:00:{i}.000', {i})")
|
||||
tdSql.execute(f"insert into t21 values('2020-10-01 00:00:{i}.000', {i})")
|
||||
tdSql.execute(f"insert into t22 values('2020-10-01 00:00:{i}.000', {i})")
|
||||
tdSql.execute(f"insert into t30 values('2020-10-01 00:00:{i}.000', {i})")
|
||||
tdSql.execute(f"insert into t31 values('2020-10-01 00:00:{i}.000', {i})")
|
||||
tdSql.execute(f"insert into t32 values('2020-10-01 00:00:{i}.000', {i})")
|
||||
else:
|
||||
tdSql.execute(f"insert into t20 values('2020-10-01 00:01:{i-60}.000', {i})")
|
||||
tdSql.execute(f"insert into t21 values('2020-10-01 00:01:{i-60}.000', {i})")
|
||||
tdSql.execute(f"insert into t22 values('2020-10-01 00:01:{i-60}.000', {i})")
|
||||
tdSql.execute(f"insert into t30 values('2020-10-01 00:01:{i-60}.000', {i})")
|
||||
tdSql.execute(f"insert into t31 values('2020-10-01 00:01:{i-60}.000', {i})")
|
||||
tdSql.execute(f"insert into t32 values('2020-10-01 00:01:{i-60}.000', {i})")
|
||||
for j in range(11):
|
||||
if i<60:
|
||||
tdSql.execute(f"insert into t1{j} values('2020-10-01 00:00:{i}.000', {i})")
|
||||
else:
|
||||
tdSql.execute(f"insert into t1{j} values('2020-10-01 00:01:{i-60}.000', {i})")
|
||||
|
||||
def queryjointable(self):
|
||||
tdSql.error(
|
||||
'''select from t10,t11,t12,t13,t14,t15,t16,t17,t18,t19
|
||||
where t10.ts=t11.ts and t10.ts=t12.ts and t10.ts=t13.ts and t10.ts=t14.ts and t10.ts=t15.ts
|
||||
and t10.ts=t16.ts and t10.ts=t17.ts and t10.ts=t18.ts and t10.ts=t19.ts'''
|
||||
)
|
||||
tdSql.error("select * from t10 where t10.ts=t11.ts")
|
||||
tdSql.error("select * from where t10.ts=t11.ts")
|
||||
tdSql.error("select * from t10,t11,t12,t13,t14,t15,t16,t17,t18,t19")
|
||||
tdSql.error("select * from stb1, stb2, stb3 where stb1.ts=stb2.ts and stb1.ts=stb3.ts")
|
||||
tdSql.error("select * from stb1, stb2, stb3 where stb1.t11=stb2.t21 and stb1.t11=stb3.t31")
|
||||
tdSql.error("select * from stb1, stb2, stb3")
|
||||
tdSql.error(
|
||||
'''select * from stb1
|
||||
join stb2 on stb1.ts=stb2.ts and stb1.t11=stb2.t21
|
||||
join stb3 on stb1.ts=stb3.ts and stb1.t11=stb3.t31'''
|
||||
)
|
||||
tdSql.error("select * from t10 join t11 on t10.ts=t11.ts join t12 on t11.ts=t12.ts")
|
||||
tdSql.query(
|
||||
'''select * from stb1,stb2,stb3
|
||||
where stb1.ts=stb2.ts and stb1.ts=stb3.ts and stb1.t11=stb2.t21 and stb1.t11 =stb3.t31'''
|
||||
)
|
||||
tdSql.checkRows(300)
|
||||
tdSql.query("select * from t11,t12,t13 where t11.ts=t12.ts and t11.ts=t13.ts")
|
||||
tdSql.checkRows(100)
|
||||
tdSql.error("selec * from t11,t12,t13 where t11.ts=t12.ts and t11.ts=t13.ts")
|
||||
tdSql.error("select * form t11,t12,t13 where t11.ts=t12.ts and t11.ts=t13.ts")
|
||||
tdSql.error("select * from t11,t12,t13 when t11.ts=t12.ts and t11.ts=t13.ts")
|
||||
tdSql.error("select * from t11,t12,t13 when t11.ts <> t12.ts and t11.ts=t13.ts")
|
||||
tdSql.error("select * from t11,t12,t13 when t11.ts != t12.ts and t11.ts=t13.ts")
|
||||
tdSql.error("select * from t11,t12,t13 when t11.ts=t12.ts or t11.ts=t13.ts")
|
||||
tdSql.error("select * from t11,t12,t13 when t11.ts=t12.ts=t13.ts")
|
||||
tdSql.error("select * from t11,t12,t13 when t11.c1=t12.c2 and t11.c1=t13.c3")
|
||||
tdSql.error("select * from t11,t12,t13 when t11.ts=t12.ts and t11.ts=t13.c3 and t11.c1=t13.ts")
|
||||
tdSql.error("select ts from t11,t12,t13 when t11.ts=t12.ts and t11.ts=t13.ts")
|
||||
tdSql.error("select * from t11,t12,t13 when t11.ts=ts and t11.ts=t13.ts")
|
||||
tdSql.error("select * from t11,t12,t13 when t11.ts=t12.ts and t11.ts=t13.ts and ts>100")
|
||||
tdSql.error("select * from t11,t12,stb1 when t11.ts=t12.ts and t11.ts=stb1.ts")
|
||||
tdSql.error("select t14.ts from t11,t12,t13 when t11.ts=t12.ts and t11.ts=t13.ts")
|
||||
tdSql.error("select * from t11,t12,t13 when t11.ts=t12.ts and t11.ts=t13.ts1")
|
||||
tdSql.error("select * from t11,t12,t13 when t11.ts=t12.ts and t11.ts=t14.ts")
|
||||
tdSql.error("select * from t11,t12,t13 when t11.ts=t12.ts")
|
||||
tdSql.error("select * from t11,t12,t13 when t11.ts=t12.ts and t11.ts=t13.ts and t11.c1=t13.c3")
|
||||
tdSql.error(
|
||||
'''select * from t10,t11,t12,t13,t14,t15,t16,t17,t18,t19,t20
|
||||
where t10.ts=t11.ts and t10.ts=t12.ts and t10.ts=t13.ts and t10.ts=t14.ts and t10.ts=t15.ts
|
||||
and t10.ts=t16.ts and t10.ts=t17.ts and t10.ts=t18.ts and t10.ts=t19.ts and t10.ts=t20.ts'''
|
||||
)
|
||||
tdSql.error(
|
||||
'''select * from t10,t11,t12,t13,t14,t15,t16,t17,t18,t19,t20
|
||||
where t10.ts=t11.ts and t10.ts=t12.ts and t10.ts=t13.ts and t10.ts=t14.ts and t10.ts=t15.ts
|
||||
and t10.ts=t16.ts and t10.ts=t17.ts and t10.ts=t18.ts and t10.ts=t19.ts'''
|
||||
)
|
||||
tdSql.error(
|
||||
'''select * from t10,t11,t12,t13,t14,t15,t16,t17,t18,t19
|
||||
where t10.ts=t11.ts and t10.ts=t12.ts and t10.ts=t13.ts and t10.ts=t14.ts and t10.ts=t15.ts
|
||||
and t10.ts=t16.ts and t10.ts=t17.ts and t10.ts=t18.ts and t10.ts=t19.ts and t10.c1=t19.c1'''
|
||||
)
|
||||
tdSql.error(
|
||||
'''select * from stb1,stb2,stb3
|
||||
where stb1.ts=stb2.ts and stb1.ts=stb3.ts and stb1.t11=stb2.t21'''
|
||||
)
|
||||
tdSql.error(
|
||||
'''select * from stb1,stb2,stb3
|
||||
where stb1.ts=stb2.ts and stb1.t11=stb2.t21 and stb1.t11=stb3.t31'''
|
||||
)
|
||||
tdSql.error(
|
||||
'''select * from stb1,stb2,stb3
|
||||
where stb1.ts=stb2.ts and stb1.ts=stb3.ts and stb1.t11=stb2.t21 and stb1.t11=stb3.t31
|
||||
and stb1.t12=stb3=t32'''
|
||||
)
|
||||
tdSql.error(
|
||||
'''select * from stb1,stb2,stb3,stb4,stb5,stb6,stb7,stb8,stb9,stb10,stb11
|
||||
where stb1.ts=stb2.ts and stb1.ts=stb3.ts and stb1.ts=stb4.ts and stb1.ts=stb5.ts and stb1.ts=stb6.ts
|
||||
and stb1.ts=stb7.ts and stb1.ts=stb8.ts and stb1.ts=stb9.ts and stb1.ts=stb10.ts and stb1.ts=stb11.ts
|
||||
and stb1.t11=stb2.t21 and stb1.t11=stb3.t31 and stb1.t11=stb4.t41 and stb1.t11=stb5.t51
|
||||
and stb1.t11=stb6.t61 and stb1.t11=stb7.t71 and stb1.t11=stb8.t81 and stb1.t11=stb9.t91
|
||||
and stb1.t11=stb10.t101 and stb1.t11=stb11.t111'''
|
||||
)
|
||||
tdSql.error(
|
||||
'''select * from stb1,stb2,stb3,stb4,stb5,stb6,stb7,stb8,stb9,stb10
|
||||
where stb1.ts=stb2.ts and stb1.ts=stb3.ts and stb1.ts=stb4.ts and stb1.ts=stb5.ts and stb1.ts=stb6.ts
|
||||
and stb1.ts=stb7.ts and stb1.ts=stb8.ts and stb1.ts=stb9.ts and stb1.ts=stb10.ts and stb1.t11=stb2.t21
|
||||
and stb1.t11=stb3.t31 and stb1.t11=stb4.t41 and stb1.t11=stb5.t51 and stb1.t11=stb6.t61
|
||||
and stb1.t11=stb7.t71 and stb1.t11=stb8.t81 and stb1.t11=stb9.t91 and stb1.t11=stb10.t101
|
||||
and stb1.t12=stb11.t102'''
|
||||
)
|
||||
|
||||
def run(self):
|
||||
tdSql.prepare()
|
||||
|
||||
tdLog.printNoPrefix("==========step1:create table")
|
||||
self.createtable()
|
||||
|
||||
tdLog.printNoPrefix("==========step2:insert data")
|
||||
self.inserttable()
|
||||
|
||||
tdLog.printNoPrefix("==========step3:query timestamp type")
|
||||
self.queryjointable()
|
||||
|
||||
# after wal and sync, check again
|
||||
tdSql.query("show dnodes")
|
||||
index = tdSql.getData(0, 0)
|
||||
tdDnodes.stop(index)
|
||||
tdDnodes.start(index)
|
||||
|
||||
tdLog.printNoPrefix("==========step4:query again after wal")
|
||||
self.queryjointable()
|
||||
|
||||
|
||||
def stop(self):
|
||||
tdSql.close()
|
||||
tdLog.success(f"{__file__} successfully executed")
|
||||
|
||||
tdCases.addLinux(__file__, TDTestCase())
|
||||
tdCases.addWindows(__file__, TDTestCase())
|
|
@ -0,0 +1,68 @@
|
|||
###################################################################
|
||||
# Copyright (c) 2016 by TAOS Technologies, Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This file is proprietary and confidential to TAOS Technologies.
|
||||
# No part of this file may be reproduced, stored, transmitted,
|
||||
# disclosed or used in any form or by any means other than as
|
||||
# expressly provided by the written permission from Jianhui Tao
|
||||
#
|
||||
###################################################################
|
||||
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import sys
|
||||
from util.log import *
|
||||
from util.cases import *
|
||||
from util.sql import *
|
||||
from util.dnodes import *
|
||||
|
||||
|
||||
class TDTestCase:
|
||||
def init(self, conn, logSql):
|
||||
tdLog.debug("start to execute %s" % __file__)
|
||||
tdSql.init(conn.cursor(), logSql)
|
||||
|
||||
def querysqls(self):
|
||||
tdSql.query("select stddev(c1) from t10 group by c1")
|
||||
tdSql.checkRows(6)
|
||||
tdSql.checkData(0, 0, 0)
|
||||
tdSql.checkData(1, 0, 0)
|
||||
tdSql.checkData(2, 0, 0)
|
||||
tdSql.checkData(3, 0, 0)
|
||||
tdSql.checkData(4, 0, 0)
|
||||
tdSql.checkData(5, 0, 0)
|
||||
tdSql.query("select stddev(c2) from t10")
|
||||
tdSql.checkData(0, 0, 0.5)
|
||||
|
||||
def run(self):
|
||||
tdSql.execute("drop database if exists db")
|
||||
tdSql.execute("create database if not exists db keep 36500")
|
||||
tdSql.execute("use db")
|
||||
|
||||
tdLog.printNoPrefix("==========step1:create table && insert data")
|
||||
tdSql.execute("create stable stb1 (ts timestamp , c1 int ,c2 float) tags(t1 int)")
|
||||
tdSql.execute("create table t10 using stb1 tags(1)")
|
||||
tdSql.execute("insert into t10 values ('1969-12-31 00:00:00.000', 2,1)")
|
||||
tdSql.execute("insert into t10 values ('1970-01-01 00:00:00.000', 3,1)")
|
||||
tdSql.execute("insert into t10 values (0, 4,1)")
|
||||
tdSql.execute("insert into t10 values (now-18725d, 1,2)")
|
||||
tdSql.execute("insert into t10 values ('2021-04-06 00:00:00.000', 5,2)")
|
||||
tdSql.execute("insert into t10 values (now+1d,6,2)")
|
||||
|
||||
tdLog.printNoPrefix("==========step2:query and check")
|
||||
self.querysqls()
|
||||
|
||||
tdLog.printNoPrefix("==========step3:after wal,check again")
|
||||
tdSql.query("show dnodes")
|
||||
index = tdSql.getData(0, 0)
|
||||
tdDnodes.stop(index)
|
||||
tdDnodes.start(index)
|
||||
self.querysqls()
|
||||
|
||||
def stop(self):
|
||||
tdSql.close()
|
||||
tdLog.success("%s successfully executed" % __file__)
|
||||
|
||||
tdCases.addWindows(__file__, TDTestCase())
|
||||
tdCases.addLinux(__file__, TDTestCase())
|
|
@ -220,6 +220,7 @@ sql_error select sum(c3), ts, c2 from group_tb0 where c1 < 20 group by c1;
|
|||
sql_error select sum(c3), first(ts), c2 from group_tb0 where c1 < 20 group by c1;
|
||||
sql_error select first(c3), ts, c1, c2 from group_tb0 where c1 < 20 group by c1;
|
||||
sql_error select first(c3), last(c3), ts, c1 from group_tb0 where c1 < 20 group by c1;
|
||||
sql_error select ts from group_tb0 group by c1;
|
||||
|
||||
#===========================interval=====not support======================
|
||||
sql_error select count(*), c1 from group_tb0 where c1<20 interval(1y) group by c1;
|
||||
|
|
Loading…
Reference in New Issue