Merge branch '3.0' of github.com:taosdata/TDengine into szhou/fixbugs

This commit is contained in:
shenglian zhou 2022-08-19 17:27:42 +08:00
commit c8bd3c6da4
66 changed files with 605 additions and 509 deletions

View File

@ -2,7 +2,7 @@
# taosadapter
ExternalProject_Add(taosadapter
GIT_REPOSITORY https://github.com/taosdata/taosadapter.git
GIT_TAG 3d21433
GIT_TAG abed566
SOURCE_DIR "${TD_SOURCE_DIR}/tools/taosadapter"
BINARY_DIR ""
#BUILD_IN_SOURCE TRUE

View File

@ -9,7 +9,7 @@ The data model employed by TDengine is similar to that of a relational database.
The [characteristics of time-series data](https://www.taosdata.com/blog/2019/07/09/86.html) from different data collection points may be different. Characteristics include collection frequency, retention policy and others which determine how you create and configure the database. For e.g. days to keep, number of replicas, data block size, whether data updates are allowed and other configurable parameters would be determined by the characteristics of your data and your business requirements. For TDengine to operate with the best performance, we strongly recommend that you create and configure different databases for data with different characteristics. This allows you, for example, to set up different storage and retention policies. When creating a database, there are a lot of parameters that can be configured such as, the days to keep data, the number of replicas, the number of memory blocks, time precision, the minimum and maximum number of rows in each data block, whether compression is enabled, the time range of the data in single data file and so on. Below is an example of the SQL statement to create a database.
```sql
CREATE DATABASE power KEEP 365 DURATION 10 BUFFER 16 VGROUPS 100 WAL 1;
CREATE DATABASE power KEEP 365 DURATION 10 BUFFER 16 WAL_LEVEL 1;
```
In the above SQL statement:

View File

@ -61,20 +61,20 @@ In summary, records across subtables can be aggregated by a simple query on thei
In TDengine CLI `taos`, use the SQL below to get the average voltage of all the meters in California grouped by location.
```
taos> SELECT AVG(voltage) FROM meters GROUP BY location;
avg(voltage) | location |
=============================================================
222.000000000 | California.LosAngeles |
219.200000000 | California.SanFrancisco |
Query OK, 2 row(s) in set (0.002136s)
taos> SELECT AVG(voltage), location FROM meters GROUP BY location;
avg(voltage) | location |
===============================================================================================
219.200000000 | California.SanFrancisco |
221.666666667 | California.LosAngeles |
Query OK, 2 rows in database (0.005995s)
```
### Example 2
In TDengine CLI `taos`, use the SQL below to get the number of rows and the maximum current in the past 24 hours from meters whose groupId is 2.
In TDengine CLI `taos`, use the SQL below to get the number of rows and the maximum current from meters whose groupId is 2.
```
taos> SELECT count(*), max(current) FROM meters where groupId = 2 and ts > now - 24h;
taos> SELECT count(*), max(current) FROM meters where groupId = 2;
count(*) | max(current) |
==================================
5 | 13.4 |
@ -88,40 +88,41 @@ Join queries are only allowed between subtables of the same STable. In [Select](
In IoT use cases, down sampling is widely used to aggregate data by time range. The `INTERVAL` keyword in TDengine can be used to simplify the query by time window. For example, the SQL statement below can be used to get the sum of current every 10 seconds from meters table d1001.
```
taos> SELECT sum(current) FROM d1001 INTERVAL(10s);
ts | sum(current) |
taos> SELECT _wstart, sum(current) FROM d1001 INTERVAL(10s);
_wstart | sum(current) |
======================================================
2018-10-03 14:38:00.000 | 10.300000191 |
2018-10-03 14:38:10.000 | 24.900000572 |
Query OK, 2 row(s) in set (0.000883s)
Query OK, 2 rows in database (0.003139s)
```
Down sampling can also be used for STable. For example, the below SQL statement can be used to get the sum of current from all meters in California.
```
taos> SELECT SUM(current) FROM meters where location like "California%" INTERVAL(1s);
ts | sum(current) |
taos> SELECT _wstart, SUM(current) FROM meters where location like "California%" INTERVAL(1s);
_wstart | sum(current) |
======================================================
2018-10-03 14:38:04.000 | 10.199999809 |
2018-10-03 14:38:05.000 | 32.900000572 |
2018-10-03 14:38:05.000 | 23.699999809 |
2018-10-03 14:38:06.000 | 11.500000000 |
2018-10-03 14:38:15.000 | 12.600000381 |
2018-10-03 14:38:16.000 | 36.000000000 |
Query OK, 5 row(s) in set (0.001538s)
2018-10-03 14:38:16.000 | 34.400000572 |
Query OK, 5 rows in database (0.007413s)
```
Down sampling also supports time offset. For example, the below SQL statement can be used to get the sum of current from all meters but each time window must start at the boundary of 500 milliseconds.
```
taos> SELECT SUM(current) FROM meters INTERVAL(1s, 500a);
ts | sum(current) |
taos> SELECT _wstart, SUM(current) FROM meters INTERVAL(1s, 500a);
_wstart | sum(current) |
======================================================
2018-10-03 14:38:04.500 | 11.189999809 |
2018-10-03 14:38:05.500 | 31.900000572 |
2018-10-03 14:38:06.500 | 11.600000000 |
2018-10-03 14:38:15.500 | 12.300000381 |
2018-10-03 14:38:16.500 | 35.000000000 |
Query OK, 5 row(s) in set (0.001521s)
2018-10-03 14:38:03.500 | 10.199999809 |
2018-10-03 14:38:04.500 | 10.300000191 |
2018-10-03 14:38:05.500 | 13.399999619 |
2018-10-03 14:38:06.500 | 11.500000000 |
2018-10-03 14:38:14.500 | 12.600000381 |
2018-10-03 14:38:16.500 | 34.400000572 |
Query OK, 6 rows in database (0.005515s)
```
In many use cases, it's hard to align the timestamp of the data collected by each collection point. However, a lot of algorithms like FFT require the data to be aligned with same time interval and application programs have to handle this by themselves. In TDengine, it's easy to achieve the alignment using down sampling.

View File

@ -28,8 +28,7 @@ function runConsumer() {
console.log(msg.topicPartition);
console.log(msg.block);
console.log(msg.fields)
// fixme(@xiaolei): commented temp, should be fixed.
//consumer.commit(msg);
consumer.commit(msg);
console.log(`=======consumer ${i} done`)
}

View File

@ -4,7 +4,7 @@
"main": "index.js",
"license": "MIT",
"dependencies": {
"@tdengine/client": "^3.0.0",
"@tdengine/client": "^3.0.1",
"@tdengine/rest": "^3.0.0"
}
}

View File

@ -11,10 +11,10 @@ TDengine 采用类关系型数据模型,需要建库、建表。因此对于
不同类型的数据采集点往往具有不同的数据特征,包括数据采集频率的高低,数据保留时间的长短,副本的数目,数据块的大小,是否允许更新数据等等。为了在各种场景下 TDengine 都能最大效率的工作TDengine 建议将不同数据特征的表创建在不同的库里,因为每个库可以配置不同的存储策略。创建一个库时,除 SQL 标准的选项外,还可以指定保留时长、副本数、缓存大小、时间精度、文件块里最大最小记录条数、是否压缩、一个数据文件覆盖的天数等多种参数。比如:
```sql
CREATE DATABASE power KEEP 365 DURATION 10 BUFFER 16 VGROUPS 100 WAL 1;
CREATE DATABASE power KEEP 365 DURATION 10 BUFFER 16 WAL_LEVEL 1;
```
上述语句将创建一个名为 power 的库,这个库的数据将保留 365 天(超过 365 天将被自动删除),每 10 天一个数据文件,每个 VNODE 的写入内存池的大小为 16 MB数据库的 VGROUPS 数量,对该数据库入会写 WAL 但不执行 FSYNC。详细的语法及参数请见 [数据库管理](/taos-sql/database) 章节。
上述语句将创建一个名为 power 的库,这个库的数据将保留 365 天(超过 365 天将被自动删除),每 10 天一个数据文件,每个 VNODE 的写入内存池的大小为 16 MB对该数据库入会写 WAL 但不执行 FSYNC。详细的语法及参数请见 [数据库管理](/taos-sql/database) 章节。
创建库之后,需要使用 SQL 命令 `USE` 将当前库切换过来,例如:

View File

@ -54,20 +54,20 @@ Query OK, 2 row(s) in set (0.001100s)
在 TAOS Shell查找加利福尼亚州所有智能电表采集的电压平均值并按照 location 分组。
```
taos> SELECT AVG(voltage) FROM meters GROUP BY location;
avg(voltage) | location |
=============================================================
222.000000000 | California.LosAngeles |
219.200000000 | California.SanFrancisco |
Query OK, 2 row(s) in set (0.002136s)
taos> SELECT AVG(voltage), location FROM meters GROUP BY location;
avg(voltage) | location |
===============================================================================================
219.200000000 | California.SanFrancisco |
221.666666667 | California.LosAngeles |
Query OK, 2 rows in database (0.005995s)
```
### 示例二
在 TAOS shell, 查找 groupId 为 2 的所有智能电表过去 24 小时的记录条数,电流的最大值。
在 TAOS shell, 查找 groupId 为 2 的所有智能电表的记录条数,电流的最大值。
```
taos> SELECT count(*), max(current) FROM meters where groupId = 2 and ts > now - 24h;
taos> SELECT count(*), max(current) FROM meters where groupId = 2;
cunt(*) | max(current) |
==================================
5 | 13.4 |
@ -81,40 +81,41 @@ Query OK, 1 row(s) in set (0.002136s)
物联网场景里经常需要通过降采样down sampling将采集的数据按时间段进行聚合。TDengine 提供了一个简便的关键词 interval 让按照时间窗口的查询操作变得极为简单。比如,将智能电表 d1001 采集的电流值每 10 秒钟求和
```
taos> SELECT sum(current) FROM d1001 INTERVAL(10s);
ts | sum(current) |
taos> SELECT _wstart, sum(current) FROM d1001 INTERVAL(10s);
_wstart | sum(current) |
======================================================
2018-10-03 14:38:00.000 | 10.300000191 |
2018-10-03 14:38:10.000 | 24.900000572 |
Query OK, 2 row(s) in set (0.000883s)
Query OK, 2 rows in database (0.003139s)
```
降采样操作也适用于超级表,比如:将加利福尼亚州所有智能电表采集的电流值每秒钟求和
```
taos> SELECT SUM(current) FROM meters where location like "California%" INTERVAL(1s);
ts | sum(current) |
taos> SELECT _wstart, SUM(current) FROM meters where location like "California%" INTERVAL(1s);
_wstart | sum(current) |
======================================================
2018-10-03 14:38:04.000 | 10.199999809 |
2018-10-03 14:38:05.000 | 32.900000572 |
2018-10-03 14:38:05.000 | 23.699999809 |
2018-10-03 14:38:06.000 | 11.500000000 |
2018-10-03 14:38:15.000 | 12.600000381 |
2018-10-03 14:38:16.000 | 36.000000000 |
Query OK, 5 row(s) in set (0.001538s)
2018-10-03 14:38:16.000 | 34.400000572 |
Query OK, 5 rows in database (0.007413s)
```
降采样操作也支持时间偏移,比如:将所有智能电表采集的电流值每秒钟求和,但要求每个时间窗口从 500 毫秒开始
```
taos> SELECT SUM(current) FROM meters INTERVAL(1s, 500a);
ts | sum(current) |
taos> SELECT _wstart, SUM(current) FROM meters INTERVAL(1s, 500a);
_wstart | sum(current) |
======================================================
2018-10-03 14:38:04.500 | 11.189999809 |
2018-10-03 14:38:05.500 | 31.900000572 |
2018-10-03 14:38:06.500 | 11.600000000 |
2018-10-03 14:38:15.500 | 12.300000381 |
2018-10-03 14:38:16.500 | 35.000000000 |
Query OK, 5 row(s) in set (0.001521s)
2018-10-03 14:38:03.500 | 10.199999809 |
2018-10-03 14:38:04.500 | 10.300000191 |
2018-10-03 14:38:05.500 | 13.399999619 |
2018-10-03 14:38:06.500 | 11.500000000 |
2018-10-03 14:38:14.500 | 12.600000381 |
2018-10-03 14:38:16.500 | 34.400000572 |
Query OK, 6 rows in database (0.005515s)
```
物联网场景里,每个数据采集点采集数据的时间是难同步的,但很多分析算法(比如 FFT)需要把采集的数据严格按照时间等间隔的对齐,在很多系统里,需要应用自己写程序来处理,但使用 TDengine 的降采样操作就轻松解决。

View File

@ -105,7 +105,7 @@ typedef enum ENodeType {
QUERY_NODE_COLUMN_REF,
// Statement nodes are used in parser and planner module.
QUERY_NODE_SET_OPERATOR,
QUERY_NODE_SET_OPERATOR = 100,
QUERY_NODE_SELECT_STMT,
QUERY_NODE_VNODE_MODIF_STMT,
QUERY_NODE_CREATE_DATABASE_STMT,
@ -198,7 +198,7 @@ typedef enum ENodeType {
QUERY_NODE_QUERY,
// logic plan node
QUERY_NODE_LOGIC_PLAN_SCAN,
QUERY_NODE_LOGIC_PLAN_SCAN = 1000,
QUERY_NODE_LOGIC_PLAN_JOIN,
QUERY_NODE_LOGIC_PLAN_AGG,
QUERY_NODE_LOGIC_PLAN_PROJECT,
@ -215,7 +215,7 @@ typedef enum ENodeType {
QUERY_NODE_LOGIC_PLAN,
// physical plan node
QUERY_NODE_PHYSICAL_PLAN_TAG_SCAN,
QUERY_NODE_PHYSICAL_PLAN_TAG_SCAN = 1100,
QUERY_NODE_PHYSICAL_PLAN_TABLE_SCAN,
QUERY_NODE_PHYSICAL_PLAN_TABLE_SEQ_SCAN,
QUERY_NODE_PHYSICAL_PLAN_TABLE_MERGE_SCAN,

View File

@ -428,6 +428,9 @@ void nodesValueNodeToVariant(const SValueNode* pNode, SVariant* pVal);
char* nodesGetFillModeString(EFillMode mode);
int32_t nodesMergeConds(SNode** pDst, SNodeList** pSrc);
const char* operatorTypeStr(EOperatorType type);
const char* logicConditionTypeStr(ELogicConditionType type);
#ifdef __cplusplus
}
#endif

View File

@ -132,15 +132,14 @@ typedef enum EOperatorType {
OP_TYPE_DIV,
OP_TYPE_REM,
// unary arithmetic operator
OP_TYPE_MINUS,
OP_TYPE_ASSIGN,
OP_TYPE_MINUS = 20,
// bitwise operator
OP_TYPE_BIT_AND,
OP_TYPE_BIT_AND = 30,
OP_TYPE_BIT_OR,
// binary comparison operator
OP_TYPE_GREATER_THAN,
OP_TYPE_GREATER_THAN = 40,
OP_TYPE_GREATER_EQUAL,
OP_TYPE_LOWER_THAN,
OP_TYPE_LOWER_EQUAL,
@ -153,7 +152,7 @@ typedef enum EOperatorType {
OP_TYPE_MATCH,
OP_TYPE_NMATCH,
// unary comparison operator
OP_TYPE_IS_NULL,
OP_TYPE_IS_NULL = 100,
OP_TYPE_IS_NOT_NULL,
OP_TYPE_IS_TRUE,
OP_TYPE_IS_FALSE,
@ -163,8 +162,11 @@ typedef enum EOperatorType {
OP_TYPE_IS_NOT_UNKNOWN,
// json operator
OP_TYPE_JSON_GET_VALUE,
OP_TYPE_JSON_CONTAINS
OP_TYPE_JSON_GET_VALUE = 150,
OP_TYPE_JSON_CONTAINS,
// internal operator
OP_TYPE_ASSIGN = 200
} EOperatorType;
#define OP_TYPE_CALC_MAX OP_TYPE_BIT_OR

View File

@ -28,6 +28,13 @@ if not exist %tagert_dir%\\driver (
if not exist C:\\TDengine\\cfg\\taos.cfg (
copy %source_dir%\\packaging\\cfg\\taos.cfg %tagert_dir%\\cfg\\taos.cfg > nul
)
if exist %binary_dir%\\test\\cfg\\taosadapter.toml (
if not exist %tagert_dir%\\cfg\\taosadapter.toml (
copy %binary_dir%\\test\\cfg\\taosadapter.toml %tagert_dir%\\cfg\\taosadapter.toml > nul
)
)
copy %source_dir%\\include\\client\\taos.h %tagert_dir%\\include > nul
copy %source_dir%\\include\\util\\taoserror.h %tagert_dir%\\include > nul
copy %source_dir%\\include\\libs\\function\\taosudf.h %tagert_dir%\\include > nul
@ -40,6 +47,9 @@ copy %binary_dir%\\build\\bin\\udfd.exe %tagert_dir% > nul
if exist %binary_dir%\\build\\bin\\taosBenchmark.exe (
copy %binary_dir%\\build\\bin\\taosBenchmark.exe %tagert_dir% > nul
)
if exist %binary_dir%\\build\\bin\\taosadapter.exe (
copy %binary_dir%\\build\\bin\\taosadapter.exe %tagert_dir% > nul
)
mshta vbscript:createobject("shell.application").shellexecute("%~s0",":hasAdmin","","runas",1)(window.close)&& echo To start/stop TDengine with administrator privileges: sc start/stop taosd &goto :eof
:hasAdmin

View File

@ -88,7 +88,7 @@ static const SSysDbTableSchema userDBSchema[] = {
{.name = "comp", .bytes = 1, .type = TSDB_DATA_TYPE_TINYINT},
{.name = "precision", .bytes = 2 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR},
{.name = "status", .bytes = 10 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR},
{.name = "retention", .bytes = 60 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR},
{.name = "retentions", .bytes = 60 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR},
{.name = "single_stable", .bytes = 1, .type = TSDB_DATA_TYPE_BOOL},
{.name = "cachemodel", .bytes = TSDB_CACHE_MODEL_STR_LEN + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR},
{.name = "cachesize", .bytes = 4, .type = TSDB_DATA_TYPE_INT},

View File

@ -489,7 +489,7 @@ static int32_t mndCreateSma(SMnode *pMnode, SRpcMsg *pReq, SMCreateSmaReq *pCrea
smaObj.uid = mndGenerateUid(pCreate->name, TSDB_TABLE_FNAME_LEN);
ASSERT(smaObj.uid != 0);
char resultTbName[TSDB_TABLE_FNAME_LEN + 16] = {0};
snprintf(resultTbName, TSDB_TABLE_FNAME_LEN + 16, "%s_td_tsma_rst_tb",pCreate->name);
snprintf(resultTbName, TSDB_TABLE_FNAME_LEN + 16, "%s_td_tsma_rst_tb", pCreate->name);
memcpy(smaObj.dstTbName, resultTbName, TSDB_TABLE_FNAME_LEN);
smaObj.dstTbUid = mndGenerateUid(smaObj.dstTbName, TSDB_TABLE_FNAME_LEN);
smaObj.stbUid = pStb->uid;
@ -530,7 +530,7 @@ static int32_t mndCreateSma(SMnode *pMnode, SRpcMsg *pReq, SMCreateSmaReq *pCrea
streamObj.sourceDbUid = pDb->uid;
streamObj.targetDbUid = pDb->uid;
streamObj.version = 1;
streamObj.sql = pCreate->sql;
streamObj.sql = strdup(pCreate->sql);
streamObj.smaId = smaObj.uid;
streamObj.watermark = pCreate->watermark;
streamObj.trigger = STREAM_TRIGGER_WINDOW_CLOSE;
@ -585,6 +585,7 @@ static int32_t mndCreateSma(SMnode *pMnode, SRpcMsg *pReq, SMCreateSmaReq *pCrea
return -1;
}
if (pAst != NULL) nodesDestroyNode(pAst);
nodesDestroyNode((SNode *)pPlan);
int32_t code = -1;
STrans *pTrans = mndTransCreate(pMnode, TRN_POLICY_RETRY, TRN_CONFLICT_DB, pReq);
@ -609,6 +610,7 @@ static int32_t mndCreateSma(SMnode *pMnode, SRpcMsg *pReq, SMCreateSmaReq *pCrea
code = 0;
_OVER:
tFreeStreamObj(&streamObj);
mndDestroySmaObj(&smaObj);
mndTransDrop(pTrans);
return code;

View File

@ -509,6 +509,7 @@ int32_t mndAllocSmaVgroup(SMnode *pMnode, SDbObj *pDb, SVgObj *pVgroup) {
pVgroup->replica = 1;
if (mndGetAvailableDnode(pMnode, pDb, pVgroup, pArray) != 0) return -1;
taosArrayDestroy(pArray);
mInfo("db:%s, sma vgId:%d is alloced", pDb->name, pVgroup->vgId);
return 0;
@ -1862,4 +1863,4 @@ _OVER:
#endif
}
bool mndVgroupInDb(SVgObj *pVgroup, int64_t dbUid) { return !pVgroup->isTsma && pVgroup->dbUid == dbUid; }
bool mndVgroupInDb(SVgObj *pVgroup, int64_t dbUid) { return !pVgroup->isTsma && pVgroup->dbUid == dbUid; }

View File

@ -341,7 +341,7 @@ FAIL:
return -1;
}
void tqReaderSetColIdList(STqReader* pReadHandle, SArray* pColIdList) { pReadHandle->pColIdList = pColIdList; }
void tqReaderSetColIdList(STqReader* pReader, SArray* pColIdList) { pReader->pColIdList = pColIdList; }
int tqReaderSetTbUidList(STqReader* pReader, const SArray* tbUidList) {
if (pReader->tbIdHash) {

View File

@ -205,7 +205,7 @@ typedef struct SExprSupp {
} SExprSupp;
typedef struct SOperatorInfo {
uint8_t operatorType;
uint16_t operatorType;
bool blocking; // block operator or not
uint8_t status; // denote if current operator is completed
char* name; // name, for debug purpose
@ -434,7 +434,7 @@ typedef struct SStreamAggSupporter {
typedef struct SessionWindowSupporter {
SStreamAggSupporter* pStreamAggSup;
int64_t gap;
uint8_t parentType;
uint16_t parentType;
SAggSupporter* pIntervalAggSup;
} SessionWindowSupporter;

View File

@ -348,7 +348,7 @@ int32_t qCreateExecTask(SReadHandle* readHandle, int32_t vgId, uint64_t taskId,
taosThreadOnce(&initPoolOnce, initRefPool);
atexit(cleanupRefPool);
qDebug("start to create subplan task, TID:0x%"PRIx64 " QID:0x%"PRIx64, taskId, pSubplan->id.queryId);
qDebug("start to create subplan task, TID:0x%" PRIx64 " QID:0x%" PRIx64, taskId, pSubplan->id.queryId);
int32_t code = createExecTaskInfoImpl(pSubplan, pTask, readHandle, taskId, sql, model);
if (code != TSDB_CODE_SUCCESS) {
@ -374,7 +374,7 @@ int32_t qCreateExecTask(SReadHandle* readHandle, int32_t vgId, uint64_t taskId,
}
}
qDebug("subplan task create completed, TID:0x%"PRIx64 " QID:0x%"PRIx64, taskId, pSubplan->id.queryId);
qDebug("subplan task create completed, TID:0x%" PRIx64 " QID:0x%" PRIx64, taskId, pSubplan->id.queryId);
_error:
// if failed to add ref for all tables in this query, abort current query
@ -427,7 +427,7 @@ int waitMoment(SQInfo* pQInfo) {
#endif
static void freeBlock(void* param) {
SSDataBlock* pBlock = *(SSDataBlock**) param;
SSDataBlock* pBlock = *(SSDataBlock**)param;
blockDataDestroy(pBlock);
}
@ -467,12 +467,12 @@ int32_t qExecTaskOpt(qTaskInfo_t tinfo, SArray* pResList, uint64_t* useconds) {
qDebug("%s execTask is launched", GET_TASKID(pTaskInfo));
int32_t current = 0;
int32_t current = 0;
SSDataBlock* pRes = NULL;
int64_t st = taosGetTimestampUs();
while((pRes = pTaskInfo->pRoot->fpSet.getNextFn(pTaskInfo->pRoot)) != NULL) {
while ((pRes = pTaskInfo->pRoot->fpSet.getNextFn(pTaskInfo->pRoot)) != NULL) {
SSDataBlock* p = createOneDataBlock(pRes, true);
current += p->info.rows;
ASSERT(p->info.rows > 0);
@ -494,7 +494,7 @@ int32_t qExecTaskOpt(qTaskInfo_t tinfo, SArray* pResList, uint64_t* useconds) {
uint64_t total = pTaskInfo->pRoot->resultInfo.totalRows;
qDebug("%s task suspended, %d rows in %d blocks returned, total:%" PRId64 " rows, in sinkNode:%d, elapsed:%.2f ms",
GET_TASKID(pTaskInfo), current, (int32_t) taosArrayGetSize(pResList), total, 0, el / 1000.0);
GET_TASKID(pTaskInfo), current, (int32_t)taosArrayGetSize(pResList), total, 0, el / 1000.0);
atomic_store_64(&pTaskInfo->owner, 0);
return pTaskInfo->code;
@ -632,7 +632,7 @@ int32_t qExtractStreamScanner(qTaskInfo_t tinfo, void** scanner) {
SOperatorInfo* pOperator = pTaskInfo->pRoot;
while (1) {
uint8_t type = pOperator->operatorType;
uint16_t type = pOperator->operatorType;
if (type == QUERY_NODE_PHYSICAL_PLAN_STREAM_SCAN) {
*scanner = pOperator->info;
return 0;
@ -691,7 +691,7 @@ int32_t qStreamPrepareScan(qTaskInfo_t tinfo, const STqOffsetVal* pOffset) {
pTaskInfo->streamInfo.prepareStatus = *pOffset;
if (!tOffsetEqual(pOffset, &pTaskInfo->streamInfo.lastStatus)) {
while (1) {
uint8_t type = pOperator->operatorType;
uint16_t type = pOperator->operatorType;
pOperator->status = OP_OPENED;
// TODO add more check
if (type != QUERY_NODE_PHYSICAL_PLAN_STREAM_SCAN) {

View File

@ -3217,8 +3217,8 @@ int32_t handleLimitOffset(SOperatorInfo* pOperator, SLimitInfo* pLimitInfo, SSDa
}
static void doApplyScalarCalculation(SOperatorInfo* pOperator, SSDataBlock* pBlock, int32_t order, int32_t scanFlag);
static void doHandleRemainBlockForNewGroupImpl(SOperatorInfo *pOperator, SFillOperatorInfo* pInfo, SResultInfo* pResultInfo,
SExecTaskInfo* pTaskInfo) {
static void doHandleRemainBlockForNewGroupImpl(SOperatorInfo* pOperator, SFillOperatorInfo* pInfo,
SResultInfo* pResultInfo, SExecTaskInfo* pTaskInfo) {
pInfo->totalInputRows = pInfo->existNewGroupBlock->info.rows;
SSDataBlock* pResBlock = pInfo->pFinalRes;
@ -3242,8 +3242,8 @@ static void doHandleRemainBlockForNewGroupImpl(SOperatorInfo *pOperator, SFillOp
pInfo->existNewGroupBlock = NULL;
}
static void doHandleRemainBlockFromNewGroup(SOperatorInfo* pOperator, SFillOperatorInfo* pInfo, SResultInfo* pResultInfo,
SExecTaskInfo* pTaskInfo) {
static void doHandleRemainBlockFromNewGroup(SOperatorInfo* pOperator, SFillOperatorInfo* pInfo,
SResultInfo* pResultInfo, SExecTaskInfo* pTaskInfo) {
if (taosFillHasMoreResults(pInfo->pFillInfo)) {
int32_t numOfResultRows = pResultInfo->capacity - pInfo->pFinalRes->info.rows;
taosFillResultDataBlock(pInfo->pFillInfo, pInfo->pFinalRes, numOfResultRows);
@ -3259,8 +3259,8 @@ static void doHandleRemainBlockFromNewGroup(SOperatorInfo* pOperator, SFillOpera
static void doApplyScalarCalculation(SOperatorInfo* pOperator, SSDataBlock* pBlock, int32_t order, int32_t scanFlag) {
SFillOperatorInfo* pInfo = pOperator->info;
SExprSupp* pSup = &pOperator->exprSupp;
SSDataBlock* pResBlock = pInfo->pFinalRes;
SExprSupp* pSup = &pOperator->exprSupp;
SSDataBlock* pResBlock = pInfo->pFinalRes;
setInputDataBlock(pOperator, pSup->pCtx, pBlock, order, scanFlag, false);
projectApplyFunctions(pSup->pExprInfo, pInfo->pRes, pBlock, pSup->pCtx, pSup->numOfExprs, NULL);
@ -3270,13 +3270,13 @@ static void doApplyScalarCalculation(SOperatorInfo* pOperator, SSDataBlock* pBlo
SColumnInfoData* pSrc = taosArrayGet(pBlock->pDataBlock, pInfo->primarySrcSlotId);
colDataAssign(pDst, pSrc, pInfo->pRes->info.rows, &pResBlock->info);
for(int32_t i = 0; i < pInfo->numOfNotFillExpr; ++i) {
for (int32_t i = 0; i < pInfo->numOfNotFillExpr; ++i) {
SFillColInfo* pCol = &pInfo->pFillInfo->pFillCol[i + pInfo->numOfExpr];
ASSERT(pCol->notFillCol);
SExprInfo* pExpr = pCol->pExpr;
int32_t srcSlotId = pExpr->base.pParam[0].pCol->slotId;
int32_t dstSlotId = pExpr->base.resSchema.slotId;
int32_t srcSlotId = pExpr->base.pParam[0].pCol->slotId;
int32_t dstSlotId = pExpr->base.resSchema.slotId;
SColumnInfoData* pDst1 = taosArrayGet(pInfo->pRes->pDataBlock, dstSlotId);
SColumnInfoData* pSrc1 = taosArrayGet(pBlock->pDataBlock, srcSlotId);
@ -3664,7 +3664,7 @@ void destroyExchangeOperatorInfo(void* param, int32_t numOfOutput) {
taosRemoveRef(exchangeObjRefPool, pExInfo->self);
}
void freeSourceDataInfo(void *p) {
void freeSourceDataInfo(void* p) {
SSourceDataInfo* pInfo = (SSourceDataInfo*)p;
taosMemoryFreeClear(pInfo->pRsp);
}
@ -3694,8 +3694,8 @@ static int32_t initFillInfo(SFillOperatorInfo* pInfo, SExprInfo* pExpr, int32_t
STimeWindow w = getAlignQueryTimeWindow(pInterval, pInterval->precision, win.skey);
w = getFirstQualifiedTimeWindow(win.skey, &w, pInterval, TSDB_ORDER_ASC);
pInfo->pFillInfo =
taosCreateFillInfo(w.skey, numOfCols, numOfNotFillCols, capacity, pInterval, fillType, pColInfo, pInfo->primaryTsCol, order, id);
pInfo->pFillInfo = taosCreateFillInfo(w.skey, numOfCols, numOfNotFillCols, capacity, pInterval, fillType, pColInfo,
pInfo->primaryTsCol, order, id);
pInfo->win = win;
pInfo->p = taosMemoryCalloc(numOfCols, POINTER_BYTES);
@ -3721,10 +3721,10 @@ SOperatorInfo* createFillOperatorInfo(SOperatorInfo* downstream, SFillPhysiNode*
SExprInfo* pExprInfo = createExprInfo(pPhyFillNode->pFillExprs, NULL, &pInfo->numOfExpr);
pInfo->pNotFillExprInfo = createExprInfo(pPhyFillNode->pNotFillExprs, NULL, &pInfo->numOfNotFillExpr);
SInterval* pInterval =
SInterval* pInterval =
QUERY_NODE_PHYSICAL_PLAN_MERGE_ALIGNED_INTERVAL == downstream->operatorType
? &((SMergeAlignedIntervalAggOperatorInfo*)downstream->info)->intervalAggOperatorInfo->interval
: &((SIntervalAggOperatorInfo*)downstream->info)->interval;
? &((SMergeAlignedIntervalAggOperatorInfo*)downstream->info)->intervalAggOperatorInfo->interval
: &((SIntervalAggOperatorInfo*)downstream->info)->interval;
int32_t order = (pPhyFillNode->inputTsOrder == ORDER_ASC) ? TSDB_ORDER_ASC : TSDB_ORDER_DESC;
int32_t type = convertFillType(pPhyFillNode->mode);
@ -3741,9 +3741,9 @@ SOperatorInfo* createFillOperatorInfo(SOperatorInfo* downstream, SFillPhysiNode*
SArray* pColMatchColInfo = extractColMatchInfo(pPhyFillNode->pFillExprs, pPhyFillNode->node.pOutputDataBlockDesc,
&numOfOutputCols, COL_MATCH_FROM_SLOT_ID);
int32_t code =
initFillInfo(pInfo, pExprInfo, pInfo->numOfExpr, pInfo->pNotFillExprInfo, pInfo->numOfNotFillExpr, (SNodeListNode*)pPhyFillNode->pValues,
pPhyFillNode->timeRange, pResultInfo->capacity, pTaskInfo->id.str, pInterval, type, order);
int32_t code = initFillInfo(pInfo, pExprInfo, pInfo->numOfExpr, pInfo->pNotFillExprInfo, pInfo->numOfNotFillExpr,
(SNodeListNode*)pPhyFillNode->pValues, pPhyFillNode->timeRange, pResultInfo->capacity,
pTaskInfo->id.str, pInterval, type, order);
if (code != TSDB_CODE_SUCCESS) {
goto _error;
}

View File

@ -1649,6 +1649,8 @@ SOperatorInfo* createStreamScanOperatorInfo(SReadHandle* pHandle, STableScanPhys
}
taosArrayDestroy(tableIdList);
memcpy(&pTaskInfo->streamInfo.tableCond, &pTSInfo->cond, sizeof(SQueryTableDataCond));
} else {
taosArrayDestroy(pColIds);
}
// create the pseduo columns info

View File

@ -910,11 +910,11 @@ int32_t compareWinRes(void* pKey, void* data, int32_t index) {
}
static void removeDeleteResults(SHashObj* pUpdatedMap, SArray* pDelWins) {
if (!pUpdatedMap || taosHashGetSize(pUpdatedMap) == 0) {
int32_t delSize = taosArrayGetSize(pDelWins);
if (taosHashGetSize(pUpdatedMap) == 0 || delSize == 0) {
return;
}
int32_t delSize = taosArrayGetSize(pDelWins);
void* pIte = NULL;
void* pIte = NULL;
while ((pIte = taosHashIterate(pUpdatedMap, pIte)) != NULL) {
SResKeyPos* pResKey = (SResKeyPos*)pIte;
int32_t index = binarySearchCom(pDelWins, delSize, pResKey, TSDB_ORDER_DESC, compareWinRes);
@ -1706,14 +1706,19 @@ void destroyStreamFinalIntervalOperatorInfo(void* param, int32_t numOfOutput) {
blockDataDestroy(pInfo->pPullDataRes);
taosArrayDestroy(pInfo->pRecycledPages);
blockDataDestroy(pInfo->pUpdateRes);
taosArrayDestroy(pInfo->pDelWins);
blockDataDestroy(pInfo->pDelRes);
if (pInfo->pChildren) {
int32_t size = taosArrayGetSize(pInfo->pChildren);
for (int32_t i = 0; i < size; i++) {
SOperatorInfo* pChildOp = taosArrayGetP(pInfo->pChildren, i);
destroyStreamFinalIntervalOperatorInfo(pChildOp->info, numOfOutput);
taosMemoryFree(pChildOp->pDownstream);
cleanupExprSupp(&pChildOp->exprSupp);
taosMemoryFreeClear(pChildOp);
}
taosArrayDestroy(pInfo->pChildren);
}
nodesDestroyNode((SNode*)pInfo->pPhyNode);
colDataDestroy(&pInfo->twAggSup.timeWindowData);
@ -1780,7 +1785,7 @@ void increaseTs(SqlFunctionCtx* pCtx) {
}
}
void initIntervalDownStream(SOperatorInfo* downstream, uint8_t type, SAggSupporter* pSup) {
void initIntervalDownStream(SOperatorInfo* downstream, uint16_t type, SAggSupporter* pSup) {
if (downstream->operatorType != QUERY_NODE_PHYSICAL_PLAN_STREAM_SCAN) {
// Todo(liuyao) support partition by column
return;
@ -2408,11 +2413,11 @@ static SSDataBlock* doTimeslice(SOperatorInfo* pOperator) {
break;
}
}
}
if (pSliceInfo->current > pSliceInfo->win.ekey) {
doSetOperatorCompleted(pOperator);
break;
}
if (pSliceInfo->current > pSliceInfo->win.ekey) {
doSetOperatorCompleted(pOperator);
break;
}
if (ts == pSliceInfo->current) {
@ -2644,7 +2649,6 @@ void destroyTimeSliceOperatorInfo(void* param, int32_t numOfOutput) {
taosMemoryFreeClear(param);
}
SOperatorInfo* createTimeSliceOperatorInfo(SOperatorInfo* downstream, SPhysiNode* pPhyNode, SExecTaskInfo* pTaskInfo) {
STimeSliceOperatorInfo* pInfo = taosMemoryCalloc(1, sizeof(STimeSliceOperatorInfo));
SOperatorInfo* pOperator = taosMemoryCalloc(1, sizeof(SOperatorInfo));
@ -3542,7 +3546,7 @@ void initDummyFunction(SqlFunctionCtx* pDummy, SqlFunctionCtx* pCtx, int32_t num
}
void initDownStream(SOperatorInfo* downstream, SStreamAggSupporter* pAggSup, int64_t gap, int64_t waterMark,
uint8_t type) {
uint16_t type) {
ASSERT(downstream->operatorType == QUERY_NODE_PHYSICAL_PLAN_STREAM_SCAN);
SStreamScanInfo* pScanInfo = downstream->info;
pScanInfo->sessionSup = (SessionWindowSupporter){.pStreamAggSup = pAggSup, .gap = gap, .parentType = type};

View File

@ -1503,11 +1503,17 @@ static int32_t translateInterp(SFunctionNode* pFunc, char* pErrBuf, int32_t len)
return invaildFuncParaNumErrMsg(pErrBuf, len, pFunc->functionName);
}
uint8_t nodeType = nodeType(nodesListGetNode(pFunc->pParameterList, 0));
uint8_t paraType = ((SExprNode*)nodesListGetNode(pFunc->pParameterList, 0))->resType.type;
if (!IS_NUMERIC_TYPE(paraType) || QUERY_NODE_VALUE == nodeType) {
return invaildFuncParaTypeErrMsg(pErrBuf, len, pFunc->functionName);
}
if (3 <= numOfParams) {
int64_t timeVal[2] = {0};
for (int32_t i = 1; i < 3; ++i) {
uint8_t nodeType = nodeType(nodesListGetNode(pFunc->pParameterList, i));
uint8_t paraType = ((SExprNode*)nodesListGetNode(pFunc->pParameterList, i))->resType.type;
nodeType = nodeType(nodesListGetNode(pFunc->pParameterList, i));
paraType = ((SExprNode*)nodesListGetNode(pFunc->pParameterList, i))->resType.type;
if (!IS_VAR_DATA_TYPE(paraType) || QUERY_NODE_VALUE != nodeType) {
return invaildFuncParaTypeErrMsg(pErrBuf, len, pFunc->functionName);
}
@ -1525,8 +1531,8 @@ static int32_t translateInterp(SFunctionNode* pFunc, char* pErrBuf, int32_t len)
}
if (4 == numOfParams) {
uint8_t nodeType = nodeType(nodesListGetNode(pFunc->pParameterList, 3));
uint8_t paraType = ((SExprNode*)nodesListGetNode(pFunc->pParameterList, 3))->resType.type;
nodeType = nodeType(nodesListGetNode(pFunc->pParameterList, 3));
paraType = ((SExprNode*)nodesListGetNode(pFunc->pParameterList, 3))->resType.type;
if (!IS_INTEGER_TYPE(paraType) || QUERY_NODE_VALUE != nodeType) {
return invaildFuncParaTypeErrMsg(pErrBuf, len, pFunc->functionName);
}

View File

@ -4673,7 +4673,6 @@ static int32_t jsonToNode(const SJson* pJson, void* pObj) {
int32_t code;
tjsonGetNumberValue(pJson, jkNodeType, pNode->type, code);
;
if (TSDB_CODE_SUCCESS == code) {
code = tjsonToObject(pJson, nodesNodeName(pNode->type), jsonToSpecificNode, pNode);
if (TSDB_CODE_SUCCESS != code) {

View File

@ -21,36 +21,89 @@
#include "taoserror.h"
#include "thash.h"
char *gOperatorStr[] = {NULL,
"+",
"-",
"*",
"/",
"%",
"-",
"&",
"|",
">",
">=",
"<",
"<=",
"=",
"<>",
"IN",
"NOT IN",
"LIKE",
"NOT LIKE",
"MATCH",
"NMATCH",
"IS NULL",
"IS NOT NULL",
"IS TRUE",
"IS FALSE",
"IS UNKNOWN",
"IS NOT TRUE",
"IS NOT FALSE",
"IS NOT UNKNOWN"};
char *gLogicConditionStr[] = {"AND", "OR", "NOT"};
const char *operatorTypeStr(EOperatorType type) {
switch (type) {
case OP_TYPE_ADD:
return "+";
case OP_TYPE_SUB:
return "-";
case OP_TYPE_MULTI:
return "*";
case OP_TYPE_DIV:
return "/";
case OP_TYPE_REM:
return "%";
case OP_TYPE_MINUS:
return "-";
case OP_TYPE_BIT_AND:
return "&";
case OP_TYPE_BIT_OR:
return "|";
case OP_TYPE_GREATER_THAN:
return ">";
case OP_TYPE_GREATER_EQUAL:
return ">=";
case OP_TYPE_LOWER_THAN:
return "<";
case OP_TYPE_LOWER_EQUAL:
return "<=";
case OP_TYPE_EQUAL:
return "=";
case OP_TYPE_NOT_EQUAL:
return "<>";
case OP_TYPE_IN:
return "IN";
case OP_TYPE_NOT_IN:
return "NOT IN";
case OP_TYPE_LIKE:
return "LIKE";
case OP_TYPE_NOT_LIKE:
return "NOT LIKE";
case OP_TYPE_MATCH:
return "MATCH";
case OP_TYPE_NMATCH:
return "NMATCH";
case OP_TYPE_IS_NULL:
return "IS NULL";
case OP_TYPE_IS_NOT_NULL:
return "IS NOT NULL";
case OP_TYPE_IS_TRUE:
return "IS TRUE";
case OP_TYPE_IS_FALSE:
return "IS FALSE";
case OP_TYPE_IS_UNKNOWN:
return "IS UNKNOWN";
case OP_TYPE_IS_NOT_TRUE:
return "IS NOT TRUE";
case OP_TYPE_IS_NOT_FALSE:
return "IS NOT FALSE";
case OP_TYPE_IS_NOT_UNKNOWN:
return "IS NOT UNKNOWN";
case OP_TYPE_JSON_GET_VALUE:
return "=>";
case OP_TYPE_JSON_CONTAINS:
return "CONTAINS";
case OP_TYPE_ASSIGN:
return "=";
default:
break;
}
return "UNKNOWN";
}
const char *logicConditionTypeStr(ELogicConditionType type) {
switch (type) {
case LOGIC_COND_TYPE_AND:
return "AND";
case LOGIC_COND_TYPE_OR:
return "OR";
case LOGIC_COND_TYPE_NOT:
return "NOT";
default:
break;
}
return "UNKNOWN";
}
int32_t nodesNodeToSQL(SNode *pNode, char *buf, int32_t bufSize, int32_t *len) {
switch (pNode->type) {
@ -94,12 +147,7 @@ int32_t nodesNodeToSQL(SNode *pNode, char *buf, int32_t bufSize, int32_t *len) {
NODES_ERR_RET(nodesNodeToSQL(pOpNode->pLeft, buf, bufSize, len));
}
if (pOpNode->opType >= (sizeof(gOperatorStr) / sizeof(gOperatorStr[0]))) {
nodesError("unknown operation type:%d", pOpNode->opType);
NODES_ERR_RET(TSDB_CODE_QRY_APP_ERROR);
}
*len += snprintf(buf + *len, bufSize - *len, " %s ", gOperatorStr[pOpNode->opType]);
*len += snprintf(buf + *len, bufSize - *len, " %s ", operatorTypeStr(pOpNode->opType));
if (pOpNode->pRight) {
NODES_ERR_RET(nodesNodeToSQL(pOpNode->pRight, buf, bufSize, len));
@ -118,7 +166,7 @@ int32_t nodesNodeToSQL(SNode *pNode, char *buf, int32_t bufSize, int32_t *len) {
FOREACH(node, pLogicNode->pParameterList) {
if (!first) {
*len += snprintf(buf + *len, bufSize - *len, " %s ", gLogicConditionStr[pLogicNode->condType]);
*len += snprintf(buf + *len, bufSize - *len, " %s ", logicConditionTypeStr(pLogicNode->condType));
}
NODES_ERR_RET(nodesNodeToSQL(node, buf, bufSize, len));
first = false;

View File

@ -143,9 +143,9 @@ static int32_t createSName(SName* pName, SToken* pTableName, int32_t acctId, con
}
char name[TSDB_DB_FNAME_LEN] = {0};
strncpy(name, pTableName->z, dbLen);
dbLen = strdequote(name);
int32_t actualDbLen = strdequote(name);
code = tNameSetDbName(pName, acctId, name, dbLen);
code = tNameSetDbName(pName, acctId, name, actualDbLen);
if (code != TSDB_CODE_SUCCESS) {
return buildInvalidOperationMsg(pMsgBuf, msg1);
}

View File

@ -350,7 +350,6 @@ struct SFilterInfo {
extern bool filterDoCompare(__compar_fn_t func, uint8_t optr, void *left, void *right);
extern __compar_fn_t filterGetCompFunc(int32_t type, int32_t optr);
extern OptrStr gOptrStr[];
#ifdef __cplusplus
}

View File

@ -24,46 +24,6 @@
#include "ttime.h"
#include "functionMgt.h"
OptrStr gOptrStr[] = {
{0, "invalid"},
{OP_TYPE_ADD, "+"},
{OP_TYPE_SUB, "-"},
{OP_TYPE_MULTI, "*"},
{OP_TYPE_DIV, "/"},
{OP_TYPE_REM, "%"},
{OP_TYPE_MINUS, "minus"},
{OP_TYPE_ASSIGN, "assign"},
// bit operator
{OP_TYPE_BIT_AND, "&"},
{OP_TYPE_BIT_OR, "|"},
// comparison operator
{OP_TYPE_GREATER_THAN, ">"},
{OP_TYPE_GREATER_EQUAL, ">="},
{OP_TYPE_LOWER_THAN, "<"},
{OP_TYPE_LOWER_EQUAL, "<="},
{OP_TYPE_EQUAL, "=="},
{OP_TYPE_NOT_EQUAL, "!="},
{OP_TYPE_IN, "in"},
{OP_TYPE_NOT_IN, "not in"},
{OP_TYPE_LIKE, "like"},
{OP_TYPE_NOT_LIKE, "not like"},
{OP_TYPE_MATCH, "match"},
{OP_TYPE_NMATCH, "nmatch"},
{OP_TYPE_IS_NULL, "is null"},
{OP_TYPE_IS_NOT_NULL, "not null"},
{OP_TYPE_IS_TRUE, "is true"},
{OP_TYPE_IS_FALSE, "is false"},
{OP_TYPE_IS_UNKNOWN, "is unknown"},
{OP_TYPE_IS_NOT_TRUE, "not true"},
{OP_TYPE_IS_NOT_FALSE, "not false"},
{OP_TYPE_IS_NOT_UNKNOWN, "not unknown"},
// json operator
{OP_TYPE_JSON_GET_VALUE, "->"},
{OP_TYPE_JSON_CONTAINS, "json contains"}
};
bool filterRangeCompGi (const void *minv, const void *maxv, const void *minr, const void *maxr, __compar_fn_t cfunc) {
int32_t result = cfunc(maxv, minr);
return result >= 0;
@ -986,7 +946,7 @@ int32_t filterAddUnit(SFilterInfo *info, uint8_t optr, SFilterFieldId *left, SFi
} else {
int32_t paramNum = scalarGetOperatorParamNum(optr);
if (1 != paramNum) {
fltError("invalid right field in unit, operator:%s, rightType:%d", gOptrStr[optr].str, u->right.type);
fltError("invalid right field in unit, operator:%s, rightType:%d", operatorTypeStr(optr), u->right.type);
return TSDB_CODE_QRY_APP_ERROR;
}
}
@ -1517,7 +1477,7 @@ void filterDumpInfoToString(SFilterInfo *info, const char *msg, int32_t options)
SFilterField *left = FILTER_UNIT_LEFT_FIELD(info, unit);
SColumnNode *refNode = (SColumnNode *)left->desc;
if (unit->compare.optr >= 0 && unit->compare.optr <= OP_TYPE_JSON_CONTAINS){
len = sprintf(str, "UNIT[%d] => [%d][%d] %s [", i, refNode->dataBlockId, refNode->slotId, gOptrStr[unit->compare.optr].str);
len = sprintf(str, "UNIT[%d] => [%d][%d] %s [", i, refNode->dataBlockId, refNode->slotId, operatorTypeStr(unit->compare.optr));
}
if (unit->right.type == FLD_TYPE_VALUE && FILTER_UNIT_OPTR(unit) != OP_TYPE_IN) {
@ -1536,7 +1496,7 @@ void filterDumpInfoToString(SFilterInfo *info, const char *msg, int32_t options)
if (unit->compare.optr2) {
strcat(str, " && ");
if (unit->compare.optr2 >= 0 && unit->compare.optr2 <= OP_TYPE_JSON_CONTAINS){
sprintf(str + strlen(str), "[%d][%d] %s [", refNode->dataBlockId, refNode->slotId, gOptrStr[unit->compare.optr2].str);
sprintf(str + strlen(str), "[%d][%d] %s [", refNode->dataBlockId, refNode->slotId, operatorTypeStr(unit->compare.optr2));
}
if (unit->right2.type == FLD_TYPE_VALUE && FILTER_UNIT_OPTR(unit) != OP_TYPE_IN) {

View File

@ -1089,16 +1089,16 @@ void makeCalculate(void *json, void *key, int32_t rightType, void *rightData, do
}else if(opType == OP_TYPE_ADD || opType == OP_TYPE_SUB || opType == OP_TYPE_MULTI || opType == OP_TYPE_DIV ||
opType == OP_TYPE_REM || opType == OP_TYPE_MINUS){
printf("op:%s,1result:%f,except:%f\n", gOptrStr[opType].str, *((double *)colDataGetData(column, 0)), exceptValue);
printf("op:%s,1result:%f,except:%f\n", operatorTypeStr(opType), *((double *)colDataGetData(column, 0)), exceptValue);
ASSERT_TRUE(fabs(*((double *)colDataGetData(column, 0)) - exceptValue) < 0.0001);
}else if(opType == OP_TYPE_BIT_AND || opType == OP_TYPE_BIT_OR){
printf("op:%s,2result:%" PRId64 ",except:%f\n", gOptrStr[opType].str, *((int64_t *)colDataGetData(column, 0)), exceptValue);
printf("op:%s,2result:%" PRId64 ",except:%f\n", operatorTypeStr(opType), *((int64_t *)colDataGetData(column, 0)), exceptValue);
ASSERT_EQ(*((int64_t *)colDataGetData(column, 0)), exceptValue);
}else if(opType == OP_TYPE_GREATER_THAN || opType == OP_TYPE_GREATER_EQUAL || opType == OP_TYPE_LOWER_THAN ||
opType == OP_TYPE_LOWER_EQUAL || opType == OP_TYPE_EQUAL || opType == OP_TYPE_NOT_EQUAL ||
opType == OP_TYPE_IS_NULL || opType == OP_TYPE_IS_NOT_NULL || opType == OP_TYPE_IS_TRUE ||
opType == OP_TYPE_LIKE || opType == OP_TYPE_NOT_LIKE || opType == OP_TYPE_MATCH || opType == OP_TYPE_NMATCH){
printf("op:%s,3result:%d,except:%f\n", gOptrStr[opType].str, *((bool *)colDataGetData(column, 0)), exceptValue);
printf("op:%s,3result:%d,except:%f\n", operatorTypeStr(opType), *((bool *)colDataGetData(column, 0)), exceptValue);
ASSERT_EQ(*((bool *)colDataGetData(column, 0)), exceptValue);
}

View File

@ -20,7 +20,7 @@
#include "tmsg.h"
#include "tref.h"
#include "trpc.h"
// clang-format off
int32_t schValidateRspMsgType(SSchJob *pJob, SSchTask *pTask, int32_t msgType) {
int32_t lastMsgType = pTask->lastMsgType;
int32_t taskStatus = SCH_GET_TASK_STATUS(pTask);
@ -402,7 +402,7 @@ int32_t schHandleDropCallback(void *param, SDataBuf *pMsg, int32_t code) {
qDebug("QID:0x%" PRIx64 ",TID:0x%" PRIx64 " drop task rsp received, code:0x%x", pParam->queryId, pParam->taskId,
code);
if (pMsg) {
taosMemoryFree(pMsg->pData);
taosMemoryFree(pMsg->pData);
}
return TSDB_CODE_SUCCESS;
}
@ -415,7 +415,7 @@ int32_t schHandleLinkBrokenCallback(void *param, SDataBuf *pMsg, int32_t code) {
if (head->isHbParam) {
taosMemoryFree(pMsg->pData);
SSchHbCallbackParam *hbParam = (SSchHbCallbackParam *)param;
SSchTrans trans = {.pTrans = hbParam->pTrans, .pHandle = NULL};
SCH_ERR_RET(schUpdateHbConnection(&hbParam->nodeEpId, &trans));
@ -1104,7 +1104,7 @@ int32_t schBuildAndSendMsg(SSchJob *pJob, SSchTask *pTask, SQueryNodeAddr *addr,
#if 1
SSchTrans trans = {.pTrans = pJob->conn.pTrans, .pHandle = SCH_GET_TASK_HANDLE(pTask)};
schAsyncSendMsg(pJob, pTask, &trans, addr, msgType, msg, msgSize, persistHandle, (rpcCtx.args ? &rpcCtx : NULL));
code = schAsyncSendMsg(pJob, pTask, &trans, addr, msgType, msg, msgSize, persistHandle, (rpcCtx.args ? &rpcCtx : NULL));
msg = NULL;
SCH_ERR_JRET(code);
@ -1114,7 +1114,7 @@ int32_t schBuildAndSendMsg(SSchJob *pJob, SSchTask *pTask, SQueryNodeAddr *addr,
#else
if (TDMT_VND_SUBMIT != msgType) {
SSchTrans trans = {.pTrans = pJob->conn.pTrans, .pHandle = SCH_GET_TASK_HANDLE(pTask)};
schAsyncSendMsg(pJob, pTask, &trans, addr, msgType, msg, msgSize, persistHandle, (rpcCtx.args ? &rpcCtx : NULL));
code = schAsyncSendMsg(pJob, pTask, &trans, addr, msgType, msg, msgSize, persistHandle, (rpcCtx.args ? &rpcCtx : NULL));
msg = NULL;
SCH_ERR_JRET(code);
@ -1136,3 +1136,4 @@ _return:
taosMemoryFreeClear(msg);
SCH_RET(code);
}
// clang-format on

View File

@ -152,11 +152,12 @@ int32_t tDecodeSStreamTask(SDecoder* pDecoder, SStreamTask* pTask) {
}
void tFreeSStreamTask(SStreamTask* pTask) {
qDebug("free stream task %d", pTask->taskId);
if (pTask->inputQueue) streamQueueClose(pTask->inputQueue);
if (pTask->outputQueue) streamQueueClose(pTask->outputQueue);
if (pTask->exec.qmsg) taosMemoryFree(pTask->exec.qmsg);
if (pTask->exec.executor) qDestroyTask(pTask->exec.executor);
taosArrayDestroy(pTask->childEpInfo);
taosArrayDestroyP(pTask->childEpInfo, taosMemoryFree);
if (pTask->outputType == TASK_OUTPUT__TABLE) {
tDeleteSSchemaWrapper(pTask->tbSink.pSchemaWrapper);
taosMemoryFree(pTask->tbSink.pTSchema);

View File

@ -1432,7 +1432,7 @@ int transSendRequest(void* shandle, const SEpSet* pEpSet, STransMsg* pReq, STran
if (pThrd == NULL && valid == false) {
transFreeMsg(pReq->pCont);
transReleaseExHandle(transGetInstMgt(), (int64_t)shandle);
return -1;
return TSDB_CODE_RPC_BROKEN_LINK;
}
TRACE_SET_MSGID(&pReq->info.traceId, tGenIdPI64());
@ -1477,7 +1477,7 @@ int transSendRecv(void* shandle, const SEpSet* pEpSet, STransMsg* pReq, STransMs
if (pThrd == NULL && valid == false) {
transFreeMsg(pReq->pCont);
transReleaseExHandle(transGetInstMgt(), (int64_t)shandle);
return -1;
return TSDB_CODE_RPC_BROKEN_LINK;
}
tsem_t* sem = taosMemoryCalloc(1, sizeof(tsem_t));

View File

@ -275,16 +275,15 @@ void uvOnRecvCb(uv_stream_t* cli, ssize_t nread, const uv_buf_t* buf) {
if (pBuf->len <= TRANS_PACKET_LIMIT) {
while (transReadComplete(pBuf)) {
tTrace("%s conn %p alread read complete packet", transLabel(pTransInst), conn);
if (pBuf->invalid) {
tTrace("%s conn %p alread read invalid packet", transLabel(pTransInst), conn);
if (true == pBuf->invalid || false == uvHandleReq(conn)) {
tError("%s conn %p read invalid packet", transLabel(pTransInst), conn);
destroyConn(conn, true);
return;
} else {
if (false == uvHandleReq(conn)) break;
}
}
return;
} else {
tError("%s conn %p read invalid packet, exceed limit", transLabel(pTransInst), conn);
destroyConn(conn, true);
return;
}

View File

@ -14,7 +14,7 @@ print ========== cached_schema_after_alter.sim
sql drop database $db -x step1
step1:
sql create database $db
sql create database $db
print ====== create tables
sql use $db
@ -32,10 +32,10 @@ if $rows != 1 then
endi
if $data01 != 1 then
return -1
endi
endi
if $data02 != 1 then
return -1
endi
endi
sql select * from $tb2
if $rows != 1 then
@ -43,10 +43,10 @@ if $rows != 1 then
endi
if $data01 != 1 then
return -1
endi
endi
if $data02 != 1 then
return -1
endi
endi
print ================== restart server to commit data into disk
system sh/exec.sh -n dnode1 -s stop -x SIGINT
@ -61,10 +61,10 @@ if $rows != 1 then
endi
if $data01 != 1 then
return -1
endi
endi
if $data02 != 1 then
return -1
endi
endi
sql select * from $tb2
print select * from $tb2 ==> $data00 $data01 $data02
@ -73,10 +73,10 @@ if $rows != 1 then
endi
if $data01 != 1 then
return -1
endi
endi
if $data02 != 1 then
return -1
endi
endi
$ts = $ts0 + $delta
sql insert into $tb2 values ( $ts , 2, 2)
@ -86,16 +86,16 @@ if $rows != 2 then
endi
if $data01 != 1 then
return -1
endi
endi
if $data02 != 1 then
return -1
endi
endi
if $data11 != 2 then
return -1
endi
endi
if $data12 != 2 then
return -1
endi
endi
sql select * from $tb2 order by ts asc
if $rows != 2 then
@ -103,15 +103,15 @@ if $rows != 2 then
endi
if $data01 != 1 then
return -1
endi
endi
if $data02 != 1 then
return -1
endi
endi
if $data11 != 2 then
return -1
endi
endi
if $data12 != 2 then
return -1
endi
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -3,7 +3,7 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/exec.sh -n dnode1 -s start
sql connect
print ======== step1
print ======== step1
sql alter dnode 1 'resetlog'
sql alter dnode 1 'monitor' '1'
sql alter dnode 1 'monitor' '0'
@ -65,4 +65,4 @@ sql alter dnode 1 balance "vnode:2-dnode:1" -x step4
step4:
print ======= over
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -3,7 +3,7 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/exec.sh -n dnode1 -s start
sql connect
print ======== step1
print ======== step1
sql create database d1
sql use d1
sql create table tb (ts timestamp, a int)

View File

@ -7,24 +7,24 @@ sql connect
print =============== select * from information_schema.ins_dnodes
sql select * from information_schema.ins_dnodes;
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != 1 then
if $data00 != 1 then
return -1
endi
sql select * from information_schema.ins_mnodes;
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != 1 then
if $data00 != 1 then
return -1
endi
if $data02 != leader then
if $data02 != leader then
return -1
endi
@ -33,62 +33,62 @@ sql create dnode $hostname port 7200
sleep 2000
sql select * from information_schema.ins_dnodes;
if $rows != 2 then
if $rows != 2 then
return -1
endi
if $data00 != 1 then
if $data00 != 1 then
return -1
endi
if $data10 != 2 then
if $data10 != 2 then
return -1
endi
print $data02
if $data02 != 0 then
if $data02 != 0 then
return -1
endi
if $data12 != 0 then
if $data12 != 0 then
return -1
endi
if $data04 != ready then
if $data04 != ready then
return -1
endi
if $data14 != ready then
if $data14 != ready then
return -1
endi
sql select * from information_schema.ins_mnodes;
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != 1 then
if $data00 != 1 then
return -1
endi
if $data02 != leader then
if $data02 != leader then
return -1
endi
#print =============== create drop bnode 1
#sql create bnode on dnode 1
#sql show bnodes
#if $rows != 1 then
#if $rows != 1 then
# return -1
#endi
#if $data00 != 1 then
#if $data00 != 1 then
# return -1
#endi
#sql_error create bnode on dnode 1
#
#sql drop bnode on dnode 1
#sql show bnodes
#if $rows != 0 then
#if $rows != 0 then
# return -1
#endi
#sql_error drop bnode on dnode 1
@ -96,17 +96,17 @@ endi
#print =============== create drop bnode 2
#sql create bnode on dnode 2
#sql show bnodes
#if $rows != 1 then
#if $rows != 1 then
# return -1
#endi
#if $data00 != 2 then
#if $data00 != 2 then
# return -1
#endi
#sql_error create bnode on dnode 2
#
#sql drop bnode on dnode 2
#sql show bnodes
#if $rows != 0 then
#if $rows != 0 then
# return -1
#endi
#sql_error drop bnode on dnode 2
@ -115,7 +115,7 @@ endi
#sql create bnode on dnode 1
#sql create bnode on dnode 2
#sql show bnodes
#if $rows != 2 then
#if $rows != 2 then
# return -1
#endi
@ -127,7 +127,7 @@ endi
#
#sleep 2000
#sql show bnodes
#if $rows != 2 then
#if $rows != 2 then
# return -1
#endi

View File

@ -25,7 +25,7 @@ while $count < $N
endw
sql select * from $tb
if $rows != $N then
if $rows != $N then
return -1
endi
@ -46,7 +46,7 @@ while $count < $N
endw
sql select * from $tb
if $rows != $N then
if $rows != $N then
return -1
endi
@ -67,7 +67,7 @@ while $count < $N
endw
sql select * from $tb
if $rows != $N then
if $rows != $N then
return -1
endi
@ -83,7 +83,7 @@ $tb = $tbPrefix . $i
sql use $db
sql select * from $tb
print select * from $tb ==> $rows points
if $rows != $N then
if $rows != $N then
return -1
endi
@ -93,18 +93,18 @@ $tb = $tbPrefix . $i
sql use $db
sql select * from $tb
print select * from $tb ==> $rows points
if $rows != $N then
if $rows != $N then
return -1
endi
$i = 2
$db = $dbPrefix . $i
$tb = $tbPrefix . $i
sql use $db
sql select * from $tb
print select * from $tb ==> $rows points
if $rows != $N then
if $rows != $N then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -25,7 +25,7 @@ while $count < $N
endw
sql select * from $tb
if $rows != $N then
if $rows != $N then
return -1
endi
@ -47,7 +47,7 @@ while $count < $N
endw
sql select * from $tb
if $rows != $N then
if $rows != $N then
return -1
endi
@ -69,7 +69,7 @@ while $count < $N
endw
sql select * from $tb
if $rows != $N then
if $rows != $N then
return -1
endi
@ -85,7 +85,7 @@ $tb = $tbPrefix . $i
sql use $db
sql select * from $tb
print select * from $tb ==> $rows points
if $rows != $N then
if $rows != $N then
return -1
endi
@ -95,18 +95,18 @@ $tb = $tbPrefix . $i
sql use $db
sql select * from $tb
print select * from $tb ==> $rows points
if $rows != $N then
if $rows != $N then
return -1
endi
$i = 2
$db = $dbPrefix . $i
$tb = $tbPrefix . $i
sql use $db
sql select * from $tb
print select * from $tb ==> $rows points
if $rows != $N then
if $rows != $N then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -26,7 +26,7 @@ while $count < $N
endw
sql select * from $tb
if $rows != $N then
if $rows != $N then
return -1
endi
@ -48,7 +48,7 @@ while $count < $N
endw
sql select * from $tb
if $rows != $N then
if $rows != $N then
return -1
endi
@ -70,7 +70,7 @@ while $count < $N
endw
sql select * from $tb
if $rows != $N then
if $rows != $N then
return -1
endi
@ -86,7 +86,7 @@ $tb = $tbPrefix . $i
sql use $db
sql select * from $tb
print select * from $tb ==> $rows points
if $rows != $N then
if $rows != $N then
return -1
endi
@ -96,18 +96,18 @@ $tb = $tbPrefix . $i
sql use $db
sql select * from $tb
print select * from $tb ==> $rows points
if $rows != $N then
if $rows != $N then
return -1
endi
$i = 2
$db = $dbPrefix . $i
$tb = $tbPrefix . $i
sql use $db
sql select * from $tb
print select * from $tb ==> $rows points
if $rows != $N then
if $rows != $N then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -26,7 +26,7 @@ while $count < $N
endw
sql select * from $tb
if $rows != $N then
if $rows != $N then
return -1
endi
@ -48,7 +48,7 @@ while $count < $N
endw
sql select * from $tb
if $rows != $N then
if $rows != $N then
return -1
endi
@ -70,7 +70,7 @@ while $count < $N
endw
sql select * from $tb
if $rows != $N then
if $rows != $N then
return -1
endi
@ -85,7 +85,7 @@ $tb = $tbPrefix . $i
sql use $db
sql select * from $tb
print select * from $tb ==> $rows points
if $rows != $N then
if $rows != $N then
return -1
endi
@ -95,18 +95,18 @@ $tb = $tbPrefix . $i
sql use $db
sql select * from $tb
print select * from $tb ==> $rows points
if $rows != $N then
if $rows != $N then
return -1
endi
$i = 2
$db = $dbPrefix . $i
$tb = $tbPrefix . $i
sql use $db
sql select * from $tb
print select * from $tb ==> $rows points
if $rows != $N then
if $rows != $N then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -186,13 +186,13 @@ sql_error alter database db replica 0
#sql alter database db replica 1
#sql select * from information_schema.ins_databases
#print replica: $data4_db
#if $data4_db != 1 then
#if $data4_db != 1 then
# return -1
#endi
#sql alter database db replica 3
#sql select * from information_schema.ins_databases
#print replica: $data4_db
#if $data4_db != 3 then
#if $data4_db != 3 then
# return -1
#endi
@ -200,13 +200,13 @@ sql_error alter database db replica 0
#sql alter database db quorum 2
#sql select * from information_schema.ins_databases
#print quorum $data5_db
#if $data5_db != 2 then
#if $data5_db != 2 then
# return -1
#endi
#sql alter database db quorum 1
#sql select * from information_schema.ins_databases
#print quorum $data5_db
#if $data5_db != 1 then
#if $data5_db != 1 then
# return -1
#endi
@ -233,7 +233,7 @@ endi
#sql alter database db keep 1000,2000
#sql select * from information_schema.ins_databases
#print keep $data7_db
#if $data7_db != 500,500,500 then
#if $data7_db != 500,500,500 then
# return -1
#endi
@ -263,13 +263,13 @@ sql_error alter database db keep -1
#sql alter database db blocks 3
#sql select * from information_schema.ins_databases
#print blocks $data9_db
#if $data9_db != 3 then
#if $data9_db != 3 then
# return -1
#endi
#sql alter database db blocks 11
#sql select * from information_schema.ins_databases
#print blocks $data9_db
#if $data9_db != 11 then
#if $data9_db != 11 then
# return -1
#endi
@ -300,13 +300,13 @@ print ============== step wal_level
sql alter database db wal_level 1
sql select * from information_schema.ins_databases
print wal_level $data20_db
if $data20_db != 1 then
if $data20_db != 1 then
return -1
endi
sql alter database db wal_level 2
sql select * from information_schema.ins_databases
print wal_level $data20_db
if $data20_db != 2 then
if $data20_db != 2 then
return -1
endi
@ -319,19 +319,19 @@ print ============== modify wal_fsync_period
sql alter database db wal_fsync_period 2000
sql select * from information_schema.ins_databases
print wal_fsync_period $data21_db
if $data21_db != 2000 then
if $data21_db != 2000 then
return -1
endi
sql alter database db wal_fsync_period 500
sql select * from information_schema.ins_databases
print wal_fsync_period $data21_db
if $data21_db != 500 then
if $data21_db != 500 then
return -1
endi
sql alter database db wal_fsync_period 0
sql select * from information_schema.ins_databases
print wal_fsync_period $data21_db
if $data21_db != 0 then
if $data21_db != 0 then
return -1
endi
sql_error alter database db wal_fsync_period 180001
@ -351,31 +351,31 @@ print ============== modify cachelast [0, 1, 2, 3]
sql alter database db cachemodel 'last_value'
sql select * from information_schema.ins_databases
print cachelast $data18_db
if $data18_db != last_value then
if $data18_db != last_value then
return -1
endi
sql alter database db cachemodel 'last_row'
sql select * from information_schema.ins_databases
print cachelast $data18_db
if $data18_db != last_row then
if $data18_db != last_row then
return -1
endi
sql alter database db cachemodel 'none'
sql select * from information_schema.ins_databases
print cachelast $data18_db
if $data18_db != none then
if $data18_db != none then
return -1
endi
sql alter database db cachemodel 'last_value'
sql select * from information_schema.ins_databases
print cachelast $data18_db
if $data18_db != last_value then
if $data18_db != last_value then
return -1
endi
sql alter database db cachemodel 'both'
sql select * from information_schema.ins_databases
print cachelast $data18_db
if $data18_db != both then
if $data18_db != both then
return -1
endi

View File

@ -36,10 +36,10 @@ endi
print =============== step2: create database
sql create database db vgroups 1
sql select * from information_schema.ins_databases
if $rows != 3 then
if $rows != 3 then
return -1
endi
if $data(db)[4] != 1 then
if $data(db)[4] != 1 then
return -1
endi
@ -82,7 +82,7 @@ step3:
return -1
endi
sql select * from information_schema.ins_dnodes
print ===> rows: $rows
print ===> rows: $rows
print ===> $data00 $data01 $data02 $data03 $data04 $data05
print ===> $data10 $data11 $data12 $data13 $data14 $data15
print ===> $data20 $data21 $data22 $data23 $data24 $data25
@ -115,7 +115,7 @@ step4:
return -1
endi
sql show db.vgroups
print ===> rows: $rows
print ===> rows: $rows
print ===> $data00 $data01 $data02 $data03 $data04 $data05
if $data[0][4] != leader then
goto step4
@ -137,4 +137,4 @@ endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode2 -s stop -x SIGINT
system sh/exec.sh -n dnode3 -s stop -x SIGINT
system sh/exec.sh -n dnode4 -s stop -x SIGINT
system sh/exec.sh -n dnode4 -s stop -x SIGINT

View File

@ -23,7 +23,7 @@ step1:
return -1
endi
sql select * from information_schema.ins_dnodes
print ===> rows: $rows
print ===> rows: $rows
print ===> $data00 $data01 $data02 $data03 $data04 $data05
print ===> $data10 $data11 $data12 $data13 $data14 $data15
print ===> $data20 $data21 $data22 $data23 $data24 $data25
@ -47,10 +47,10 @@ endi
print =============== step2: create database
sql create database db vgroups 1 replica 3
sql select * from information_schema.ins_databases
if $rows != 3 then
if $rows != 3 then
return -1
endi
if $data(db)[4] != 3 then
if $data(db)[4] != 3 then
return -1
endi
@ -139,7 +139,7 @@ step3:
return -1
endi
sql show db.vgroups
print ===> rows: $rows
print ===> rows: $rows
if $rows != 1 then
goto step3
endi
@ -165,4 +165,4 @@ endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode2 -s stop -x SIGINT
system sh/exec.sh -n dnode3 -s stop -x SIGINT
system sh/exec.sh -n dnode4 -s stop -x SIGINT
system sh/exec.sh -n dnode4 -s stop -x SIGINT

View File

@ -2,8 +2,8 @@ sql connect
$x = 1
begin:
sql reset query cache
sleep 100
sql insert into db.tb values(now, $x ) -x begin
#print ===> insert successed $x
$x = $x + 1
goto begin
sleep 100
sql insert into db.tb values(now, $x ) -x begin
#print ===> insert successed $x
$x = $x + 1
goto begin

View File

@ -25,15 +25,15 @@ endi
print =============== show vgroups1
sql use d1
sql show vgroups
if $rows != 2 then
if $rows != 2 then
return -1
endi
if $data00 != 2 then
if $data00 != 2 then
return -1
endi
if $data10 != 3 then
if $data10 != 3 then
return -1
endi
@ -59,11 +59,11 @@ if $rows != 2 then
return -1
endi
if $data00 != 4 then
if $data00 != 4 then
return -1
endi
if $data10 != 5 then
if $data10 != 5 then
return -1
endi
@ -73,15 +73,15 @@ if $rows != 3 then
return -1
endi
if $data00 != 6 then
if $data00 != 6 then
return -1
endi
if $data10 != 7 then
if $data10 != 7 then
return -1
endi
if $data20 != 8 then
if $data20 != 8 then
return -1
endi
@ -91,19 +91,19 @@ if $rows != 4 then
return -1
endi
if $data00 != 9 then
if $data00 != 9 then
return -1
endi
if $data10 != 10 then
if $data10 != 10 then
return -1
endi
if $data20 != 11 then
if $data20 != 11 then
return -1
endi
if $data30 != 12 then
if $data30 != 12 then
return -1
endi

View File

@ -27,7 +27,7 @@ sql create table t3 (ts timestamp, i int);
sql create table t4 (ts timestamp, i int);
sql select * from information_schema.ins_databases
print rows: $rows
print rows: $rows
print $data00 $data01 $data02 $data03
print $data10 $data11 $data12 $data13
if $rows != 3 then
@ -47,7 +47,7 @@ endi
#endi
sql show tables
if $rows != 4 then
if $rows != 4 then
return -1
endi
@ -64,8 +64,8 @@ if $rows != 4 then
endi
sql show tables
if $rows != 3 then
if $rows != 3 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -23,12 +23,12 @@ if $data22 != 2 then
return -1
endi
#if $data03 != 4 then
#if $data03 != 4 then
# return -1
#endi
sql show d1.tables
if $rows != 4 then
if $rows != 4 then
return -1
endi
@ -44,8 +44,8 @@ if $rows != 4 then
endi
sql show d2.tables
if $rows != 3 then
if $rows != 3 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -11,109 +11,109 @@ sql create table d1.t3 (ts timestamp, i int);
sql create table d1.t4 (ts timestamp, i int);
sql select * from information_schema.ins_databases
if $rows != 3 then
if $rows != 3 then
return -1
endi
if $data20 != d1 then
if $data20 != d1 then
return -1
endi
if $data22 != 1 then
if $data22 != 1 then
return -1
endi
if $data24 != 1 then
if $data24 != 1 then
return -1
endi
sql show d1.tables
if $rows != 4 then
if $rows != 4 then
return -1
endi
sql show d1.vgroups
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != 2 then
if $data00 != 2 then
return -1
endi
if $data01 != d1 then
if $data01 != d1 then
return -1
endi
print =============== drop table
print =============== drop table
sql drop table d1.t1
sql select * from information_schema.ins_databases
if $rows != 3 then
if $rows != 3 then
return -1
endi
if $data20 != d1 then
if $data20 != d1 then
return -1
endi
if $data22 != 1 then
if $data22 != 1 then
return -1
endi
if $data24 != 1 then
if $data24 != 1 then
return -1
endi
sql show d1.tables
if $rows != 3 then
if $rows != 3 then
return -1
endi
sql show d1.vgroups
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != 2 then
if $data00 != 2 then
return -1
endi
if $data01 != d1 then
if $data01 != d1 then
return -1
endi
print =============== drop all table
print =============== drop all table
sql drop table d1.t2
sql drop table d1.t3
sql drop table d1.t4
sql select * from information_schema.ins_databases
if $rows != 3 then
if $rows != 3 then
return -1
endi
if $data20 != d1 then
if $data20 != d1 then
return -1
endi
if $data22 != 1 then
if $data22 != 1 then
return -1
endi
if $data24 != 1 then
if $data24 != 1 then
return -1
endi
sql show d1.tables
if $rows != 0 then
if $rows != 0 then
return -1
endi
sql show d1.vgroups
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != 2 then
if $data00 != 2 then
return -1
endi
if $data01 != d1 then
if $data01 != d1 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -13,13 +13,13 @@ sql create table tb1 using st1 tags(1);
sql insert into tb1 values (now, 1);
sql show stables
if $rows != 1 then
if $rows != 1 then
print $rows
return -1
endi
sql show tables
if $rows != 1 then
if $rows != 1 then
return -1
endi
@ -35,12 +35,12 @@ sql use db1;
sql create stable st1 (ts timestamp, f1 int) tags(t1 int)
sql show stables
if $rows != 1 then
if $rows != 1 then
return -1
endi
sql show tables
if $rows != 0 then
if $rows != 0 then
return -1
endi

View File

@ -14,7 +14,7 @@ $st = $stPrefix . $i
$tb = $tbPrefix . $i
print =============== step1
# quorum presicion
# quorum presicion
sql create database $db vgroups 8 replica 1 duration 2 keep 10 minrows 80 maxrows 10000 wal_level 2 wal_fsync_period 1000 comp 0 cachemodel 'last_value' precision 'us'
sql select * from information_schema.ins_databases
print $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
@ -46,7 +46,7 @@ endi
#if $data29 != 12 then
# return -1
#endi
print =============== step2
sql_error create database $db
sql create database if not exists $db
@ -60,7 +60,7 @@ sql drop database $db
sql select * from information_schema.ins_databases
if $rows != 2 then
return -1
endi
endi
print =============== step4
sql_error drop database $db
@ -102,22 +102,22 @@ while $i < 5
sql create table $tb using $st tags(1)
sql show stables
if $rows != 1 then
if $rows != 1 then
return -1
endi
print $data00 $data01 $data02 $data03
if $data00 != $st then
if $data00 != $st then
return -1
endi
sql show tables
if $rows != 1 then
if $rows != 1 then
return -1
endi
print $data00 $data01 $data02 $data03
if $data00 != $tb then
if $data00 != $tb then
return -1
endi
@ -127,8 +127,8 @@ endw
print =============== step7
$i = 0
while $i < 5
$db = $dbPrefix . $i
sql drop database $db
$db = $dbPrefix . $i
sql drop database $db
$i = $i + 1
endw
@ -143,20 +143,20 @@ sql create table $st (ts timestamp, i int) tags (j int)
sql create table $tb using $st tags(1)
sql show stables
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != $st then
if $data00 != $st then
return -1
endi
sql show tables
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != $tb then
if $data00 != $tb then
return -1
endi
@ -168,12 +168,12 @@ sql create database $db
sql use $db
sql show stables
if $rows != 0 then
if $rows != 0 then
return -1
endi
sql show tables
if $rows != 0 then
if $rows != 0 then
return -1
endi
@ -182,20 +182,20 @@ sql create table $st (ts timestamp, i int) tags (j int)
sql create table $tb using $st tags(1)
sql show stables
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != $st then
if $data00 != $st then
return -1
endi
sql show tables
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != $tb then
if $data00 != $tb then
return -1
endi
@ -207,12 +207,12 @@ sql create database $db
sql use $db
sql show stables
if $rows != 0 then
if $rows != 0 then
return -1
endi
sql show tables
if $rows != 0 then
if $rows != 0 then
return -1
endi
@ -221,20 +221,20 @@ sql create table $st (ts timestamp, i int) tags (j int)
sql create table $tb using $st tags(1)
sql show stables
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != $st then
if $data00 != $st then
return -1
endi
sql show tables
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != $tb then
if $data00 != $tb then
return -1
endi
@ -245,12 +245,12 @@ sql insert into $tb values (now+4a, 3)
sql insert into $tb values (now+5a, 4)
sql select * from $tb
if $rows != 5 then
if $rows != 5 then
return -1
endi
sql select * from $st
if $rows != 5 then
if $rows != 5 then
return -1
endi
@ -262,12 +262,12 @@ sql create database $db
sql use $db
sql show stables
if $rows != 0 then
if $rows != 0 then
return -1
endi
sql show tables
if $rows != 0 then
if $rows != 0 then
return -1
endi
@ -276,20 +276,20 @@ sql create table $st (ts timestamp, i int) tags (j int)
sql create table $tb using $st tags(1)
sql show stables
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != $st then
if $data00 != $st then
return -1
endi
sql show tables
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != $tb then
if $data00 != $tb then
return -1
endi
@ -300,12 +300,12 @@ sql insert into $tb values (now+4a, 3)
sql insert into $tb values (now+5a, 4)
sql select * from $tb
if $rows != 5 then
if $rows != 5 then
return -1
endi
sql select * from $st
if $rows != 5 then
if $rows != 5 then
return -1
endi

View File

@ -39,9 +39,9 @@ sql create table tb (ts timestamp, i int)
$x = 1
while $x < 41
$time = $x . m
sql insert into tb values (now + $time , $x )
sql insert into tb values (now + $time , $x )
$x = $x + 1
endw
endw
sql select * from tb order by ts desc
print ===> rows $rows
@ -71,7 +71,7 @@ if $data01 != 40 then
return -1
endi
$oldnum = $rows
$oldnum = $rows
$num = $rows + 2
print ======== step3 import old data
@ -120,4 +120,4 @@ if $data01 != 40 then
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode2 -s stop -x SIGINT
system sh/exec.sh -n dnode2 -s stop -x SIGINT

View File

@ -3,7 +3,7 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/exec.sh -n dnode1 -s start
sql connect
print ======== step1
print ======== step1
sql create database d1 replica 1 vgroups 1
sql create database d2 replica 1 vgroups 1
sql create database d3 replica 1 vgroups 1
@ -47,7 +47,7 @@ step2:
print ========= step3
sql reset query cache
sleep 50
sleep 50
sql create database d1 replica 1
sql create table d1.t1 (ts timestamp, i int)
@ -65,20 +65,20 @@ while $x < 20
sql insert into d1.t1 values(now, -1) -x step4
return -1
step4:
sql create database d1 replica 1
sql reset query cache
sleep 50
sleep 50
sql create table d1.t1 (ts timestamp, i int)
sql insert into d1.t1 values(now, $x )
sql select * from d1.t1
if $rows != 1 then
return -1
endi
$x = $x + 1
print ===> loop times: $x
endw
system sh/exec.sh -n dnode1 -s stop -x SIGINT
$x = $x + 1
print ===> loop times: $x
endw
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -3,7 +3,7 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/exec.sh -n dnode1 -s start
sql connect
print ======== step1
print ======== step1
sql create database d1 replica 1
sql create database d2 replica 1
sql create database d3 replica 1
@ -48,7 +48,7 @@ step2:
print ========= step3
sql create database db1 replica 1
sql reset query cache
sleep 50
sleep 50
sql create table db1.tb1 (ts timestamp, i int)
sql insert into db1.tb1 values(now, 2)
@ -61,7 +61,7 @@ print ========= step4
$x = 1
while $x < 20
$db = db . $x
$db = db . $x
$tb = tb . $x
sql use $db
sql drop database $db
@ -69,14 +69,14 @@ while $x < 20
sql insert into $tb values(now, -1) -x step4
return -1
step4:
$x = $x + 1
$db = db . $x
$x = $x + 1
$db = db . $x
$tb = tb . $x
sql reset query cache
sleep 50
sleep 50
sql create database $db replica 1
sql use $db
sql create table $tb (ts timestamp, i int)
@ -85,8 +85,8 @@ while $x < 20
if $rows != 1 then
return -1
endi
print ===> loop times: $x
endw
system sh/exec.sh -n dnode1 -s stop -x SIGINT
print ===> loop times: $x
endw
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -3,7 +3,7 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/exec.sh -n dnode1 -s start
sql connect
print ======== step1
print ======== step1
$tbPrefix = t
$i = 0
@ -21,13 +21,13 @@ while $i < 30
print times $i
$i = $i + 1
endw
endw
print ======== step2
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
endi
system sh/stop_dnodes.sh
@ -94,4 +94,4 @@ if $rows != 2 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -62,4 +62,4 @@ if $rows != 2 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -3,7 +3,7 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/exec.sh -n dnode1 -s start
sql connect
sql create database db
sql create database db
sql create table db.tb (ts timestamp, i int)
sql insert into db.tb values(now, 1)
@ -11,18 +11,18 @@ print ======== start back
run_back tsim/db/back_insert.sim
sleep 1000
print ======== step1
$x = 1
print ======== step1
$x = 1
while $x < 10
print drop database times $x
sql drop database if exists db
sql create database db
sql create database db
sql create table db.tb (ts timestamp, i int)
sleep 1000
$x = $x + 1
endw
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -3,7 +3,7 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/exec.sh -n dnode1 -s start
sql connect
sql create database db
sql create database db
sql create table db.tb (ts timestamp, i int)
sql insert into db.tb values(now, 1)
@ -11,11 +11,11 @@ sql create database db2
sql create table db2.tb2 (ts timestamp, i int)
sql insert into db2.tb2 values(now, 1)
sql create database db3
sql create database db3
sql create table db3.tb3 (ts timestamp, i int)
sql insert into db3.tb3 values(now, 1)
sql create database db4
sql create database db4
sql create table db4.tb4 (ts timestamp, i int)
sql insert into db4.tb4 values(now, 1)
@ -23,19 +23,19 @@ print ======== start back
run_back tsim/db/back_insert.sim
sleep 1000
print ======== step1
$x = 1
print ======== step1
$x = 1
while $x < 10
print drop database times $x
sql drop database if exists db
sql create database db
sql create database db
sql create table db.tb (ts timestamp, i int)
sleep 1000
$x = $x + 1
endw
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -12,7 +12,7 @@ system sh/exec.sh -n dnode1 -s start
system sh/exec.sh -n dnode2 -s start
sleep 2000
sql connect
sql connect
sql create dnode $hostname2
sleep 2000
@ -61,13 +61,13 @@ sql show tables
print $rows
if $rows != 16 then
return -1
endi
endi
sql select * from mt
print $rows
if $rows != 16 then
return -1
endi
endi
print ========== step3
@ -82,26 +82,26 @@ sql show tables
print $rows
if $rows != 8 then
return -1
endi
endi
sql select * from mt
print $rows
if $rows != 8 then
return -1
endi
endi
sql select * from db.t5
if $rows != 1 then
return -1
endi
endi
sql select * from db.t13
if $rows != 1 then
return -1
endi
endi
sql_error select * from db.t1
sql_error select * from db.t9
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode2 -s stop -x SIGINT
system sh/exec.sh -n dnode2 -s stop -x SIGINT

View File

@ -14,7 +14,7 @@ while $x < 41
sql insert into tb values (now - $time , $x ) -x step2
step2:
$x = $x + 1
endw
endw
sql select * from tb
print ===> rows $rows last $data01
@ -42,10 +42,10 @@ sql alter database keepdb keep 60
sql flush database keepdb
sql select * from information_schema.ins_databases
print $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07
if $data22 != 2 then
if $data22 != 2 then
return -1
endi
if $data27 != 86400m,86400m,86400m then
if $data27 != 86400m,86400m,86400m then
return -1
endi
@ -56,7 +56,7 @@ while $x < 81
sql insert into tb values (now - $time , $x ) -x step4
step4:
$x = $x + 1
endw
endw
sql select * from tb
print ===> rows $rows last $data01
@ -83,10 +83,10 @@ endi
print ======== step6 alter db
sql alter database keepdb keep 30
sql select * from information_schema.ins_databases
if $data22 != 2 then
if $data22 != 2 then
return -1
endi
if $data27 != 43200m,43200m,43200m then
if $data27 != 43200m,43200m,43200m then
return -1
endi
@ -110,7 +110,7 @@ while $x < 121
sql insert into tb values (now - $time , $x ) -x step8
step8:
$x = $x + 1
endw
endw
sql select * from tb
print ===> rows $rows last $data01
@ -137,4 +137,4 @@ error3:
print ======= test success
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode2 -s stop -x SIGINT
system sh/exec.sh -n dnode2 -s stop -x SIGINT

View File

@ -11,33 +11,33 @@ sql create database -x step1
step1:
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
print =============== step2
sql create database a
sql select * from information_schema.ins_databases
if $rows != 3 then
if $rows != 3 then
return -1
endi
sql drop database a
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
print =============== step3
sql create database a12345678
sql select * from information_schema.ins_databases
if $rows != 3 then
if $rows != 3 then
return -1
endi
sql drop database a12345678
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
@ -46,15 +46,15 @@ sql create database a012345678901201234567890120123456789012a0123456789012012345
return -1
step4:
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
print =============== step5
sql create database a;1
sql create database a;1
sql drop database a
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
@ -64,7 +64,7 @@ sql create database a'1 -x step6
step6:
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
@ -73,7 +73,7 @@ sql create database (a) -x step7
return -1
step7:
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
@ -82,8 +82,8 @@ sql create database a.1 -x step8
return -1
step8:
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -56,4 +56,4 @@ sql drop database d10
sql drop database d11
sql drop database d12
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -7,7 +7,7 @@ print =============== step2
sql create database db
sql show create database db
if $rows != 1 then
if $rows != 1 then
return -1
endi
@ -15,13 +15,13 @@ print =============== step3
sql use db
sql show create database db
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != db then
if $data00 != db then
return -1
endi
endi
sql drop database db

View File

@ -11,14 +11,14 @@ sql create table t0 using meters tags(1,'ch')
sql create table normalTbl(ts timestamp, zone binary(8))
sql use db
sql show create table meters
if $rows != 1 then
sql show create table meters
if $rows != 1 then
return -1
endi
print ===============check sub table
sql show create table t0
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 == 't0' then
@ -27,8 +27,8 @@ endi
print ===============check normal table
sql show create table normalTbl
if $rows != 1 then
sql show create table normalTbl
if $rows != 1 then
return -1
endi
@ -37,8 +37,8 @@ if $data00 == 'normalTbl' then
endi
print ===============check super table
sql show create table meters
if $rows != 1 then
sql show create table meters
if $rows != 1 then
return -1
endi
@ -49,7 +49,7 @@ endi
print ===============check sub table with prefix
sql show create table db.t0
if $rows != 1 then
if $rows != 1 then
return -1
endi
@ -58,8 +58,8 @@ if $data00 == 't0' then
endi
print ===============check normal table with prefix
sql show create table db.normalTbl
if $rows != 1 then
sql show create table db.normalTbl
if $rows != 1 then
return -1
endi
@ -69,8 +69,8 @@ endi
print ===============check super table with prefix
sql show create table db.meters
if $rows != 1 then
sql show create table db.meters
if $rows != 1 then
return -1
endi

View File

@ -8,7 +8,7 @@ sql create database db
sql select * from information_schema.ins_databases
print $rows $data07
if $rows != 3 then
if $rows != 3 then
return -1
endi
@ -125,4 +125,4 @@ if $data01 != 4 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -293,7 +293,7 @@ class TDTestCase:
dbname = tdSql.getData(0,0)
tdSql.query("select * from information_schema.ins_databases")
for index , value in enumerate(tdSql.cursor.description):
if value[0] == "retention":
if value[0] == "retentions":
r_index = index
break
for row in tdSql.queryResult:

View File

@ -551,6 +551,29 @@ class TDTestCase:
tdSql.checkData(0, 0, 15)
tdSql.checkData(1, 0, 15)
tdLog.printNoPrefix("==========step9:test error cases")
tdSql.error(f"select interp(c0) from {dbname}.{tbname}")
tdSql.error(f"select interp(c0) from {dbname}.{tbname} range('2020-02-10 00:00:05', '2020-02-15 00:00:05')")
tdSql.error(f"select interp(c0) from {dbname}.{tbname} range('2020-02-10 00:00:05', '2020-02-15 00:00:05') every(1d)")
tdSql.error(f"select interp(c0) from {dbname}.{tbname} range('2020-02-10 00:00:05', '2020-02-15 00:00:05') fill(null)")
tdSql.error(f"select interp(c0) from {dbname}.{tbname} every(1s) fill(null)")
tdSql.error(f"select interp(c0) from {dbname}.{tbname} where ts >= '2020-02-10 00:00:05' and ts <= '2020-02-15 00:00:05' every(1s) fill(null)")
# input can only be numerical types
tdSql.error(f"select interp(ts) from {dbname}.{tbname} range('2020-02-10 00:00:05', '2020-02-15 00:00:05') every(1d) fill(null)")
tdSql.error(f"select interp(c6) from {dbname}.{tbname} range('2020-02-10 00:00:05', '2020-02-15 00:00:05') every(1d) fill(null)")
tdSql.error(f"select interp(c7) from {dbname}.{tbname} range('2020-02-10 00:00:05', '2020-02-15 00:00:05') every(1d) fill(null)")
tdSql.error(f"select interp(c8) from {dbname}.{tbname} range('2020-02-10 00:00:05', '2020-02-15 00:00:05') every(1d) fill(null)")
# input can only be columns
tdSql.error(f"select interp(1) from {dbname}.{tbname} range('2020-02-10 00:00:05', '2020-02-15 00:00:05') every(1d) fill(null)")
tdSql.error(f"select interp(1.5) from {dbname}.{tbname} range('2020-02-10 00:00:05', '2020-02-15 00:00:05') every(1d) fill(null)")
tdSql.error(f"select interp(true) from {dbname}.{tbname} range('2020-02-10 00:00:05', '2020-02-15 00:00:05') every(1d) fill(null)")
tdSql.error(f"select interp(false) from {dbname}.{tbname} range('2020-02-10 00:00:05', '2020-02-15 00:00:05') every(1d) fill(null)")
tdSql.error(f"select interp('abcd') from {dbname}.{tbname} range('2020-02-10 00:00:05', '2020-02-15 00:00:05') every(1d) fill(null)")
tdSql.error(f"select interp('中文字符') from {dbname}.{tbname} range('2020-02-10 00:00:05', '2020-02-15 00:00:05') every(1d) fill(null)")
def stop(self):
tdSql.close()
tdLog.success(f"{__file__} successfully executed")

View File

@ -128,6 +128,7 @@ ELSE ()
COMMAND cmake -E copy ./taosadapter.service ${CMAKE_BINARY_DIR}/test/cfg/
COMMAND cmake -E copy taosadapter-debug ${CMAKE_BINARY_DIR}/build/bin
)
unset(_upx_prefix)
ELSEIF (TD_DARWIN)
include(ExternalProject)
ExternalProject_Add(taosadapter
@ -149,8 +150,42 @@ ELSE ()
COMMAND cmake -E copy ./taosadapter.service ${CMAKE_BINARY_DIR}/test/cfg/
COMMAND cmake -E copy taosadapter-debug ${CMAKE_BINARY_DIR}/build/bin
)
# unset(_upx_prefix)
ELSEIF (TD_WINDOWS)
include(ExternalProject)
set(_upx_prefix "${CMAKE_BINARY_DIR}/.taos/externals/upx")
ExternalProject_Add(upx
PREFIX "${_upx_prefix}"
URL https://github.com/upx/upx/releases/download/v3.96/upx-3.96-win32.zip
CONFIGURE_COMMAND cmake -E true
BUILD_COMMAND cmake -E true
INSTALL_COMMAND cmake -E true
)
ExternalProject_Add(taosadapter
PREFIX "taosadapter"
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/taosadapter
BUILD_ALWAYS off
DEPENDS taos
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND cmake -E echo "taosadapter no need cmake to config"
PATCH_COMMAND
COMMAND git clean -f -d
BUILD_COMMAND
COMMAND set CGO_CFLAGS=-I${CMAKE_CURRENT_SOURCE_DIR}/../include/client
COMMAND set CGO_LDFLAGS=-L${CMAKE_BINARY_DIR}/build/lib
COMMAND go build -ldflags "-s -w -X github.com/taosdata/taosadapter/version.Version=${taos_version} -X github.com/taosdata/taosadapter/version.CommitID=${taosadapter_commit_sha1}"
COMMAND go build -o taosadapter-debug -ldflags "-X github.com/taosdata/taosadapter/version.Version=${taos_version} -X github.com/taosdata/taosadapter/version.CommitID=${taosadapter_commit_sha1}"
INSTALL_COMMAND
COMMAND ${_upx_prefix}/src/upx/upx taosadapter.exe
COMMAND cmake -E copy taosadapter.exe ${CMAKE_BINARY_DIR}/build/bin
COMMAND cmake -E make_directory ${CMAKE_BINARY_DIR}/test/cfg/
COMMAND cmake -E copy ./example/config/taosadapter.toml ${CMAKE_BINARY_DIR}/test/cfg/
COMMAND cmake -E copy ./taosadapter.service ${CMAKE_BINARY_DIR}/test/cfg/
COMMAND cmake -E copy taosadapter-debug ${CMAKE_BINARY_DIR}/build/bin
)
unset(_upx_prefix)
ELSE ()
MESSAGE("${Yellow} Windows system still use original embedded httpd ${ColourReset}")
MESSAGE("${Yellow} taosAdapter Not supported yet ${ColourReset}")
ENDIF ()
ENDIF ()