BackFAQ
-1. When encoutered with the error "failed to connect to server", what can I do?
+1. When encountered with the error "failed to connect to server", what can I do?
The client may encounter connection errors. Please follow the steps below for troubleshooting:
- On the server side, execute
systemctl status taosd
to check the status of taosd service. If taosd is not running, start it and retry connecting.
diff --git a/documentation20/cn/00.index/docs.md b/documentation20/cn/00.index/docs.md
index 3c991547e7a7ccaf3701da6186c40b3ec6044ebf..7e5f98d909adbe1b558fcf87c85f94e0d703dc07 100644
--- a/documentation20/cn/00.index/docs.md
+++ b/documentation20/cn/00.index/docs.md
@@ -119,6 +119,7 @@ TDengine是一个高效的存储、查询、分析时序大数据的平台,专
* [TDengine样例导入工具](https://www.taosdata.com/blog/2020/01/18/1166.html)
* [TDengine性能对比测试工具](https://www.taosdata.com/blog/2020/01/18/1166.html)
* [IDEA数据库管理工具可视化使用TDengine](https://www.taosdata.com/blog/2020/08/27/1767.html)
+* [基于eletron开发的跨平台TDengine图形化管理工具](https://github.com/skye0207/TDengineGUI)
## TDengine与其他数据库的对比测试
diff --git a/documentation20/cn/03.architecture/docs.md b/documentation20/cn/03.architecture/docs.md
index 3b823e617e576280ed436ddc0422d7641c71535b..34ffb5d9442be4f90a8ea15aa8450dbc68317681 100644
--- a/documentation20/cn/03.architecture/docs.md
+++ b/documentation20/cn/03.architecture/docs.md
@@ -182,11 +182,11 @@ TDengine 分布式架构的逻辑结构图如下:
**集群对外连接:** TDengine集群可以容纳单个、多个甚至几千个数据节点。应用只需要向集群中任何一个数据节点发起连接即可,连接需要提供的网络参数是一数据节点的End Point(FQDN加配置的端口号)。通过命令行CLI启动应用taos时,可以通过选项-h来指定数据节点的FQDN, -P来指定其配置的端口号,如果端口不配置,将采用TDengine的系统配置参数serverPort。
-**集群内部通讯**: 各个数据节点之间通过TCP/UDP进行连接。一个数据节点启动时,将获取mnode所在的dnode的EP信息,然后与系统中的mnode建立起连接,交换信息。获取mnode的EP信息有三步,1:检查mnodeEpList文件是否存在,如果不存在或不能正常打开获得mnode EP信息,进入第二步;2:检查系统配置文件taos.cfg, 获取节点配置参数first, second,(这两个参数指定的节点可以是不带mnode的普通节点,这样的话,节点被连接时会尝试重定向到mnode节点)如果不存在或者taos.cfg里没有这两个配置参数,或无效,进入第三步;3:将自己的EP设为mnode EP, 并独立运行起来。获取mnode EP列表后,数据节点发起连接,如果连接成功,则成功加入进工作的集群,如果不成功,则尝试mnode EP列表中的下一个。如果都尝试了,但连接都仍然失败,则休眠几秒后,再进行尝试。
+**集群内部通讯**: 各个数据节点之间通过TCP/UDP进行连接。一个数据节点启动时,将获取mnode所在的dnode的EP信息,然后与系统中的mnode建立起连接,交换信息。获取mnode的EP信息有三步,1:检查mnodeEpList文件是否存在,如果不存在或不能正常打开获得mnode EP信息,进入第二步;2:检查系统配置文件taos.cfg, 获取节点配置参数firstEp, secondEp,(这两个参数指定的节点可以是不带mnode的普通节点,这样的话,节点被连接时会尝试重定向到mnode节点)如果不存在或者taos.cfg里没有这两个配置参数,或无效,进入第三步;3:将自己的EP设为mnode EP, 并独立运行起来。获取mnode EP列表后,数据节点发起连接,如果连接成功,则成功加入进工作的集群,如果不成功,则尝试mnode EP列表中的下一个。如果都尝试了,但连接都仍然失败,则休眠几秒后,再进行尝试。
**MNODE的选择:** TDengine逻辑上有管理节点,但没有单独的执行代码,服务器侧只有一套执行代码taosd。那么哪个数据节点会是管理节点呢?这是系统自动决定的,无需任何人工干预。原则如下:一个数据节点启动时,会检查自己的End Point, 并与获取的mnode EP List进行比对,如果在其中,该数据节点认为自己应该启动mnode模块,成为mnode。如果自己的EP不在mnode EP List里,则不启动mnode模块。在系统的运行过程中,由于负载均衡、宕机等原因,mnode有可能迁移至新的dnode,但一切都是透明的,无需人工干预,配置参数的修改,是mnode自己根据资源做出的决定。
-**新数据节点的加入**:系统有了一个数据节点后,就已经成为一个工作的系统。添加新的节点进集群时,有两个步骤,第一步:使用TDengine CLI连接到现有工作的数据节点,然后用命令”create dnode"将新的数据节点的End Point添加进去; 第二步:在新的数据节点的系统配置参数文件taos.cfg里,将first, second参数设置为现有集群中任意两个数据节点的EP即可。具体添加的详细步骤请见详细的用户手册。这样就把集群一步一步的建立起来。
+**新数据节点的加入**:系统有了一个数据节点后,就已经成为一个工作的系统。添加新的节点进集群时,有两个步骤,第一步:使用TDengine CLI连接到现有工作的数据节点,然后用命令”create dnode"将新的数据节点的End Point添加进去; 第二步:在新的数据节点的系统配置参数文件taos.cfg里,将firstEp, secondEp参数设置为现有集群中任意两个数据节点的EP即可。具体添加的详细步骤请见详细的用户手册。这样就把集群一步一步的建立起来。
**重定向**:无论是dnode还是taosc,最先都是要发起与mnode的连接,但mnode是系统自动创建并维护的,因此对于用户来说,并不知道哪个dnode在运行mnode。TDengine只要求向系统中任何一个工作的dnode发起连接即可。因为任何一个正在运行的dnode,都维护有目前运行的mnode EP List。当收到一个来自新启动的dnode或taosc的连接请求,如果自己不是mnode,则将mnode EP List回复给对方,taosc或新启动的dnode收到这个list, 就重新尝试建立连接。当mnode EP List发生改变,通过节点之间的消息交互,各个数据节点就很快获取最新列表,并通知taosc。
diff --git a/documentation20/cn/08.connector/docs.md b/documentation20/cn/08.connector/docs.md
index f3c2363d6c712c0323bcfeeb1c3a01d5df32ca63..9331d6e9cff622f21a38baea595241f7a6b90277 100644
--- a/documentation20/cn/08.connector/docs.md
+++ b/documentation20/cn/08.connector/docs.md
@@ -726,7 +726,7 @@ HTTP请求URL采用`sqlutc`时,返回结果集的时间戳将采用UTC时间
下面仅列出一些与RESTful接口有关的配置参数,其他系统参数请看配置文件里的说明。注意:配置修改后,需要重启taosd服务才能生效
- httpPort: 对外提供RESTful服务的端口号,默认绑定到6041
-- httpMaxThreads: 启动的线程数量,默认为2
+- httpMaxThreads: 启动的线程数量,默认为2(2.0.17版本开始,默认值改为CPU核数的一半向下取整)
- restfulRowLimit: 返回结果集(JSON格式)的最大条数,默认值为10240
- httpEnableCompress: 是否支持压缩,默认不支持,目前TDengine仅支持gzip压缩格式
- httpDebugFlag: 日志开关,131:仅错误和报警信息,135:调试信息,143:非常详细的调试信息,默认131
diff --git a/documentation20/cn/13.faq/docs.md b/documentation20/cn/13.faq/docs.md
index 4e72cbb21af95af034002fade0ce1b50cd8ccbc4..727ccf653f50cb449c1f15e1c903706a2fab2068 100644
--- a/documentation20/cn/13.faq/docs.md
+++ b/documentation20/cn/13.faq/docs.md
@@ -96,11 +96,11 @@ TDengine 目前尚不支持删除功能,未来根据用户需求可能会支
使用2.0及其以上版本,默认支持1024列;2.0之前的版本,TDengine最大允许创建250列的表。但是如果确实超过限值,建议按照数据特性,逻辑地将这个宽表分解成几个小表。
-## 10. 最有效的写入数据的方法是什么?
+## 11. 最有效的写入数据的方法是什么?
批量插入。每条写入语句可以一张表同时插入多条记录,也可以同时插入多张表的多条记录。
-## 11. 最有效的写入数据的方法是什么?windows系统下插入的nchar类数据中的汉字被解析成了乱码如何解决?
+## 12. 最有效的写入数据的方法是什么?windows系统下插入的nchar类数据中的汉字被解析成了乱码如何解决?
Windows下插入nchar类的数据中如果有中文,请先确认系统的地区设置成了中国(在Control Panel里可以设置),这时cmd中的`taos`客户端应该已经可以正常工作了;如果是在IDE里开发Java应用,比如Eclipse, Intellij,请确认IDE里的文件编码为GBK(这是Java默认的编码类型),然后在生成Connection时,初始化客户端的配置,具体语句如下:
```JAVA
@@ -110,7 +110,7 @@ properties.setProperty(TSDBDriver.LOCALE_KEY, "UTF-8");
Connection = DriverManager.getConnection(url, properties);
```
-## 12.JDBC报错: the excuted SQL is not a DML or a DDL?
+## 13.JDBC报错: the excuted SQL is not a DML or a DDL?
请更新至最新的JDBC驱动
```JAVA
@@ -121,15 +121,15 @@ Connection = DriverManager.getConnection(url, properties);
```
-## 13. taos connect failed, reason: invalid timestamp
+## 14. taos connect failed, reason: invalid timestamp
常见原因是服务器和客户端时间没有校准,可以通过和时间服务器同步的方式(Linux 下使用 ntpdate 命令,Windows 在系统时间设置中选择自动同步)校准。
-## 14. 表名显示不全
+## 15. 表名显示不全
由于 taos shell 在终端中显示宽度有限,有可能比较长的表名显示不全,如果按照显示的不全的表名进行相关操作会发生 Table does not exist 错误。解决方法可以是通过修改 taos.cfg 文件中的设置项 maxBinaryDisplayWidth, 或者直接输入命令 set max_binary_display_width 100。或者在命令结尾使用 \G 参数来调整结果的显示方式。
-## 15. 如何进行数据迁移?
+## 16. 如何进行数据迁移?
TDengine是根据hostname唯一标志一台机器的,在数据文件从机器A移动机器B时,注意如下两件事:
@@ -137,7 +137,7 @@ TDengine是根据hostname唯一标志一台机器的,在数据文件从机器A
- 2.0.7.0 及以后的版本,到/var/lib/taos/dnode下,修复dnodeEps.json的dnodeId对应的FQDN,重启。确保机器内所有机器的此文件是完全相同的。
- 1.x 和 2.x 版本的存储结构不兼容,需要使用迁移工具或者自己开发应用导出导入数据。
-## 16. 如何在命令行程序 taos 中临时调整日志级别
+## 17. 如何在命令行程序 taos 中临时调整日志级别
为了调试方便,从 2.0.16 版本开始,命令行程序 taos 新增了与日志记录相关的两条指令:
diff --git a/packaging/docker/Dockerfile b/packaging/docker/Dockerfile
index e13cad41204c3f28ed678a664bf7b9b7f5f8715d..230741d036a3012db1ea6351a2f30ca4b704d350 100644
--- a/packaging/docker/Dockerfile
+++ b/packaging/docker/Dockerfile
@@ -13,9 +13,8 @@ WORKDIR /root/${dirName}/
RUN /bin/bash install.sh -e no
ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib"
-ENV LANG=en_US.UTF-8
-ENV LANGUAGE=en_US:en
-ENV LC_ALL=en_US.UTF-8
+ENV LANG=C.UTF-8
+ENV LC_ALL=C.UTF-8
EXPOSE 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042
CMD ["taosd"]
VOLUME [ "/var/lib/taos", "/var/log/taos","/etc/taos/" ]
diff --git a/src/client/inc/tscUtil.h b/src/client/inc/tscUtil.h
index e78e259eb21ac2bc3a57b261481635c288f328dc..502d044d7540169497b682df96424ca3304f4668 100644
--- a/src/client/inc/tscUtil.h
+++ b/src/client/inc/tscUtil.h
@@ -270,7 +270,7 @@ void tscPrintSelectClause(SSqlObj* pSql, int32_t subClauseIndex);
bool hasMoreVnodesToTry(SSqlObj *pSql);
bool hasMoreClauseToTry(SSqlObj* pSql);
-void tscFreeQueryInfo(SSqlCmd* pCmd);
+void tscFreeQueryInfo(SSqlCmd* pCmd, bool removeMeta);
void tscTryQueryNextVnode(SSqlObj *pSql, __async_cb_func_t fp);
void tscAsyncQuerySingleRowForNextVnode(void *param, TAOS_RES *tres, int numOfRows);
diff --git a/src/client/inc/tsclient.h b/src/client/inc/tsclient.h
index 8f76f812acff2efbe3da4ea05b7f1d87003db28b..0bfbf3f946a4a1428549a493ab990a2be2173266 100644
--- a/src/client/inc/tsclient.h
+++ b/src/client/inc/tsclient.h
@@ -442,6 +442,8 @@ void tscCloseTscObj(void *pObj);
TAOS *taos_connect_a(char *ip, char *user, char *pass, char *db, uint16_t port, void (*fp)(void *, TAOS_RES *, int),
void *param, TAOS **taos);
TAOS_RES* taos_query_h(TAOS* taos, const char *sqlstr, int64_t* res);
+TAOS_RES * taos_query_ra(TAOS *taos, const char *sqlstr, __async_cb_func_t fp, void *param);
+
void waitForQueryRsp(void *param, TAOS_RES *tres, int code);
void doAsyncQuery(STscObj *pObj, SSqlObj *pSql, __async_cb_func_t fp, void *param, const char *sqlstr, size_t sqlLen);
diff --git a/src/client/src/tscAsync.c b/src/client/src/tscAsync.c
index 7d5b76cc2b3be68ae751e61b4b6c9870120c7d66..5cba897b3028a2d6301e9363ca6180f6b41022f8 100644
--- a/src/client/src/tscAsync.c
+++ b/src/client/src/tscAsync.c
@@ -74,12 +74,16 @@ void doAsyncQuery(STscObj* pObj, SSqlObj* pSql, __async_cb_func_t fp, void* para
// TODO return the correct error code to client in tscQueueAsyncError
void taos_query_a(TAOS *taos, const char *sqlstr, __async_cb_func_t fp, void *param) {
+ taos_query_ra(taos, sqlstr, fp, param);
+}
+
+TAOS_RES * taos_query_ra(TAOS *taos, const char *sqlstr, __async_cb_func_t fp, void *param) {
STscObj *pObj = (STscObj *)taos;
if (pObj == NULL || pObj->signature != pObj) {
tscError("bug!!! pObj:%p", pObj);
terrno = TSDB_CODE_TSC_DISCONNECTED;
tscQueueAsyncError(fp, param, TSDB_CODE_TSC_DISCONNECTED);
- return;
+ return NULL;
}
int32_t sqlLen = (int32_t)strlen(sqlstr);
@@ -87,7 +91,7 @@ void taos_query_a(TAOS *taos, const char *sqlstr, __async_cb_func_t fp, void *pa
tscError("sql string exceeds max length:%d", tsMaxSQLStringLen);
terrno = TSDB_CODE_TSC_EXCEED_SQL_LIMIT;
tscQueueAsyncError(fp, param, terrno);
- return;
+ return NULL;
}
nPrintTsc("%s", sqlstr);
@@ -96,12 +100,15 @@ void taos_query_a(TAOS *taos, const char *sqlstr, __async_cb_func_t fp, void *pa
if (pSql == NULL) {
tscError("failed to malloc sqlObj");
tscQueueAsyncError(fp, param, TSDB_CODE_TSC_OUT_OF_MEMORY);
- return;
+ return NULL;
}
doAsyncQuery(pObj, pSql, fp, param, sqlstr, sqlLen);
+
+ return pSql;
}
+
static void tscAsyncFetchRowsProxy(void *param, TAOS_RES *tres, int numOfRows) {
if (tres == NULL) {
return;
diff --git a/src/client/src/tscSQLParser.c b/src/client/src/tscSQLParser.c
index b2c1a594a13d446022c7fd469fb422887108d106..d5f8f420bf76d9a0b361480fa3255d49ecd9cf52 100644
--- a/src/client/src/tscSQLParser.c
+++ b/src/client/src/tscSQLParser.c
@@ -2013,6 +2013,7 @@ int32_t addExprAndResultField(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, int32_t col
if ((getColumnIndexByName(pCmd, &pParamElem->pNode->colInfo, pQueryInfo, &index) != TSDB_CODE_SUCCESS)) {
return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg3);
}
+
if (index.columnIndex == TSDB_TBNAME_COLUMN_INDEX) {
return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg6);
}
diff --git a/src/client/src/tscSubquery.c b/src/client/src/tscSubquery.c
index 812027aa65bb3a4a2d35d630c2c8d112df9a7cc0..78e9c6829081cb61f5fa8e2ed55397242ba357a4 100644
--- a/src/client/src/tscSubquery.c
+++ b/src/client/src/tscSubquery.c
@@ -2802,7 +2802,7 @@ static void multiVnodeInsertFinalize(void* param, TAOS_RES* tres, int numOfRows)
numOfFailed += 1;
// clean up tableMeta in cache
- tscFreeQueryInfo(&pSql->cmd);
+ tscFreeQueryInfo(&pSql->cmd, false);
SQueryInfo* pQueryInfo = tscGetQueryInfoDetailSafely(&pSql->cmd, 0);
STableMetaInfo* pMasterTableMetaInfo = tscGetTableMetaInfoFromCmd(&pParentObj->cmd, pSql->cmd.clauseIndex, 0);
tscAddTableMetaInfo(pQueryInfo, &pMasterTableMetaInfo->name, NULL, NULL, NULL, NULL);
diff --git a/src/client/src/tscUtil.c b/src/client/src/tscUtil.c
index cfa73b969d5a144822d83c9922a2ff55c97c2015..578a7df1493b23792791a29bf0acf43c6e38b719 100644
--- a/src/client/src/tscUtil.c
+++ b/src/client/src/tscUtil.c
@@ -30,7 +30,7 @@
#include "ttokendef.h"
static void freeQueryInfoImpl(SQueryInfo* pQueryInfo);
-static void clearAllTableMetaInfo(SQueryInfo* pQueryInfo);
+static void clearAllTableMetaInfo(SQueryInfo* pQueryInfo, bool removeMeta);
static void tscStrToLower(char *str, int32_t n) {
if (str == NULL || n <= 0) { return;}
@@ -367,7 +367,7 @@ static void tscDestroyResPointerInfo(SSqlRes* pRes) {
pRes->data = NULL; // pRes->data points to the buffer of pRsp, no need to free
}
-void tscFreeQueryInfo(SSqlCmd* pCmd) {
+void tscFreeQueryInfo(SSqlCmd* pCmd, bool removeMeta) {
if (pCmd == NULL || pCmd->numOfClause == 0) {
return;
}
@@ -376,7 +376,7 @@ void tscFreeQueryInfo(SSqlCmd* pCmd) {
SQueryInfo* pQueryInfo = tscGetQueryInfoDetail(pCmd, i);
freeQueryInfoImpl(pQueryInfo);
- clearAllTableMetaInfo(pQueryInfo);
+ clearAllTableMetaInfo(pQueryInfo, removeMeta);
tfree(pQueryInfo);
}
@@ -404,7 +404,7 @@ void tscResetSqlCmd(SSqlCmd* pCmd, bool removeMeta) {
pCmd->pTableBlockHashList = tscDestroyBlockHashTable(pCmd->pTableBlockHashList, removeMeta);
pCmd->pDataBlocks = tscDestroyBlockArrayList(pCmd->pDataBlocks);
- tscFreeQueryInfo(pCmd);
+ tscFreeQueryInfo(pCmd, removeMeta);
}
void tscFreeSqlResult(SSqlObj* pSql) {
@@ -1847,10 +1847,17 @@ SArray* tscVgroupTableInfoDup(SArray* pVgroupTables) {
return pa;
}
-void clearAllTableMetaInfo(SQueryInfo* pQueryInfo) {
+void clearAllTableMetaInfo(SQueryInfo* pQueryInfo, bool removeMeta) {
for(int32_t i = 0; i < pQueryInfo->numOfTables; ++i) {
STableMetaInfo* pTableMetaInfo = tscGetMetaInfo(pQueryInfo, i);
+ if (removeMeta) {
+ char name[TSDB_TABLE_FNAME_LEN] = {0};
+ tNameExtractFullName(&pTableMetaInfo->name, name);
+
+ taosHashRemove(tscTableMetaInfo, name, strnlen(name, TSDB_TABLE_FNAME_LEN));
+ }
+
tscFreeVgroupTableInfo(pTableMetaInfo->pVgroupTables);
tscClearTableMetaInfo(pTableMetaInfo);
free(pTableMetaInfo);
@@ -2714,7 +2721,11 @@ STableMeta* createSuperTableMeta(STableMetaMsg* pChild) {
uint32_t tscGetTableMetaSize(STableMeta* pTableMeta) {
assert(pTableMeta != NULL);
- int32_t totalCols = pTableMeta->tableInfo.numOfColumns + pTableMeta->tableInfo.numOfTags;
+ int32_t totalCols = 0;
+ if (pTableMeta->tableInfo.numOfColumns >= 0 && pTableMeta->tableInfo.numOfTags >= 0) {
+ totalCols = pTableMeta->tableInfo.numOfColumns + pTableMeta->tableInfo.numOfTags;
+ }
+
return sizeof(STableMeta) + totalCols * sizeof(SSchema);
}
diff --git a/src/common/src/tglobal.c b/src/common/src/tglobal.c
index 80bf48364c2c634a47122b0834f07d8c229c0ef7..4ed4e0473bdf3c11c2838842b24c15d886a02f2e 100644
--- a/src/common/src/tglobal.c
+++ b/src/common/src/tglobal.c
@@ -430,10 +430,10 @@ static void doInitGlobalConfig(void) {
// port
cfg.option = "serverPort";
cfg.ptr = &tsServerPort;
- cfg.valType = TAOS_CFG_VTYPE_INT16;
+ cfg.valType = TAOS_CFG_VTYPE_UINT16;
cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW | TSDB_CFG_CTYPE_B_CLIENT;
cfg.minValue = 1;
- cfg.maxValue = 65535;
+ cfg.maxValue = 65056;
cfg.ptrLength = 0;
cfg.unitType = TAOS_CFG_UTYPE_NONE;
taosInitConfigOption(cfg);
diff --git a/src/dnode/src/dnodeCheck.c b/src/dnode/src/dnodeCheck.c
index 94d23609505bf952225b8dd2c752754dbd5d55b9..87baff30673afc68eb23a00bef279433a422ba67 100644
--- a/src/dnode/src/dnodeCheck.c
+++ b/src/dnode/src/dnodeCheck.c
@@ -29,7 +29,7 @@ typedef struct {
static SCheckItem tsCheckItem[TSDB_CHECK_ITEM_MAX] = {{0}};
int64_t tsMinFreeMemSizeForStart = 0;
-static int32_t bindTcpPort(int16_t port) {
+static int32_t bindTcpPort(uint16_t port) {
SOCKET serverSocket;
struct sockaddr_in server_addr;
@@ -85,9 +85,9 @@ static int32_t bindUdpPort(int16_t port) {
static int32_t dnodeCheckNetwork() {
int32_t ret;
- int16_t startPort = tsServerPort;
+ uint16_t startPort = tsServerPort;
- for (int16_t port = startPort; port < startPort + 12; port++) {
+ for (uint16_t port = startPort; port < startPort + 12; port++) {
ret = bindTcpPort(port);
if (0 != ret) {
dError("failed to tcp bind port %d, quit", port);
diff --git a/src/inc/taosdef.h b/src/inc/taosdef.h
index 9f3c31f22595d6dc6007dc9517390b970b781943..f4712198ee9c2aee97eda1a03085032c81c53b84 100644
--- a/src/inc/taosdef.h
+++ b/src/inc/taosdef.h
@@ -286,7 +286,7 @@ do { \
#define TSDB_MAX_COMP_LEVEL 2
#define TSDB_DEFAULT_COMP_LEVEL 2
-#define TSDB_MIN_WAL_LEVEL 1
+#define TSDB_MIN_WAL_LEVEL 0
#define TSDB_MAX_WAL_LEVEL 2
#define TSDB_DEFAULT_WAL_LEVEL 1
diff --git a/src/kit/taosdemo/insert.json b/src/kit/taosdemo/insert.json
index 56a64b7b8561877cb26b4ef2336ab8b98f26c02c..9e252772ea42ea09225b8583696bda386ed7916e 100644
--- a/src/kit/taosdemo/insert.json
+++ b/src/kit/taosdemo/insert.json
@@ -6,15 +6,15 @@
"user": "root",
"password": "taosdata",
"thread_count": 4,
- "thread_count_create_tbl": 1,
+ "thread_count_create_tbl": 4,
"result_file": "./insert_res.txt",
- "confirm_parameter_prompt": "no",
+ "confirm_parameter_prompt": "no",
"databases": [{
"dbinfo": {
- "name": "db",
- "drop": "no",
+ "name": "dbx",
+ "drop": "yes",
"replica": 1,
- "days": 2,
+ "days": 10,
"cache": 16,
"blocks": 8,
"precision": "ms",
@@ -23,27 +23,28 @@
"maxRows": 4096,
"comp":2,
"walLevel":1,
+ "cachelast":0,
"quorum":1,
"fsync":3000,
"update": 0
},
"super_tables": [{
"name": "stb",
- "child_table_exists":"no",
- "childtable_count": 1,
+ "child_table_exists":"no",
+ "childtable_count": 100,
"childtable_prefix": "stb_",
"auto_create_table": "no",
"data_source": "rand",
"insert_mode": "taosc",
"insert_rate": 0,
- "insert_rows": 100000,
+ "insert_rows": 1000,
"multi_thread_write_one_tbl": "no",
- "number_of_tbl_in_one_sql": 1,
+ "number_of_tbl_in_one_sql": 0,
"rows_per_tbl": 100,
"max_sql_len": 1024000,
"disorder_ratio": 0,
"disorder_range": 1000,
- "timestamp_step": 10,
+ "timestamp_step": 1,
"start_timestamp": "2020-10-01 00:00:00.000",
"sample_format": "csv",
"sample_file": "./sample.csv",
diff --git a/src/kit/taosdemo/query.json b/src/kit/taosdemo/query.json
index 4a5403a55d520681569b17adbd96c69bf411a15b..33ac120bdae283f64c4419d2885a93d36a7c8093 100644
--- a/src/kit/taosdemo/query.json
+++ b/src/kit/taosdemo/query.json
@@ -6,13 +6,14 @@
"user": "root",
"password": "taosdata",
"confirm_parameter_prompt": "yes",
- "databases": "db01",
+ "databases": "dbx",
"specified_table_query":
- {"query_interval":1, "concurrent":1,
- "sqls": [{"sql": "select count(*) from stb01", "result": "./query_res0.txt"}]
+ {"query_interval":1, "concurrent":4,
+ "sqls": [{"sql": "select last_row(*) from stb where color='red'", "result": "./query_res0.txt"},
+ {"sql": "select count(*) from stb_01", "result": "./query_res1.txt"}]
},
"super_table_query":
- {"stblname": "stb01", "query_interval":1, "threads":1,
- "sqls": [{"sql": "select count(*) from xxxx", "result": "./query_res1.txt"}]
+ {"stblname": "stb", "query_interval":1, "threads":4,
+ "sqls": [{"sql": "select last_row(*) from xxxx", "result": "./query_res2.txt"}]
}
}
diff --git a/src/kit/taosdemo/subscribe.json b/src/kit/taosdemo/subscribe.json
index f70b1213a884af7d593b3d7366268ce03de1d239..fd33a2e2e2515ac268764c0a7f3f8356e998becd 100644
--- a/src/kit/taosdemo/subscribe.json
+++ b/src/kit/taosdemo/subscribe.json
@@ -5,7 +5,7 @@
"port": 6030,
"user": "root",
"password": "taosdata",
- "databases": "db",
+ "databases": "dbx",
"specified_table_query":
{"concurrent":1, "mode":"sync", "interval":5000, "restart":"yes", "keepProgress":"yes",
"sqls": [{"sql": "select avg(col1) from stb01 where col1 > 1;", "result": "./subscribe_res0.txt"}]
diff --git a/src/kit/taosdemo/taosdemo.c b/src/kit/taosdemo/taosdemo.c
index 78a0593e619b00f47fc94b282421ba53991d99dd..86b84534f6639102f75f8f70cbd07efe254dc164 100644
--- a/src/kit/taosdemo/taosdemo.c
+++ b/src/kit/taosdemo/taosdemo.c
@@ -257,14 +257,14 @@ typedef struct SColumn_S {
} StrColumn;
typedef struct SSuperTable_S {
- char sTblName[MAX_TB_NAME_SIZE];
+ char sTblName[MAX_TB_NAME_SIZE+1];
int childTblCount;
bool superTblExists; // 0: no, 1: yes
bool childTblExists; // 0: no, 1: yes
int batchCreateTableNum; // 0: no batch, > 0: batch table number in one sql
int8_t autoCreateTable; // 0: create sub table, 1: auto create sub table
char childTblPrefix[MAX_TB_NAME_SIZE];
- char dataSource[MAX_TB_NAME_SIZE]; // rand_gen or sample
+ char dataSource[MAX_TB_NAME_SIZE+1]; // rand_gen or sample
char insertMode[MAX_TB_NAME_SIZE]; // taosc, restful
int insertRate; // 0: unlimit > 0 rows/s
@@ -279,8 +279,8 @@ typedef struct SSuperTable_S {
int timeStampStep;
char startTimestamp[MAX_TB_NAME_SIZE]; //
char sampleFormat[MAX_TB_NAME_SIZE]; // csv, json
- char sampleFile[MAX_FILE_NAME_LEN];
- char tagsFile[MAX_FILE_NAME_LEN];
+ char sampleFile[MAX_FILE_NAME_LEN+1];
+ char tagsFile[MAX_FILE_NAME_LEN+1];
int columnCount;
StrColumn columns[MAX_COLUMN_COUNT];
@@ -335,6 +335,7 @@ typedef struct SDbCfg_S {
int maxRows;
int comp;
int walLevel;
+ int cacheLast;
int fsync;
int replica;
int update;
@@ -355,12 +356,12 @@ typedef struct SDataBase_S {
} SDataBase;
typedef struct SDbs_S {
- char cfgDir[MAX_FILE_NAME_LEN];
+ char cfgDir[MAX_FILE_NAME_LEN+1];
char host[MAX_DB_NAME_SIZE];
uint16_t port;
char user[MAX_DB_NAME_SIZE];
char password[MAX_DB_NAME_SIZE];
- char resultFile[MAX_FILE_NAME_LEN];
+ char resultFile[MAX_FILE_NAME_LEN+1];
bool use_metric;
bool insert_only;
bool do_aggreFunc;
@@ -385,13 +386,13 @@ typedef struct SuperQueryInfo_S {
int subscribeInterval; // ms
int subscribeRestart;
int subscribeKeepProgress;
- char sql[MAX_QUERY_SQL_COUNT][MAX_QUERY_SQL_LENGTH];
- char result[MAX_QUERY_SQL_COUNT][MAX_FILE_NAME_LEN];
+ char sql[MAX_QUERY_SQL_COUNT][MAX_QUERY_SQL_LENGTH+1];
+ char result[MAX_QUERY_SQL_COUNT][MAX_FILE_NAME_LEN+1];
TAOS_SUB* tsub[MAX_QUERY_SQL_COUNT];
} SuperQueryInfo;
typedef struct SubQueryInfo_S {
- char sTblName[MAX_TB_NAME_SIZE];
+ char sTblName[MAX_TB_NAME_SIZE+1];
int rate; // 0: unlimit > 0 loop/s
int threadCnt;
int subscribeMode; // 0: sync, 1: async
@@ -401,20 +402,20 @@ typedef struct SubQueryInfo_S {
int childTblCount;
char childTblPrefix[MAX_TB_NAME_SIZE];
int sqlCount;
- char sql[MAX_QUERY_SQL_COUNT][MAX_QUERY_SQL_LENGTH];
- char result[MAX_QUERY_SQL_COUNT][MAX_FILE_NAME_LEN];
+ char sql[MAX_QUERY_SQL_COUNT][MAX_QUERY_SQL_LENGTH+1];
+ char result[MAX_QUERY_SQL_COUNT][MAX_FILE_NAME_LEN+1];
TAOS_SUB* tsub[MAX_QUERY_SQL_COUNT];
char* childTblName;
} SubQueryInfo;
typedef struct SQueryMetaInfo_S {
- char cfgDir[MAX_FILE_NAME_LEN];
+ char cfgDir[MAX_FILE_NAME_LEN+1];
char host[MAX_DB_NAME_SIZE];
uint16_t port;
char user[MAX_DB_NAME_SIZE];
char password[MAX_DB_NAME_SIZE];
- char dbName[MAX_DB_NAME_SIZE];
+ char dbName[MAX_DB_NAME_SIZE+1];
char queryMode[MAX_TB_NAME_SIZE]; // taosc, restful
SuperQueryInfo superQueryInfo;
@@ -424,7 +425,7 @@ typedef struct SQueryMetaInfo_S {
typedef struct SThreadInfo_S {
TAOS *taos;
int threadID;
- char db_name[MAX_DB_NAME_SIZE];
+ char db_name[MAX_DB_NAME_SIZE+1];
char fp[4096];
char tb_prefix[MAX_TB_NAME_SIZE];
int start_table_id;
@@ -1766,7 +1767,7 @@ static int getAllChildNameOfSuperTable(TAOS * taos, char* dbName, char* sTblName
char* pTblName = childTblName;
while ((row = taos_fetch_row(res)) != NULL) {
int32_t* len = taos_fetch_lengths(res);
- tstrncpy(pTblName, (char *)row[0], len[0]);
+ tstrncpy(pTblName, (char *)row[0], len[0]+1);
//printf("==== sub table name: %s\n", pTblName);
count++;
if (count >= childTblCount - 1) {
@@ -2022,6 +2023,9 @@ static int createDatabases() {
if (g_Dbs.db[i].dbCfg.walLevel > 0) {
dataLen += snprintf(command + dataLen, BUFFER_SIZE - dataLen, "wal %d ", g_Dbs.db[i].dbCfg.walLevel);
}
+ if (g_Dbs.db[i].dbCfg.cacheLast > 0) {
+ dataLen += snprintf(command + dataLen, BUFFER_SIZE - dataLen, "cachelast %d ", g_Dbs.db[i].dbCfg.cacheLast);
+ }
if (g_Dbs.db[i].dbCfg.fsync > 0) {
dataLen += snprintf(command + dataLen, BUFFER_SIZE - dataLen, "fsync %d ", g_Dbs.db[i].dbCfg.fsync);
}
@@ -2722,6 +2726,16 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
goto PARSE_OVER;
}
+ cJSON* cacheLast= cJSON_GetObjectItem(dbinfo, "cachelast");
+ if (cacheLast && cacheLast->type == cJSON_Number) {
+ g_Dbs.db[i].dbCfg.cacheLast = cacheLast->valueint;
+ } else if (!cacheLast) {
+ g_Dbs.db[i].dbCfg.cacheLast = -1;
+ } else {
+ printf("failed to read json, cacheLast not found");
+ goto PARSE_OVER;
+ }
+
cJSON* quorum= cJSON_GetObjectItem(dbinfo, "quorum");
if (quorum && quorum->type == cJSON_Number) {
g_Dbs.db[i].dbCfg.quorum = quorum->valueint;
@@ -2795,7 +2809,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
if (batchCreateTbl && batchCreateTbl->type == cJSON_Number) {
g_Dbs.db[i].superTbls[j].batchCreateTableNum = batchCreateTbl->valueint;
} else if (!batchCreateTbl) {
- g_Dbs.db[i].superTbls[j].batchCreateTableNum = 2000;
+ g_Dbs.db[i].superTbls[j].batchCreateTableNum = 1000;
} else {
printf("failed to read json, batch_create_tbl_num not found");
goto PARSE_OVER;
@@ -4475,7 +4489,7 @@ void replaceSubTblName(char* inSql, char* outSql, int tblIndex) {
return;
}
- tstrncpy(outSql, inSql, pos - inSql);
+ tstrncpy(outSql, inSql, pos - inSql + 1);
//printf("1: %s\n", outSql);
strcat(outSql, subTblName);
//printf("2: %s\n", outSql);
@@ -4496,12 +4510,12 @@ void *subQueryProcess(void *sarg) {
st = taosGetTimestampMs();
for (int i = winfo->start_table_id; i <= winfo->end_table_id; i++) {
- for (int i = 0; i < g_queryInfo.subQueryInfo.sqlCount; i++) {
+ for (int j = 0; j < g_queryInfo.subQueryInfo.sqlCount; j++) {
memset(sqlstr,0,sizeof(sqlstr));
- replaceSubTblName(g_queryInfo.subQueryInfo.sql[i], sqlstr, i);
+ replaceSubTblName(g_queryInfo.subQueryInfo.sql[j], sqlstr, i);
char tmpFile[MAX_FILE_NAME_LEN*2] = {0};
- if (g_queryInfo.subQueryInfo.result[i][0] != 0) {
- sprintf(tmpFile, "%s-%d", g_queryInfo.subQueryInfo.result[i], winfo->threadID);
+ if (g_queryInfo.subQueryInfo.result[j][0] != 0) {
+ sprintf(tmpFile, "%s-%d", g_queryInfo.subQueryInfo.result[j], winfo->threadID);
}
selectAndGetResult(winfo->taos, sqlstr, tmpFile);
}
diff --git a/src/mnode/src/mnodeTable.c b/src/mnode/src/mnodeTable.c
index 4fcedd82e3103f0ca807dd202b83a8a083cb34a8..b1ae118b4b8174d1ac9427a290e6b49efddbb33a 100644
--- a/src/mnode/src/mnodeTable.c
+++ b/src/mnode/src/mnodeTable.c
@@ -916,11 +916,13 @@ static int32_t mnodeProcessDropTableMsg(SMnodeMsg *pMsg) {
return TSDB_CODE_MND_DB_IN_DROPPING;
}
+#if 0
if (mnodeCheckIsMonitorDB(pMsg->pDb->name, tsMonitorDbName)) {
mError("msg:%p, app:%p table:%s, failed to drop table, in monitor database", pMsg, pMsg->rpcMsg.ahandle,
pDrop->name);
return TSDB_CODE_MND_MONITOR_DB_FORBIDDEN;
}
+#endif
if (pMsg->pTable == NULL) pMsg->pTable = mnodeGetTable(pDrop->name);
if (pMsg->pTable == NULL) {
@@ -3020,10 +3022,12 @@ static int32_t mnodeProcessAlterTableMsg(SMnodeMsg *pMsg) {
return TSDB_CODE_MND_DB_IN_DROPPING;
}
+#if 0
if (mnodeCheckIsMonitorDB(pMsg->pDb->name, tsMonitorDbName)) {
mError("msg:%p, app:%p table:%s, failed to alter table, its log db", pMsg, pMsg->rpcMsg.ahandle, pAlter->tableFname);
return TSDB_CODE_MND_MONITOR_DB_FORBIDDEN;
}
+#endif
if (pMsg->pTable == NULL) pMsg->pTable = mnodeGetTable(pAlter->tableFname);
if (pMsg->pTable == NULL) {
diff --git a/src/plugins/http/inc/httpRestJson.h b/src/plugins/http/inc/httpRestJson.h
index 112e845f369c6ae3f0df76d880f84de5aeff5d8d..5f19983826a4f90bc3498ca82cc9fd495b4f300c 100644
--- a/src/plugins/http/inc/httpRestJson.h
+++ b/src/plugins/http/inc/httpRestJson.h
@@ -34,6 +34,8 @@
#define REST_JSON_DATA_LEN 4
#define REST_JSON_HEAD "head"
#define REST_JSON_HEAD_LEN 4
+#define REST_JSON_HEAD_INFO "column_meta"
+#define REST_JSON_HEAD_INFO_LEN 11
#define REST_JSON_ROWS "rows"
#define REST_JSON_ROWS_LEN 4
#define REST_JSON_AFFECT_ROWS "affected_rows"
@@ -51,4 +53,4 @@ bool restBuildSqlLocalTimeStringJson(HttpContext *pContext, HttpSqlCmd *cmd, TAO
bool restBuildSqlUtcTimeStringJson(HttpContext *pContext, HttpSqlCmd *cmd, TAOS_RES *result, int32_t numOfRows);
void restStopSqlJson(HttpContext *pContext, HttpSqlCmd *cmd);
-#endif
\ No newline at end of file
+#endif
diff --git a/src/plugins/http/src/httpQueue.c b/src/plugins/http/src/httpQueue.c
index aebba97fb8cd320afd7ba6a0f2b1e39dbaf4bee1..7f7ce404600b96b0efe8385ea0aed7be412a6ba0 100644
--- a/src/plugins/http/src/httpQueue.c
+++ b/src/plugins/http/src/httpQueue.c
@@ -59,7 +59,9 @@ void httpDispatchToResultQueue(void *param, TAOS_RES *result, int32_t code, int3
pMsg->fp = fp;
taosWriteQitem(tsHttpQueue, TAOS_QTYPE_RPC, pMsg);
} else {
- (*fp)(param, result, code, rows);
+ taos_stop_query(result);
+ taos_free_result(result);
+ //(*fp)(param, result, code, rows);
}
}
diff --git a/src/plugins/http/src/httpRestJson.c b/src/plugins/http/src/httpRestJson.c
index a620625d25919433a406856289dad0f8da1fc709..61a5a361c4865d6b3dbac73773cc0b8cfc562e56 100644
--- a/src/plugins/http/src/httpRestJson.c
+++ b/src/plugins/http/src/httpRestJson.c
@@ -75,6 +75,44 @@ void restStartSqlJson(HttpContext *pContext, HttpSqlCmd *cmd, TAOS_RES *result)
// head array end
httpJsonToken(jsonBuf, JsonArrEnd);
+ // column_meta begin
+ httpJsonItemToken(jsonBuf);
+ httpJsonPairHead(jsonBuf, REST_JSON_HEAD_INFO, REST_JSON_HEAD_INFO_LEN);
+ // column_meta array begin
+ httpJsonItemToken(jsonBuf);
+ httpJsonToken(jsonBuf, JsonArrStt);
+
+ if (num_fields == 0) {
+ httpJsonItemToken(jsonBuf);
+ httpJsonToken(jsonBuf, JsonArrStt);
+
+ httpJsonItemToken(jsonBuf);
+ httpJsonString(jsonBuf, REST_JSON_AFFECT_ROWS, REST_JSON_AFFECT_ROWS_LEN);
+ httpJsonItemToken(jsonBuf);
+ httpJsonInt(jsonBuf, TSDB_DATA_TYPE_INT);
+ httpJsonItemToken(jsonBuf);
+ httpJsonInt(jsonBuf, 4);
+
+ httpJsonToken(jsonBuf, JsonArrEnd);
+ } else {
+ for (int32_t i = 0; i < num_fields; ++i) {
+ httpJsonItemToken(jsonBuf);
+ httpJsonToken(jsonBuf, JsonArrStt);
+
+ httpJsonItemToken(jsonBuf);
+ httpJsonString(jsonBuf, fields[i].name, (int32_t)strlen(fields[i].name));
+ httpJsonItemToken(jsonBuf);
+ httpJsonInt(jsonBuf, fields[i].type);
+ httpJsonItemToken(jsonBuf);
+ httpJsonInt(jsonBuf, fields[i].bytes);
+
+ httpJsonToken(jsonBuf, JsonArrEnd);
+ }
+ }
+
+ // column_meta array end
+ httpJsonToken(jsonBuf, JsonArrEnd);
+
// data begin
httpJsonItemToken(jsonBuf);
httpJsonPairHead(jsonBuf, REST_JSON_DATA, REST_JSON_DATA_LEN);
diff --git a/src/query/src/qAggMain.c b/src/query/src/qAggMain.c
index feea4707bc3c2997824dd7819b4ff4669736c0e8..f99fe3f0720784db0a5e0b526dddb436a91f87d3 100644
--- a/src/query/src/qAggMain.c
+++ b/src/query/src/qAggMain.c
@@ -2733,15 +2733,19 @@ static void percentile_function(SQLFunctionCtx *pCtx) {
if (pInfo->stage == 0) {
if (pCtx->preAggVals.isSet) {
double tmin = 0.0, tmax = 0.0;
- if (pCtx->inputType >= TSDB_DATA_TYPE_TINYINT && pCtx->inputType <= TSDB_DATA_TYPE_BIGINT) {
- tmin = (double)GET_INT64_VAL(&pCtx->preAggVals.statis.min);
- tmax = (double)GET_INT64_VAL(&pCtx->preAggVals.statis.max);
- } else if (pCtx->inputType == TSDB_DATA_TYPE_DOUBLE || pCtx->inputType == TSDB_DATA_TYPE_FLOAT) {
- tmin = GET_DOUBLE_VAL(&pCtx->preAggVals.statis.min);
- tmax = GET_DOUBLE_VAL(&pCtx->preAggVals.statis.max);
+ if (IS_SIGNED_NUMERIC_TYPE(pCtx->inputType)) {
+ tmin = (double)GET_INT64_VAL(&pCtx->preAggVals.statis.min);
+ tmax = (double)GET_INT64_VAL(&pCtx->preAggVals.statis.max);
+ } else if (IS_FLOAT_TYPE(pCtx->inputType)) {
+ tmin = GET_DOUBLE_VAL(&pCtx->preAggVals.statis.min);
+ tmax = GET_DOUBLE_VAL(&pCtx->preAggVals.statis.max);
+ } else if (IS_UNSIGNED_NUMERIC_TYPE(pCtx->inputType)) {
+ tmin = (double)GET_UINT64_VAL(&pCtx->preAggVals.statis.min);
+ tmax = (double)GET_UINT64_VAL(&pCtx->preAggVals.statis.max);
} else {
assert(true);
}
+
if (GET_DOUBLE_VAL(&pInfo->minval) > tmin) {
SET_DOUBLE_VAL(&pInfo->minval, tmin);
}
diff --git a/src/tsdb/inc/tsdbMemTable.h b/src/tsdb/inc/tsdbMemTable.h
index 3b3f1dd1f6a9307bbe3954374b005a23a9f15ab0..bd64ed4a5238b3b8b60716d8732d59d27218c639 100644
--- a/src/tsdb/inc/tsdbMemTable.h
+++ b/src/tsdb/inc/tsdbMemTable.h
@@ -37,6 +37,7 @@ typedef struct {
TSKEY keyLast;
int64_t numOfRows;
SSkipList* pData;
+ T_REF_DECLARE()
} STableData;
typedef struct {
@@ -76,7 +77,7 @@ typedef struct {
int tsdbRefMemTable(STsdbRepo* pRepo, SMemTable* pMemTable);
int tsdbUnRefMemTable(STsdbRepo* pRepo, SMemTable* pMemTable);
-int tsdbTakeMemSnapshot(STsdbRepo* pRepo, SMemTable** pMem, SMemTable** pIMem);
+int tsdbTakeMemSnapshot(STsdbRepo* pRepo, SMemTable** pMem, SMemTable** pIMem, SArray* pATable);
void tsdbUnTakeMemSnapShot(STsdbRepo* pRepo, SMemTable* pMem, SMemTable* pIMem);
void* tsdbAllocBytes(STsdbRepo* pRepo, int bytes);
int tsdbAsyncCommit(STsdbRepo* pRepo);
diff --git a/src/tsdb/src/tsdbMain.c b/src/tsdb/src/tsdbMain.c
index 69a35b3d7832a31528657df71d5c169f4a524974..8969f61596b33f37cabe934fdd56819b71575315 100644
--- a/src/tsdb/src/tsdbMain.c
+++ b/src/tsdb/src/tsdbMain.c
@@ -597,7 +597,7 @@ int tsdbRestoreInfo(STsdbRepo *pRepo) {
// Get the data in row
ASSERT(pTable->lastRow == NULL);
STSchema *pSchema = tsdbGetTableSchema(pTable);
- pTable->lastRow = taosTMalloc(schemaTLen(pSchema));
+ pTable->lastRow = taosTMalloc(dataRowMaxBytesFromSchema(pSchema));
if (pTable->lastRow == NULL) {
terrno = TSDB_CODE_TDB_OUT_OF_MEMORY;
tsdbDestroyReadH(&readh);
diff --git a/src/tsdb/src/tsdbMemTable.c b/src/tsdb/src/tsdbMemTable.c
index 73a127079920bcdf0cdc2d3e244998310c4d8dbc..6818f2ed14c278bd5d203d0570f52772c159dcde 100644
--- a/src/tsdb/src/tsdbMemTable.c
+++ b/src/tsdb/src/tsdbMemTable.c
@@ -124,17 +124,66 @@ int tsdbUnRefMemTable(STsdbRepo *pRepo, SMemTable *pMemTable) {
return 0;
}
-int tsdbTakeMemSnapshot(STsdbRepo *pRepo, SMemTable **pMem, SMemTable **pIMem) {
+int tsdbTakeMemSnapshot(STsdbRepo *pRepo, SMemTable **pMem, SMemTable **pIMem, SArray *pATable) {
+ SMemTable *tmem;
+
+ // Get snap object
if (tsdbLockRepo(pRepo) < 0) return -1;
- *pMem = pRepo->mem;
+ tmem = pRepo->mem;
*pIMem = pRepo->imem;
- tsdbRefMemTable(pRepo, *pMem);
+ tsdbRefMemTable(pRepo, tmem);
tsdbRefMemTable(pRepo, *pIMem);
if (tsdbUnlockRepo(pRepo) < 0) return -1;
- if (*pMem != NULL) taosRLockLatch(&((*pMem)->latch));
+ // Copy mem objects and ref needed STableData
+ if (tmem) {
+ taosRLockLatch(&(tmem->latch));
+
+ *pMem = (SMemTable *)calloc(1, sizeof(**pMem));
+ if (*pMem == NULL) {
+ terrno = TSDB_CODE_TDB_OUT_OF_MEMORY;
+ taosRUnLockLatch(&(tmem->latch));
+ tsdbUnRefMemTable(pRepo, tmem);
+ tsdbUnRefMemTable(pRepo, *pIMem);
+ *pMem = NULL;
+ *pIMem = NULL;
+ return -1;
+ }
+
+ (*pMem)->tData = (STableData **)calloc(tmem->maxTables, sizeof(STableData *));
+ if ((*pMem)->tData == NULL) {
+ terrno = TSDB_CODE_TDB_OUT_OF_MEMORY;
+ taosRUnLockLatch(&(tmem->latch));
+ free(*pMem);
+ tsdbUnRefMemTable(pRepo, tmem);
+ tsdbUnRefMemTable(pRepo, *pIMem);
+ *pMem = NULL;
+ *pIMem = NULL;
+ return -1;
+ }
+
+ (*pMem)->keyFirst = tmem->keyFirst;
+ (*pMem)->keyLast = tmem->keyLast;
+ (*pMem)->numOfRows = tmem->numOfRows;
+ (*pMem)->maxTables = tmem->maxTables;
+
+ for (size_t i = 0; i < taosArrayGetSize(pATable); i++) {
+ STable * pTable = *(STable **)taosArrayGet(pATable, i);
+ int32_t tid = TABLE_TID(pTable);
+ STableData *pTableData = (tid < tmem->maxTables) ? tmem->tData[tid] : NULL;
+
+ if ((pTableData == NULL) || (TABLE_UID(pTable) != pTableData->uid)) continue;
+
+ (*pMem)->tData[tid] = tmem->tData[tid];
+ T_REF_INC(tmem->tData[tid]);
+ }
+
+ taosRUnLockLatch(&(tmem->latch));
+ }
+
+ tsdbUnRefMemTable(pRepo, tmem);
tsdbDebug("vgId:%d take memory snapshot, pMem %p pIMem %p", REPO_ID(pRepo), *pMem, *pIMem);
return 0;
@@ -144,8 +193,14 @@ void tsdbUnTakeMemSnapShot(STsdbRepo *pRepo, SMemTable *pMem, SMemTable *pIMem)
tsdbDebug("vgId:%d untake memory snapshot, pMem %p pIMem %p", REPO_ID(pRepo), pMem, pIMem);
if (pMem != NULL) {
- taosRUnLockLatch(&(pMem->latch));
- tsdbUnRefMemTable(pRepo, pMem);
+ for (size_t i = 0; i < pMem->maxTables; i++) {
+ STableData *pTableData = pMem->tData[i];
+ if (pTableData) {
+ tsdbFreeTableData(pTableData);
+ }
+ }
+ free(pMem->tData);
+ free(pMem);
}
if (pIMem != NULL) {
@@ -436,7 +491,7 @@ static STableData *tsdbNewTableData(STsdbCfg *pCfg, STable *pTable) {
STableData *pTableData = (STableData *)calloc(1, sizeof(*pTableData));
if (pTableData == NULL) {
terrno = TSDB_CODE_TDB_OUT_OF_MEMORY;
- goto _err;
+ return NULL;
}
pTableData->uid = TABLE_UID(pTable);
@@ -449,20 +504,22 @@ static STableData *tsdbNewTableData(STsdbCfg *pCfg, STable *pTable) {
tkeyComparFn, pCfg->update ? SL_UPDATE_DUP_KEY : SL_DISCARD_DUP_KEY, tsdbGetTsTupleKey);
if (pTableData->pData == NULL) {
terrno = TSDB_CODE_TDB_OUT_OF_MEMORY;
- goto _err;
+ free(pTableData);
+ return NULL;
}
- return pTableData;
+ T_REF_INC(pTableData);
-_err:
- tsdbFreeTableData(pTableData);
- return NULL;
+ return pTableData;
}
static void tsdbFreeTableData(STableData *pTableData) {
if (pTableData) {
- tSkipListDestroy(pTableData->pData);
- free(pTableData);
+ int32_t ref = T_REF_DEC(pTableData);
+ if (ref == 0) {
+ tSkipListDestroy(pTableData->pData);
+ free(pTableData);
+ }
}
}
diff --git a/src/tsdb/src/tsdbRead.c b/src/tsdb/src/tsdbRead.c
index 7162f74d3ec2620449066bc28f9acaee64067622..e0648c33a050fcdb5a6cd83517283092b1061d5e 100644
--- a/src/tsdb/src/tsdbRead.c
+++ b/src/tsdb/src/tsdbRead.c
@@ -187,13 +187,15 @@ static SArray* getDefaultLoadColumns(STsdbQueryHandle* pQueryHandle, bool loadTS
return pLocalIdList;
}
-static void tsdbMayTakeMemSnapshot(STsdbQueryHandle* pQueryHandle) {
+static void tsdbMayTakeMemSnapshot(STsdbQueryHandle* pQueryHandle, SArray* psTable) {
assert(pQueryHandle != NULL && pQueryHandle->pMemRef != NULL);
SMemRef* pMemRef = pQueryHandle->pMemRef;
if (pQueryHandle->pMemRef->ref++ == 0) {
- tsdbTakeMemSnapshot(pQueryHandle->pTsdb, (SMemTable**)&(pMemRef->mem), (SMemTable**)&(pMemRef->imem));
+ tsdbTakeMemSnapshot(pQueryHandle->pTsdb, (SMemTable**)&(pMemRef->mem), (SMemTable**)&(pMemRef->imem), psTable);
}
+
+ taosArrayDestroy(psTable);
}
static void tsdbMayUnTakeMemSnapshot(STsdbQueryHandle* pQueryHandle) {
@@ -242,7 +244,7 @@ int64_t tsdbGetNumOfRowsInMemTable(TsdbQueryHandleT* pHandle) {
return rows;
}
-static SArray* createCheckInfoFromTableGroup(STsdbQueryHandle* pQueryHandle, STableGroupInfo* pGroupList, STsdbMeta* pMeta) {
+static SArray* createCheckInfoFromTableGroup(STsdbQueryHandle* pQueryHandle, STableGroupInfo* pGroupList, STsdbMeta* pMeta, SArray** psTable) {
size_t sizeOfGroup = taosArrayGetSize(pGroupList->pGroupList);
assert(sizeOfGroup >= 1 && pMeta != NULL);
@@ -252,6 +254,12 @@ static SArray* createCheckInfoFromTableGroup(STsdbQueryHandle* pQueryHandle, STa
return NULL;
}
+ SArray* pTable = taosArrayInit(4, sizeof(STable*));
+ if (pTable == NULL) {
+ taosArrayDestroy(pTableCheckInfo);
+ return NULL;
+ }
+
// todo apply the lastkey of table check to avoid to load header file
for (int32_t i = 0; i < sizeOfGroup; ++i) {
SArray* group = *(SArray**) taosArrayGet(pGroupList->pGroupList, i);
@@ -284,24 +292,40 @@ static SArray* createCheckInfoFromTableGroup(STsdbQueryHandle* pQueryHandle, STa
}
taosArraySort(pTableCheckInfo, tsdbCheckInfoCompar);
+
+ size_t gsize = taosArrayGetSize(pTableCheckInfo);
+
+ for (int32_t i = 0; i < gsize; ++i) {
+ STableCheckInfo* pInfo = (STableCheckInfo*) taosArrayGet(pTableCheckInfo, i);
+
+ taosArrayPush(pTable, &pInfo->pTableObj);
+ }
+
+ *psTable = pTable;
+
return pTableCheckInfo;
}
-static SArray* createCheckInfoFromCheckInfo(SArray* pTableCheckInfo, TSKEY skey) {
+static SArray* createCheckInfoFromCheckInfo(SArray* pTableCheckInfo, TSKEY skey, SArray** psTable) {
size_t si = taosArrayGetSize(pTableCheckInfo);
SArray* pNew = taosArrayInit(si, sizeof(STableCheckInfo));
if (pNew == NULL) {
return NULL;
}
+ SArray* pTable = taosArrayInit(si, sizeof(STable*));
+
for (int32_t j = 0; j < si; ++j) {
STableCheckInfo* pCheckInfo = (STableCheckInfo*) taosArrayGet(pTableCheckInfo, j);
STableCheckInfo info = { .lastKey = skey, .pTableObj = pCheckInfo->pTableObj};
info.tableId = pCheckInfo->tableId;
taosArrayPush(pNew, &info);
+ taosArrayPush(pTable, &pCheckInfo->pTableObj);
}
+ *psTable = pTable;
+
// it is ordered already, no need to sort again.
taosArraySort(pNew, tsdbCheckInfoCompar);
return pNew;
@@ -332,7 +356,7 @@ static STsdbQueryHandle* tsdbQueryTablesImpl(STsdbRepo* tsdb, STsdbQueryCond* pC
goto out_of_memory;
}
- tsdbMayTakeMemSnapshot(pQueryHandle);
+ //tsdbMayTakeMemSnapshot(pQueryHandle);
assert(pCond != NULL && pCond->numOfCols > 0 && pMemRef != NULL);
if (ASCENDING_TRAVERSE(pCond->order)) {
@@ -393,14 +417,18 @@ TsdbQueryHandleT* tsdbQueryTables(STsdbRepo* tsdb, STsdbQueryCond* pCond, STable
STsdbMeta* pMeta = tsdbGetMeta(tsdb);
assert(pMeta != NULL);
+ SArray* psTable = NULL;
+
// todo apply the lastkey of table check to avoid to load header file
- pQueryHandle->pTableCheckInfo = createCheckInfoFromTableGroup(pQueryHandle, groupList, pMeta);
+ pQueryHandle->pTableCheckInfo = createCheckInfoFromTableGroup(pQueryHandle, groupList, pMeta, &psTable);
if (pQueryHandle->pTableCheckInfo == NULL) {
tsdbCleanupQueryHandle(pQueryHandle);
terrno = TSDB_CODE_TDB_OUT_OF_MEMORY;
return NULL;
}
+ tsdbMayTakeMemSnapshot(pQueryHandle, psTable);
+
tsdbDebug("%p total numOfTable:%" PRIzu " in query, %p", pQueryHandle, taosArrayGetSize(pQueryHandle->pTableCheckInfo), pQueryHandle->qinfo);
return (TsdbQueryHandleT) pQueryHandle;
}
@@ -2337,12 +2365,18 @@ static int32_t doGetExternalRow(STsdbQueryHandle* pQueryHandle, int16_t type, SM
pSecQueryHandle = tsdbQueryTablesImpl(pQueryHandle->pTsdb, &cond, pQueryHandle->qinfo, pMemRef);
tfree(cond.colList);
- pSecQueryHandle->pTableCheckInfo = createCheckInfoFromCheckInfo(pQueryHandle->pTableCheckInfo, pSecQueryHandle->window.skey);
+
+ SArray* psTable = NULL;
+
+ pSecQueryHandle->pTableCheckInfo = createCheckInfoFromCheckInfo(pQueryHandle->pTableCheckInfo, pSecQueryHandle->window.skey, &psTable);
if (pSecQueryHandle->pTableCheckInfo == NULL) {
terrno = TSDB_CODE_QRY_OUT_OF_MEMORY;
goto out_of_memory;
}
+
+ tsdbMayTakeMemSnapshot(pSecQueryHandle, psTable);
+
if (!tsdbNextDataBlock((void*)pSecQueryHandle)) {
// no result in current query, free the corresponding result rows structure
if (type == TSDB_PREV_ROW) {
diff --git a/src/util/inc/tconfig.h b/src/util/inc/tconfig.h
index 9923409885fad30cbadd9354349075708b1a7fda..fdb2595fd8d3b1659800ca3a5b88c32b6fe95e93 100644
--- a/src/util/inc/tconfig.h
+++ b/src/util/inc/tconfig.h
@@ -44,6 +44,7 @@ enum {
TAOS_CFG_VTYPE_INT8,
TAOS_CFG_VTYPE_INT16,
TAOS_CFG_VTYPE_INT32,
+ TAOS_CFG_VTYPE_UINT16,
TAOS_CFG_VTYPE_FLOAT,
TAOS_CFG_VTYPE_STRING,
TAOS_CFG_VTYPE_IPSTR,
diff --git a/src/util/src/tconfig.c b/src/util/src/tconfig.c
index 7a92750f8f2e89a93557d367b0c4772a2faaa57d..c4bd57760222ac3da7d25510cc2f434fe0cf0cac 100644
--- a/src/util/src/tconfig.c
+++ b/src/util/src/tconfig.c
@@ -95,6 +95,23 @@ static void taosReadInt16Config(SGlobalCfg *cfg, char *input_value) {
}
}
+static void taosReadUInt16Config(SGlobalCfg *cfg, char *input_value) {
+ int32_t value = atoi(input_value);
+ uint16_t *option = (uint16_t *)cfg->ptr;
+ if (value < cfg->minValue || value > cfg->maxValue) {
+ uError("config option:%s, input value:%s, out of range[%f, %f], use default value:%d",
+ cfg->option, input_value, cfg->minValue, cfg->maxValue, *option);
+ } else {
+ if (cfg->cfgStatus <= TAOS_CFG_CSTATUS_FILE) {
+ *option = (uint16_t)value;
+ cfg->cfgStatus = TAOS_CFG_CSTATUS_FILE;
+ } else {
+ uWarn("config option:%s, input value:%s, is configured by %s, use %d", cfg->option, input_value,
+ tsCfgStatusStr[cfg->cfgStatus], *option);
+ }
+ }
+}
+
static void taosReadInt8Config(SGlobalCfg *cfg, char *input_value) {
int32_t value = atoi(input_value);
int8_t *option = (int8_t *)cfg->ptr;
@@ -239,6 +256,9 @@ static void taosReadConfigOption(const char *option, char *value, char *value2,
case TAOS_CFG_VTYPE_INT32:
taosReadInt32Config(cfg, value);
break;
+ case TAOS_CFG_VTYPE_UINT16:
+ taosReadUInt16Config(cfg, value);
+ break;
case TAOS_CFG_VTYPE_FLOAT:
taosReadFloatConfig(cfg, value);
break;
@@ -422,6 +442,9 @@ void taosPrintGlobalCfg() {
case TAOS_CFG_VTYPE_INT32:
uInfo(" %s:%s%d%s", cfg->option, blank, *((int32_t *)cfg->ptr), tsGlobalUnit[cfg->unitType]);
break;
+ case TAOS_CFG_VTYPE_UINT16:
+ uInfo(" %s:%s%d%s", cfg->option, blank, *((uint16_t *)cfg->ptr), tsGlobalUnit[cfg->unitType]);
+ break;
case TAOS_CFG_VTYPE_FLOAT:
uInfo(" %s:%s%f%s", cfg->option, blank, *((float *)cfg->ptr), tsGlobalUnit[cfg->unitType]);
break;
@@ -459,6 +482,9 @@ static void taosDumpCfg(SGlobalCfg *cfg) {
case TAOS_CFG_VTYPE_INT32:
printf(" %s:%s%d%s\n", cfg->option, blank, *((int32_t *)cfg->ptr), tsGlobalUnit[cfg->unitType]);
break;
+ case TAOS_CFG_VTYPE_UINT16:
+ printf(" %s:%s%d%s\n", cfg->option, blank, *((uint16_t *)cfg->ptr), tsGlobalUnit[cfg->unitType]);
+ break;
case TAOS_CFG_VTYPE_FLOAT:
printf(" %s:%s%f%s\n", cfg->option, blank, *((float *)cfg->ptr), tsGlobalUnit[cfg->unitType]);
break;
diff --git a/tests/examples/c/apitest.c b/tests/examples/c/apitest.c
index e08d667d6be42bef3dc4e058fab10ac68f0809e0..930a6075cae2767c0d50ca2e1574d6441430d1b3 100644
--- a/tests/examples/c/apitest.c
+++ b/tests/examples/c/apitest.c
@@ -467,7 +467,6 @@ int main(int argc, char *argv[]) {
const char* passwd = "taosdata";
taos_options(TSDB_OPTION_TIMEZONE, "GMT-8");
- taos_init();
TAOS* taos = taos_connect(host, user, passwd, "", 0);
if (taos == NULL) {
diff --git a/tests/examples/c/asyncdemo.c b/tests/examples/c/asyncdemo.c
index be3a908f11748a5ac414157bef6b9caed389b303..16a14e96549c5cd66f747ae0c6c63f20c3e7fbfa 100644
--- a/tests/examples/c/asyncdemo.c
+++ b/tests/examples/c/asyncdemo.c
@@ -99,8 +99,6 @@ int main(int argc, char *argv[])
tableList = (STable *)malloc(size);
memset(tableList, 0, size);
- taos_init();
-
taos = taos_connect(argv[1], "root", "taosdata", NULL, 0);
if (taos == NULL)
taos_error(taos);
diff --git a/tests/examples/c/demo.c b/tests/examples/c/demo.c
index 0b12c3d3eabaf9a17ba0859c73e794f2e973dc3b..3853d81fb251809e1e6b18ffa1fad5c8ca882d16 100644
--- a/tests/examples/c/demo.c
+++ b/tests/examples/c/demo.c
@@ -61,11 +61,6 @@ int main(int argc, char *argv[]) {
return 0;
}
- // init TAOS
- if (taos_init()) {
- exit(1);
- }
-
TAOS *taos = taos_connect(argv[1], "root", "taosdata", NULL, 0);
if (taos == NULL) {
printf("failed to connect to server, reason:%s\n", "null taos"/*taos_errstr(taos)*/);
diff --git a/tests/examples/c/makefile b/tests/examples/c/makefile
index 7293a22c11d7c6049c220ca0951b5969fa344114..b06fe551dbde4b16e3ea197ca4c2bc1711ef63bb 100644
--- a/tests/examples/c/makefile
+++ b/tests/examples/c/makefile
@@ -6,7 +6,7 @@ TARGET=exe
LFLAGS = '-Wl,-rpath,/usr/local/taos/driver/' -ltaos -lpthread -lm -lrt
CFLAGS = -O3 -g -Wall -Wno-deprecated -fPIC -Wno-unused-result -Wconversion \
-Wno-char-subscripts -D_REENTRANT -Wno-format -D_REENTRANT -DLINUX \
- -msse4.2 -Wno-unused-function -D_M_X64 -I/usr/local/taos/include -std=gnu99
+ -Wno-unused-function -D_M_X64 -I/usr/local/taos/include -std=gnu99
all: $(TARGET)
diff --git a/tests/examples/c/prepare.c b/tests/examples/c/prepare.c
index bd650ed64b838d92a03bb5e023c2ca91ac5e2c2e..13d71beea6156aa32677c20ccc2d222d28826b24 100644
--- a/tests/examples/c/prepare.c
+++ b/tests/examples/c/prepare.c
@@ -22,12 +22,6 @@ int main(int argc, char *argv[])
return 0;
}
- // init TAOS
- if (taos_init()) {
- printf("failed to init taos\n");
- exit(1);
- }
-
taos = taos_connect(argv[1], "root", "taosdata", NULL, 0);
if (taos == NULL) {
printf("failed to connect to db, reason:%s\n", taos_errstr(taos));
diff --git a/tests/examples/c/stream.c b/tests/examples/c/stream.c
index e3053d1969b169767904d595c6ed5615e9d46ce5..30a790f061cd8ef2b870a371c2cadfb0e2a413c1 100644
--- a/tests/examples/c/stream.c
+++ b/tests/examples/c/stream.c
@@ -54,12 +54,6 @@ int main(int argc, char *argv[])
exit(0);
}
- // init TAOS
- if (taos_init()) {
- printf("failed to init taos\n");
- exit(1);
- }
-
strcpy(db_name, argv[2]);
strcpy(tbl_name, argv[3]);
diff --git a/tests/examples/c/subscribe.c b/tests/examples/c/subscribe.c
index 5a402976241133dcef219cb64be7b3492e464aac..1d3533fa5ee89f7425a9b0563e738b4e0703e6c8 100644
--- a/tests/examples/c/subscribe.c
+++ b/tests/examples/c/subscribe.c
@@ -216,12 +216,6 @@ int main(int argc, char *argv[]) {
}
}
- // init TAOS
- if (taos_init()) {
- printf("failed to init taos\n");
- exit(1);
- }
-
TAOS* taos = taos_connect(host, user, passwd, "", 0);
if (taos == NULL) {
printf("failed to connect to db, reason:%s\n", taos_errstr(taos));
diff --git a/tests/pytest/alter/alter_stable.py b/tests/pytest/alter/alter_stable.py
index 6852f4ef4ab6730f6423ba388d4f088ca229312e..6dad43313248388ab34a51f6dd40414f67ebdb7f 100644
--- a/tests/pytest/alter/alter_stable.py
+++ b/tests/pytest/alter/alter_stable.py
@@ -19,6 +19,10 @@ class TDTestCase:
"double",
"smallint",
"tinyint",
+ "int unsigned",
+ "bigint unsigned",
+ "smallint unsigned",
+ "tinyint unsigned",
"binary(10)",
"nchar(10)",
"timestamp"]
diff --git a/tests/pytest/alter/alter_table.py b/tests/pytest/alter/alter_table.py
index 828c348b14324eb98da4902073e2925205a8bdb1..a5acb7a73e0844ac2235590cbc8b7793ef40746c 100644
--- a/tests/pytest/alter/alter_table.py
+++ b/tests/pytest/alter/alter_table.py
@@ -19,6 +19,10 @@ class TDTestCase:
"double",
"smallint",
"tinyint",
+ "int unsigned",
+ "bigint unsigned",
+ "smallint unsigned",
+ "tinyint unsigned",
"binary(10)",
"nchar(10)",
"timestamp"]
diff --git a/tests/pytest/alter/alter_table_crash.py b/tests/pytest/alter/alter_table_crash.py
index d1af022e35e636b15bc6e0fa175c7c41ed1ff640..2ec24860db9c078445cd186807a4c1834469f909 100644
--- a/tests/pytest/alter/alter_table_crash.py
+++ b/tests/pytest/alter/alter_table_crash.py
@@ -66,6 +66,14 @@ class TDTestCase:
"alter table dt add column tbcol8 nchar(20)")
tdSql.execute(
"alter table dt add column tbcol9 binary(20)")
+ tdSql.execute(
+ "alter table dt add column tbcol10 tinyint unsigned")
+ tdSql.execute(
+ "alter table dt add column tbcol11 int unsigned")
+ tdSql.execute(
+ "alter table dt add column tbcol12 smallint unsigned")
+ tdSql.execute(
+ "alter table dt add column tbcol13 bigint unsigned")
# restart taosd
tdDnodes.forcestop(1)
diff --git a/tests/pytest/concurrent_inquiry.py b/tests/pytest/concurrent_inquiry.py
index d1f180373bbe0585bd6e01b224e64359e0449e77..333c2a0a578f6f399e742b0967db0185a22b5fde 100644
--- a/tests/pytest/concurrent_inquiry.py
+++ b/tests/pytest/concurrent_inquiry.py
@@ -350,18 +350,27 @@ class ConcurrentInquiry:
cl.execute("create database if not exists %s;" %self.dbname)
cl.execute("use %s" % self.dbname)
for k in range(stableNum):
- sql="create table %s (ts timestamp, c1 int, c2 float, c3 bigint, c4 smallint, c5 tinyint, c6 double, c7 bool,c8 binary(20),c9 nchar(20)) \
- tags(t1 int, t2 float, t3 bigint, t4 smallint, t5 tinyint, t6 double, t7 bool,t8 binary(20),t9 nchar(20))" % (self.stb_prefix+str(k))
+ sql="create table %s (ts timestamp, c1 int, c2 float, c3 bigint, c4 smallint, c5 tinyint, c6 double, c7 bool,c8 binary(20),c9 nchar(20),c11 int unsigned,c12 smallint unsigned,c13 tinyint unsigned,c14 bigint unsigned) \
+ tags(t1 int, t2 float, t3 bigint, t4 smallint, t5 tinyint, t6 double, t7 bool,t8 binary(20),t9 nchar(20), t11 int unsigned , t12 smallint unsigned , t13 tinyint unsigned , t14 bigint unsigned)" % (self.stb_prefix+str(k))
cl.execute(sql)
for j in range(subtableNum):
- sql = "create table %s using %s tags(%d,%d,%d,%d,%d,%d,%d,'%s','%s')" % \
- (self.subtb_prefix+str(k)+'_'+str(j),self.stb_prefix+str(k),j,j/2.0,j%41,j%51,j%53,j*1.0,j%2,'taos'+str(j),'涛思'+str(j))
+ if j % 100 == 0:
+ sql = "create table %s using %s tags(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL)" % \
+ (self.subtb_prefix+str(k)+'_'+str(j),self.stb_prefix+str(k))
+ else:
+ sql = "create table %s using %s tags(%d,%d,%d,%d,%d,%d,%d,'%s','%s',%d,%d,%d,%d)" % \
+ (self.subtb_prefix+str(k)+'_'+str(j),self.stb_prefix+str(k),j,j/2.0,j%41,j%51,j%53,j*1.0,j%2,'taos'+str(j),'涛思'+str(j), j%43, j%23 , j%17 , j%3167)
print(sql)
cl.execute(sql)
for i in range(insertRows):
- ret = cl.execute(
- "insert into %s values (%d , %d,%d,%d,%d,%d,%d,%d,'%s','%s')" %
- (self.subtb_prefix+str(k)+'_'+str(j),t0+i,i%100,i/2.0,i%41,i%51,i%53,i*1.0,i%2,'taos'+str(i),'涛思'+str(i)))
+ if i % 100 == 0 :
+ ret = cl.execute(
+ "insert into %s values (%d , NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL)" %
+ (self.subtb_prefix+str(k)+'_'+str(j), t0+i))
+ else:
+ ret = cl.execute(
+ "insert into %s values (%d , %d,%d,%d,%d,%d,%d,%d,'%s','%s',%d,%d,%d,%d)" %
+ (self.subtb_prefix+str(k)+'_'+str(j), t0+i, i%100, i/2.0, i%41, i%51, i%53, i*1.0, i%2,'taos'+str(i),'涛思'+str(i), i%43, i%23 , i%17 , i%3167))
cl.close()
conn.close()
diff --git a/tests/pytest/fulltest.sh b/tests/pytest/fulltest.sh
index 102f7a754d52a21eb849b12a9eaedbecd45bb7fb..14f2b6e07e39322a3ce62f6176034fd2fba9edbc 100755
--- a/tests/pytest/fulltest.sh
+++ b/tests/pytest/fulltest.sh
@@ -3,12 +3,16 @@ ulimit -c unlimited
python3 ./test.py -f insert/basic.py
python3 ./test.py -f insert/int.py
+python3 ./test.py -f insert/unsignedInt.py
python3 ./test.py -f insert/float.py
python3 ./test.py -f insert/bigint.py
+python3 ./test.py -f insert/unsignedBigint.py
python3 ./test.py -f insert/bool.py
python3 ./test.py -f insert/double.py
python3 ./test.py -f insert/smallint.py
+python3 ./test.py -f insert/unsignedSmallint.py
python3 ./test.py -f insert/tinyint.py
+python3 ./test.py -f insert/unsignedTinyint.py
python3 ./test.py -f insert/date.py
python3 ./test.py -f insert/binary.py
python3 ./test.py -f insert/nchar.py
@@ -151,6 +155,7 @@ python3 ./test.py -f query/filterCombo.py
python3 ./test.py -f query/queryNormal.py
python3 ./test.py -f query/queryError.py
python3 ./test.py -f query/filterAllIntTypes.py
+python3 ./test.py -f query/filterAllUnsignedIntTypes.py
python3 ./test.py -f query/filterFloatAndDouble.py
python3 ./test.py -f query/filterOtherTypes.py
python3 ./test.py -f query/querySort.py
diff --git a/tests/pytest/functions/function_avg.py b/tests/pytest/functions/function_avg.py
index 9481550ba3f9d912b734d19b7c794c495fffdecd..c8a1cca77b1568b760b0208e0fa71583ae2e3645 100644
--- a/tests/pytest/functions/function_avg.py
+++ b/tests/pytest/functions/function_avg.py
@@ -34,11 +34,11 @@ class TDTestCase:
floatData = []
tdSql.execute('''create table test(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
- col7 bool, col8 binary(20), col9 nchar(20)) tags(loc nchar(20))''')
+ col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned) tags(loc nchar(20))''')
tdSql.execute("create table test1 using test tags('beijing')")
for i in range(self.rowNum):
- tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d')"
- % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1))
+ tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
+ % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
intData.append(i + 1)
floatData.append(i + 0.1)
@@ -63,7 +63,15 @@ class TDTestCase:
tdSql.query("select avg(col5) from test")
tdSql.checkData(0, 0, np.average(floatData))
tdSql.query("select avg(col6) from test")
- tdSql.checkData(0, 0, np.average(floatData))
+ tdSql.checkData(0, 0, np.average(floatData))
+ tdSql.query("select avg(col11) from test")
+ tdSql.checkData(0, 0, np.average(intData))
+ tdSql.query("select avg(col12) from test")
+ tdSql.checkData(0, 0, np.average(intData))
+ tdSql.query("select avg(col13) from test")
+ tdSql.checkData(0, 0, np.average(intData))
+ tdSql.query("select avg(col14) from test")
+ tdSql.checkData(0, 0, np.average(intData))
def stop(self):
tdSql.close()
diff --git a/tests/pytest/functions/function_avg_restart.py b/tests/pytest/functions/function_avg_restart.py
index 56b99cdf910869b5bc4f5bd93da208943b1b026e..60f3ba7d4e2708053425b4866e072516b5ff961c 100644
--- a/tests/pytest/functions/function_avg_restart.py
+++ b/tests/pytest/functions/function_avg_restart.py
@@ -34,11 +34,11 @@ class TDTestCase:
floatData = []
#tdSql.execute('''create table test(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
- # col7 bool, col8 binary(20), col9 nchar(20)) tags(loc nchar(20))''')
+ # col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned) tags(loc nchar(20))''')
#tdSql.execute("create table test1 using test tags('beijing')")
for i in range(self.rowNum):
- #tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d')"
- # % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1))
+ #tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
+ # % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
intData.append(i + 1)
floatData.append(i + 0.1)
@@ -63,7 +63,15 @@ class TDTestCase:
tdSql.query("select avg(col5) from test")
tdSql.checkData(0, 0, np.average(floatData))
tdSql.query("select avg(col6) from test")
- tdSql.checkData(0, 0, np.average(floatData))
+ tdSql.checkData(0, 0, np.average(floatData))
+ tdSql.query("select avg(col11) from test")
+ tdSql.checkData(0, 0, np.average(intData))
+ tdSql.query("select avg(col12) from test")
+ tdSql.checkData(0, 0, np.average(intData))
+ tdSql.query("select avg(col13) from test")
+ tdSql.checkData(0, 0, np.average(intData))
+ tdSql.query("select avg(col14) from test")
+ tdSql.checkData(0, 0, np.average(intData))
def stop(self):
tdSql.close()
diff --git a/tests/pytest/functions/function_bottom.py b/tests/pytest/functions/function_bottom.py
index 3cc389221845b38d92ca130e086d50fddc344d6d..abb9ac48e70ac876741c3da2a9f223d537c8644b 100644
--- a/tests/pytest/functions/function_bottom.py
+++ b/tests/pytest/functions/function_bottom.py
@@ -31,11 +31,11 @@ class TDTestCase:
tdSql.prepare()
tdSql.execute('''create table test(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
- col7 bool, col8 binary(20), col9 nchar(20)) tags(loc nchar(20))''')
+ col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned) tags(loc nchar(20))''')
tdSql.execute("create table test1 using test tags('beijing')")
for i in range(self.rowNum):
- tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d')"
- % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1))
+ tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
+ % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
# bottom verifacation
tdSql.error("select bottom(ts, 10) from test")
@@ -84,6 +84,26 @@ class TDTestCase:
tdSql.checkRows(2)
tdSql.checkData(0, 1, 0.1)
tdSql.checkData(1, 1, 1.1)
+
+ tdSql.query("select bottom(col11, 2) from test")
+ tdSql.checkRows(2)
+ tdSql.checkData(0, 1, 1)
+ tdSql.checkData(1, 1, 2)
+
+ tdSql.query("select bottom(col12, 2) from test")
+ tdSql.checkRows(2)
+ tdSql.checkData(0, 1, 1)
+ tdSql.checkData(1, 1, 2)
+
+ tdSql.query("select bottom(col13, 2) from test")
+ tdSql.checkRows(2)
+ tdSql.checkData(0, 1, 1)
+ tdSql.checkData(1, 1, 2)
+
+ tdSql.query("select bottom(col14, 2) from test")
+ tdSql.checkRows(2)
+ tdSql.checkData(0, 1, 1)
+ tdSql.checkData(1, 1, 2)
#TD-2457 bottom + interval + order by
tdSql.error('select top(col2,1) from test interval(1y) order by col2;')
diff --git a/tests/pytest/functions/function_bottom_restart.py b/tests/pytest/functions/function_bottom_restart.py
index 74eb044645ffa6a54e286dd11d022672575a38db..b4d987975c3660e2ea875a03f3406eaebcafea6d 100644
--- a/tests/pytest/functions/function_bottom_restart.py
+++ b/tests/pytest/functions/function_bottom_restart.py
@@ -31,11 +31,11 @@ class TDTestCase:
tdSql.execute("use db")
#tdSql.execute('''create table test(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
- # col7 bool, col8 binary(20), col9 nchar(20)) tags(loc nchar(20))''')
+ # col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned) tags(loc nchar(20))''')
#tdSql.execute("create table test1 using test tags('beijing')")
#for i in range(self.rowNum):
- # tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d')"
- # % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1))
+ # tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
+ # % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
# bottom verifacation
tdSql.error("select bottom(ts, 10) from test")
@@ -75,6 +75,26 @@ class TDTestCase:
tdSql.checkData(0, 1, 1)
tdSql.checkData(1, 1, 2)
+ tdSql.query("select bottom(col11, 2) from test")
+ tdSql.checkRows(2)
+ tdSql.checkData(0, 1, 1)
+ tdSql.checkData(1, 1, 2)
+
+ tdSql.query("select bottom(col12, 2) from test")
+ tdSql.checkRows(2)
+ tdSql.checkData(0, 1, 1)
+ tdSql.checkData(1, 1, 2)
+
+ tdSql.query("select bottom(col13, 2) from test")
+ tdSql.checkRows(2)
+ tdSql.checkData(0, 1, 1)
+ tdSql.checkData(1, 1, 2)
+
+ tdSql.query("select bottom(col14, 2) from test")
+ tdSql.checkRows(2)
+ tdSql.checkData(0, 1, 1)
+ tdSql.checkData(1, 1, 2)
+
tdSql.query("select bottom(col5, 2) from test")
tdSql.checkRows(2)
tdSql.checkData(0, 1, 0.1)
diff --git a/tests/pytest/functions/function_count.py b/tests/pytest/functions/function_count.py
index 4795a6b2dfe72bb9fa747b550be9f56c0c255d88..9812473d6496a94447734f1f3507ac806e392294 100644
--- a/tests/pytest/functions/function_count.py
+++ b/tests/pytest/functions/function_count.py
@@ -31,11 +31,11 @@ class TDTestCase:
tdSql.prepare()
tdSql.execute('''create table test(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
- col7 bool, col8 binary(20), col9 nchar(20)) tags(loc nchar(20))''')
+ col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned) tags(loc nchar(20))''')
tdSql.execute("create table test1 using test tags('beijing')")
for i in range(self.rowNum):
- tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d')"
- % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1))
+ tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
+ % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
# Count verifacation
tdSql.query("select count(*) from test")
@@ -62,11 +62,20 @@ class TDTestCase:
tdSql.query("select count(col9) from test")
tdSql.checkData(0, 0, 10)
+ tdSql.query("select count(col11) from test")
+ tdSql.checkData(0, 0, 10)
+ tdSql.query("select count(col12) from test")
+ tdSql.checkData(0, 0, 10)
+ tdSql.query("select count(col13) from test")
+ tdSql.checkData(0, 0, 10)
+ tdSql.query("select count(col14) from test")
+ tdSql.checkData(0, 0, 10)
+
tdSql.execute("alter table test add column col10 int")
tdSql.query("select count(col10) from test")
tdSql.checkRows(0)
- tdSql.execute("insert into test1 values(now, 1, 2, 3, 4, 1.1, 2.2, false, 'test', 'test' 1)")
+ tdSql.execute("insert into test1 values(now, 1, 2, 3, 4, 1.1, 2.2, false, 'test', 'test' , 1, 1, 1, 1, 1)")
tdSql.query("select count(col10) from test")
tdSql.checkData(0, 0, 1)
diff --git a/tests/pytest/functions/function_count_restart.py b/tests/pytest/functions/function_count_restart.py
index 5eabb47d952a1a461b6fd5c976f3f2a8c294222b..565d85f4c0712b436e2dc24335aa13f60d3c87dd 100644
--- a/tests/pytest/functions/function_count_restart.py
+++ b/tests/pytest/functions/function_count_restart.py
@@ -31,11 +31,11 @@ class TDTestCase:
tdSql.execute("use db")
#tdSql.execute('''create table test(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
- # col7 bool, col8 binary(20), col9 nchar(20)) tags(loc nchar(20))''')
+ # col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned) tags(loc nchar(20))''')
#tdSql.execute("create table test1 using test tags('beijing')")
#for i in range(self.rowNum):
- # tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d')"
- # % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1))
+ # tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
+ # % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
# Count verifacation
tdSql.query("select count(*) from test")
@@ -62,6 +62,15 @@ class TDTestCase:
tdSql.query("select count(col9) from test")
tdSql.checkData(0, 0, 11)
+ tdSql.query("select count(col11) from test")
+ tdSql.checkData(0, 0, 11)
+ tdSql.query("select count(col12) from test")
+ tdSql.checkData(0, 0, 11)
+ tdSql.query("select count(col13) from test")
+ tdSql.checkData(0, 0, 11)
+ tdSql.query("select count(col14) from test")
+ tdSql.checkData(0, 0, 11)
+
#tdSql.execute("alter table test add column col10 int")
#tdSql.query("select count(col10) from test")
#tdSql.checkRows(0)
diff --git a/tests/pytest/functions/function_diff.py b/tests/pytest/functions/function_diff.py
index b6f496d7d68ebaa0f19dfc947d7745802198a3dc..46ea3a86deee75d26f0b635ae0d3b2c5673fb6da 100644
--- a/tests/pytest/functions/function_diff.py
+++ b/tests/pytest/functions/function_diff.py
@@ -31,9 +31,9 @@ class TDTestCase:
tdSql.prepare()
tdSql.execute('''create table test(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
- col7 bool, col8 binary(20), col9 nchar(20)) tags(loc nchar(20))''')
+ col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned) tags(loc nchar(20))''')
tdSql.execute("create table test1 using test tags('beijing')")
- tdSql.execute("insert into test1 values(%d, 0, 0, 0, 0, 0.0, 0.0, False, ' ', ' ')" % (self.ts - 1))
+ tdSql.execute("insert into test1 values(%d, 0, 0, 0, 0, 0.0, 0.0, False, ' ', ' ', 0, 0, 0, 0)" % (self.ts - 1))
# diff verifacation
tdSql.query("select diff(col1) from test1")
@@ -55,8 +55,8 @@ class TDTestCase:
tdSql.checkRows(0)
for i in range(self.rowNum):
- tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d')"
- % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1))
+ tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
+ % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
tdSql.error("select diff(ts) from test")
tdSql.error("select diff(ts) from test1")
@@ -72,7 +72,16 @@ class TDTestCase:
tdSql.error("select diff(col8) from test1")
tdSql.error("select diff(col9) from test")
tdSql.error("select diff(col9) from test1")
-
+ tdSql.error("select diff(col11) from test1")
+ tdSql.error("select diff(col12) from test1")
+ tdSql.error("select diff(col13) from test1")
+ tdSql.error("select diff(col14) from test1")
+ tdSql.error("select diff(col11) from test")
+ tdSql.error("select diff(col12) from test")
+ tdSql.error("select diff(col13) from test")
+ tdSql.error("select diff(col14) from test")
+
+
tdSql.query("select diff(col1) from test1")
tdSql.checkRows(10)
diff --git a/tests/pytest/functions/function_diff_restart.py b/tests/pytest/functions/function_diff_restart.py
index 870ee03fc94cbd8dbf5e858726cd52b09010a884..e03b892477eba46c007163049d91012af236e730 100644
--- a/tests/pytest/functions/function_diff_restart.py
+++ b/tests/pytest/functions/function_diff_restart.py
@@ -31,7 +31,7 @@ class TDTestCase:
tdSql.execute("use db")
#tdSql.execute('''create table test(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
- # col7 bool, col8 binary(20), col9 nchar(20)) tags(loc nchar(20))''')
+ # col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned) tags(loc nchar(20))''')
#tdSql.execute("create table test1 using test tags('beijing')")
#tdSql.execute("insert into test1 values(%d, 0, 0, 0, 0, 0.0, 0.0, False, ' ', ' ')" % (self.ts - 1))
@@ -55,8 +55,8 @@ class TDTestCase:
#tdSql.checkRows(0)
#for i in range(self.rowNum):
- # tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d')"
- # % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1))
+ # tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
+ # % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
tdSql.error("select diff(ts) from test")
tdSql.error("select diff(ts) from test1")
@@ -71,7 +71,14 @@ class TDTestCase:
tdSql.error("select diff(col8) from test")
tdSql.error("select diff(col8) from test1")
tdSql.error("select diff(col9) from test")
- tdSql.error("select diff(col9) from test1")
+ tdSql.error("select diff(col11) from test1")
+ tdSql.error("select diff(col12) from test1")
+ tdSql.error("select diff(col13) from test1")
+ tdSql.error("select diff(col14) from test1")
+ tdSql.error("select diff(col11) from test")
+ tdSql.error("select diff(col12) from test")
+ tdSql.error("select diff(col13) from test")
+ tdSql.error("select diff(col14) from test")
tdSql.query("select diff(col1) from test1")
tdSql.checkRows(10)
diff --git a/tests/pytest/functions/function_first.py b/tests/pytest/functions/function_first.py
index 5b2aacb779a64377baa0417d5ba0ba5ef0a27290..f1a916b168271e67d0001c5d4444966f8c07a2d1 100644
--- a/tests/pytest/functions/function_first.py
+++ b/tests/pytest/functions/function_first.py
@@ -31,7 +31,7 @@ class TDTestCase:
tdSql.prepare()
tdSql.execute('''create table test(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
- col7 bool, col8 binary(20), col9 nchar(20)) tags(loc nchar(20))''')
+ col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned) tags(loc nchar(20))''')
tdSql.execute("create table test1 using test tags('beijing')")
tdSql.execute("insert into test1(ts) values(%d)" % (self.ts - 1))
@@ -52,6 +52,18 @@ class TDTestCase:
tdSql.query("select first(col4) from test1")
tdSql.checkRows(0)
+ tdSql.query("select first(col11) from test1")
+ tdSql.checkRows(0)
+
+ tdSql.query("select first(col12) from test1")
+ tdSql.checkRows(0)
+
+ tdSql.query("select first(col13) from test1")
+ tdSql.checkRows(0)
+
+ tdSql.query("select first(col14) from test1")
+ tdSql.checkRows(0)
+
tdSql.query("select first(col5) from test1")
tdSql.checkRows(0)
@@ -68,8 +80,8 @@ class TDTestCase:
tdSql.checkRows(0)
for i in range(self.rowNum):
- tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d')"
- % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1))
+ tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
+ % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
tdSql.query("select first(*) from test1")
tdSql.checkRows(1)
@@ -91,6 +103,22 @@ class TDTestCase:
tdSql.checkRows(1)
tdSql.checkData(0, 0, 1)
+ tdSql.query("select first(col11) from test1")
+ tdSql.checkRows(1)
+ tdSql.checkData(0, 0, 1)
+
+ tdSql.query("select first(col12) from test1")
+ tdSql.checkRows(1)
+ tdSql.checkData(0, 0, 1)
+
+ tdSql.query("select first(col13) from test1")
+ tdSql.checkRows(1)
+ tdSql.checkData(0, 0, 1)
+
+ tdSql.query("select first(col14) from test1")
+ tdSql.checkRows(1)
+ tdSql.checkData(0, 0, 1)
+
tdSql.query("select first(col5) from test1")
tdSql.checkRows(1)
tdSql.checkData(0, 0, 0.1)
diff --git a/tests/pytest/functions/function_last.py b/tests/pytest/functions/function_last.py
index 337c18a28c2cd99d556e5b017377edc56671c490..991ac96a800803440a2e662c163622af95c556e3 100644
--- a/tests/pytest/functions/function_last.py
+++ b/tests/pytest/functions/function_last.py
@@ -31,7 +31,7 @@ class TDTestCase:
tdSql.prepare()
tdSql.execute('''create table test(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
- col7 bool, col8 binary(20), col9 nchar(20)) tags(loc nchar(20))''')
+ col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned) tags(loc nchar(20))''')
tdSql.execute("create table test1 using test tags('beijing')")
tdSql.execute("insert into test1(ts) values(%d)" % (self.ts - 1))
@@ -52,6 +52,18 @@ class TDTestCase:
tdSql.query("select last(col4) from test1")
tdSql.checkRows(0)
+ tdSql.query("select last(col11) from test1")
+ tdSql.checkRows(0)
+
+ tdSql.query("select last(col12) from test1")
+ tdSql.checkRows(0)
+
+ tdSql.query("select last(col13) from test1")
+ tdSql.checkRows(0)
+
+ tdSql.query("select last(col14) from test1")
+ tdSql.checkRows(0)
+
tdSql.query("select last(col5) from test1")
tdSql.checkRows(0)
@@ -68,8 +80,8 @@ class TDTestCase:
tdSql.checkRows(0)
for i in range(self.rowNum):
- tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d')"
- % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1))
+ tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
+ % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
tdSql.query("select last(*) from test1")
tdSql.checkRows(1)
@@ -91,6 +103,22 @@ class TDTestCase:
tdSql.checkRows(1)
tdSql.checkData(0, 0, 10)
+ tdSql.query("select last(col11) from test1")
+ tdSql.checkRows(1)
+ tdSql.checkData(0, 0, 10)
+
+ tdSql.query("select last(col12) from test1")
+ tdSql.checkRows(1)
+ tdSql.checkData(0, 0, 10)
+
+ tdSql.query("select last(col13) from test1")
+ tdSql.checkRows(1)
+ tdSql.checkData(0, 0, 10)
+
+ tdSql.query("select last(col14) from test1")
+ tdSql.checkRows(1)
+ tdSql.checkData(0, 0, 10)
+
tdSql.query("select last(col5) from test1")
tdSql.checkRows(1)
tdSql.checkData(0, 0, 9.1)
diff --git a/tests/pytest/functions/function_last_row.py b/tests/pytest/functions/function_last_row.py
index ea5cf661eb9e70e2ed06ebd712b2f65dfa62beeb..d075eeeca55c7e6575ab9bd526ddb6177bf61791 100644
--- a/tests/pytest/functions/function_last_row.py
+++ b/tests/pytest/functions/function_last_row.py
@@ -31,7 +31,7 @@ class TDTestCase:
tdSql.prepare()
tdSql.execute('''create table test(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
- col7 bool, col8 binary(20), col9 nchar(20)) tags(loc nchar(20))''')
+ col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned) tags(loc nchar(20))''')
tdSql.execute("create table test1 using test tags('beijing')")
tdSql.execute("insert into test1(ts) values(%d)" % (self.ts - 1))
@@ -56,6 +56,22 @@ class TDTestCase:
tdSql.checkRows(1)
tdSql.checkData(0, 0, None)
+ tdSql.query("select last_row(col11) from test1")
+ tdSql.checkRows(1)
+ tdSql.checkData(0, 0, None)
+
+ tdSql.query("select last_row(col12) from test1")
+ tdSql.checkRows(1)
+ tdSql.checkData(0, 0, None)
+
+ tdSql.query("select last_row(col13) from test1")
+ tdSql.checkRows(1)
+ tdSql.checkData(0, 0, None)
+
+ tdSql.query("select last_row(col14) from test1")
+ tdSql.checkRows(1)
+ tdSql.checkData(0, 0, None)
+
tdSql.query("select last_row(col5) from test1")
tdSql.checkRows(1)
tdSql.checkData(0, 0, None)
@@ -77,8 +93,8 @@ class TDTestCase:
tdSql.checkData(0, 0, None)
for i in range(self.rowNum):
- tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d')"
- % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1))
+ tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
+ % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
tdSql.query("select last_row(*) from test1")
tdSql.checkRows(1)
@@ -100,6 +116,22 @@ class TDTestCase:
tdSql.checkRows(1)
tdSql.checkData(0, 0, 10)
+ tdSql.query("select last_row(col11) from test1")
+ tdSql.checkRows(1)
+ tdSql.checkData(0, 0, 10)
+
+ tdSql.query("select last_row(col12) from test1")
+ tdSql.checkRows(1)
+ tdSql.checkData(0, 0, 10)
+
+ tdSql.query("select last_row(col13) from test1")
+ tdSql.checkRows(1)
+ tdSql.checkData(0, 0, 10)
+
+ tdSql.query("select last_row(col14) from test1")
+ tdSql.checkRows(1)
+ tdSql.checkData(0, 0, 10)
+
tdSql.query("select last_row(col5) from test1")
tdSql.checkRows(1)
tdSql.checkData(0, 0, 9.1)
diff --git a/tests/pytest/functions/function_leastsquares.py b/tests/pytest/functions/function_leastsquares.py
index 0ef0a2b78612dca604f7a7a7f70841c917376a17..3b2a8486d5e6d8bbc2464b8ee391181e10e6a285 100644
--- a/tests/pytest/functions/function_leastsquares.py
+++ b/tests/pytest/functions/function_leastsquares.py
@@ -31,11 +31,11 @@ class TDTestCase:
tdSql.prepare()
tdSql.execute('''create table test(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
- col7 bool, col8 binary(20), col9 nchar(20)) tags(loc nchar(20))''')
+ col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned) tags(loc nchar(20))''')
tdSql.execute("create table test1 using test tags('beijing')")
for i in range(self.rowNum):
- tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d')"
- % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1))
+ tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
+ % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
# leastsquares verifacation
tdSql.error("select leastsquares(ts, 1, 1) from test1")
@@ -48,6 +48,10 @@ class TDTestCase:
tdSql.error("select leastsquares(col7, 1, 1) from test1")
tdSql.error("select leastsquares(col8, 1, 1) from test1")
tdSql.error("select leastsquares(col9, 1, 1) from test1")
+ tdSql.error("select leastsquares(col11, 1, 1) from test")
+ tdSql.error("select leastsquares(col12, 1, 1) from test")
+ tdSql.error("select leastsquares(col13, 1, 1) from test")
+ tdSql.error("select leastsquares(col14, 1, 1) from test")
tdSql.query("select leastsquares(col1, 1, 1) from test1")
tdSql.checkData(0, 0, '{slop:1.000000, intercept:0.000000}')
@@ -61,6 +65,18 @@ class TDTestCase:
tdSql.query("select leastsquares(col4, 1, 1) from test1")
tdSql.checkData(0, 0, '{slop:1.000000, intercept:0.000000}')
+ tdSql.query("select leastsquares(col11, 1, 1) from test1")
+ tdSql.checkData(0, 0, '{slop:1.000000, intercept:0.000000}')
+
+ tdSql.query("select leastsquares(col12, 1, 1) from test1")
+ tdSql.checkData(0, 0, '{slop:1.000000, intercept:0.000000}')
+
+ tdSql.query("select leastsquares(col13, 1, 1) from test1")
+ tdSql.checkData(0, 0, '{slop:1.000000, intercept:0.000000}')
+
+ tdSql.query("select leastsquares(col14, 1, 1) from test1")
+ tdSql.checkData(0, 0, '{slop:1.000000, intercept:0.000000}')
+
tdSql.query("select leastsquares(col5, 1, 1) from test1")
tdSql.checkData(0, 0, '{slop:1.000000, intercept:-0.900000}')
diff --git a/tests/pytest/functions/function_leastsquares_restart.py b/tests/pytest/functions/function_leastsquares_restart.py
index 0221dc0aed865882e375f90c44f52b391d1ffee5..8c38d5dd95ccd4537af623253b08fb2253e4d140 100644
--- a/tests/pytest/functions/function_leastsquares_restart.py
+++ b/tests/pytest/functions/function_leastsquares_restart.py
@@ -54,6 +54,18 @@ class TDTestCase:
tdSql.query("select leastsquares(col4, 1, 1) from test1")
tdSql.checkData(0, 0, '{slop:1.000000, intercept:0.000000}')
+ tdSql.query("select leastsquares(col11, 1, 1) from test1")
+ tdSql.checkData(0, 0, '{slop:1.000000, intercept:0.000000}')
+
+ tdSql.query("select leastsquares(col12, 1, 1) from test1")
+ tdSql.checkData(0, 0, '{slop:1.000000, intercept:0.000000}')
+
+ tdSql.query("select leastsquares(col13, 1, 1) from test1")
+ tdSql.checkData(0, 0, '{slop:1.000000, intercept:0.000000}')
+
+ tdSql.query("select leastsquares(col14, 1, 1) from test1")
+ tdSql.checkData(0, 0, '{slop:1.000000, intercept:0.000000}')
+
tdSql.query("select leastsquares(col5, 1, 1) from test1")
tdSql.checkData(0, 0, '{slop:1.000000, intercept:-0.900000}')
diff --git a/tests/pytest/functions/function_max.py b/tests/pytest/functions/function_max.py
index d1f8f75892ce2e61388c107eb7cad1ed00582d2f..c322b6af26362949f7e8b45a58e4c9cef3d9de19 100644
--- a/tests/pytest/functions/function_max.py
+++ b/tests/pytest/functions/function_max.py
@@ -34,11 +34,11 @@ class TDTestCase:
floatData = []
tdSql.execute('''create table test(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
- col7 bool, col8 binary(20), col9 nchar(20)) tags(loc nchar(20))''')
+ col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned) tags(loc nchar(20))''')
tdSql.execute("create table test1 using test tags('beijing')")
for i in range(self.rowNum):
- tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d')"
- % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1))
+ tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
+ % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
intData.append(i + 1)
floatData.append(i + 0.1)
@@ -63,6 +63,18 @@ class TDTestCase:
tdSql.query("select max(col4) from test1")
tdSql.checkData(0, 0, np.max(intData))
+
+ tdSql.query("select max(col11) from test1")
+ tdSql.checkData(0, 0, np.max(intData))
+
+ tdSql.query("select max(col12) from test1")
+ tdSql.checkData(0, 0, np.max(intData))
+
+ tdSql.query("select max(col13) from test1")
+ tdSql.checkData(0, 0, np.max(intData))
+
+ tdSql.query("select max(col14) from test1")
+ tdSql.checkData(0, 0, np.max(intData))
tdSql.query("select max(col5) from test1")
tdSql.checkData(0, 0, np.max(floatData))
diff --git a/tests/pytest/functions/function_max_restart.py b/tests/pytest/functions/function_max_restart.py
index 8d1827561758f1ceebffab877aabd6cd79166d42..a04fcedd8b908b030932d5d182b8cf20c28e2685 100644
--- a/tests/pytest/functions/function_max_restart.py
+++ b/tests/pytest/functions/function_max_restart.py
@@ -34,7 +34,7 @@ class TDTestCase:
floatData = []
#tdSql.execute('''create table test(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
- # col7 bool, col8 binary(20), col9 nchar(20)) tags(loc nchar(20))''')
+ # col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned) tags(loc nchar(20))''')
#tdSql.execute("create table test1 using test tags('beijing')")
for i in range(self.rowNum):
intData.append(i + 1)
@@ -61,6 +61,18 @@ class TDTestCase:
tdSql.query("select max(col4) from test1")
tdSql.checkData(0, 0, np.max(intData))
+
+ tdSql.query("select max(col11) from test1")
+ tdSql.checkData(0, 0, np.max(intData))
+
+ tdSql.query("select max(col12) from test1")
+ tdSql.checkData(0, 0, np.max(intData))
+
+ tdSql.query("select max(col13) from test1")
+ tdSql.checkData(0, 0, np.max(intData))
+
+ tdSql.query("select max(col14) from test1")
+ tdSql.checkData(0, 0, np.max(intData))
tdSql.query("select max(col5) from test1")
tdSql.checkData(0, 0, np.max(floatData))
diff --git a/tests/pytest/functions/function_min.py b/tests/pytest/functions/function_min.py
index c779744ced63d83fd5b2116fb61dfa347ec4dd5a..b4d6d58f7ce01b97dd7f5f569409a0288fb0389b 100644
--- a/tests/pytest/functions/function_min.py
+++ b/tests/pytest/functions/function_min.py
@@ -34,11 +34,11 @@ class TDTestCase:
floatData = []
tdSql.execute('''create table test(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
- col7 bool, col8 binary(20), col9 nchar(20)) tags(loc nchar(20))''')
+ col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned) tags(loc nchar(20))''')
tdSql.execute("create table test1 using test tags('beijing')")
for i in range(self.rowNum):
- tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d')"
- % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1))
+ tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
+ % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
intData.append(i + 1)
floatData.append(i + 0.1)
@@ -63,6 +63,18 @@ class TDTestCase:
tdSql.query("select min(col4) from test1")
tdSql.checkData(0, 0, np.min(intData))
+
+ tdSql.query("select min(col11) from test1")
+ tdSql.checkData(0, 0, np.min(intData))
+
+ tdSql.query("select min(col12) from test1")
+ tdSql.checkData(0, 0, np.min(intData))
+
+ tdSql.query("select min(col13) from test1")
+ tdSql.checkData(0, 0, np.min(intData))
+
+ tdSql.query("select min(col14) from test1")
+ tdSql.checkData(0, 0, np.min(intData))
tdSql.query("select min(col5) from test1")
tdSql.checkData(0, 0, np.min(floatData))
diff --git a/tests/pytest/functions/function_min_restart.py b/tests/pytest/functions/function_min_restart.py
index c8329bffa5525c2386d264010acf7231059e344d..fc2cb761cae164c8c04992768133d1e00a16fccb 100644
--- a/tests/pytest/functions/function_min_restart.py
+++ b/tests/pytest/functions/function_min_restart.py
@@ -58,6 +58,18 @@ class TDTestCase:
tdSql.query("select min(col4) from test1")
tdSql.checkData(0, 0, np.min(intData))
+
+ tdSql.query("select min(col11) from test1")
+ tdSql.checkData(0, 0, np.min(intData))
+
+ tdSql.query("select min(col12) from test1")
+ tdSql.checkData(0, 0, np.min(intData))
+
+ tdSql.query("select min(col13) from test1")
+ tdSql.checkData(0, 0, np.min(intData))
+
+ tdSql.query("select min(col14) from test1")
+ tdSql.checkData(0, 0, np.min(intData))
tdSql.query("select min(col5) from test1")
tdSql.checkData(0, 0, np.min(floatData))
diff --git a/tests/pytest/functions/function_operations.py b/tests/pytest/functions/function_operations.py
index 930c23d8a60d84bcc57fa8952e4d8c8e847ec138..8bbe6dc9a34b54ef1ddecff4e3f186312e5235b1 100644
--- a/tests/pytest/functions/function_operations.py
+++ b/tests/pytest/functions/function_operations.py
@@ -31,11 +31,11 @@ class TDTestCase:
tdSql.prepare()
tdSql.execute('''create table test(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
- col7 bool, col8 binary(20), col9 nchar(20)) tags(loc nchar(20))''')
+ col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned) tags(loc nchar(20))''')
tdSql.execute("create table test1 using test tags('beijing')")
for i in range(self.rowNum):
- tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d')"
- % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1))
+ tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
+ % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
# min verifacation
tdSql.error("select ts + col1 from test")
@@ -51,9 +51,9 @@ class TDTestCase:
tdSql.checkRows(10)
tdSql.checkData(0, 0, 2.0)
- tdSql.query("select col1 + col2 * col3 + col3 / col4 + col5 + col6 from test1")
+ tdSql.query("select col1 + col2 * col3 + col3 / col4 + col5 + col6 + col11 + col12 + col13 + col14 from test1")
tdSql.checkRows(10)
- tdSql.checkData(0, 0, 3.2)
+ tdSql.checkData(0, 0, 7.2)
tdSql.execute("insert into test1(ts, col1) values(%d, 11)" % (self.ts + 11))
tdSql.query("select col1 + col2 from test1")
@@ -64,10 +64,19 @@ class TDTestCase:
tdSql.checkRows(11)
tdSql.checkData(10, 0, None)
- tdSql.query("select col1 + col2 * col3 + col3 / col4 + col5 + col6 from test1")
+ tdSql.query("select col1 + col2 * col3 + col3 / col4 + col5 + col6 + col11 + col12 + col13 + col14 from test1")
tdSql.checkRows(11)
tdSql.checkData(10, 0, None)
+ # test for tarithoperator.c coverage
+ col_list = [ 'col1' , 'col2' , 'col3' , 'col4' , 'col5' , 'col6' , 'col11' , 'col12' , 'col13' , 'col14' , '1' ]
+ op_list = [ '+' , '-' , '*' , '/' , '%' ]
+ for i in col_list :
+ for j in col_list :
+ for k in op_list :
+ sql = " select %s %s %s from test1 " % ( i , k , j )
+ print(sql)
+ tdSql.query(sql)
def stop(self):
tdSql.close()
diff --git a/tests/pytest/functions/function_operations_restart.py b/tests/pytest/functions/function_operations_restart.py
index 6e3990264cb91d8c063fe638a5f77231ef7be424..e0e9d36e466cc57722dba29afd413892a8fc2f37 100644
--- a/tests/pytest/functions/function_operations_restart.py
+++ b/tests/pytest/functions/function_operations_restart.py
@@ -44,9 +44,9 @@ class TDTestCase:
tdSql.checkRows(11)
tdSql.checkData(0, 0, 2.0)
- tdSql.query("select col1 + col2 * col3 + col3 / col4 + col5 + col6 from test1")
+ tdSql.query("select col1 + col2 * col3 + col3 / col4 + col5 + col6 + col11 + col12 + col13 + col14 from test1")
tdSql.checkRows(11)
- tdSql.checkData(0, 0, 3.2)
+ tdSql.checkData(0, 0, 7.2)
#tdSql.execute("insert into test1(ts, col1) values(%d, 11)" % (self.ts + 11))
tdSql.query("select col1 + col2 from test1")
@@ -57,7 +57,7 @@ class TDTestCase:
tdSql.checkRows(11)
tdSql.checkData(10, 0, None)
- tdSql.query("select col1 + col2 * col3 + col3 / col4 + col5 + col6 from test1")
+ tdSql.query("select col1 + col2 * col3 + col3 / col4 + col5 + col6 + col11 + col12 + col13 + col14 from test1")
tdSql.checkRows(11)
tdSql.checkData(10, 0, None)
diff --git a/tests/pytest/functions/function_percentile.py b/tests/pytest/functions/function_percentile.py
index 688e91eefa79348a88f37f3b7cb0cc1ac63152d8..9b5e209d33d1f8e97c5baf83898dd62746c11dd8 100644
--- a/tests/pytest/functions/function_percentile.py
+++ b/tests/pytest/functions/function_percentile.py
@@ -34,10 +34,10 @@ class TDTestCase:
floatData = []
tdSql.execute('''create table test(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
- col7 bool, col8 binary(20), col9 nchar(20))''')
+ col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned)''')
for i in range(self.rowNum):
- tdSql.execute("insert into test values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d')"
- % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1))
+ tdSql.execute("insert into test values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
+ % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
intData.append(i + 1)
floatData.append(i + 0.1)
@@ -103,6 +103,58 @@ class TDTestCase:
tdSql.query("select apercentile(col4, 100) from test")
print("apercentile result: %s" % tdSql.getData(0, 0))
+ tdSql.query("select percentile(col11, 0) from test")
+ tdSql.checkData(0, 0, np.percentile(intData, 0))
+ tdSql.query("select apercentile(col11, 0) from test")
+ print("apercentile result: %s" % tdSql.getData(0, 0))
+ tdSql.query("select percentile(col11, 50) from test")
+ tdSql.checkData(0, 0, np.percentile(intData, 50))
+ tdSql.query("select apercentile(col11, 50) from test")
+ print("apercentile result: %s" % tdSql.getData(0, 0))
+ tdSql.query("select percentile(col11, 100) from test")
+ tdSql.checkData(0, 0, np.percentile(intData, 100))
+ tdSql.query("select apercentile(col11, 100) from test")
+ print("apercentile result: %s" % tdSql.getData(0, 0))
+
+ tdSql.query("select percentile(col12, 0) from test")
+ tdSql.checkData(0, 0, np.percentile(intData, 0))
+ tdSql.query("select apercentile(col12, 0) from test")
+ print("apercentile result: %s" % tdSql.getData(0, 0))
+ tdSql.query("select percentile(col12, 50) from test")
+ tdSql.checkData(0, 0, np.percentile(intData, 50))
+ tdSql.query("select apercentile(col12, 50) from test")
+ print("apercentile result: %s" % tdSql.getData(0, 0))
+ tdSql.query("select percentile(col12, 100) from test")
+ tdSql.checkData(0, 0, np.percentile(intData, 100))
+ tdSql.query("select apercentile(col12, 100) from test")
+ print("apercentile result: %s" % tdSql.getData(0, 0))
+
+ tdSql.query("select percentile(col13, 0) from test")
+ tdSql.checkData(0, 0, np.percentile(intData, 0))
+ tdSql.query("select apercentile(col13, 0) from test")
+ print("apercentile result: %s" % tdSql.getData(0, 0))
+ tdSql.query("select percentile(col13, 50) from test")
+ tdSql.checkData(0, 0, np.percentile(intData, 50))
+ tdSql.query("select apercentile(col13, 50) from test")
+ print("apercentile result: %s" % tdSql.getData(0, 0))
+ tdSql.query("select percentile(col13, 100) from test")
+ tdSql.checkData(0, 0, np.percentile(intData, 100))
+ tdSql.query("select apercentile(col13, 100) from test")
+ print("apercentile result: %s" % tdSql.getData(0, 0))
+
+ tdSql.query("select percentile(col14, 0) from test")
+ tdSql.checkData(0, 0, np.percentile(intData, 0))
+ tdSql.query("select apercentile(col14, 0) from test")
+ print("apercentile result: %s" % tdSql.getData(0, 0))
+ tdSql.query("select percentile(col14, 50) from test")
+ tdSql.checkData(0, 0, np.percentile(intData, 50))
+ tdSql.query("select apercentile(col14, 50) from test")
+ print("apercentile result: %s" % tdSql.getData(0, 0))
+ tdSql.query("select percentile(col14, 100) from test")
+ tdSql.checkData(0, 0, np.percentile(intData, 100))
+ tdSql.query("select apercentile(col14, 100) from test")
+ print("apercentile result: %s" % tdSql.getData(0, 0))
+
tdSql.query("select percentile(col5, 0) from test")
print("query result: %s" % tdSql.getData(0, 0))
print("array result: %s" % np.percentile(floatData, 0))
diff --git a/tests/pytest/functions/function_percentile_restart.py b/tests/pytest/functions/function_percentile_restart.py
index ade10282dedd655bc7ccb912a30a2a3e88a72223..5e6898784b55bbffb5e01946fff9dc60e281ebff 100644
--- a/tests/pytest/functions/function_percentile_restart.py
+++ b/tests/pytest/functions/function_percentile_restart.py
@@ -99,6 +99,58 @@ class TDTestCase:
tdSql.query("select apercentile(col4, 100) from test")
print("apercentile result: %s" % tdSql.getData(0, 0))
+ tdSql.query("select percentile(col11, 0) from test")
+ tdSql.checkData(0, 0, np.percentile(intData, 0))
+ tdSql.query("select apercentile(col11, 0) from test")
+ print("apercentile result: %s" % tdSql.getData(0, 0))
+ tdSql.query("select percentile(col11, 50) from test")
+ tdSql.checkData(0, 0, np.percentile(intData, 50))
+ tdSql.query("select apercentile(col11, 50) from test")
+ print("apercentile result: %s" % tdSql.getData(0, 0))
+ tdSql.query("select percentile(col11, 100) from test")
+ tdSql.checkData(0, 0, np.percentile(intData, 100))
+ tdSql.query("select apercentile(col11, 100) from test")
+ print("apercentile result: %s" % tdSql.getData(0, 0))
+
+ tdSql.query("select percentile(col12, 0) from test")
+ tdSql.checkData(0, 0, np.percentile(intData, 0))
+ tdSql.query("select apercentile(col12, 0) from test")
+ print("apercentile result: %s" % tdSql.getData(0, 0))
+ tdSql.query("select percentile(col12, 50) from test")
+ tdSql.checkData(0, 0, np.percentile(intData, 50))
+ tdSql.query("select apercentile(col12, 50) from test")
+ print("apercentile result: %s" % tdSql.getData(0, 0))
+ tdSql.query("select percentile(col12, 100) from test")
+ tdSql.checkData(0, 0, np.percentile(intData, 100))
+ tdSql.query("select apercentile(col12, 100) from test")
+ print("apercentile result: %s" % tdSql.getData(0, 0))
+
+ tdSql.query("select percentile(col13, 0) from test")
+ tdSql.checkData(0, 0, np.percentile(intData, 0))
+ tdSql.query("select apercentile(col13, 0) from test")
+ print("apercentile result: %s" % tdSql.getData(0, 0))
+ tdSql.query("select percentile(col13, 50) from test")
+ tdSql.checkData(0, 0, np.percentile(intData, 50))
+ tdSql.query("select apercentile(col13, 50) from test")
+ print("apercentile result: %s" % tdSql.getData(0, 0))
+ tdSql.query("select percentile(col13, 100) from test")
+ tdSql.checkData(0, 0, np.percentile(intData, 100))
+ tdSql.query("select apercentile(col13, 100) from test")
+ print("apercentile result: %s" % tdSql.getData(0, 0))
+
+ tdSql.query("select percentile(col14, 0) from test")
+ tdSql.checkData(0, 0, np.percentile(intData, 0))
+ tdSql.query("select apercentile(col14, 0) from test")
+ print("apercentile result: %s" % tdSql.getData(0, 0))
+ tdSql.query("select percentile(col14, 50) from test")
+ tdSql.checkData(0, 0, np.percentile(intData, 50))
+ tdSql.query("select apercentile(col14, 50) from test")
+ print("apercentile result: %s" % tdSql.getData(0, 0))
+ tdSql.query("select percentile(col14, 100) from test")
+ tdSql.checkData(0, 0, np.percentile(intData, 100))
+ tdSql.query("select apercentile(col14, 100) from test")
+ print("apercentile result: %s" % tdSql.getData(0, 0))
+
tdSql.query("select percentile(col5, 0) from test")
print("query result: %s" % tdSql.getData(0, 0))
print("array result: %s" % np.percentile(floatData, 0))
diff --git a/tests/pytest/functions/function_spread.py b/tests/pytest/functions/function_spread.py
index 462933597388090f069f9319751aaea032ea4133..b40f57b78da0f937e06bd304764c6b660f82488e 100644
--- a/tests/pytest/functions/function_spread.py
+++ b/tests/pytest/functions/function_spread.py
@@ -31,9 +31,9 @@ class TDTestCase:
tdSql.prepare()
tdSql.execute('''create table test(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
- col7 bool, col8 binary(20), col9 nchar(20)) tags(loc nchar(20))''')
+ col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned) tags(loc nchar(20))''')
tdSql.execute("create table test1 using test tags('beijing')")
- tdSql.execute("insert into test1 values(%d, 0, 0, 0, 0, 0.0, 0.0, False, ' ', ' ')" % (self.ts - 1))
+ tdSql.execute("insert into test1 values(%d, 0, 0, 0, 0, 0.0, 0.0, False, ' ', ' ', 0, 0, 0, 0)" % (self.ts - 1))
# spread verifacation
tdSql.query("select spread(ts) from test1")
@@ -55,6 +55,22 @@ class TDTestCase:
tdSql.checkRows(1)
tdSql.checkData(0, 0, 0)
+ tdSql.query("select spread(col11) from test1")
+ tdSql.checkRows(1)
+ tdSql.checkData(0, 0, 0)
+
+ tdSql.query("select spread(col12) from test1")
+ tdSql.checkRows(1)
+ tdSql.checkData(0, 0, 0)
+
+ tdSql.query("select spread(col13) from test1")
+ tdSql.checkRows(1)
+ tdSql.checkData(0, 0, 0)
+
+ tdSql.query("select spread(col14) from test1")
+ tdSql.checkRows(1)
+ tdSql.checkData(0, 0, 0)
+
tdSql.query("select spread(col5) from test1")
tdSql.checkRows(1)
tdSql.checkData(0, 0, 0)
@@ -64,8 +80,8 @@ class TDTestCase:
tdSql.checkData(0, 0, 0)
for i in range(self.rowNum):
- tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d')"
- % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1))
+ tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
+ % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
tdSql.error("select spread(col7) from test")
tdSql.error("select spread(col7) from test1")
@@ -90,6 +106,22 @@ class TDTestCase:
tdSql.checkRows(1)
tdSql.checkData(0, 0, 10)
+ tdSql.query("select spread(col11) from test1")
+ tdSql.checkRows(1)
+ tdSql.checkData(0, 0, 10)
+
+ tdSql.query("select spread(col12) from test1")
+ tdSql.checkRows(1)
+ tdSql.checkData(0, 0, 10)
+
+ tdSql.query("select spread(col13) from test1")
+ tdSql.checkRows(1)
+ tdSql.checkData(0, 0, 10)
+
+ tdSql.query("select spread(col14) from test1")
+ tdSql.checkRows(1)
+ tdSql.checkData(0, 0, 10)
+
tdSql.query("select spread(col5) from test1")
tdSql.checkRows(1)
tdSql.checkData(0, 0, 9.1)
diff --git a/tests/pytest/functions/function_spread_restart.py b/tests/pytest/functions/function_spread_restart.py
index ba71da0a18ac2e1e2a1ead6ab3de9ff5cae6a600..134d92c9c38c1ae37e9ea1a0a91d0e93957a7e2a 100644
--- a/tests/pytest/functions/function_spread_restart.py
+++ b/tests/pytest/functions/function_spread_restart.py
@@ -36,7 +36,7 @@ class TDTestCase:
tdSql.error("select spread(col8) from test1")
tdSql.error("select spread(col9) from test")
tdSql.error("select spread(col9) from test1")
-
+
tdSql.query("select spread(col1) from test1")
tdSql.checkRows(1)
tdSql.checkData(0, 0, 10)
@@ -53,6 +53,23 @@ class TDTestCase:
tdSql.checkRows(1)
tdSql.checkData(0, 0, 10)
+ tdSql.query("select spread(col11) from test1")
+ tdSql.checkRows(1)
+ tdSql.checkData(0, 0, 10)
+
+ tdSql.query("select spread(col12) from test1")
+ tdSql.checkRows(1)
+ tdSql.checkData(0, 0, 10)
+
+ tdSql.query("select spread(col13) from test1")
+ tdSql.checkRows(1)
+ tdSql.checkData(0, 0, 10)
+
+ tdSql.query("select spread(col14) from test1")
+ tdSql.checkRows(1)
+ tdSql.checkData(0, 0, 10)
+
+
tdSql.query("select spread(col5) from test1")
tdSql.checkRows(1)
tdSql.checkData(0, 0, 9.1)
diff --git a/tests/pytest/functions/function_stddev.py b/tests/pytest/functions/function_stddev.py
index a5b2d31dd1c6ef6c86e988c97c6dd94968731f16..51e005936183853ee2a4c9cc58bd5dd192b99006 100644
--- a/tests/pytest/functions/function_stddev.py
+++ b/tests/pytest/functions/function_stddev.py
@@ -34,11 +34,11 @@ class TDTestCase:
floatData = []
tdSql.execute('''create table test(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
- col7 bool, col8 binary(20), col9 nchar(20)) tags(loc nchar(20))''')
+ col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned) tags(loc nchar(20))''')
tdSql.execute("create table test1 using test tags('beijing')")
for i in range(self.rowNum):
- tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d')"
- % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1))
+ tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
+ % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
intData.append(i + 1)
floatData.append(i + 0.1)
@@ -68,6 +68,18 @@ class TDTestCase:
tdSql.query("select stddev(col4) from test1")
tdSql.checkData(0, 0, np.std(intData))
+ tdSql.query("select stddev(col11) from test1")
+ tdSql.checkData(0, 0, np.std(intData))
+
+ tdSql.query("select stddev(col12) from test1")
+ tdSql.checkData(0, 0, np.std(intData))
+
+ tdSql.query("select stddev(col13) from test1")
+ tdSql.checkData(0, 0, np.std(intData))
+
+ tdSql.query("select stddev(col14) from test1")
+ tdSql.checkData(0, 0, np.std(intData))
+
tdSql.query("select stddev(col5) from test1")
tdSql.checkData(0, 0, np.std(floatData))
diff --git a/tests/pytest/functions/function_stddev_restart.py b/tests/pytest/functions/function_stddev_restart.py
index 837f8bb4066618187529f68893666e97bf65b37c..48f9821d89473b66134b5ece06f1d0c417c24b36 100644
--- a/tests/pytest/functions/function_stddev_restart.py
+++ b/tests/pytest/functions/function_stddev_restart.py
@@ -55,6 +55,18 @@ class TDTestCase:
tdSql.query("select stddev(col4) from test1")
tdSql.checkData(0, 0, np.std(intData))
+ tdSql.query("select stddev(col11) from test1")
+ tdSql.checkData(0, 0, np.std(intData))
+
+ tdSql.query("select stddev(col12) from test1")
+ tdSql.checkData(0, 0, np.std(intData))
+
+ tdSql.query("select stddev(col13) from test1")
+ tdSql.checkData(0, 0, np.std(intData))
+
+ tdSql.query("select stddev(col14) from test1")
+ tdSql.checkData(0, 0, np.std(intData))
+
tdSql.query("select stddev(col5) from test1")
tdSql.checkData(0, 0, np.std(floatData))
diff --git a/tests/pytest/functions/function_stddev_td2555.py b/tests/pytest/functions/function_stddev_td2555.py
index a4da7d5e29b53ac9051dc39aa8af0708197dacd2..d7c820c37644397d18cc090afb1ee82efeaecf6c 100644
--- a/tests/pytest/functions/function_stddev_td2555.py
+++ b/tests/pytest/functions/function_stddev_td2555.py
@@ -32,25 +32,31 @@ class TDTestCase:
self.clist4 = []
self.clist5 = []
self.clist6 = []
+ self.clist11 = []
+ self.clist12 = []
+ self.clist13 = []
+ self.clist14 = []
def getData(self):
for i in range(tdSql.queryRows):
for j in range(6):
exec('self.clist{}.append(tdSql.queryResult[i][j+1])'.format(j+1))
+ for j in range(11,15):
+ exec('self.clist{}.append(tdSql.queryResult[i][j-1])'.format(j))
def run(self):
tdSql.prepare()
tdSql.execute('''create table test(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
- col7 bool, col8 binary(20), col9 nchar(20)) tags(cid int,gbid binary(20),loc nchar(20))''')
+ col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned) tags(cid int,gbid binary(20),loc nchar(20))''')
tdSql.execute("create table test1 using test tags(1,'beijing','北京')")
tdSql.execute("create table test2 using test tags(2,'shanghai','深圳')")
tdSql.execute("create table test3 using test tags(2,'shenzhen','深圳')")
tdSql.execute("create table test4 using test tags(1,'shanghai','上海')")
for j in range(4):
for i in range(self.rowNum):
- tdSql.execute("insert into test%d values(now-%dh, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d')"
- % (j+1,i, i + 1, i + 1, i + 1, i + 1, i + i * 0.1, i * 1.5, i % 2, i + 1, i + 1))
+ tdSql.execute("insert into test%d values(now-%dh, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
+ % (j+1,i, i + 1, i + 1, i + 1, i + 1, i + i * 0.1, i * 1.5, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
# stddev verifacation
tdSql.error("select stddev(ts) from test")
@@ -70,6 +76,10 @@ class TDTestCase:
exec('tdSql.query("select stddev(col{}) from test {}")'.format(i+1,condition))
exec('tdSql.checkData(0, 0, np.std(self.clist{}))'.format(i+1))
exec('self.clist{}.clear()'.format(i+1))
+ for i in range(11,15):
+ exec('tdSql.query("select stddev(col{}) from test {}")'.format(i,condition))
+ exec('tdSql.checkData(0, 0, np.std(self.clist{}))'.format(i))
+ exec('self.clist{}.clear()'.format(i))
print('step 2')
con_group_list = {
' cid = 2 and ts >=now - 1d and ts %d and ts < %d" % (self.ts, self.ts + self.rowNum))
tdSql.query("select twa(col4) from test1 where ts > %d and ts < %d" % (self.ts, self.ts + self.rowNum))
+ tdSql.error("select twa(col11) from test where ts > %d and ts < %d" % (self.ts, self.ts + self.rowNum))
+ tdSql.query("select twa(col11) from test1 where ts > %d and ts < %d" % (self.ts, self.ts + self.rowNum))
+
+ tdSql.error("select twa(col12) from test where ts > %d and ts < %d" % (self.ts, self.ts + self.rowNum))
+ tdSql.query("select twa(col12) from test1 where ts > %d and ts < %d" % (self.ts, self.ts + self.rowNum))
+
+ tdSql.error("select twa(col13) from test where ts > %d and ts < %d" % (self.ts, self.ts + self.rowNum))
+ tdSql.query("select twa(col13) from test1 where ts > %d and ts < %d" % (self.ts, self.ts + self.rowNum))
+
+ tdSql.error("select twa(col14) from test where ts > %d and ts < %d" % (self.ts, self.ts + self.rowNum))
+ tdSql.query("select twa(col14) from test1 where ts > %d and ts < %d" % (self.ts, self.ts + self.rowNum))
+
tdSql.error("select twa(col5) from test where ts > %d and ts < %d" % (self.ts, self.ts + self.rowNum))
tdSql.query("select twa(col5) from test1 where ts > %d and ts < %d" % (self.ts, self.ts + self.rowNum))
diff --git a/tests/pytest/functions/function_twa_restart.py b/tests/pytest/functions/function_twa_restart.py
index 56242c29535646f1baf12948ad06ebbe1a7f08ac..a066a5a8f3a4e7f28c577fec0ace725c920d5911 100644
--- a/tests/pytest/functions/function_twa_restart.py
+++ b/tests/pytest/functions/function_twa_restart.py
@@ -34,11 +34,11 @@ class TDTestCase:
floatData = []
tdSql.execute('''create table test(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
- col7 bool, col8 binary(20), col9 nchar(20)) tags(loc nchar(20))''')
+ col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned) tags(loc nchar(20))''')
tdSql.execute("create table test1 using test tags('beijing')")
for i in range(self.rowNum):
- tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d')"
- % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1))
+ tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
+ % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
intData.append(i + 1)
floatData.append(i + 0.1)
@@ -52,7 +52,15 @@ class TDTestCase:
tdSql.error("select twa(col3) from test")
- tdSql.error("select twa(col4) from test")
+ tdSql.error("select twa(col4) from test")
+
+ tdSql.error("select twa(col11) from test")
+
+ tdSql.error("select twa(col12) from test")
+
+ tdSql.error("select twa(col13) from test")
+
+ tdSql.error("select twa(col14) from test")
tdSql.error("select twa(col5) from test")
@@ -79,6 +87,18 @@ class TDTestCase:
tdSql.error("select twa(col4) from test where ts > %d and ts < %d" % (self.ts, self.ts + self.rowNum))
tdSql.query("select twa(col4) from test1 where ts > %d and ts < %d" % (self.ts, self.ts + self.rowNum))
+ tdSql.error("select twa(col11) from test where ts > %d and ts < %d" % (self.ts, self.ts + self.rowNum))
+ tdSql.query("select twa(col11) from test1 where ts > %d and ts < %d" % (self.ts, self.ts + self.rowNum))
+
+ tdSql.error("select twa(col12) from test where ts > %d and ts < %d" % (self.ts, self.ts + self.rowNum))
+ tdSql.query("select twa(col12) from test1 where ts > %d and ts < %d" % (self.ts, self.ts + self.rowNum))
+
+ tdSql.error("select twa(col13) from test where ts > %d and ts < %d" % (self.ts, self.ts + self.rowNum))
+ tdSql.query("select twa(col13) from test1 where ts > %d and ts < %d" % (self.ts, self.ts + self.rowNum))
+
+ tdSql.error("select twa(col14) from test where ts > %d and ts < %d" % (self.ts, self.ts + self.rowNum))
+ tdSql.query("select twa(col14) from test1 where ts > %d and ts < %d" % (self.ts, self.ts + self.rowNum))
+
tdSql.error("select twa(col5) from test where ts > %d and ts < %d" % (self.ts, self.ts + self.rowNum))
tdSql.query("select twa(col5) from test1 where ts > %d and ts < %d" % (self.ts, self.ts + self.rowNum))
diff --git a/tests/pytest/insert/basic_unsigned.py b/tests/pytest/insert/basic_unsigned.py
index 993e58ce877284f73c136bea864c59f5166916d9..ff7e0e5e4ad57a35d574d88ea179f713c8a8b611 100644
--- a/tests/pytest/insert/basic_unsigned.py
+++ b/tests/pytest/insert/basic_unsigned.py
@@ -36,7 +36,7 @@ class TDTestCase:
(i, i))
tdLog.info("insert earlier data")
- tdSql.execute('insert into tb values (now - 5m , 10)')
+ tdSql.execute('insert into tb values (now - 5m , NULL)')
tdSql.execute('insert into tb values (now - 6m , 10)')
tdSql.execute('insert into tb values (now - 7m , NULL)')
tdSql.execute('insert into tb values (now - 8m , 254)')
diff --git a/tests/pytest/insert/unsignedBigint.py b/tests/pytest/insert/unsignedBigint.py
new file mode 100644
index 0000000000000000000000000000000000000000..b222f2cd0195e14fddf1f10662447cef97f0e841
--- /dev/null
+++ b/tests/pytest/insert/unsignedBigint.py
@@ -0,0 +1,108 @@
+# -*- coding: utf-8 -*-
+
+import sys
+from util.log import *
+from util.cases import *
+from util.sql import *
+
+
+class TDTestCase:
+ def init(self, conn, logSql):
+ tdLog.debug("start to execute %s" % __file__)
+ tdSql.init(conn.cursor(), logSql)
+
+ def run(self):
+ tdSql.prepare()
+
+ tdLog.info('=============== step1')
+ tdLog.info('create table tb (ts timestamp, speed bigint unsigned)')
+ tdSql.execute('create table tb (ts timestamp, speed bigint unsigned)')
+ tdLog.info("insert into tb values (now, NULL)")
+ tdSql.execute("insert into tb values (now, NULL)")
+ tdLog.info('select * from tb order by ts desc')
+ tdSql.query('select * from tb order by ts desc')
+ tdLog.info('tdSql.checkRow(1)')
+ tdSql.checkRows(1)
+ tdLog.info('tdSql.checkData(0, 1, null)')
+ tdSql.checkData(0, 1, None)
+ tdLog.info('=============== step2')
+ tdLog.info("insert into tb values (now+1m, -1) -x step2")
+ tdSql.error("insert into tb values (now+1m, -1) ")
+ tdLog.info("insert into tb values (now+1m, NULL)")
+ tdSql.execute("insert into tb values (now+1m, NULL)")
+ tdLog.info('select * from tb order by ts desc')
+ tdSql.query('select * from tb order by ts desc')
+ tdLog.info('tdSql.checkRow(2)')
+ tdSql.checkRows(2)
+ tdLog.info('tdSql.checkData(0, 1, null)')
+ tdSql.checkData(0, 1, None)
+ tdLog.info('=============== step3')
+ tdLog.info("insert into tb values (now+2m, 18446744073709551614)")
+ tdSql.execute("insert into tb values (now+2m, 18446744073709551614)")
+ tdLog.info('select * from tb order by ts desc')
+ tdSql.query('select * from tb order by ts desc')
+ tdLog.info('tdSql.checkRow(3)')
+ tdSql.checkRows(3)
+ tdLog.info('tdSql.checkData(0, 1, 18446744073709551614)')
+ tdSql.checkData(0, 1, 18446744073709551614)
+ tdLog.info('=============== step4')
+ tdLog.info("insert into tb values (now+3m, 18446744073709551615) -x step4")
+ tdSql.error("insert into tb values (now+3m, 18446744073709551615)")
+ tdLog.info("insert into tb values (now+3m, NULL)")
+ tdSql.execute("insert into tb values (now+3m, NULL)")
+ tdLog.info('select * from tb')
+ tdSql.query('select * from tb')
+ tdLog.info('tdSql.checkRow(4)')
+ tdSql.checkRows(4)
+ tdLog.info('tdSql.checkData(0, 1, null)')
+ tdSql.checkData(0, 1, None)
+ tdLog.info('=============== step5')
+ tdLog.info("insert into tb values (now+4m, a2)")
+ tdSql.error("insert into tb values (now+4m, a2)")
+ tdLog.info("insert into tb values (now-4m, -1)")
+ tdSql.error("insert into tb values (now-4m, -1)")
+ tdLog.info("insert into tb values (now+4m, 0)")
+ tdSql.execute("insert into tb values (now+4m, 0)")
+ tdLog.info('select * from tb order by ts desc')
+ tdSql.query('select * from tb order by ts desc')
+ tdLog.info('tdSql.checkRow(5)')
+ tdSql.checkRows(5)
+ tdLog.info('tdSql.checkData(0, 1, 0)')
+ tdSql.checkData(0, 1, 0)
+ tdLog.info('=============== step6')
+ tdLog.info("insert into tb values (now+5m, 2a)")
+ tdSql.error("insert into tb values (now+5m, 2a)")
+ tdLog.info("insert into tb values (now+5m, 2)")
+ tdSql.execute("insert into tb values (now+5m, 2)")
+ tdLog.info('select * from tb order by ts desc')
+ tdSql.query('select * from tb order by ts desc')
+ tdLog.info('tdSql.checkRow(6)')
+ tdSql.checkRows(6)
+ tdLog.info('tdSql.checkData(0, 1, 2)')
+ tdSql.checkData(0, 1, 2)
+ tdLog.info('=============== step7')
+ tdLog.info("insert into tb values (now+6m, 2a'1)")
+ tdSql.error("insert into tb values (now+6m, 2a'1)")
+ tdLog.info("insert into tb values (now+6m, 2)")
+ tdSql.execute("insert into tb values (now+6m, 2)")
+ tdLog.info('select * from tb order by ts desc')
+ tdSql.query('select * from tb order by ts desc')
+ tdLog.info('tdSql.checkRow(7)')
+ tdSql.checkRows(7)
+ tdLog.info('tdSql.checkData(0, 1, 2)')
+ tdSql.checkData(0, 1, 2)
+ tdLog.info('drop database db')
+ tdSql.execute('drop database db')
+ tdLog.info('show databases')
+ tdSql.query('show databases')
+ tdLog.info('tdSql.checkRow(0)')
+ tdSql.checkRows(0)
+# convert end
+
+ def stop(self):
+ tdSql.close()
+ tdLog.success("%s successfully executed" % __file__)
+
+
+tdCases.addWindows(__file__, TDTestCase())
+tdCases.addLinux(__file__, TDTestCase())
diff --git a/tests/pytest/insert/unsignedInt.py b/tests/pytest/insert/unsignedInt.py
new file mode 100644
index 0000000000000000000000000000000000000000..ed18999bc415022da34788a79e9045a5f67cf8ee
--- /dev/null
+++ b/tests/pytest/insert/unsignedInt.py
@@ -0,0 +1,108 @@
+# -*- coding: utf-8 -*-
+
+import sys
+from util.log import *
+from util.cases import *
+from util.sql import *
+
+
+class TDTestCase:
+ def init(self, conn, logSql):
+ tdLog.debug("start to execute %s" % __file__)
+ tdSql.init(conn.cursor(), logSql)
+
+ def run(self):
+ tdSql.prepare()
+
+ tdLog.info('=============== step1')
+ tdLog.info('create table tb (ts timestamp, speed int unsigned)')
+ tdSql.execute('create table tb (ts timestamp, speed int unsigned)')
+ tdLog.info("insert into tb values (now, NULL)")
+ tdSql.execute("insert into tb values (now, NULL)")
+ tdLog.info('select * from tb order by ts desc')
+ tdSql.query('select * from tb order by ts desc')
+ tdLog.info('tdSql.checkRow(1)')
+ tdSql.checkRows(1)
+ tdLog.info('tdSql.checkData(0, 1, null)')
+ tdSql.checkData(0, 1, None)
+ tdLog.info('=============== step2')
+ tdLog.info("insert into tb values (now+1m, -1) -x step2")
+ tdSql.error("insert into tb values (now+1m, -1) ")
+ tdLog.info("insert into tb values (now+1m, NULL)")
+ tdSql.execute("insert into tb values (now+1m, NULL)")
+ tdLog.info('select * from tb order by ts desc')
+ tdSql.query('select * from tb order by ts desc')
+ tdLog.info('tdSql.checkRow(2)')
+ tdSql.checkRows(2)
+ tdLog.info('tdSql.checkData(0, 1, null)')
+ tdSql.checkData(0, 1, None)
+ tdLog.info('=============== step3')
+ tdLog.info("insert into tb values (now+2m, 4294967294)")
+ tdSql.execute("insert into tb values (now+2m, 4294967294)")
+ tdLog.info('select * from tb order by ts desc')
+ tdSql.query('select * from tb order by ts desc')
+ tdLog.info('tdSql.checkRow(3)')
+ tdSql.checkRows(3)
+ tdLog.info('tdSql.checkData(0, 1, 4294967294)')
+ tdSql.checkData(0, 1, 4294967294)
+ tdLog.info('=============== step4')
+ tdLog.info("insert into tb values (now+3m, 4294967295) -x step4")
+ tdSql.error("insert into tb values (now+3m, 4294967295)")
+ tdLog.info("insert into tb values (now+3m, NULL)")
+ tdSql.execute("insert into tb values (now+3m, NULL)")
+ tdLog.info('select * from tb')
+ tdSql.query('select * from tb')
+ tdLog.info('tdSql.checkRow(4)')
+ tdSql.checkRows(4)
+ tdLog.info('tdSql.checkData(0, 1, null)')
+ tdSql.checkData(0, 1, None)
+ tdLog.info('=============== step5')
+ tdLog.info("insert into tb values (now+4m, a2)")
+ tdSql.error("insert into tb values (now+4m, a2)")
+ tdLog.info("insert into tb values (now-4m, -1)")
+ tdSql.error("insert into tb values (now-4m, -1)")
+ tdLog.info("insert into tb values (now+4m, 0)")
+ tdSql.execute("insert into tb values (now+4m, 0)")
+ tdLog.info('select * from tb order by ts desc')
+ tdSql.query('select * from tb order by ts desc')
+ tdLog.info('tdSql.checkRow(5)')
+ tdSql.checkRows(5)
+ tdLog.info('tdSql.checkData(0, 1, 0)')
+ tdSql.checkData(0, 1, 0)
+ tdLog.info('=============== step6')
+ tdLog.info("insert into tb values (now+5m, 2a)")
+ tdSql.error("insert into tb values (now+5m, 2a)")
+ tdLog.info("insert into tb values (now+5m, 2)")
+ tdSql.execute("insert into tb values (now+5m, 2)")
+ tdLog.info('select * from tb order by ts desc')
+ tdSql.query('select * from tb order by ts desc')
+ tdLog.info('tdSql.checkRow(6)')
+ tdSql.checkRows(6)
+ tdLog.info('tdSql.checkData(0, 1, 2)')
+ tdSql.checkData(0, 1, 2)
+ tdLog.info('=============== step7')
+ tdLog.info("insert into tb values (now+6m, 2a'1)")
+ tdSql.error("insert into tb values (now+6m, 2a'1)")
+ tdLog.info("insert into tb values (now+6m, 2)")
+ tdSql.execute("insert into tb values (now+6m, 2)")
+ tdLog.info('select * from tb order by ts desc')
+ tdSql.query('select * from tb order by ts desc')
+ tdLog.info('tdSql.checkRow(7)')
+ tdSql.checkRows(7)
+ tdLog.info('tdSql.checkData(0, 1, 2)')
+ tdSql.checkData(0, 1, 2)
+ tdLog.info('drop database db')
+ tdSql.execute('drop database db')
+ tdLog.info('show databases')
+ tdSql.query('show databases')
+ tdLog.info('tdSql.checkRow(0)')
+ tdSql.checkRows(0)
+# convert end
+
+ def stop(self):
+ tdSql.close()
+ tdLog.success("%s successfully executed" % __file__)
+
+
+tdCases.addWindows(__file__, TDTestCase())
+tdCases.addLinux(__file__, TDTestCase())
diff --git a/tests/pytest/insert/unsignedSmallint.py b/tests/pytest/insert/unsignedSmallint.py
new file mode 100644
index 0000000000000000000000000000000000000000..9893c470ce1a53a05138dd9d5c18e2b0a9f21374
--- /dev/null
+++ b/tests/pytest/insert/unsignedSmallint.py
@@ -0,0 +1,108 @@
+# -*- coding: utf-8 -*-
+
+import sys
+from util.log import *
+from util.cases import *
+from util.sql import *
+
+
+class TDTestCase:
+ def init(self, conn, logSql):
+ tdLog.debug("start to execute %s" % __file__)
+ tdSql.init(conn.cursor(), logSql)
+
+ def run(self):
+ tdSql.prepare()
+
+ tdLog.info('=============== step1')
+ tdLog.info('create table tb (ts timestamp, speed smallint unsigned)')
+ tdSql.execute('create table tb (ts timestamp, speed smallint unsigned)')
+ tdLog.info("insert into tb values (now, NULL)")
+ tdSql.execute("insert into tb values (now, NULL)")
+ tdLog.info('select * from tb order by ts desc')
+ tdSql.query('select * from tb order by ts desc')
+ tdLog.info('tdSql.checkRow(1)')
+ tdSql.checkRows(1)
+ tdLog.info('tdSql.checkData(0, 1, null)')
+ tdSql.checkData(0, 1, None)
+ tdLog.info('=============== step2')
+ tdLog.info("insert into tb values (now+1m, -1) -x step2")
+ tdSql.error("insert into tb values (now+1m, -1) ")
+ tdLog.info("insert into tb values (now+1m, NULL)")
+ tdSql.execute("insert into tb values (now+1m, NULL)")
+ tdLog.info('select * from tb order by ts desc')
+ tdSql.query('select * from tb order by ts desc')
+ tdLog.info('tdSql.checkRow(2)')
+ tdSql.checkRows(2)
+ tdLog.info('tdSql.checkData(0, 1, null)')
+ tdSql.checkData(0, 1, None)
+ tdLog.info('=============== step3')
+ tdLog.info("insert into tb values (now+2m, 65534)")
+ tdSql.execute("insert into tb values (now+2m, 65534)")
+ tdLog.info('select * from tb order by ts desc')
+ tdSql.query('select * from tb order by ts desc')
+ tdLog.info('tdSql.checkRow(3)')
+ tdSql.checkRows(3)
+ tdLog.info('tdSql.checkData(0, 1, 65534)')
+ tdSql.checkData(0, 1, 65534)
+ tdLog.info('=============== step4')
+ tdLog.info("insert into tb values (now+3m, 65535) -x step4")
+ tdSql.error("insert into tb values (now+3m, 65535)")
+ tdLog.info("insert into tb values (now+3m, NULL)")
+ tdSql.execute("insert into tb values (now+3m, NULL)")
+ tdLog.info('select * from tb')
+ tdSql.query('select * from tb')
+ tdLog.info('tdSql.checkRow(4)')
+ tdSql.checkRows(4)
+ tdLog.info('tdSql.checkData(0, 1, null)')
+ tdSql.checkData(0, 1, None)
+ tdLog.info('=============== step5')
+ tdLog.info("insert into tb values (now+4m, a2)")
+ tdSql.error("insert into tb values (now+4m, a2)")
+ tdLog.info("insert into tb values (now-4m, -1)")
+ tdSql.error("insert into tb values (now-4m, -1)")
+ tdLog.info("insert into tb values (now+4m, 0)")
+ tdSql.execute("insert into tb values (now+4m, 0)")
+ tdLog.info('select * from tb order by ts desc')
+ tdSql.query('select * from tb order by ts desc')
+ tdLog.info('tdSql.checkRow(5)')
+ tdSql.checkRows(5)
+ tdLog.info('tdSql.checkData(0, 1, 0)')
+ tdSql.checkData(0, 1, 0)
+ tdLog.info('=============== step6')
+ tdLog.info("insert into tb values (now+5m, 2a)")
+ tdSql.error("insert into tb values (now+5m, 2a)")
+ tdLog.info("insert into tb values (now+5m, 2)")
+ tdSql.execute("insert into tb values (now+5m, 2)")
+ tdLog.info('select * from tb order by ts desc')
+ tdSql.query('select * from tb order by ts desc')
+ tdLog.info('tdSql.checkRow(6)')
+ tdSql.checkRows(6)
+ tdLog.info('tdSql.checkData(0, 1, 2)')
+ tdSql.checkData(0, 1, 2)
+ tdLog.info('=============== step7')
+ tdLog.info("insert into tb values (now+6m, 2a'1)")
+ tdSql.error("insert into tb values (now+6m, 2a'1)")
+ tdLog.info("insert into tb values (now+6m, 2)")
+ tdSql.execute("insert into tb values (now+6m, 2)")
+ tdLog.info('select * from tb order by ts desc')
+ tdSql.query('select * from tb order by ts desc')
+ tdLog.info('tdSql.checkRow(7)')
+ tdSql.checkRows(7)
+ tdLog.info('tdSql.checkData(0, 1, 2)')
+ tdSql.checkData(0, 1, 2)
+ tdLog.info('drop database db')
+ tdSql.execute('drop database db')
+ tdLog.info('show databases')
+ tdSql.query('show databases')
+ tdLog.info('tdSql.checkRow(0)')
+ tdSql.checkRows(0)
+# convert end
+
+ def stop(self):
+ tdSql.close()
+ tdLog.success("%s successfully executed" % __file__)
+
+
+tdCases.addWindows(__file__, TDTestCase())
+tdCases.addLinux(__file__, TDTestCase())
diff --git a/tests/pytest/insert/unsigenedTinyint.py b/tests/pytest/insert/unsignedTinyint.py
similarity index 99%
rename from tests/pytest/insert/unsigenedTinyint.py
rename to tests/pytest/insert/unsignedTinyint.py
index 1c0634b69a105c72030cdc5d15a31b8af656d48d..5bdfe7580b198ccaffcab7005e88aa72e1c437af 100644
--- a/tests/pytest/insert/unsigenedTinyint.py
+++ b/tests/pytest/insert/unsignedTinyint.py
@@ -95,7 +95,7 @@ class TDTestCase:
tdSql.query('show databases')
tdLog.info('tdSql.checkRow(0)')
tdSql.checkRows(0)
-# convert end
+
def stop(self):
tdSql.close()
diff --git a/tests/pytest/pytest_4.sh b/tests/pytest/pytest_4.sh
index a68e6a1fefeb09af5e0c7f934de14f0781ae540c..dada90c709a967df37693d7398692c6d7fc12039 100755
--- a/tests/pytest/pytest_4.sh
+++ b/tests/pytest/pytest_4.sh
@@ -30,4 +30,10 @@ python3 ./test.py -f query/last_cache.py
python3 ./test.py -f query/last_row_cache.py
python3 ./test.py -f account/account_create.py
python3 ./test.py -f alter/alter_table.py
-python3 ./test.py -f query/queryGroupbySort.py
\ No newline at end of file
+python3 ./test.py -f query/queryGroupbySort.py
+
+python3 ./test.py -f insert/unsignedInt.py
+python3 ./test.py -f insert/unsignedBigint.py
+python3 ./test.py -f insert/unsignedSmallint.py
+python3 ./test.py -f insert/unsignedTinyint.py
+python3 ./test.py -f query/filterAllUnsignedIntTypes.py
\ No newline at end of file
diff --git a/tests/pytest/query/filterAllUnsignedIntTypes.py b/tests/pytest/query/filterAllUnsignedIntTypes.py
new file mode 100644
index 0000000000000000000000000000000000000000..0ff2f2b6eeb1424b0bcfd9a9e54537e8f216f9c6
--- /dev/null
+++ b/tests/pytest/query/filterAllUnsignedIntTypes.py
@@ -0,0 +1,176 @@
+###################################################################
+# 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
+import taos
+from util.log import *
+from util.cases import *
+from util.sql import *
+
+
+class TDTestCase:
+ def init(self, conn, logSql):
+ tdLog.debug("start to execute %s" % __file__)
+ tdSql.init(conn.cursor())
+
+ self.powers = [8, 16, 32, 64]
+ self.types = ["tinyint", "smallint", "int", "bigint"]
+ self.rowNum = 10
+ self.ts = 1537146000000
+
+ def run(self):
+ tdSql.prepare()
+
+ for i in range(len(self.powers)):
+ curType = self.types[i]
+ print("======= Verify filter for %s type =========" % (curType))
+ tdLog.debug(
+ "create table st%s(ts timestamp, num %s unsigned) tags(id %s unsigned)" %
+ (curType, curType, curType))
+ tdSql.execute(
+ "create table st%s(ts timestamp, num %s unsigned) tags(id %s unsigned)" %
+ (curType, curType, curType))
+
+ # create 10 tables, insert 10 rows for each table
+ for j in range(self.rowNum):
+ tdSql.execute(
+ "create table st%s%d using st%s tags(%d)" %
+ (curType, j + 1, curType, j + 1))
+ for k in range(self.rowNum):
+ tdSql.execute(
+ "insert into st%s%d values(%d, %d)" %
+ (curType, j + 1, self.ts + k + 1, j * 10 + k + 1))
+
+ tdSql.error("insert into st%s10 values(%d, %d)" %
+ (curType, self.ts + 11, pow(2, self.powers[i]) - 1 ))
+ tdSql.execute("insert into st%s10 values(%d, %d)" %
+ (curType, self.ts + 12, pow(2, self.powers[i]) - 2 ))
+ tdSql.error("insert into st%s10 values(%d, %d)" %
+ (curType, self.ts + 13, -1 ))
+ tdSql.execute("insert into st%s10 values(%d, %d)" %
+ (curType, self.ts + 14, 0 ))
+ # select all data
+ # tdSql.query("select * from st%s " % curType)
+ # tdSql.checkRows(102)
+
+ # > for int type on column
+ tdSql.query("select * from st%s where num > 50" % curType)
+ tdSql.checkRows(51)
+
+ # >= for int type on column
+ tdSql.query("select * from st%s where num >= 50" % curType)
+ tdSql.checkRows(52)
+
+ # = for int type on column
+ tdSql.query("select * from st%s where num = 50" % curType)
+ tdSql.checkRows(1)
+
+ # < for int type on column
+ tdSql.query("select * from st%s where num < 50" % curType)
+ tdSql.checkRows(50)
+
+ # <= for int type on column
+ tdSql.query("select * from st%s where num <= 50" % curType)
+ tdSql.checkRows(51)
+
+ # <> for int type on column
+ tdSql.query("select * from st%s where num <> 50" % curType)
+ tdSql.checkRows(101)
+
+ # != for int type on column
+ tdSql.query("select * from st%s where num != 50" % curType)
+ tdSql.checkRows(101)
+
+ # range for int type on column
+ tdSql.query(
+ "select * from st%s where num > 50 and num < 100" %
+ curType)
+ tdSql.checkRows(49)
+
+ tdSql.query(
+ "select * from st%s where num >= 50 and num < 100" %
+ curType)
+ tdSql.checkRows(50)
+
+ tdSql.query(
+ "select * from st%s where num > 50 and num <= 100" %
+ curType)
+ tdSql.checkRows(50)
+
+ tdSql.query(
+ "select * from st%s where num >= 50 and num <= 100" %
+ curType)
+ tdSql.checkRows(51)
+
+ # > for int type on tag
+ tdSql.query("select * from st%s where id > 5" % curType)
+ tdSql.checkRows(52)
+
+ # >= for int type on tag
+ tdSql.query("select * from st%s where id >= 5" % curType)
+ tdSql.checkRows(62)
+
+ # = for int type on tag
+ tdSql.query("select * from st%s where id = 5" % curType)
+ tdSql.checkRows(10)
+
+ # < for int type on tag
+ tdSql.query("select * from st%s where id < 5" % curType)
+ tdSql.checkRows(40)
+
+ # <= for int type on tag
+ tdSql.query("select * from st%s where id <= 5" % curType)
+ tdSql.checkRows(50)
+
+ # <> for int type on tag
+ tdSql.query("select * from st%s where id <> 5" % curType)
+ tdSql.checkRows(92)
+
+ # != for int type on tag
+ tdSql.query("select * from st%s where id != 5" % curType)
+ tdSql.checkRows(92)
+
+ # != for int type on tag
+ tdSql.query("select * from st%s where id != 5" % curType)
+ tdSql.checkRows(92)
+
+ # range for int type on tag
+ tdSql.query("select * from st%s where id > 5 and id < 7" % curType)
+ tdSql.checkRows(10)
+
+ tdSql.query(
+ "select * from st%s where id >= 5 and id < 7" %
+ curType)
+ tdSql.checkRows(20)
+
+ tdSql.query(
+ "select * from st%s where id > 5 and id <= 7" %
+ curType)
+ tdSql.checkRows(20)
+
+ tdSql.query(
+ "select * from st%s where id >= 5 and id <= 7" %
+ curType)
+ tdSql.checkRows(30)
+
+ print(
+ "======= Verify filter for %s type finished =========" %
+ curType)
+
+ def stop(self):
+ tdSql.close()
+ tdLog.success("%s successfully executed" % __file__)
+
+
+tdCases.addWindows(__file__, TDTestCase())
+tdCases.addLinux(__file__, TDTestCase())
diff --git a/tests/pytest/query/queryNullValueTest.py b/tests/pytest/query/queryNullValueTest.py
index 9920543b3a8d78363197a632eabe47ac6f82fa2e..5a95b369fe39d6bc1216847b3f108dff7d7171b7 100644
--- a/tests/pytest/query/queryNullValueTest.py
+++ b/tests/pytest/query/queryNullValueTest.py
@@ -25,7 +25,7 @@ class TDTestCase:
tdLog.debug("start to execute %s" % __file__)
tdSql.init(conn.cursor(), logSql)
- self.types = ["tinyint", "smallint", "int", "bigint", "float", "double", "bool", "binary(10)", "nchar(10)"]
+ self.types = ["tinyint", "smallint", "int", "bigint", "float", "double", "bool", "binary(10)", "nchar(10)", "tinyint unsigned", "smallint unsigned", "int unsigned", "bigint unsigned"]
self.ts = 1537146000000
def checkNullValue(self, result):
diff --git a/tests/pytest/query/querySort.py b/tests/pytest/query/querySort.py
index 649e0dc1cb3191ba08b3f2da0a5edee3afc66575..17022bdc41057bcb67e1530a2cb6d399bada20ff 100644
--- a/tests/pytest/query/querySort.py
+++ b/tests/pytest/query/querySort.py
@@ -73,19 +73,19 @@ class TDTestCase:
print("======= step 1: create table and insert data =========")
tdLog.debug(
''' create table st(ts timestamp, tbcol1 tinyint, tbcol2 smallint, tbcol3 int, tbcol4 bigint, tbcol5 float, tbcol6 double,
- tbcol7 bool, tbcol8 nchar(20), tbcol9 binary(20)) tags(tagcol1 tinyint, tagcol2 smallint, tagcol3 int, tagcol4 bigint, tagcol5 float,
- tagcol6 double, tagcol7 bool, tagcol8 nchar(20), tagcol9 binary(20))''')
+ tbcol7 bool, tbcol8 nchar(20), tbcol9 binary(20), tbcol11 tinyint unsigned, tbcol12 smallint unsigned, tbcol13 int unsigned, tbcol14 bigint unsigned) tags(tagcol1 tinyint, tagcol2 smallint, tagcol3 int, tagcol4 bigint, tagcol5 float,
+ tagcol6 double, tagcol7 bool, tagcol8 nchar(20), tagcol9 binary(20), tagcol11 tinyint unsigned, tagcol12 smallint unsigned, tagcol13 int unsigned, tagcol14 bigint unsigned)''')
tdSql.execute(
''' create table st(ts timestamp, tbcol1 tinyint, tbcol2 smallint, tbcol3 int, tbcol4 bigint, tbcol5 float, tbcol6 double,
- tbcol7 bool, tbcol8 nchar(20), tbcol9 binary(20)) tags(tagcol1 tinyint, tagcol2 smallint, tagcol3 int, tagcol4 bigint, tagcol5 float,
- tagcol6 double, tagcol7 bool, tagcol8 nchar(20), tagcol9 binary(20))''')
+ tbcol7 bool, tbcol8 nchar(20), tbcol9 binary(20), tbcol11 tinyint unsigned, tbcol12 smallint unsigned, tbcol13 int unsigned, tbcol14 bigint unsigned) tags(tagcol1 tinyint, tagcol2 smallint, tagcol3 int, tagcol4 bigint, tagcol5 float,
+ tagcol6 double, tagcol7 bool, tagcol8 nchar(20), tagcol9 binary(20), tagcol11 tinyint unsigned, tagcol12 smallint unsigned, tagcol13 int unsigned, tagcol14 bigint unsigned)''')
for i in range(self.rowNum):
- tdSql.execute("create table st%d using st tags(%d, %d, %d, %d, %f, %f, %d, 'tag%d', '标签%d')" % (
- i + 1, i + 1, i + 1, i + 1, i + 1, 1.1 * (i + 1), 1.23 * (i + 1), (i + 1) % 2, i + 1, i + 1))
+ tdSql.execute("create table st%d using st tags(%d, %d, %d, %d, %f, %f, %d, 'tag%d', '标签%d', %d, %d, %d, %d)" % (
+ i + 1, i + 1, i + 1, i + 1, i + 1, 1.1 * (i + 1), 1.23 * (i + 1), (i + 1) % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
for j in range(self.rowNum):
- tdSql.execute("insert into st%d values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d')" % (
- i + 1, self.ts + 10 * (i + 1) + j + 1, j + 1, j + 1, j + 1, j + 1, 1.1 * (j + 1), 1.23 * (j + 1), (j + 1) % 2, j + 1, j + 1))
+ tdSql.execute("insert into st%d values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)" % (
+ i + 1, self.ts + 10 * (i + 1) + j + 1, j + 1, j + 1, j + 1, j + 1, 1.1 * (j + 1), 1.23 * (j + 1), (j + 1) % 2, j + 1, j + 1, i + 1, i + 1, i + 1, i + 1))
print("======= step 2: verify order for each column =========")
# sort for timestamp in asc order
diff --git a/tests/pytest/tag_lite/add.py b/tests/pytest/tag_lite/add.py
index 49e2f8ab6990c24e90e9d1b01df957bc0d3107cd..eb52e9cb9b8f595d77e4d816c2fb2c1317501cfb 100644
--- a/tests/pytest/tag_lite/add.py
+++ b/tests/pytest/tag_lite/add.py
@@ -141,6 +141,98 @@ class TDTestCase:
# TSIM: sql select * from $mt where tgcol2 = 1 -x step2
tdLog.info('select * from %s where tgcol2 = 1 -x step2' % (mt))
tdSql.error('select * from %s where tgcol2 = 1' % (mt))
+ tdLog.info('=============== step2-1')
+ # TSIM: $i = 2
+ i = 21
+ # TSIM: $mt = $mtPrefix . $i
+ mt = "%s%d" % (mtPrefix, i)
+ # TSIM: $tb = $tbPrefix . $i
+ tb = "%s%d" % (tbPrefix, i)
+ # TSIM: sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol1
+ # bool, tgcol2 int)
+ tdLog.info(
+ 'create table %s (ts timestamp, tbcol int) TAGS(tgcol1 bool, tgcol2 int unsigned)' %
+ (mt))
+ tdSql.execute(
+ 'create table %s (ts timestamp, tbcol int) TAGS(tgcol1 bool, tgcol2 int unsigned)' %
+ (mt))
+ # TSIM: sql create table $tb using $mt tags( 1, 2 )
+ tdLog.info('create table %s using %s tags( 1, 2 )' % (tb, mt))
+ tdSql.execute('create table %s using %s tags( 1, 2 )' % (tb, mt))
+ # TSIM: sql insert into $tb values(now, 1)
+ tdLog.info('insert into %s values(now, 1)' % (tb))
+ tdSql.execute('insert into %s values(now, 1)' % (tb))
+ # TSIM: sql select * from $mt where tgcol2 = 2
+ tdLog.info('select * from %s where tgcol2 = 2' % (mt))
+ tdSql.query('select * from %s where tgcol2 = 2' % (mt))
+ # TSIM: if $rows != 1 then
+ tdLog.info('tdSql.checkRow(1)')
+ tdSql.checkRows(1)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: if $data01 != 1 then
+ tdLog.info('tdSql.checkData(0, 1, 1)')
+ tdSql.checkData(0, 1, 1)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: if $data02 != 1 then
+ tdLog.info('tdSql.checkData(0, 2, 1)')
+ tdSql.checkData(0, 2, 1)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: if $data03 != 2 then
+ tdLog.info('tdSql.checkData(0, 3, 2)')
+ tdSql.checkData(0, 3, 2)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: sql alter table $mt drop tag tgcol2
+ tdLog.info('alter table %s drop tag tgcol2' % (mt))
+ tdSql.execute('alter table %s drop tag tgcol2' % (mt))
+ # TSIM: sql alter table $mt add tag tgcol4 int
+ tdLog.info('alter table %s add tag tgcol4 int unsigned' % (mt))
+ tdSql.execute('alter table %s add tag tgcol4 int unsigned' % (mt))
+ tdLog.info('select * from %s where tgcol4=6' % (mt))
+ tdSql.query('select * from %s where tgcol4=6' % (mt))
+ # TSIM: sql reset query cache
+ tdLog.info('reset query cache')
+ tdSql.execute('reset query cache')
+ # TSIM: sql alter table $tb set tag tgcol4 =4
+ tdLog.info('alter table %s set tag tgcol4 =4' % (tb))
+ tdSql.execute('alter table %s set tag tgcol4 =4' % (tb))
+ # TSIM: sql reset query cache
+ tdLog.info('reset query cache')
+ tdSql.execute('reset query cache')
+ # TSIM:
+ # TSIM: sql select * from $mt where tgcol4 = 4
+ tdLog.info('select * from %s where tgcol4 = 4' % (mt))
+ tdSql.query('select * from %s where tgcol4 = 4' % (mt))
+ # TSIM: print $data01 $data02 $data03
+ tdLog.info('$data01 $data02 $data03')
+ # TSIM: if $rows != 1 then
+ tdLog.info('tdSql.checkRow(1)')
+ tdSql.checkRows(1)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: if $data01 != 1 then
+ tdLog.info('tdSql.checkData(0, 1, 1)')
+ tdSql.checkData(0, 1, 1)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: if $data02 != 1 then
+ tdLog.info('tdSql.checkData(0, 2, 1)')
+ tdSql.checkData(0, 2, 1)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: if $data03 != 4 then
+ tdLog.info('tdSql.checkData(0, 3, 4)')
+ tdSql.checkData(0, 3, 4)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: sql select * from $mt where tgcol2 = 1 -x step2
+ tdLog.info('select * from %s where tgcol2 = 1 -x step2' % (mt))
+ tdSql.error('select * from %s where tgcol2 = 1' % (mt))
# TSIM: return -1
# TSIM: step2:
# TSIM:
@@ -235,6 +327,96 @@ class TDTestCase:
# TSIM: sql select * from $mt where tgcol2 = 1 -x step3
tdLog.info('select * from %s where tgcol2 = 1 -x step3' % (mt))
tdSql.error('select * from %s where tgcol2 = 1' % (mt))
+ tdLog.info('=============== step3-1')
+ # TSIM: $i = 3
+ i = 31
+ # TSIM: $mt = $mtPrefix . $i
+ mt = "%s%d" % (mtPrefix, i)
+ # TSIM: $tb = $tbPrefix . $i
+ tb = "%s%d" % (tbPrefix, i)
+ # TSIM: sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol1
+ # smallint, tgcol2 tinyint)
+ tdLog.info(
+ 'create table %s (ts timestamp, tbcol int) TAGS(tgcol1 smallint unsigned, tgcol2 tinyint unsigned)' %
+ (mt))
+ tdSql.execute(
+ 'create table %s (ts timestamp, tbcol int) TAGS(tgcol1 smallint unsigned, tgcol2 tinyint unsigned)' %
+ (mt))
+ # TSIM: sql create table $tb using $mt tags( 1, 2 )
+ tdLog.info('create table %s using %s tags( 1, 2 )' % (tb, mt))
+ tdSql.execute('create table %s using %s tags( 1, 2 )' % (tb, mt))
+ # TSIM: sql insert into $tb values(now, 1)
+ tdLog.info('insert into %s values(now, 1)' % (tb))
+ tdSql.execute('insert into %s values(now, 1)' % (tb))
+ # TSIM: sql select * from $mt where tgcol2 = 2
+ tdLog.info('select * from %s where tgcol2 = 2' % (mt))
+ tdSql.query('select * from %s where tgcol2 = 2' % (mt))
+ # TSIM: if $rows != 1 then
+ tdLog.info('tdSql.checkRow(1)')
+ tdSql.checkRows(1)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: if $data01 != 1 then
+ tdLog.info('tdSql.checkData(0, 1, 1)')
+ tdSql.checkData(0, 1, 1)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: if $data02 != 1 then
+ tdLog.info('tdSql.checkData(0, 2, 1)')
+ tdSql.checkData(0, 2, 1)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: if $data03 != 2 then
+ tdLog.info('tdSql.checkData(0, 3, 2)')
+ tdSql.checkData(0, 3, 2)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: sql alter table $mt drop tag tgcol2
+ tdLog.info('alter table %s drop tag tgcol2' % (mt))
+ tdSql.execute('alter table %s drop tag tgcol2' % (mt))
+ # TSIM: sql alter table $mt add tag tgcol4 tinyint
+ tdLog.info('alter table %s add tag tgcol4 tinyint unsigned' % (mt))
+ tdSql.execute('alter table %s add tag tgcol4 tinyint unsigned' % (mt))
+ # TSIM: sql reset query cache
+ tdLog.info('reset query cache')
+ tdSql.execute('reset query cache')
+ # TSIM: sql alter table $tb set tag tgcol4=4
+ tdLog.info('alter table %s set tag tgcol4=4' % (tb))
+ tdSql.execute('alter table %s set tag tgcol4=4' % (tb))
+ # TSIM: sql reset query cache
+ tdLog.info('reset query cache')
+ tdSql.execute('reset query cache')
+ # TSIM:
+ # TSIM: sql select * from $mt where tgcol4 = 4
+ tdLog.info('select * from %s where tgcol4 = 4' % (mt))
+ tdSql.query('select * from %s where tgcol4 = 4' % (mt))
+ # TSIM: print $data01 $data02 $data03
+ tdLog.info('$data01 $data02 $data03')
+ # TSIM: if $rows != 1 then
+ tdLog.info('tdSql.checkRow(1)')
+ tdSql.checkRows(1)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: if $data01 != 1 then
+ tdLog.info('tdSql.checkData(0, 1, 1)')
+ tdSql.checkData(0, 1, 1)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: if $data02 != 1 then
+ tdLog.info('tdSql.checkData(0, 2, 1)')
+ tdSql.checkData(0, 2, 1)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: if $data03 != 4 then
+ tdLog.info('tdSql.checkData(0, 3, 4)')
+ tdSql.checkData(0, 3, 4)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: sql select * from $mt where tgcol2 = 1 -x step3
+ tdLog.info('select * from %s where tgcol2 = 1 -x step3' % (mt))
+ tdSql.error('select * from %s where tgcol2 = 1' % (mt))
# TSIM: return -1
# TSIM: step3:
# TSIM:
@@ -353,6 +535,120 @@ class TDTestCase:
# TSIM: sql select * from $mt where tgcol2 = 1 -x step4
tdLog.info('select * from %s where tgcol2 = 1 -x step4' % (mt))
tdSql.error('select * from %s where tgcol2 = 1' % (mt))
+ tdLog.info('=============== step4-1')
+ # TSIM: $i = 4
+ i = 41
+ # TSIM: $mt = $mtPrefix . $i
+ mt = "%s%d" % (mtPrefix, i)
+ # TSIM: $tb = $tbPrefix . $i
+ tb = "%s%d" % (tbPrefix, i)
+ # TSIM: sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol1
+ # bigint, tgcol2 float)
+ tdLog.info(
+ 'create table %s (ts timestamp, tbcol int) TAGS(tgcol1 bigint unsigned, tgcol2 float)' %
+ (mt))
+ tdSql.execute(
+ 'create table %s (ts timestamp, tbcol int) TAGS(tgcol1 bigint unsigned, tgcol2 float)' %
+ (mt))
+ # TSIM: sql create table $tb using $mt tags( 1, 2 )
+ tdLog.info('create table %s using %s tags( 1, 2 )' % (tb, mt))
+ tdSql.execute('create table %s using %s tags( 1, 2 )' % (tb, mt))
+ # TSIM: sql insert into $tb values(now, 1)
+ tdLog.info('insert into %s values(now, 1)' % (tb))
+ tdSql.execute('insert into %s values(now, 1)' % (tb))
+ # TSIM: sql select * from $mt where tgcol2 = 2
+ tdLog.info('select * from %s where tgcol2 = 2' % (mt))
+ tdSql.query('select * from %s where tgcol2 = 2' % (mt))
+ # TSIM: if $rows != 1 then
+ tdLog.info('tdSql.checkRow(1)')
+ tdSql.checkRows(1)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: if $data01 != 1 then
+ tdLog.info('tdSql.checkData(0, 1, 1)')
+ tdSql.checkData(0, 1, 1)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: if $data02 != 1 then
+ tdLog.info('tdSql.checkData(0, 2, 1)')
+ tdSql.checkData(0, 2, 1)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: if $data03 != 2.00000 then
+ tdLog.info('tdSql.checkData(0, 3, 2.00000)')
+ tdSql.checkData(0, 3, 2.00000)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: sql describe $tb
+ tdLog.info('describe %s' % (tb))
+ tdSql.query('describe %s' % (tb))
+ # TSIM: if $data21 != BIGINT then
+ tdLog.info('tdSql.checkDataType(2, 1, "BIGINT UNSIGNED")')
+ tdSql.checkDataType(2, 1, "BIGINT")
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: if $data31 != FLOAT then
+ tdLog.info('tdSql.checkDataType(3, 1, "FLOAT")')
+ tdSql.checkDataType(3, 1, "FLOAT")
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: if $data23 != 1 then
+ tdLog.info('tdSql.checkData(2, 3, TAG)')
+ tdSql.checkData(2, 3, "TAG")
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: if $data33 != 2.000000 then
+ tdLog.info('tdSql.checkData(3, 3, 2.000000)')
+ tdSql.checkData(3, 3, "TAG")
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: sql alter table $mt drop tag tgcol2
+ tdLog.info('alter table %s drop tag tgcol2' % (mt))
+ tdSql.execute('alter table %s drop tag tgcol2' % (mt))
+ # TSIM: sql alter table $mt add tag tgcol4 float
+ tdLog.info('alter table %s add tag tgcol4 float' % (mt))
+ tdSql.execute('alter table %s add tag tgcol4 float' % (mt))
+ # TSIM: sql reset query cache
+ tdLog.info('reset query cache')
+ tdSql.execute('reset query cache')
+ # TSIM: sql alter table $tb set tag tgcol4=4
+ tdLog.info('alter table %s set tag tgcol4=4' % (tb))
+ tdSql.execute('alter table %s set tag tgcol4=4' % (tb))
+ # TSIM: sql reset query cache
+ tdLog.info('reset query cache')
+ tdSql.execute('reset query cache')
+ # TSIM:
+ # TSIM: sql select * from $mt where tgcol4 = 4
+ tdLog.info('select * from %s where tgcol4 = 4' % (mt))
+ tdSql.query('select * from %s where tgcol4 = 4' % (mt))
+ # TSIM: print $data01 $data02 $data03
+ tdLog.info('$data01 $data02 $data03')
+ # TSIM: if $rows != 1 then
+ tdLog.info('tdSql.checkRow(1)')
+ tdSql.checkRows(1)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: if $data01 != 1 then
+ tdLog.info('tdSql.checkData(0, 1, 1)')
+ tdSql.checkData(0, 1, 1)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: if $data02 != 1 then
+ tdLog.info('tdSql.checkData(0, 2, 1)')
+ tdSql.checkData(0, 2, 1)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: if $data03 != 4.00000 then
+ tdLog.info('tdSql.checkData(0, 3, 4.00000)')
+ tdSql.checkData(0, 3, 4.00000)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: sql select * from $mt where tgcol2 = 1 -x step4
+ tdLog.info('select * from %s where tgcol2 = 1 -x step4' % (mt))
+ tdSql.error('select * from %s where tgcol2 = 1' % (mt))
# TSIM: return -1
# TSIM: step4:
# TSIM:
@@ -408,12 +704,18 @@ class TDTestCase:
# TSIM: sql alter table $mt add tag tgcol4 smallint
tdLog.info('alter table %s add tag tgcol4 smallint' % (mt))
tdSql.execute('alter table %s add tag tgcol4 smallint' % (mt))
+ # TSIM: sql alter table $mt add tag tgcol5 smallint unsigned
+ tdLog.info('alter table %s add tag tgcol5 smallint unsigned' % (mt))
+ tdSql.execute('alter table %s add tag tgcol5 smallint unsigned' % (mt))
# TSIM: sql reset query cache
tdLog.info('reset query cache')
tdSql.execute('reset query cache')
# TSIM: sql alter table $tb set tag tgcol4=4
tdLog.info('alter table %s set tag tgcol4=4' % (tb))
tdSql.execute('alter table %s set tag tgcol4=4' % (tb))
+ # TSIM: sql alter table $tb set tag tgcol5=5
+ tdLog.info('alter table %s set tag tgcol5=5' % (tb))
+ tdSql.execute('alter table %s set tag tgcol5=5' % (tb))
# TSIM: sql reset query cache
tdLog.info('reset query cache')
tdSql.execute('reset query cache')
@@ -441,6 +743,11 @@ class TDTestCase:
# TSIM: if $data03 != 4 then
tdLog.info('tdSql.checkData(0, 3, 4)')
tdSql.checkData(0, 3, 4)
+ tdSql.query('select * from %s where tgcol5 = 5' % (mt))
+ tdSql.checkRows(1)
+ tdSql.checkData(0, 1, 1)
+ tdSql.checkData(0, 2, 1.000000000)
+ tdSql.checkData(0, 4, 5)
# TSIM: return -1
# TSIM: endi
# TSIM:
diff --git a/tests/pytest/tag_lite/delete.py b/tests/pytest/tag_lite/delete.py
index 17b4deb815e7a05aaa5eaf33685b95e144d3d59b..5e82a96bf41608782fca09d6aeb8b18aa1a727ef 100644
--- a/tests/pytest/tag_lite/delete.py
+++ b/tests/pytest/tag_lite/delete.py
@@ -869,6 +869,91 @@ class TDTestCase:
# TSIM: sql alter table $mt drop tag tgcol6
tdLog.info('alter table %s drop tag tgcol6' % (mt))
tdSql.execute('alter table %s drop tag tgcol6' % (mt))
+ tdLog.info('=============== step14')
+ # TSIM: $i = 14
+ i = 14
+ # TSIM: $mt = $mtPrefix . $i
+ mt = "%s%d" % (mtPrefix, i)
+ # TSIM: $tb = $tbPrefix . $i
+ tb = "%s%d" % (tbPrefix, i)
+ # TSIM: sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol1
+ # binary(10), tgcol2 int, tgcol3 smallint, tgcol4 binary(11), tgcol5
+ # double, tgcol6 binary(20))
+ tdLog.info(
+ 'create table %s (ts timestamp, tbcol int) TAGS(tgcol1 binary(10), tgcol2 int unsigned, tgcol3 smallint unsigned, tgcol4 binary(11), tgcol5 double, tgcol6 binary(20), tgcol7 tinyint unsigned, tgcol8 bigint unsigned)' %
+ (mt))
+ tdSql.execute(
+ 'create table %s (ts timestamp, tbcol int) TAGS(tgcol1 binary(10), tgcol2 int unsigned, tgcol3 smallint unsigned, tgcol4 binary(11), tgcol5 double, tgcol6 binary(20), tgcol7 tinyint unsigned, tgcol8 bigint unsigned)' %
+ (mt))
+ # TSIM: sql create table $tb using $mt tags( '1', 2, 3, '4', 5, '6' )
+ tdLog.info(
+ 'create table %s using %s tags( "1", 2, 3, "4", 5, "6", 7, 8 )' %
+ (tb, mt))
+ tdSql.execute(
+ 'create table %s using %s tags( "1", 2, 3, "4", 5, "6", 7, 8 )' %
+ (tb, mt))
+ # TSIM: sql insert into $tb values(now, 1)
+ tdLog.info('insert into %s values(now, 1)' % (tb))
+ tdSql.execute('insert into %s values(now, 1)' % (tb))
+ # TSIM: sql select * from $mt where tgcol1 = '1'
+ tdLog.info('select * from %s where tgcol1 = "1"' % (mt))
+ tdSql.query('select * from %s where tgcol1 = "1"' % (mt))
+ # TSIM: if $rows != 1 then
+ tdLog.info('tdSql.checkRow(1)')
+ tdSql.checkRows(1)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: if $data01 != 1 then
+ tdLog.info('tdSql.checkData(0, 1, 1)')
+ tdSql.checkData(0, 1, 1)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: if $data02 != 1 then
+ tdLog.info('tdSql.checkData(0, 2, "1")')
+ tdSql.checkData(0, 2, "1")
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: if $data03 != 2 then
+ tdLog.info('tdSql.checkData(0, 3, 2)')
+ tdSql.checkData(0, 3, 2)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: if $data04 != 3 then
+ tdLog.info('tdSql.checkData(0, 4, 3)')
+ tdSql.checkData(0, 4, 3)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: if $data05 != 4 then
+ tdLog.info('tdSql.checkData(0, 5, "4")')
+ tdSql.checkData(0, 5, "4")
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: if $data06 != 5.000000000 then
+ tdLog.info('tdSql.checkData(0, 6, 5.000000000)')
+ tdSql.checkData(0, 6, 5.000000000)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: if $data07 != 6 then
+ tdLog.info('tdSql.checkData(0, 7, "6")')
+ tdSql.checkData(0, 7, "6")
+ tdLog.info('tdSql.checkData(0, 8, 7)')
+ tdSql.checkData(0, 8, 7)
+ tdLog.info('tdSql.checkData(0, 9, 8)')
+ tdSql.checkData(0, 9, 8)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: sql alter table $mt drop tag tgcol3
+ tdLog.info('alter table %s drop tag tgcol3' % (mt))
+ tdSql.execute('alter table %s drop tag tgcol3' % (mt))
+ # TSIM: sql alter table $mt drop tag tgcol4
+ tdLog.info('alter table %s drop tag tgcol4' % (mt))
+ tdSql.execute('alter table %s drop tag tgcol4' % (mt))
+ # TSIM: sql alter table $mt drop tag tgcol6
+ tdLog.info('alter table %s drop tag tgcol6' % (mt))
+ tdSql.execute('alter table %s drop tag tgcol6' % (mt))
+ tdLog.info('alter table %s drop tag tgcol8' % (mt))
+ tdSql.execute('alter table %s drop tag tgcol8' % (mt))
# TSIM:
# TSIM: sleep 5000
# TSIM:
@@ -1556,7 +1641,7 @@ class TDTestCase:
# TSIM: print =============== step14
tdLog.info('=============== step14')
# TSIM: $i = 14
- i = 14
+ i = 20
# TSIM: $mt = $mtPrefix . $i
mt = "%s%d" % (mtPrefix, i)
# TSIM: $tb = $tbPrefix . $i
diff --git a/tests/pytest/tag_lite/unsignedBigint.py b/tests/pytest/tag_lite/unsignedBigint.py
new file mode 100644
index 0000000000000000000000000000000000000000..032dacd366437c378b0b8c9b553d6495966cd563
--- /dev/null
+++ b/tests/pytest/tag_lite/unsignedBigint.py
@@ -0,0 +1,602 @@
+# -*- coding: utf-8 -*-
+
+import sys
+from util.log import *
+from util.cases import *
+from util.sql import *
+
+
+class TDTestCase:
+ def init(self, conn, logSql):
+ tdLog.debug("start to execute %s" % __file__)
+ tdSql.init(conn.cursor(), logSql)
+
+ def run(self):
+ tdSql.prepare()
+
+ # TSIM: system sh/stop_dnodes.sh
+ # TSIM:
+ # TSIM:
+ # TSIM: system sh/deploy.sh -n dnode1 -i 1
+ # TSIM: system sh/cfg.sh -n dnode1 -c walLevel -v 0
+ # TSIM: system sh/exec.sh -n dnode1 -s start
+ # TSIM:
+ # TSIM: sleep 3000
+ # TSIM: sql connect
+ # TSIM:
+ # TSIM: print ======================== dnode1 start
+ tdLog.info('======================== dnode1 start')
+ # TSIM:
+ # TSIM: $dbPrefix = ta_sm_db
+ # TSIM: $tbPrefix = ta_sm_tb
+ tbPrefix = "ta_sm_tb"
+ # TSIM: $mtPrefix = ta_sm_mt
+ mtPrefix = "ta_sm_mt"
+ # TSIM: $tbNum = 10
+ tbNum = 10
+ # TSIM: $rowNum = 20
+ rowNum = 20
+ # TSIM: $totalNum = 200
+ totalNum = 200
+ # TSIM:
+ # TSIM: print =============== step1
+ tdLog.info('=============== step1')
+ # TSIM: $i = 0
+ i = 0
+ # TSIM: $db = $dbPrefix . $i
+ # TSIM: $mt = $mtPrefix . $i
+ mt = "%s%d" % (mtPrefix, i)
+ # TSIM:
+ # TSIM: sql create database $db
+ # TSIM: sql use $db
+ # TSIM: sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol
+ # bigint unsigned)
+ tdLog.info(
+ 'create table %s (ts timestamp, tbcol int) TAGS(tgcol bigint unsigned)' %
+ (mt))
+ tdSql.execute(
+ 'create table %s (ts timestamp, tbcol int) TAGS(tgcol bigint unsigned)' %
+ (mt))
+ # TSIM:
+ # TSIM: $i = 0
+ i = 0
+ # TSIM: while $i < 5
+ while (i < 5):
+ # TSIM: $tb = $tbPrefix . $i
+ tb = "%s%d" % (tbPrefix, i)
+ # TSIM: sql create table $tb using $mt tags( 0 )
+ tdLog.info('create table %s using %s tags( 0 )' % (tb, mt))
+ tdSql.execute('create table %s using %s tags( 0 )' % (tb, mt))
+ # TSIM: $x = 0
+ x = 0
+ # TSIM: while $x < $rowNum
+ while (x < rowNum):
+ # TSIM: $ms = $x . m
+ ms = "%dm" % x
+ # TSIM: sql insert into $tb values (now + $ms , $x )
+ tdLog.info(
+ 'insert into %s values (now + %s , %d )' %
+ (tb, ms, x))
+ tdSql.execute(
+ 'insert into %s values (now + %s , %d )' %
+ (tb, ms, x))
+ # TSIM: $x = $x + 1
+ x = x + 1
+ # TSIM: endw
+ # TSIM: $i = $i + 1
+ i = i + 1
+ # TSIM: endw
+ # TSIM: while $i < 10
+ while (i < 10):
+ # TSIM: $tb = $tbPrefix . $i
+ tb = "%s%d" % (tbPrefix, i)
+ # TSIM: sql create table $tb using $mt tags( 1 )
+ tdLog.info('create table %s using %s tags( 1 )' % (tb, mt))
+ tdSql.execute('create table %s using %s tags( 1 )' % (tb, mt))
+ # TSIM: $x = 0
+ x = 0
+ # TSIM: while $x < $rowNum
+ while (x < rowNum):
+ # TSIM: $ms = $x . m
+ ms = "%dm" % x
+ # TSIM: sql insert into $tb values (now + $ms , $x )
+ tdLog.info(
+ 'insert into %s values (now + %s , %d )' %
+ (tb, ms, x))
+ tdSql.execute(
+ 'insert into %s values (now + %s , %d )' %
+ (tb, ms, x))
+ # TSIM: $x = $x + 1
+ x = x + 1
+ # TSIM: endw
+ # TSIM: $i = $i + 1
+ i = i + 1
+ # TSIM: endw
+ # TSIM:
+ # TSIM: print =============== step2
+ tdLog.info('=============== step2')
+ # TSIM: sleep 100
+ # TSIM: sql select * from $tb
+ tdLog.info('select * from %s' % (tb))
+ tdSql.query('select * from %s' % (tb))
+ # TSIM: if $rows != $rowNum then
+ tdLog.info('tdSql.checkRow($rowNum)')
+ tdSql.checkRows(rowNum)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts < now + 4m
+ tdLog.info('select * from %s where ts < now + 4m' % (tb))
+ tdSql.query('select * from %s where ts < now + 4m' % (tb))
+ # TSIM: if $rows != 5 then
+ tdLog.info('tdSql.checkRow(5)')
+ tdSql.checkRows(5)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts <= now + 4m
+ tdLog.info('select * from %s where ts <= now + 4m' % (tb))
+ tdSql.query('select * from %s where ts <= now + 4m' % (tb))
+ # TSIM: if $rows != 5 then
+ tdLog.info('tdSql.checkRow(5)')
+ tdSql.checkRows(5)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts > now + 4m
+ tdLog.info('select * from %s where ts > now + 4m' % (tb))
+ tdSql.query('select * from %s where ts > now + 4m' % (tb))
+ # TSIM: if $rows != 15 then
+ tdLog.info('tdSql.checkRow(15)')
+ tdSql.checkRows(15)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts >= now + 4m
+ tdLog.info('select * from %s where ts >= now + 4m' % (tb))
+ tdSql.query('select * from %s where ts >= now + 4m' % (tb))
+ # TSIM: if $rows != 15 then
+ tdLog.info('tdSql.checkRow(15)')
+ tdSql.checkRows(15)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts > now + 4m and ts < now + 5m
+ tdLog.info(
+ 'select * from %s where ts > now + 4m and ts < now + 5m' %
+ (tb))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and ts < now + 5m' %
+ (tb))
+ # TSIM: if $rows != 1 then
+ tdLog.info('tdSql.checkRow(1)')
+ tdSql.checkRows(1)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts < now + 4m and ts > now + 5m
+ tdLog.info(
+ 'select * from %s where ts < now + 4m and ts > now + 5m' %
+ (tb))
+ tdSql.query(
+ 'select * from %s where ts < now + 4m and ts > now + 5m' %
+ (tb))
+ # TSIM: if $rows != 0 then
+ tdLog.info('tdSql.checkRow(0)')
+ tdSql.checkRows(0)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts > 100000 and ts < 100000
+ tdLog.info('select * from %s where ts > 100000 and ts < 100000' % (tb))
+ tdSql.query(
+ 'select * from %s where ts > 100000 and ts < 100000' %
+ (tb))
+ # TSIM: if $rows != 0 then
+ tdLog.info('tdSql.checkRow(0)')
+ tdSql.checkRows(0)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts > now + 4m and ts < now + 3m
+ tdLog.info(
+ 'select * from %s where ts > now + 4m and ts < now + 3m' %
+ (tb))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and ts < now + 3m' %
+ (tb))
+ # TSIM: if $rows != 0 then
+ tdLog.info('tdSql.checkRow(0)')
+ tdSql.checkRows(0)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts > now + 4m and ts > now + 5m and
+ # ts < now + 6m
+ tdLog.info(
+ 'select * from %s where ts > now + 4m and ts > now + 5m and ts < now + 6m' %
+ (tb))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and ts > now + 5m and ts < now + 6m' %
+ (tb))
+ # TSIM: if $rows != 1 then
+ tdLog.info('tdSql.checkRow(1)')
+ tdSql.checkRows(1)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step3
+ tdLog.info('=============== step3')
+ # TSIM: sql select * from $mt
+ tdLog.info('select * from %s' % (mt))
+ tdSql.query('select * from %s' % (mt))
+ # TSIM: if $rows != $totalNum then
+ tdLog.info('tdSql.checkRow($totalNum)')
+ tdSql.checkRows(totalNum)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: sql select * from $mt where ts < now + 4m
+ tdLog.info('select * from %s where ts < now + 4m' % (mt))
+ tdSql.query('select * from %s where ts < now + 4m' % (mt))
+ # TSIM: if $rows != 50 then
+ tdLog.info('tdSql.checkRow(50)')
+ tdSql.checkRows(50)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts > now + 4m
+ tdLog.info('select * from %s where ts > now + 4m' % (mt))
+ tdSql.query('select * from %s where ts > now + 4m' % (mt))
+ # TSIM: if $rows != 150 then
+ tdLog.info('tdSql.checkRow(150)')
+ tdSql.checkRows(150)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts = now + 4m
+ tdLog.info('select * from %s where ts = now + 4m' % (mt))
+ tdSql.query('select * from %s where ts = now + 4m' % (mt))
+ # TSIM: if $rows != 0 then
+ tdLog.info('tdSql.checkRow(0)')
+ tdSql.checkRows(0)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts > now + 4m and ts < now + 5m
+ tdLog.info(
+ 'select * from %s where ts > now + 4m and ts < now + 5m' %
+ (mt))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and ts < now + 5m' %
+ (mt))
+ # TSIM: if $rows != 10 then
+ tdLog.info('tdSql.checkRow(10)')
+ tdSql.checkRows(10)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step4
+ tdLog.info('=============== step4')
+ # TSIM: sql select * from $mt where tgcol = 0
+ tdLog.info('select * from %s where tgcol = 0' % (mt))
+ tdSql.query('select * from %s where tgcol = 0' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where tgcol <> 0
+ tdLog.info('select * from %s where tgcol <> 0' % (mt))
+ tdSql.query('select * from %s where tgcol <> 0' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where tgcol = 1
+ tdLog.info('select * from %s where tgcol = 1' % (mt))
+ tdSql.query('select * from %s where tgcol = 1' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where tgcol <> 1
+ tdLog.info('select * from %s where tgcol <> 1' % (mt))
+ tdSql.query('select * from %s where tgcol <> 1' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where tgcol = 1
+ tdLog.info('select * from %s where tgcol = 1' % (mt))
+ tdSql.query('select * from %s where tgcol = 1' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where tgcol <> 1
+ tdLog.info('select * from %s where tgcol <> 1' % (mt))
+ tdSql.query('select * from %s where tgcol <> 1' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where tgcol = 0
+ tdLog.info('select * from %s where tgcol = 0' % (mt))
+ tdSql.query('select * from %s where tgcol = 0' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where tgcol <> 0
+ tdLog.info('select * from %s where tgcol <> 0' % (mt))
+ tdSql.query('select * from %s where tgcol <> 0' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step5
+ tdLog.info('=============== step5')
+ # TSIM: sql select * from $mt where ts > now + 4m and tgcol = 1
+ tdLog.info('select * from %s where ts > now + 4m and tgcol = 1' % (mt))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and tgcol = 1' %
+ (mt))
+ # TSIM: if $rows != 75 then
+ tdLog.info('tdSql.checkRow(75)')
+ tdSql.checkRows(75)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts > now + 4m and tgcol <> 1
+ tdLog.info(
+ 'select * from %s where ts > now + 4m and tgcol <> 1' %
+ (mt))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and tgcol <> 1' %
+ (mt))
+ # TSIM: if $rows != 75 then
+ tdLog.info('tdSql.checkRow(75)')
+ tdSql.checkRows(75)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts < now + 4m and tgcol = 0
+ tdLog.info('select * from %s where ts < now + 4m and tgcol = 0' % (mt))
+ tdSql.query(
+ 'select * from %s where ts < now + 4m and tgcol = 0' %
+ (mt))
+ # TSIM: if $rows != 25 then
+ tdLog.info('tdSql.checkRow(25)')
+ tdSql.checkRows(25)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts < now + 4m and tgcol <> 0
+ tdLog.info(
+ 'select * from %s where ts < now + 4m and tgcol <> 0' %
+ (mt))
+ tdSql.query(
+ 'select * from %s where ts < now + 4m and tgcol <> 0' %
+ (mt))
+ # TSIM: if $rows != 25 then
+ tdLog.info('tdSql.checkRow(25)')
+ tdSql.checkRows(25)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts <= now + 4m and tgcol = 0
+ tdLog.info(
+ 'select * from %s where ts <= now + 4m and tgcol = 0' %
+ (mt))
+ tdSql.query(
+ 'select * from %s where ts <= now + 4m and tgcol = 0' %
+ (mt))
+ # TSIM: if $rows != 25 then
+ tdLog.info('tdSql.checkRow(25)')
+ tdSql.checkRows(25)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts <= now + 4m and tgcol <> 0
+ tdLog.info(
+ 'select * from %s where ts <= now + 4m and tgcol <> 0' %
+ (mt))
+ tdSql.query(
+ 'select * from %s where ts <= now + 4m and tgcol <> 0' %
+ (mt))
+ # TSIM: if $rows != 25 then
+ tdLog.info('tdSql.checkRow(25)')
+ tdSql.checkRows(25)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts > now + 4m and ts < now + 5m and
+ # tgcol <> 0
+ tdLog.info(
+ 'select * from %s where ts > now + 4m and ts < now + 5m and tgcol <> 0' %
+ (mt))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and ts < now + 5m and tgcol <> 0' %
+ (mt))
+ # TSIM: if $rows != 5 then
+ tdLog.info('tdSql.checkRow(5)')
+ tdSql.checkRows(5)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts > now + 4m and tgcol <> 0 and ts
+ # < now + 5m
+ tdLog.info(
+ 'select * from %s where ts > now + 4m and tgcol <> 0 and ts < now + 5m' %
+ (mt))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and tgcol <> 0 and ts < now + 5m' %
+ (mt))
+ # TSIM: if $rows != 5 then
+ tdLog.info('tdSql.checkRow(5)')
+ tdSql.checkRows(5)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step6
+ tdLog.info('=============== step6')
+ # TSIM: sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol),
+ # max(tbcol), first(tbcol), last(tbcol) from $mt
+ tdLog.info(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s' %
+ (mt))
+ tdSql.query(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s' %
+ (mt))
+ # TSIM: print $data00 $data01 $data02 $data03 $data04 $data05 $data06
+ tdLog.info('$data00 $data01 $data02 $data03 $data04 $data05 $data06')
+ # TSIM: if $data00 != 200 then
+ tdLog.info('tdSql.checkData(0, 0, 200)')
+ tdSql.checkData(0, 0, 200)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step7
+ tdLog.info('=============== step7')
+ # TSIM: sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol),
+ # max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol = 1
+ tdLog.info(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where tgcol = 1' %
+ (mt))
+ tdSql.query(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where tgcol = 1' %
+ (mt))
+ # TSIM: print $data00 $data01 $data02 $data03 $data04 $data05 $data06
+ tdLog.info('$data00 $data01 $data02 $data03 $data04 $data05 $data06')
+ # TSIM: if $data00 != 100 then
+ tdLog.info('tdSql.checkData(0, 0, 100)')
+ tdSql.checkData(0, 0, 100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step8
+ tdLog.info('=============== step8')
+ # TSIM: sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol),
+ # max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m
+ tdLog.info(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where ts < now + 4m' %
+ (mt))
+ tdSql.query(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where ts < now + 4m' %
+ (mt))
+ # TSIM: print $data00 $data01 $data02 $data03 $data04 $data05 $data06
+ tdLog.info('$data00 $data01 $data02 $data03 $data04 $data05 $data06')
+ # TSIM: if $data00 != 50 then
+ tdLog.info('tdSql.checkData(0, 0, 50)')
+ tdSql.checkData(0, 0, 50)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step9
+ tdLog.info('=============== step9')
+ # TSIM: sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol),
+ # max(tbcol), first(tbcol), last(tbcol) from $mt group by tgcol
+ tdLog.info(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s group by tgcol' %
+ (mt))
+ tdSql.query(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s group by tgcol' %
+ (mt))
+ # TSIM: print $data00 $data01 $data02 $data03 $data04 $data05 $data06
+ tdLog.info('$data00 $data01 $data02 $data03 $data04 $data05 $data06')
+ # TSIM: if $data00 != 100 then
+ tdLog.info('tdSql.checkData(0, 0, 100)')
+ tdSql.checkData(0, 0, 100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step10
+ tdLog.info('=============== step10')
+ # TSIM: sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol),
+ # max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol = 1 group
+ # by tgcol
+ tdLog.info(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where tgcol = 1 group by tgcol' %
+ (mt))
+ tdSql.query(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where tgcol = 1 group by tgcol' %
+ (mt))
+ # TSIM: print $data00 $data01 $data02 $data03 $data04 $data05 $data06
+ tdLog.info('$data00 $data01 $data02 $data03 $data04 $data05 $data06')
+ # TSIM: if $data00 != 100 then
+ tdLog.info('tdSql.checkData(0, 0, 100)')
+ tdSql.checkData(0, 0, 100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step11
+ tdLog.info('=============== step11')
+ # TSIM: sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol),
+ # max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m
+ # group by tgcol
+ tdLog.info(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where ts < now + 4m group by tgcol' %
+ (mt))
+ tdSql.query(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where ts < now + 4m group by tgcol' %
+ (mt))
+ # TSIM: print $data00 $data01 $data02 $data03 $data04 $data05 $data06
+ tdLog.info('$data00 $data01 $data02 $data03 $data04 $data05 $data06')
+ # TSIM: if $data00 != 25 then
+ tdLog.info('tdSql.checkData(0, 0, 25)')
+ tdSql.checkData(0, 0, 25)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM:
+ # TSIM: print =============== step12
+ tdLog.info('=============== step12')
+ # TSIM: sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol),
+ # max(tbcol), first(tbcol), last(tbcol) from $mt interval(1d) group by
+ # tgcol
+ tdLog.info(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s interval(1d) group by tgcol' %
+ (mt))
+ tdSql.query(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s interval(1d) group by tgcol' %
+ (mt))
+ # TSIM: print $data00 $data01 $data02 $data03 $data04 $data05 $data06
+ tdLog.info('$data00 $data01 $data02 $data03 $data04 $data05 $data06')
+ # TSIM: if $data01 != 100 then
+ tdLog.info('tdSql.checkData(0, 1, 100)')
+ tdSql.checkData(0, 1, 100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== clear
+ tdLog.info('=============== clear')
+ # TSIM: sql drop database $db
+ tdLog.info('drop database db')
+ tdSql.execute('drop database db')
+ # TSIM: sql show databases
+ tdLog.info('show databases')
+ tdSql.query('show databases')
+ # TSIM: if $rows != 0 then
+ tdLog.info('tdSql.checkRow(0)')
+ tdSql.checkRows(0)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: system sh/exec.sh -n dnode1 -s stop -x SIGINT
+# convert end
+ tdSql.execute("create database db")
+ tdSql.execute("use db")
+ tdSql.execute(
+ "create table if not exists st (ts timestamp, tagtype int) tags(dev bigint unsigned)")
+ tdSql.error(
+ 'CREATE TABLE if not exists dev_001 using st tags(%d)' % (pow(2, 64) - 1))
+ tdSql.error(
+ 'CREATE TABLE if not exists dev_001 using st tags(%d)' % (-1))
+
+ tdSql.execute(
+ 'CREATE TABLE if not exists dev_001 using st tags(%d)' % (pow(2, 64) - 2))
+ tdSql.execute(
+ 'CREATE TABLE if not exists dev_002 using st tags(%d)' % (0))
+ tdSql.execute(
+ 'CREATE TABLE if not exists dev_003 using st tags(%s)' % ('NULL'))
+ print("==============step2")
+ tdSql.query("show tables")
+ tdSql.checkRows(3)
+
+ def stop(self):
+ tdSql.close()
+ tdLog.success("%s successfully executed" % __file__)
+
+
+tdCases.addWindows(__file__, TDTestCase())
+tdCases.addLinux(__file__, TDTestCase())
diff --git a/tests/pytest/tag_lite/unsignedInt.py b/tests/pytest/tag_lite/unsignedInt.py
new file mode 100644
index 0000000000000000000000000000000000000000..6efe12edf110f70d9c2c0187429a0696372bae49
--- /dev/null
+++ b/tests/pytest/tag_lite/unsignedInt.py
@@ -0,0 +1,602 @@
+# -*- coding: utf-8 -*-
+
+import sys
+from util.log import *
+from util.cases import *
+from util.sql import *
+
+
+class TDTestCase:
+ def init(self, conn, logSql):
+ tdLog.debug("start to execute %s" % __file__)
+ tdSql.init(conn.cursor(), logSql)
+
+ def run(self):
+ tdSql.prepare()
+
+ # TSIM: system sh/stop_dnodes.sh
+ # TSIM:
+ # TSIM:
+ # TSIM: system sh/deploy.sh -n dnode1 -i 1
+ # TSIM: system sh/cfg.sh -n dnode1 -c walLevel -v 0
+ # TSIM: system sh/exec.sh -n dnode1 -s start
+ # TSIM:
+ # TSIM: sleep 3000
+ # TSIM: sql connect
+ # TSIM:
+ # TSIM: print ======================== dnode1 start
+ tdLog.info('======================== dnode1 start')
+ # TSIM:
+ # TSIM: $dbPrefix = ta_sm_db
+ # TSIM: $tbPrefix = ta_sm_tb
+ tbPrefix = "ta_sm_tb"
+ # TSIM: $mtPrefix = ta_sm_mt
+ mtPrefix = "ta_sm_mt"
+ # TSIM: $tbNum = 10
+ tbNum = 10
+ # TSIM: $rowNum = 20
+ rowNum = 20
+ # TSIM: $totalNum = 200
+ totalNum = 200
+ # TSIM:
+ # TSIM: print =============== step1
+ tdLog.info('=============== step1')
+ # TSIM: $i = 0
+ i = 0
+ # TSIM: $db = $dbPrefix . $i
+ # TSIM: $mt = $mtPrefix . $i
+ mt = "%s%d" % (mtPrefix, i)
+ # TSIM:
+ # TSIM: sql create database $db
+ # TSIM: sql use $db
+ # TSIM: sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol
+ # int unsigned)
+ tdLog.info(
+ 'create table %s (ts timestamp, tbcol int) TAGS(tgcol int unsigned)' %
+ (mt))
+ tdSql.execute(
+ 'create table %s (ts timestamp, tbcol int) TAGS(tgcol int unsigned)' %
+ (mt))
+ # TSIM:
+ # TSIM: $i = 0
+ i = 0
+ # TSIM: while $i < 5
+ while (i < 5):
+ # TSIM: $tb = $tbPrefix . $i
+ tb = "%s%d" % (tbPrefix, i)
+ # TSIM: sql create table $tb using $mt tags( 0 )
+ tdLog.info('create table %s using %s tags( 0 )' % (tb, mt))
+ tdSql.execute('create table %s using %s tags( 0 )' % (tb, mt))
+ # TSIM: $x = 0
+ x = 0
+ # TSIM: while $x < $rowNum
+ while (x < rowNum):
+ # TSIM: $ms = $x . m
+ ms = "%dm" % x
+ # TSIM: sql insert into $tb values (now + $ms , $x )
+ tdLog.info(
+ 'insert into %s values (now + %s , %d )' %
+ (tb, ms, x))
+ tdSql.execute(
+ 'insert into %s values (now + %s , %d )' %
+ (tb, ms, x))
+ # TSIM: $x = $x + 1
+ x = x + 1
+ # TSIM: endw
+ # TSIM: $i = $i + 1
+ i = i + 1
+ # TSIM: endw
+ # TSIM: while $i < 10
+ while (i < 10):
+ # TSIM: $tb = $tbPrefix . $i
+ tb = "%s%d" % (tbPrefix, i)
+ # TSIM: sql create table $tb using $mt tags( 1 )
+ tdLog.info('create table %s using %s tags( 1 )' % (tb, mt))
+ tdSql.execute('create table %s using %s tags( 1 )' % (tb, mt))
+ # TSIM: $x = 0
+ x = 0
+ # TSIM: while $x < $rowNum
+ while (x < rowNum):
+ # TSIM: $ms = $x . m
+ ms = "%dm" % x
+ # TSIM: sql insert into $tb values (now + $ms , $x )
+ tdLog.info(
+ 'insert into %s values (now + %s , %d )' %
+ (tb, ms, x))
+ tdSql.execute(
+ 'insert into %s values (now + %s , %d )' %
+ (tb, ms, x))
+ # TSIM: $x = $x + 1
+ x = x + 1
+ # TSIM: endw
+ # TSIM: $i = $i + 1
+ i = i + 1
+ # TSIM: endw
+ # TSIM:
+ # TSIM: print =============== step2
+ tdLog.info('=============== step2')
+ # TSIM: sleep 100
+ # TSIM: sql select * from $tb
+ tdLog.info('select * from %s' % (tb))
+ tdSql.query('select * from %s' % (tb))
+ # TSIM: if $rows != $rowNum then
+ tdLog.info('tdSql.checkRow($rowNum)')
+ tdSql.checkRows(rowNum)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts < now + 4m
+ tdLog.info('select * from %s where ts < now + 4m' % (tb))
+ tdSql.query('select * from %s where ts < now + 4m' % (tb))
+ # TSIM: if $rows != 5 then
+ tdLog.info('tdSql.checkRow(5)')
+ tdSql.checkRows(5)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts <= now + 4m
+ tdLog.info('select * from %s where ts <= now + 4m' % (tb))
+ tdSql.query('select * from %s where ts <= now + 4m' % (tb))
+ # TSIM: if $rows != 5 then
+ tdLog.info('tdSql.checkRow(5)')
+ tdSql.checkRows(5)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts > now + 4m
+ tdLog.info('select * from %s where ts > now + 4m' % (tb))
+ tdSql.query('select * from %s where ts > now + 4m' % (tb))
+ # TSIM: if $rows != 15 then
+ tdLog.info('tdSql.checkRow(15)')
+ tdSql.checkRows(15)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts >= now + 4m
+ tdLog.info('select * from %s where ts >= now + 4m' % (tb))
+ tdSql.query('select * from %s where ts >= now + 4m' % (tb))
+ # TSIM: if $rows != 15 then
+ tdLog.info('tdSql.checkRow(15)')
+ tdSql.checkRows(15)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts > now + 4m and ts < now + 5m
+ tdLog.info(
+ 'select * from %s where ts > now + 4m and ts < now + 5m' %
+ (tb))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and ts < now + 5m' %
+ (tb))
+ # TSIM: if $rows != 1 then
+ tdLog.info('tdSql.checkRow(1)')
+ tdSql.checkRows(1)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts < now + 4m and ts > now + 5m
+ tdLog.info(
+ 'select * from %s where ts < now + 4m and ts > now + 5m' %
+ (tb))
+ tdSql.query(
+ 'select * from %s where ts < now + 4m and ts > now + 5m' %
+ (tb))
+ # TSIM: if $rows != 0 then
+ tdLog.info('tdSql.checkRow(0)')
+ tdSql.checkRows(0)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts > 100000 and ts < 100000
+ tdLog.info('select * from %s where ts > 100000 and ts < 100000' % (tb))
+ tdSql.query(
+ 'select * from %s where ts > 100000 and ts < 100000' %
+ (tb))
+ # TSIM: if $rows != 0 then
+ tdLog.info('tdSql.checkRow(0)')
+ tdSql.checkRows(0)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts > now + 4m and ts < now + 3m
+ tdLog.info(
+ 'select * from %s where ts > now + 4m and ts < now + 3m' %
+ (tb))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and ts < now + 3m' %
+ (tb))
+ # TSIM: if $rows != 0 then
+ tdLog.info('tdSql.checkRow(0)')
+ tdSql.checkRows(0)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts > now + 4m and ts > now + 5m and
+ # ts < now + 6m
+ tdLog.info(
+ 'select * from %s where ts > now + 4m and ts > now + 5m and ts < now + 6m' %
+ (tb))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and ts > now + 5m and ts < now + 6m' %
+ (tb))
+ # TSIM: if $rows != 1 then
+ tdLog.info('tdSql.checkRow(1)')
+ tdSql.checkRows(1)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step3
+ tdLog.info('=============== step3')
+ # TSIM: sql select * from $mt
+ tdLog.info('select * from %s' % (mt))
+ tdSql.query('select * from %s' % (mt))
+ # TSIM: if $rows != $totalNum then
+ tdLog.info('tdSql.checkRow($totalNum)')
+ tdSql.checkRows(totalNum)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: sql select * from $mt where ts < now + 4m
+ tdLog.info('select * from %s where ts < now + 4m' % (mt))
+ tdSql.query('select * from %s where ts < now + 4m' % (mt))
+ # TSIM: if $rows != 50 then
+ tdLog.info('tdSql.checkRow(50)')
+ tdSql.checkRows(50)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts > now + 4m
+ tdLog.info('select * from %s where ts > now + 4m' % (mt))
+ tdSql.query('select * from %s where ts > now + 4m' % (mt))
+ # TSIM: if $rows != 150 then
+ tdLog.info('tdSql.checkRow(150)')
+ tdSql.checkRows(150)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts = now + 4m
+ tdLog.info('select * from %s where ts = now + 4m' % (mt))
+ tdSql.query('select * from %s where ts = now + 4m' % (mt))
+ # TSIM: if $rows != 0 then
+ tdLog.info('tdSql.checkRow(0)')
+ tdSql.checkRows(0)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts > now + 4m and ts < now + 5m
+ tdLog.info(
+ 'select * from %s where ts > now + 4m and ts < now + 5m' %
+ (mt))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and ts < now + 5m' %
+ (mt))
+ # TSIM: if $rows != 10 then
+ tdLog.info('tdSql.checkRow(10)')
+ tdSql.checkRows(10)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step4
+ tdLog.info('=============== step4')
+ # TSIM: sql select * from $mt where tgcol = 0
+ tdLog.info('select * from %s where tgcol = 0' % (mt))
+ tdSql.query('select * from %s where tgcol = 0' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where tgcol <> 0
+ tdLog.info('select * from %s where tgcol <> 0' % (mt))
+ tdSql.query('select * from %s where tgcol <> 0' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where tgcol = 1
+ tdLog.info('select * from %s where tgcol = 1' % (mt))
+ tdSql.query('select * from %s where tgcol = 1' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where tgcol <> 1
+ tdLog.info('select * from %s where tgcol <> 1' % (mt))
+ tdSql.query('select * from %s where tgcol <> 1' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where tgcol = 1
+ tdLog.info('select * from %s where tgcol = 1' % (mt))
+ tdSql.query('select * from %s where tgcol = 1' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where tgcol <> 1
+ tdLog.info('select * from %s where tgcol <> 1' % (mt))
+ tdSql.query('select * from %s where tgcol <> 1' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where tgcol = 0
+ tdLog.info('select * from %s where tgcol = 0' % (mt))
+ tdSql.query('select * from %s where tgcol = 0' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where tgcol <> 0
+ tdLog.info('select * from %s where tgcol <> 0' % (mt))
+ tdSql.query('select * from %s where tgcol <> 0' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step5
+ tdLog.info('=============== step5')
+ # TSIM: sql select * from $mt where ts > now + 4m and tgcol = 1
+ tdLog.info('select * from %s where ts > now + 4m and tgcol = 1' % (mt))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and tgcol = 1' %
+ (mt))
+ # TSIM: if $rows != 75 then
+ tdLog.info('tdSql.checkRow(75)')
+ tdSql.checkRows(75)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts > now + 4m and tgcol <> 1
+ tdLog.info(
+ 'select * from %s where ts > now + 4m and tgcol <> 1' %
+ (mt))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and tgcol <> 1' %
+ (mt))
+ # TSIM: if $rows != 75 then
+ tdLog.info('tdSql.checkRow(75)')
+ tdSql.checkRows(75)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts < now + 4m and tgcol = 0
+ tdLog.info('select * from %s where ts < now + 4m and tgcol = 0' % (mt))
+ tdSql.query(
+ 'select * from %s where ts < now + 4m and tgcol = 0' %
+ (mt))
+ # TSIM: if $rows != 25 then
+ tdLog.info('tdSql.checkRow(25)')
+ tdSql.checkRows(25)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts < now + 4m and tgcol <> 0
+ tdLog.info(
+ 'select * from %s where ts < now + 4m and tgcol <> 0' %
+ (mt))
+ tdSql.query(
+ 'select * from %s where ts < now + 4m and tgcol <> 0' %
+ (mt))
+ # TSIM: if $rows != 25 then
+ tdLog.info('tdSql.checkRow(25)')
+ tdSql.checkRows(25)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts <= now + 4m and tgcol = 0
+ tdLog.info(
+ 'select * from %s where ts <= now + 4m and tgcol = 0' %
+ (mt))
+ tdSql.query(
+ 'select * from %s where ts <= now + 4m and tgcol = 0' %
+ (mt))
+ # TSIM: if $rows != 25 then
+ tdLog.info('tdSql.checkRow(25)')
+ tdSql.checkRows(25)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts <= now + 4m and tgcol <> 0
+ tdLog.info(
+ 'select * from %s where ts <= now + 4m and tgcol <> 0' %
+ (mt))
+ tdSql.query(
+ 'select * from %s where ts <= now + 4m and tgcol <> 0' %
+ (mt))
+ # TSIM: if $rows != 25 then
+ tdLog.info('tdSql.checkRow(25)')
+ tdSql.checkRows(25)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts > now + 4m and ts < now + 5m and
+ # tgcol <> 0
+ tdLog.info(
+ 'select * from %s where ts > now + 4m and ts < now + 5m and tgcol <> 0' %
+ (mt))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and ts < now + 5m and tgcol <> 0' %
+ (mt))
+ # TSIM: if $rows != 5 then
+ tdLog.info('tdSql.checkRow(5)')
+ tdSql.checkRows(5)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts > now + 4m and tgcol <> 0 and ts
+ # < now + 5m
+ tdLog.info(
+ 'select * from %s where ts > now + 4m and tgcol <> 0 and ts < now + 5m' %
+ (mt))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and tgcol <> 0 and ts < now + 5m' %
+ (mt))
+ # TSIM: if $rows != 5 then
+ tdLog.info('tdSql.checkRow(5)')
+ tdSql.checkRows(5)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step6
+ tdLog.info('=============== step6')
+ # TSIM: sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol),
+ # max(tbcol), first(tbcol), last(tbcol) from $mt
+ tdLog.info(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s' %
+ (mt))
+ tdSql.query(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s' %
+ (mt))
+ # TSIM: print $data00 $data01 $data02 $data03 $data04 $data05 $data06
+ tdLog.info('$data00 $data01 $data02 $data03 $data04 $data05 $data06')
+ # TSIM: if $data00 != 200 then
+ tdLog.info('tdSql.checkData(0, 0, 200)')
+ tdSql.checkData(0, 0, 200)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step7
+ tdLog.info('=============== step7')
+ # TSIM: sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol),
+ # max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol = 1
+ tdLog.info(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where tgcol = 1' %
+ (mt))
+ tdSql.query(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where tgcol = 1' %
+ (mt))
+ # TSIM: print $data00 $data01 $data02 $data03 $data04 $data05 $data06
+ tdLog.info('$data00 $data01 $data02 $data03 $data04 $data05 $data06')
+ # TSIM: if $data00 != 100 then
+ tdLog.info('tdSql.checkData(0, 0, 100)')
+ tdSql.checkData(0, 0, 100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step8
+ tdLog.info('=============== step8')
+ # TSIM: sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol),
+ # max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m
+ tdLog.info(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where ts < now + 4m' %
+ (mt))
+ tdSql.query(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where ts < now + 4m' %
+ (mt))
+ # TSIM: print $data00 $data01 $data02 $data03 $data04 $data05 $data06
+ tdLog.info('$data00 $data01 $data02 $data03 $data04 $data05 $data06')
+ # TSIM: if $data00 != 50 then
+ tdLog.info('tdSql.checkData(0, 0, 50)')
+ tdSql.checkData(0, 0, 50)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step9
+ tdLog.info('=============== step9')
+ # TSIM: sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol),
+ # max(tbcol), first(tbcol), last(tbcol) from $mt group by tgcol
+ tdLog.info(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s group by tgcol' %
+ (mt))
+ tdSql.query(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s group by tgcol' %
+ (mt))
+ # TSIM: print $data00 $data01 $data02 $data03 $data04 $data05 $data06
+ tdLog.info('$data00 $data01 $data02 $data03 $data04 $data05 $data06')
+ # TSIM: if $data00 != 100 then
+ tdLog.info('tdSql.checkData(0, 0, 100)')
+ tdSql.checkData(0, 0, 100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step10
+ tdLog.info('=============== step10')
+ # TSIM: sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol),
+ # max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol = 1 group
+ # by tgcol
+ tdLog.info(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where tgcol = 1 group by tgcol' %
+ (mt))
+ tdSql.query(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where tgcol = 1 group by tgcol' %
+ (mt))
+ # TSIM: print $data00 $data01 $data02 $data03 $data04 $data05 $data06
+ tdLog.info('$data00 $data01 $data02 $data03 $data04 $data05 $data06')
+ # TSIM: if $data00 != 100 then
+ tdLog.info('tdSql.checkData(0, 0, 100)')
+ tdSql.checkData(0, 0, 100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step11
+ tdLog.info('=============== step11')
+ # TSIM: sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol),
+ # max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m
+ # group by tgcol
+ tdLog.info(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where ts < now + 4m group by tgcol' %
+ (mt))
+ tdSql.query(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where ts < now + 4m group by tgcol' %
+ (mt))
+ # TSIM: print $data00 $data01 $data02 $data03 $data04 $data05 $data06
+ tdLog.info('$data00 $data01 $data02 $data03 $data04 $data05 $data06')
+ # TSIM: if $data00 != 25 then
+ tdLog.info('tdSql.checkData(0, 0, 25)')
+ tdSql.checkData(0, 0, 25)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM:
+ # TSIM: print =============== step12
+ tdLog.info('=============== step12')
+ # TSIM: sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol),
+ # max(tbcol), first(tbcol), last(tbcol) from $mt interval(1d) group by
+ # tgcol
+ tdLog.info(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s interval(1d) group by tgcol' %
+ (mt))
+ tdSql.query(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s interval(1d) group by tgcol' %
+ (mt))
+ # TSIM: print $data00 $data01 $data02 $data03 $data04 $data05 $data06
+ tdLog.info('$data00 $data01 $data02 $data03 $data04 $data05 $data06')
+ # TSIM: if $data01 != 100 then
+ tdLog.info('tdSql.checkData(0, 1, 100)')
+ tdSql.checkData(0, 1, 100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== clear
+ tdLog.info('=============== clear')
+ # TSIM: sql drop database $db
+ tdLog.info('drop database db')
+ tdSql.execute('drop database db')
+ # TSIM: sql show databases
+ tdLog.info('show databases')
+ tdSql.query('show databases')
+ # TSIM: if $rows != 0 then
+ tdLog.info('tdSql.checkRow(0)')
+ tdSql.checkRows(0)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: system sh/exec.sh -n dnode1 -s stop -x SIGINT
+# convert end
+ tdSql.execute("create database db")
+ tdSql.execute("use db")
+ tdSql.execute(
+ "create table if not exists st (ts timestamp, tagtype int) tags(dev int unsigned)")
+ tdSql.error(
+ 'CREATE TABLE if not exists dev_001 using st tags(%d)' % (pow(2, 32) - 1))
+ tdSql.error(
+ 'CREATE TABLE if not exists dev_001 using st tags(%d)' % (-1))
+
+ tdSql.execute(
+ 'CREATE TABLE if not exists dev_001 using st tags(%d)' % (pow(2, 32) - 2))
+ tdSql.execute(
+ 'CREATE TABLE if not exists dev_002 using st tags(%d)' % (0))
+ tdSql.execute(
+ 'CREATE TABLE if not exists dev_003 using st tags(%s)' % ('NULL'))
+ print("==============step2")
+ tdSql.query("show tables")
+ tdSql.checkRows(3)
+
+ def stop(self):
+ tdSql.close()
+ tdLog.success("%s successfully executed" % __file__)
+
+
+tdCases.addWindows(__file__, TDTestCase())
+tdCases.addLinux(__file__, TDTestCase())
diff --git a/tests/pytest/tag_lite/unsignedSmallint.py b/tests/pytest/tag_lite/unsignedSmallint.py
new file mode 100644
index 0000000000000000000000000000000000000000..59cb33dc18eb74b27e9a916e921e10cbabf1b4eb
--- /dev/null
+++ b/tests/pytest/tag_lite/unsignedSmallint.py
@@ -0,0 +1,603 @@
+# -*- coding: utf-8 -*-
+
+import sys
+from util.log import *
+from util.cases import *
+from util.sql import *
+
+
+class TDTestCase:
+ def init(self, conn, logSql):
+ tdLog.debug("start to execute %s" % __file__)
+ tdSql.init(conn.cursor(), logSql)
+
+ def run(self):
+ tdSql.prepare()
+
+ # TSIM: system sh/stop_dnodes.sh
+ # TSIM:
+ # TSIM:
+ # TSIM: system sh/deploy.sh -n dnode1 -i 1
+ # TSIM: system sh/cfg.sh -n dnode1 -c walLevel -v 0
+ # TSIM: system sh/exec.sh -n dnode1 -s start
+ # TSIM:
+ # TSIM: sleep 3000
+ # TSIM: sql connect
+ # TSIM:
+ # TSIM: print ======================== dnode1 start
+ tdLog.info('======================== dnode1 start')
+ # TSIM:
+ # TSIM: $dbPrefix = ta_sm_db
+ # TSIM: $tbPrefix = ta_sm_tb
+ tbPrefix = "ta_sm_tb"
+ # TSIM: $mtPrefix = ta_sm_mt
+ mtPrefix = "ta_sm_mt"
+ # TSIM: $tbNum = 10
+ tbNum = 10
+ # TSIM: $rowNum = 20
+ rowNum = 20
+ # TSIM: $totalNum = 200
+ totalNum = 200
+ # TSIM:
+ # TSIM: print =============== step1
+ tdLog.info('=============== step1')
+ # TSIM: $i = 0
+ i = 0
+ # TSIM: $db = $dbPrefix . $i
+ # TSIM: $mt = $mtPrefix . $i
+ mt = "%s%d" % (mtPrefix, i)
+ # TSIM:
+ # TSIM: sql create database $db
+ # TSIM: sql use $db
+ # TSIM: sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol
+ # smallint unsigned)
+ tdLog.info(
+ 'create table %s (ts timestamp, tbcol int) TAGS(tgcol smallint unsigned)' %
+ (mt))
+ tdSql.execute(
+ 'create table %s (ts timestamp, tbcol int) TAGS(tgcol smallint unsigned)' %
+ (mt))
+ # TSIM:
+ # TSIM: $i = 0
+ i = 0
+ # TSIM: while $i < 5
+ while (i < 5):
+ # TSIM: $tb = $tbPrefix . $i
+ tb = "%s%d" % (tbPrefix, i)
+ # TSIM: sql create table $tb using $mt tags( 0 )
+ tdLog.info('create table %s using %s tags( 0 )' % (tb, mt))
+ tdSql.execute('create table %s using %s tags( 0 )' % (tb, mt))
+ # TSIM: $x = 0
+ x = 0
+ # TSIM: while $x < $rowNum
+ while (x < rowNum):
+ # TSIM: $ms = $x . m
+ ms = "%dm" % x
+ # TSIM: sql insert into $tb values (now + $ms , $x )
+ tdLog.info(
+ 'insert into %s values (now + %s , %d )' %
+ (tb, ms, x))
+ tdSql.execute(
+ 'insert into %s values (now + %s , %d )' %
+ (tb, ms, x))
+ # TSIM: $x = $x + 1
+ x = x + 1
+ # TSIM: endw
+ # TSIM: $i = $i + 1
+ i = i + 1
+ # TSIM: endw
+ # TSIM: while $i < 10
+ while (i < 10):
+ # TSIM: $tb = $tbPrefix . $i
+ tb = "%s%d" % (tbPrefix, i)
+ # TSIM: sql create table $tb using $mt tags( 1 )
+ tdLog.info('create table %s using %s tags( 1 )' % (tb, mt))
+ tdSql.execute('create table %s using %s tags( 1 )' % (tb, mt))
+ # TSIM: $x = 0
+ x = 0
+ # TSIM: while $x < $rowNum
+ while (x < rowNum):
+ # TSIM: $ms = $x . m
+ ms = "%dm" % x
+ # TSIM: sql insert into $tb values (now + $ms , $x )
+ tdLog.info(
+ 'insert into %s values (now + %s , %d )' %
+ (tb, ms, x))
+ tdSql.execute(
+ 'insert into %s values (now + %s , %d )' %
+ (tb, ms, x))
+ # TSIM: $x = $x + 1
+ x = x + 1
+ # TSIM: endw
+ # TSIM: $i = $i + 1
+ i = i + 1
+ # TSIM: endw
+ # TSIM:
+ # TSIM: print =============== step2
+ tdLog.info('=============== step2')
+ # TSIM: sleep 100
+ # TSIM: sql select * from $tb
+ tdLog.info('select * from %s' % (tb))
+ tdSql.query('select * from %s' % (tb))
+ # TSIM: if $rows != $rowNum then
+ tdLog.info('tdSql.checkRow($rowNum)')
+ tdSql.checkRows(rowNum)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts < now + 4m
+ tdLog.info('select * from %s where ts < now + 4m' % (tb))
+ tdSql.query('select * from %s where ts < now + 4m' % (tb))
+ # TSIM: if $rows != 5 then
+ tdLog.info('tdSql.checkRow(5)')
+ tdSql.checkRows(5)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts <= now + 4m
+ tdLog.info('select * from %s where ts <= now + 4m' % (tb))
+ tdSql.query('select * from %s where ts <= now + 4m' % (tb))
+ # TSIM: if $rows != 5 then
+ tdLog.info('tdSql.checkRow(5)')
+ tdSql.checkRows(5)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts > now + 4m
+ tdLog.info('select * from %s where ts > now + 4m' % (tb))
+ tdSql.query('select * from %s where ts > now + 4m' % (tb))
+ # TSIM: if $rows != 15 then
+ tdLog.info('tdSql.checkRow(15)')
+ tdSql.checkRows(15)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts >= now + 4m
+ tdLog.info('select * from %s where ts >= now + 4m' % (tb))
+ tdSql.query('select * from %s where ts >= now + 4m' % (tb))
+ # TSIM: if $rows != 15 then
+ tdLog.info('tdSql.checkRow(15)')
+ tdSql.checkRows(15)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts > now + 4m and ts < now + 5m
+ tdLog.info(
+ 'select * from %s where ts > now + 4m and ts < now + 5m' %
+ (tb))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and ts < now + 5m' %
+ (tb))
+ # TSIM: if $rows != 1 then
+ tdLog.info('tdSql.checkRow(1)')
+ tdSql.checkRows(1)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts < now + 4m and ts > now + 5m
+ tdLog.info(
+ 'select * from %s where ts < now + 4m and ts > now + 5m' %
+ (tb))
+ tdSql.query(
+ 'select * from %s where ts < now + 4m and ts > now + 5m' %
+ (tb))
+ # TSIM: if $rows != 0 then
+ tdLog.info('tdSql.checkRow(0)')
+ tdSql.checkRows(0)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts > 100000 and ts < 100000
+ tdLog.info('select * from %s where ts > 100000 and ts < 100000' % (tb))
+ tdSql.query(
+ 'select * from %s where ts > 100000 and ts < 100000' %
+ (tb))
+ # TSIM: if $rows != 0 then
+ tdLog.info('tdSql.checkRow(0)')
+ tdSql.checkRows(0)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts > now + 4m and ts < now + 3m
+ tdLog.info(
+ 'select * from %s where ts > now + 4m and ts < now + 3m' %
+ (tb))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and ts < now + 3m' %
+ (tb))
+ # TSIM: if $rows != 0 then
+ tdLog.info('tdSql.checkRow(0)')
+ tdSql.checkRows(0)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts > now + 4m and ts > now + 5m and
+ # ts < now + 6m
+ tdLog.info(
+ 'select * from %s where ts > now + 4m and ts > now + 5m and ts < now + 6m' %
+ (tb))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and ts > now + 5m and ts < now + 6m' %
+ (tb))
+ # TSIM: if $rows != 1 then
+ tdLog.info('tdSql.checkRow(1)')
+ tdSql.checkRows(1)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step3
+ tdLog.info('=============== step3')
+ # TSIM: sql select * from $mt
+ tdLog.info('select * from %s' % (mt))
+ tdSql.query('select * from %s' % (mt))
+ # TSIM: if $rows != $totalNum then
+ tdLog.info('tdSql.checkRow($totalNum)')
+ tdSql.checkRows(totalNum)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: sql select * from $mt where ts < now + 4m
+ tdLog.info('select * from %s where ts < now + 4m' % (mt))
+ tdSql.query('select * from %s where ts < now + 4m' % (mt))
+ # TSIM: if $rows != 50 then
+ tdLog.info('tdSql.checkRow(50)')
+ tdSql.checkRows(50)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts > now + 4m
+ tdLog.info('select * from %s where ts > now + 4m' % (mt))
+ tdSql.query('select * from %s where ts > now + 4m' % (mt))
+ # TSIM: if $rows != 150 then
+ tdLog.info('tdSql.checkRow(150)')
+ tdSql.checkRows(150)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts = now + 4m
+ tdLog.info('select * from %s where ts = now + 4m' % (mt))
+ tdSql.query('select * from %s where ts = now + 4m' % (mt))
+ # TSIM: if $rows != 0 then
+ tdLog.info('tdSql.checkRow(0)')
+ tdSql.checkRows(0)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts > now + 4m and ts < now + 5m
+ tdLog.info(
+ 'select * from %s where ts > now + 4m and ts < now + 5m' %
+ (mt))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and ts < now + 5m' %
+ (mt))
+ # TSIM: if $rows != 10 then
+ tdLog.info('tdSql.checkRow(10)')
+ tdSql.checkRows(10)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step4
+ tdLog.info('=============== step4')
+ # TSIM: sql select * from $mt where tgcol = 0
+ tdLog.info('select * from %s where tgcol = 0' % (mt))
+ tdSql.query('select * from %s where tgcol = 0' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where tgcol <> 0
+ tdLog.info('select * from %s where tgcol <> 0' % (mt))
+ tdSql.query('select * from %s where tgcol <> 0' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where tgcol = 1
+ tdLog.info('select * from %s where tgcol = 1' % (mt))
+ tdSql.query('select * from %s where tgcol = 1' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where tgcol <> 1
+ tdLog.info('select * from %s where tgcol <> 1' % (mt))
+ tdSql.query('select * from %s where tgcol <> 1' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where tgcol = 1
+ tdLog.info('select * from %s where tgcol = 1' % (mt))
+ tdSql.query('select * from %s where tgcol = 1' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where tgcol <> 1
+ tdLog.info('select * from %s where tgcol <> 1' % (mt))
+ tdSql.query('select * from %s where tgcol <> 1' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where tgcol = 0
+ tdLog.info('select * from %s where tgcol = 0' % (mt))
+ tdSql.query('select * from %s where tgcol = 0' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where tgcol <> 0
+ tdLog.info('select * from %s where tgcol <> 0' % (mt))
+ tdSql.query('select * from %s where tgcol <> 0' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step5
+ tdLog.info('=============== step5')
+ # TSIM: sql select * from $mt where ts > now + 4m and tgcol = 1
+ tdLog.info('select * from %s where ts > now + 4m and tgcol = 1' % (mt))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and tgcol = 1' %
+ (mt))
+ # TSIM: if $rows != 75 then
+ tdLog.info('tdSql.checkRow(75)')
+ tdSql.checkRows(75)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts > now + 4m and tgcol <> 1
+ tdLog.info(
+ 'select * from %s where ts > now + 4m and tgcol <> 1' %
+ (mt))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and tgcol <> 1' %
+ (mt))
+ # TSIM: if $rows != 75 then
+ tdLog.info('tdSql.checkRow(75)')
+ tdSql.checkRows(75)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts < now + 4m and tgcol = 0
+ tdLog.info('select * from %s where ts < now + 4m and tgcol = 0' % (mt))
+ tdSql.query(
+ 'select * from %s where ts < now + 4m and tgcol = 0' %
+ (mt))
+ # TSIM: if $rows != 25 then
+ tdLog.info('tdSql.checkRow(25)')
+ tdSql.checkRows(25)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts < now + 4m and tgcol <> 0
+ tdLog.info(
+ 'select * from %s where ts < now + 4m and tgcol <> 0' %
+ (mt))
+ tdSql.query(
+ 'select * from %s where ts < now + 4m and tgcol <> 0' %
+ (mt))
+ # TSIM: if $rows != 25 then
+ tdLog.info('tdSql.checkRow(25)')
+ tdSql.checkRows(25)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts <= now + 4m and tgcol = 0
+ tdLog.info(
+ 'select * from %s where ts <= now + 4m and tgcol = 0' %
+ (mt))
+ tdSql.query(
+ 'select * from %s where ts <= now + 4m and tgcol = 0' %
+ (mt))
+ # TSIM: if $rows != 25 then
+ tdLog.info('tdSql.checkRow(25)')
+ tdSql.checkRows(25)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts <= now + 4m and tgcol <> 0
+ tdLog.info(
+ 'select * from %s where ts <= now + 4m and tgcol <> 0' %
+ (mt))
+ tdSql.query(
+ 'select * from %s where ts <= now + 4m and tgcol <> 0' %
+ (mt))
+ # TSIM: if $rows != 25 then
+ tdLog.info('tdSql.checkRow(25)')
+ tdSql.checkRows(25)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts > now + 4m and ts < now + 5m and
+ # tgcol <> 0
+ tdLog.info(
+ 'select * from %s where ts > now + 4m and ts < now + 5m and tgcol <> 0' %
+ (mt))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and ts < now + 5m and tgcol <> 0' %
+ (mt))
+ # TSIM: if $rows != 5 then
+ tdLog.info('tdSql.checkRow(5)')
+ tdSql.checkRows(5)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts > now + 4m and tgcol <> 0 and ts
+ # < now + 5m
+ tdLog.info(
+ 'select * from %s where ts > now + 4m and tgcol <> 0 and ts < now + 5m' %
+ (mt))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and tgcol <> 0 and ts < now + 5m' %
+ (mt))
+ # TSIM: if $rows != 5 then
+ tdLog.info('tdSql.checkRow(5)')
+ tdSql.checkRows(5)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step6
+ tdLog.info('=============== step6')
+ # TSIM: sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol),
+ # max(tbcol), first(tbcol), last(tbcol) from $mt
+ tdLog.info(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s' %
+ (mt))
+ tdSql.query(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s' %
+ (mt))
+ # TSIM: print $data00 $data01 $data02 $data03 $data04 $data05 $data06
+ tdLog.info('$data00 $data01 $data02 $data03 $data04 $data05 $data06')
+ # TSIM: if $data00 != 200 then
+ tdLog.info('tdSql.checkData(0, 0, 200)')
+ tdSql.checkData(0, 0, 200)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step7
+ tdLog.info('=============== step7')
+ # TSIM: sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol),
+ # max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol = 1
+ tdLog.info(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where tgcol = 1' %
+ (mt))
+ tdSql.query(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where tgcol = 1' %
+ (mt))
+ # TSIM: print $data00 $data01 $data02 $data03 $data04 $data05 $data06
+ tdLog.info('$data00 $data01 $data02 $data03 $data04 $data05 $data06')
+ # TSIM: if $data00 != 100 then
+ tdLog.info('tdSql.checkData(0, 0, 100)')
+ tdSql.checkData(0, 0, 100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step8
+ tdLog.info('=============== step8')
+ # TSIM: sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol),
+ # max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m
+ tdLog.info(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where ts < now + 4m' %
+ (mt))
+ tdSql.query(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where ts < now + 4m' %
+ (mt))
+ # TSIM: print $data00 $data01 $data02 $data03 $data04 $data05 $data06
+ tdLog.info('$data00 $data01 $data02 $data03 $data04 $data05 $data06')
+ # TSIM: if $data00 != 50 then
+ tdLog.info('tdSql.checkData(0, 0, 50)')
+ tdSql.checkData(0, 0, 50)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step9
+ tdLog.info('=============== step9')
+ # TSIM: sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol),
+ # max(tbcol), first(tbcol), last(tbcol) from $mt group by tgcol
+ tdLog.info(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s group by tgcol' %
+ (mt))
+ tdSql.query(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s group by tgcol' %
+ (mt))
+ # TSIM: print $data00 $data01 $data02 $data03 $data04 $data05 $data06
+ tdLog.info('$data00 $data01 $data02 $data03 $data04 $data05 $data06')
+ # TSIM: if $data00 != 100 then
+ tdLog.info('tdSql.checkData(0, 0, 100)')
+ tdSql.checkData(0, 0, 100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step10
+ tdLog.info('=============== step10')
+ # TSIM: sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol),
+ # max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol = 1 group
+ # by tgcol
+ tdLog.info(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where tgcol = 1 group by tgcol' %
+ (mt))
+ tdSql.query(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where tgcol = 1 group by tgcol' %
+ (mt))
+ # TSIM: print $data00 $data01 $data02 $data03 $data04 $data05 $data06
+ tdLog.info('$data00 $data01 $data02 $data03 $data04 $data05 $data06')
+ # TSIM: if $data00 != 100 then
+ tdLog.info('tdSql.checkData(0, 0, 100)')
+ tdSql.checkData(0, 0, 100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step11
+ tdLog.info('=============== step11')
+ # TSIM: sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol),
+ # max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m
+ # group by tgcol
+ tdLog.info(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where ts < now + 4m group by tgcol' %
+ (mt))
+ tdSql.query(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where ts < now + 4m group by tgcol' %
+ (mt))
+ # TSIM: print $data00 $data01 $data02 $data03 $data04 $data05 $data06
+ tdLog.info('$data00 $data01 $data02 $data03 $data04 $data05 $data06')
+ # TSIM: if $data00 != 25 then
+ tdLog.info('tdSql.checkData(0, 0, 25)')
+ tdSql.checkData(0, 0, 25)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM:
+ # TSIM: print =============== step12
+ tdLog.info('=============== step12')
+ # TSIM: sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol),
+ # max(tbcol), first(tbcol), last(tbcol) from $mt interval(1d) group by
+ # tgcol
+ tdLog.info(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s interval(1d) group by tgcol' %
+ (mt))
+ tdSql.query(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s interval(1d) group by tgcol' %
+ (mt))
+ # TSIM: print $data00 $data01 $data02 $data03 $data04 $data05 $data06
+ tdLog.info('$data00 $data01 $data02 $data03 $data04 $data05 $data06')
+ # TSIM: if $data01 != 100 then
+ tdLog.info('tdSql.checkData(0, 1, 100)')
+ tdSql.checkData(0, 1, 100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== clear
+ tdLog.info('=============== clear')
+ # TSIM: sql drop database $db
+ tdLog.info('drop database db')
+ tdSql.execute('drop database db')
+ # TSIM: sql show databases
+ tdLog.info('show databases')
+ tdSql.query('show databases')
+ # TSIM: if $rows != 0 then
+ tdLog.info('tdSql.checkRow(0)')
+ tdSql.checkRows(0)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: system sh/exec.sh -n dnode1 -s stop -x SIGINT
+# convert end
+ tdSql.execute("create database db")
+ tdSql.execute("use db")
+ tdSql.execute(
+ "create table if not exists st (ts timestamp, tagtype int) tags(dev smallint unsigned)")
+ tdSql.error(
+ 'CREATE TABLE if not exists dev_001 using st tags(%d)' % (pow(2, 16)-1))
+ tdSql.error(
+ 'CREATE TABLE if not exists dev_001 using st tags(%d)' % (-1))
+
+ tdSql.execute(
+ 'CREATE TABLE if not exists dev_001 using st tags(%d)' % (pow(2, 16) - 2))
+ tdSql.execute(
+ 'CREATE TABLE if not exists dev_002 using st tags(%d)' % (0))
+ tdSql.execute(
+ 'CREATE TABLE if not exists dev_003 using st tags(%s)' % ('NULL'))
+
+ print("==============step2")
+ tdSql.query("show tables")
+ tdSql.checkRows(3)
+
+ def stop(self):
+ tdSql.close()
+ tdLog.success("%s successfully executed" % __file__)
+
+
+tdCases.addWindows(__file__, TDTestCase())
+tdCases.addLinux(__file__, TDTestCase())
diff --git a/tests/pytest/tag_lite/unsignedTinyint.py b/tests/pytest/tag_lite/unsignedTinyint.py
new file mode 100644
index 0000000000000000000000000000000000000000..1250b08d1b8dd4d3cb5f61af424576146ab70967
--- /dev/null
+++ b/tests/pytest/tag_lite/unsignedTinyint.py
@@ -0,0 +1,602 @@
+# -*- coding: utf-8 -*-
+
+import sys
+from util.log import *
+from util.cases import *
+from util.sql import *
+
+
+class TDTestCase:
+ def init(self, conn, logSql):
+ tdLog.debug("start to execute %s" % __file__)
+ tdSql.init(conn.cursor(), logSql)
+
+ def run(self):
+ tdSql.prepare()
+
+ # TSIM: system sh/stop_dnodes.sh
+ # TSIM:
+ # TSIM:
+ # TSIM: system sh/deploy.sh -n dnode1 -i 1
+ # TSIM: system sh/cfg.sh -n dnode1 -c walLevel -v 0
+ # TSIM: system sh/exec.sh -n dnode1 -s start
+ # TSIM:
+ # TSIM: sleep 3000
+ # TSIM: sql connect
+ # TSIM:
+ # TSIM: print ======================== dnode1 start
+ tdLog.info('======================== dnode1 start')
+ # TSIM:
+ # TSIM: $dbPrefix = ta_sm_db
+ # TSIM: $tbPrefix = ta_sm_tb
+ tbPrefix = "ta_sm_tb"
+ # TSIM: $mtPrefix = ta_sm_mt
+ mtPrefix = "ta_sm_mt"
+ # TSIM: $tbNum = 10
+ tbNum = 10
+ # TSIM: $rowNum = 20
+ rowNum = 20
+ # TSIM: $totalNum = 200
+ totalNum = 200
+ # TSIM:
+ # TSIM: print =============== step1
+ tdLog.info('=============== step1')
+ # TSIM: $i = 0
+ i = 0
+ # TSIM: $db = $dbPrefix . $i
+ # TSIM: $mt = $mtPrefix . $i
+ mt = "%s%d" % (mtPrefix, i)
+ # TSIM:
+ # TSIM: sql create database $db
+ # TSIM: sql use $db
+ # TSIM: sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol
+ # tinyint unsigned)
+ tdLog.info(
+ 'create table %s (ts timestamp, tbcol int) TAGS(tgcol tinyint unsigned)' %
+ (mt))
+ tdSql.execute(
+ 'create table %s (ts timestamp, tbcol int) TAGS(tgcol tinyint unsigned)' %
+ (mt))
+ # TSIM:
+ # TSIM: $i = 0
+ i = 0
+ # TSIM: while $i < 5
+ while (i < 5):
+ # TSIM: $tb = $tbPrefix . $i
+ tb = "%s%d" % (tbPrefix, i)
+ # TSIM: sql create table $tb using $mt tags( 0 )
+ tdLog.info('create table %s using %s tags( 0 )' % (tb, mt))
+ tdSql.execute('create table %s using %s tags( 0 )' % (tb, mt))
+ # TSIM: $x = 0
+ x = 0
+ # TSIM: while $x < $rowNum
+ while (x < rowNum):
+ # TSIM: $ms = $x . m
+ ms = "%dm" % x
+ # TSIM: sql insert into $tb values (now + $ms , $x )
+ tdLog.info(
+ 'insert into %s values (now + %s , %d )' %
+ (tb, ms, x))
+ tdSql.execute(
+ 'insert into %s values (now + %s , %d )' %
+ (tb, ms, x))
+ # TSIM: $x = $x + 1
+ x = x + 1
+ # TSIM: endw
+ # TSIM: $i = $i + 1
+ i = i + 1
+ # TSIM: endw
+ # TSIM: while $i < 10
+ while (i < 10):
+ # TSIM: $tb = $tbPrefix . $i
+ tb = "%s%d" % (tbPrefix, i)
+ # TSIM: sql create table $tb using $mt tags( 1 )
+ tdLog.info('create table %s using %s tags( 1 )' % (tb, mt))
+ tdSql.execute('create table %s using %s tags( 1 )' % (tb, mt))
+ # TSIM: $x = 0
+ x = 0
+ # TSIM: while $x < $rowNum
+ while (x < rowNum):
+ # TSIM: $ms = $x . m
+ ms = "%dm" % x
+ # TSIM: sql insert into $tb values (now + $ms , $x )
+ tdLog.info(
+ 'insert into %s values (now + %s , %d )' %
+ (tb, ms, x))
+ tdSql.execute(
+ 'insert into %s values (now + %s , %d )' %
+ (tb, ms, x))
+ # TSIM: $x = $x + 1
+ x = x + 1
+ # TSIM: endw
+ # TSIM: $i = $i + 1
+ i = i + 1
+ # TSIM: endw
+ # TSIM:
+ # TSIM: print =============== step2
+ tdLog.info('=============== step2')
+ # TSIM: sleep 100
+ # TSIM: sql select * from $tb
+ tdLog.info('select * from %s' % (tb))
+ tdSql.query('select * from %s' % (tb))
+ # TSIM: if $rows != $rowNum then
+ tdLog.info('tdSql.checkRow($rowNum)')
+ tdSql.checkRows(rowNum)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts < now + 4m
+ tdLog.info('select * from %s where ts < now + 4m' % (tb))
+ tdSql.query('select * from %s where ts < now + 4m' % (tb))
+ # TSIM: if $rows != 5 then
+ tdLog.info('tdSql.checkRow(5)')
+ tdSql.checkRows(5)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts <= now + 4m
+ tdLog.info('select * from %s where ts <= now + 4m' % (tb))
+ tdSql.query('select * from %s where ts <= now + 4m' % (tb))
+ # TSIM: if $rows != 5 then
+ tdLog.info('tdSql.checkRow(5)')
+ tdSql.checkRows(5)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts > now + 4m
+ tdLog.info('select * from %s where ts > now + 4m' % (tb))
+ tdSql.query('select * from %s where ts > now + 4m' % (tb))
+ # TSIM: if $rows != 15 then
+ tdLog.info('tdSql.checkRow(15)')
+ tdSql.checkRows(15)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts >= now + 4m
+ tdLog.info('select * from %s where ts >= now + 4m' % (tb))
+ tdSql.query('select * from %s where ts >= now + 4m' % (tb))
+ # TSIM: if $rows != 15 then
+ tdLog.info('tdSql.checkRow(15)')
+ tdSql.checkRows(15)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts > now + 4m and ts < now + 5m
+ tdLog.info(
+ 'select * from %s where ts > now + 4m and ts < now + 5m' %
+ (tb))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and ts < now + 5m' %
+ (tb))
+ # TSIM: if $rows != 1 then
+ tdLog.info('tdSql.checkRow(1)')
+ tdSql.checkRows(1)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts < now + 4m and ts > now + 5m
+ tdLog.info(
+ 'select * from %s where ts < now + 4m and ts > now + 5m' %
+ (tb))
+ tdSql.query(
+ 'select * from %s where ts < now + 4m and ts > now + 5m' %
+ (tb))
+ # TSIM: if $rows != 0 then
+ tdLog.info('tdSql.checkRow(0)')
+ tdSql.checkRows(0)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts > 100000 and ts < 100000
+ tdLog.info('select * from %s where ts > 100000 and ts < 100000' % (tb))
+ tdSql.query(
+ 'select * from %s where ts > 100000 and ts < 100000' %
+ (tb))
+ # TSIM: if $rows != 0 then
+ tdLog.info('tdSql.checkRow(0)')
+ tdSql.checkRows(0)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts > now + 4m and ts < now + 3m
+ tdLog.info(
+ 'select * from %s where ts > now + 4m and ts < now + 3m' %
+ (tb))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and ts < now + 3m' %
+ (tb))
+ # TSIM: if $rows != 0 then
+ tdLog.info('tdSql.checkRow(0)')
+ tdSql.checkRows(0)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $tb where ts > now + 4m and ts > now + 5m and
+ # ts < now + 6m
+ tdLog.info(
+ 'select * from %s where ts > now + 4m and ts > now + 5m and ts < now + 6m' %
+ (tb))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and ts > now + 5m and ts < now + 6m' %
+ (tb))
+ # TSIM: if $rows != 1 then
+ tdLog.info('tdSql.checkRow(1)')
+ tdSql.checkRows(1)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step3
+ tdLog.info('=============== step3')
+ # TSIM: sql select * from $mt
+ tdLog.info('select * from %s' % (mt))
+ tdSql.query('select * from %s' % (mt))
+ # TSIM: if $rows != $totalNum then
+ tdLog.info('tdSql.checkRow($totalNum)')
+ tdSql.checkRows(totalNum)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: sql select * from $mt where ts < now + 4m
+ tdLog.info('select * from %s where ts < now + 4m' % (mt))
+ tdSql.query('select * from %s where ts < now + 4m' % (mt))
+ # TSIM: if $rows != 50 then
+ tdLog.info('tdSql.checkRow(50)')
+ tdSql.checkRows(50)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts > now + 4m
+ tdLog.info('select * from %s where ts > now + 4m' % (mt))
+ tdSql.query('select * from %s where ts > now + 4m' % (mt))
+ # TSIM: if $rows != 150 then
+ tdLog.info('tdSql.checkRow(150)')
+ tdSql.checkRows(150)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts = now + 4m
+ tdLog.info('select * from %s where ts = now + 4m' % (mt))
+ tdSql.query('select * from %s where ts = now + 4m' % (mt))
+ # TSIM: if $rows != 0 then
+ tdLog.info('tdSql.checkRow(0)')
+ tdSql.checkRows(0)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts > now + 4m and ts < now + 5m
+ tdLog.info(
+ 'select * from %s where ts > now + 4m and ts < now + 5m' %
+ (mt))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and ts < now + 5m' %
+ (mt))
+ # TSIM: if $rows != 10 then
+ tdLog.info('tdSql.checkRow(10)')
+ tdSql.checkRows(10)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step4
+ tdLog.info('=============== step4')
+ # TSIM: sql select * from $mt where tgcol = 0
+ tdLog.info('select * from %s where tgcol = 0' % (mt))
+ tdSql.query('select * from %s where tgcol = 0' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where tgcol <> 0
+ tdLog.info('select * from %s where tgcol <> 0' % (mt))
+ tdSql.query('select * from %s where tgcol <> 0' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where tgcol = 1
+ tdLog.info('select * from %s where tgcol = 1' % (mt))
+ tdSql.query('select * from %s where tgcol = 1' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where tgcol <> 1
+ tdLog.info('select * from %s where tgcol <> 1' % (mt))
+ tdSql.query('select * from %s where tgcol <> 1' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where tgcol = 1
+ tdLog.info('select * from %s where tgcol = 1' % (mt))
+ tdSql.query('select * from %s where tgcol = 1' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where tgcol <> 1
+ tdLog.info('select * from %s where tgcol <> 1' % (mt))
+ tdSql.query('select * from %s where tgcol <> 1' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where tgcol = 0
+ tdLog.info('select * from %s where tgcol = 0' % (mt))
+ tdSql.query('select * from %s where tgcol = 0' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where tgcol <> 0
+ tdLog.info('select * from %s where tgcol <> 0' % (mt))
+ tdSql.query('select * from %s where tgcol <> 0' % (mt))
+ # TSIM: if $rows != 100 then
+ tdLog.info('tdSql.checkRow(100)')
+ tdSql.checkRows(100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step5
+ tdLog.info('=============== step5')
+ # TSIM: sql select * from $mt where ts > now + 4m and tgcol = 1
+ tdLog.info('select * from %s where ts > now + 4m and tgcol = 1' % (mt))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and tgcol = 1' %
+ (mt))
+ # TSIM: if $rows != 75 then
+ tdLog.info('tdSql.checkRow(75)')
+ tdSql.checkRows(75)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts > now + 4m and tgcol <> 1
+ tdLog.info(
+ 'select * from %s where ts > now + 4m and tgcol <> 1' %
+ (mt))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and tgcol <> 1' %
+ (mt))
+ # TSIM: if $rows != 75 then
+ tdLog.info('tdSql.checkRow(75)')
+ tdSql.checkRows(75)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts < now + 4m and tgcol = 0
+ tdLog.info('select * from %s where ts < now + 4m and tgcol = 0' % (mt))
+ tdSql.query(
+ 'select * from %s where ts < now + 4m and tgcol = 0' %
+ (mt))
+ # TSIM: if $rows != 25 then
+ tdLog.info('tdSql.checkRow(25)')
+ tdSql.checkRows(25)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts < now + 4m and tgcol <> 0
+ tdLog.info(
+ 'select * from %s where ts < now + 4m and tgcol <> 0' %
+ (mt))
+ tdSql.query(
+ 'select * from %s where ts < now + 4m and tgcol <> 0' %
+ (mt))
+ # TSIM: if $rows != 25 then
+ tdLog.info('tdSql.checkRow(25)')
+ tdSql.checkRows(25)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts <= now + 4m and tgcol = 0
+ tdLog.info(
+ 'select * from %s where ts <= now + 4m and tgcol = 0' %
+ (mt))
+ tdSql.query(
+ 'select * from %s where ts <= now + 4m and tgcol = 0' %
+ (mt))
+ # TSIM: if $rows != 25 then
+ tdLog.info('tdSql.checkRow(25)')
+ tdSql.checkRows(25)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts <= now + 4m and tgcol <> 0
+ tdLog.info(
+ 'select * from %s where ts <= now + 4m and tgcol <> 0' %
+ (mt))
+ tdSql.query(
+ 'select * from %s where ts <= now + 4m and tgcol <> 0' %
+ (mt))
+ # TSIM: if $rows != 25 then
+ tdLog.info('tdSql.checkRow(25)')
+ tdSql.checkRows(25)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts > now + 4m and ts < now + 5m and
+ # tgcol <> 0
+ tdLog.info(
+ 'select * from %s where ts > now + 4m and ts < now + 5m and tgcol <> 0' %
+ (mt))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and ts < now + 5m and tgcol <> 0' %
+ (mt))
+ # TSIM: if $rows != 5 then
+ tdLog.info('tdSql.checkRow(5)')
+ tdSql.checkRows(5)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM: sql select * from $mt where ts > now + 4m and tgcol <> 0 and ts
+ # < now + 5m
+ tdLog.info(
+ 'select * from %s where ts > now + 4m and tgcol <> 0 and ts < now + 5m' %
+ (mt))
+ tdSql.query(
+ 'select * from %s where ts > now + 4m and tgcol <> 0 and ts < now + 5m' %
+ (mt))
+ # TSIM: if $rows != 5 then
+ tdLog.info('tdSql.checkRow(5)')
+ tdSql.checkRows(5)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step6
+ tdLog.info('=============== step6')
+ # TSIM: sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol),
+ # max(tbcol), first(tbcol), last(tbcol) from $mt
+ tdLog.info(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s' %
+ (mt))
+ tdSql.query(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s' %
+ (mt))
+ # TSIM: print $data00 $data01 $data02 $data03 $data04 $data05 $data06
+ tdLog.info('$data00 $data01 $data02 $data03 $data04 $data05 $data06')
+ # TSIM: if $data00 != 200 then
+ tdLog.info('tdSql.checkData(0, 0, 200)')
+ tdSql.checkData(0, 0, 200)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step7
+ tdLog.info('=============== step7')
+ # TSIM: sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol),
+ # max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol = 1
+ tdLog.info(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where tgcol = 1' %
+ (mt))
+ tdSql.query(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where tgcol = 1' %
+ (mt))
+ # TSIM: print $data00 $data01 $data02 $data03 $data04 $data05 $data06
+ tdLog.info('$data00 $data01 $data02 $data03 $data04 $data05 $data06')
+ # TSIM: if $data00 != 100 then
+ tdLog.info('tdSql.checkData(0, 0, 100)')
+ tdSql.checkData(0, 0, 100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step8
+ tdLog.info('=============== step8')
+ # TSIM: sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol),
+ # max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m
+ tdLog.info(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where ts < now + 4m' %
+ (mt))
+ tdSql.query(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where ts < now + 4m' %
+ (mt))
+ # TSIM: print $data00 $data01 $data02 $data03 $data04 $data05 $data06
+ tdLog.info('$data00 $data01 $data02 $data03 $data04 $data05 $data06')
+ # TSIM: if $data00 != 50 then
+ tdLog.info('tdSql.checkData(0, 0, 50)')
+ tdSql.checkData(0, 0, 50)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step9
+ tdLog.info('=============== step9')
+ # TSIM: sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol),
+ # max(tbcol), first(tbcol), last(tbcol) from $mt group by tgcol
+ tdLog.info(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s group by tgcol' %
+ (mt))
+ tdSql.query(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s group by tgcol' %
+ (mt))
+ # TSIM: print $data00 $data01 $data02 $data03 $data04 $data05 $data06
+ tdLog.info('$data00 $data01 $data02 $data03 $data04 $data05 $data06')
+ # TSIM: if $data00 != 100 then
+ tdLog.info('tdSql.checkData(0, 0, 100)')
+ tdSql.checkData(0, 0, 100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step10
+ tdLog.info('=============== step10')
+ # TSIM: sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol),
+ # max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol = 1 group
+ # by tgcol
+ tdLog.info(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where tgcol = 1 group by tgcol' %
+ (mt))
+ tdSql.query(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where tgcol = 1 group by tgcol' %
+ (mt))
+ # TSIM: print $data00 $data01 $data02 $data03 $data04 $data05 $data06
+ tdLog.info('$data00 $data01 $data02 $data03 $data04 $data05 $data06')
+ # TSIM: if $data00 != 100 then
+ tdLog.info('tdSql.checkData(0, 0, 100)')
+ tdSql.checkData(0, 0, 100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== step11
+ tdLog.info('=============== step11')
+ # TSIM: sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol),
+ # max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m
+ # group by tgcol
+ tdLog.info(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where ts < now + 4m group by tgcol' %
+ (mt))
+ tdSql.query(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s where ts < now + 4m group by tgcol' %
+ (mt))
+ # TSIM: print $data00 $data01 $data02 $data03 $data04 $data05 $data06
+ tdLog.info('$data00 $data01 $data02 $data03 $data04 $data05 $data06')
+ # TSIM: if $data00 != 25 then
+ tdLog.info('tdSql.checkData(0, 0, 25)')
+ tdSql.checkData(0, 0, 25)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM:
+ # TSIM: print =============== step12
+ tdLog.info('=============== step12')
+ # TSIM: sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol),
+ # max(tbcol), first(tbcol), last(tbcol) from $mt interval(1d) group by
+ # tgcol
+ tdLog.info(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s interval(1d) group by tgcol' %
+ (mt))
+ tdSql.query(
+ 'select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from %s interval(1d) group by tgcol' %
+ (mt))
+ # TSIM: print $data00 $data01 $data02 $data03 $data04 $data05 $data06
+ tdLog.info('$data00 $data01 $data02 $data03 $data04 $data05 $data06')
+ # TSIM: if $data01 != 100 then
+ tdLog.info('tdSql.checkData(0, 1, 100)')
+ tdSql.checkData(0, 1, 100)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: print =============== clear
+ tdLog.info('=============== clear')
+ # TSIM: sql drop database $db
+ tdLog.info('drop database db')
+ tdSql.execute('drop database db')
+ # TSIM: sql show databases
+ tdLog.info('show databases')
+ tdSql.query('show databases')
+ # TSIM: if $rows != 0 then
+ tdLog.info('tdSql.checkRow(0)')
+ tdSql.checkRows(0)
+ # TSIM: return -1
+ # TSIM: endi
+ # TSIM:
+ # TSIM: system sh/exec.sh -n dnode1 -s stop -x SIGINT
+# convert end
+ tdSql.execute("create database db")
+ tdSql.execute("use db")
+ tdSql.execute(
+ "create table if not exists st (ts timestamp, tagtype int) tags(dev tinyint unsigned)")
+ tdSql.error(
+ 'CREATE TABLE if not exists dev_001 using st tags(%d)' % (pow(2, 8) - 1))
+ tdSql.error(
+ 'CREATE TABLE if not exists dev_001 using st tags(%d)' % (-1))
+
+ tdSql.execute(
+ 'CREATE TABLE if not exists dev_001 using st tags(%d)' % (pow(2, 8) - 2))
+ tdSql.execute(
+ 'CREATE TABLE if not exists dev_002 using st tags(%d)' % (0))
+ tdSql.execute(
+ 'CREATE TABLE if not exists dev_003 using st tags(%s)' % ('NULL'))
+ print("==============step2")
+ tdSql.query("show tables")
+ tdSql.checkRows(3)
+
+ def stop(self):
+ tdSql.close()
+ tdLog.success("%s successfully executed" % __file__)
+
+
+tdCases.addWindows(__file__, TDTestCase())
+tdCases.addLinux(__file__, TDTestCase())
diff --git a/tests/script/general/db/alter_option.sim b/tests/script/general/db/alter_option.sim
index 9d4dedfce0e081345d8659abdcdebf3cce2efb74..170ba21c28b7ff4a79a8f2375dc1d36ba91e6120 100644
--- a/tests/script/general/db/alter_option.sim
+++ b/tests/script/general/db/alter_option.sim
@@ -209,7 +209,7 @@ sql alter database db wal 1
sql alter database db wal 2
sql alter database db wal 1
sql alter database db wal 2
-sql_error alter database db wal 0
+sql alter database db wal 0
sql_error alter database db wal 3
sql_error alter database db wal 4
sql_error alter database db wal -1
diff --git a/tests/script/general/http/restful.sim b/tests/script/general/http/restful.sim
index fdde975238778176e447d01564851acc95b00c95..6ebf5644e7a99593ebac0302c3dcdbc0a27fc8c1 100644
--- a/tests/script/general/http/restful.sim
+++ b/tests/script/general/http/restful.sim
@@ -39,14 +39,14 @@ print =============== step3 - query data
system_content curl -H 'Authorization: Taosd /KfeAzX/f9na8qdtNZmtONryp201ma04bEl8LcvLUd7a8qdtNZmtONryp201ma04' -d 'select * from d1.table_rest' 127.0.0.1:7111/rest/sql
print curl 127.0.0.1:7111/rest/sql -----> $system_content
-if $system_content != @{"status":"succ","head":["ts","i"],"data":[["2017-12-25 21:28:41.022",1],["2017-12-25 21:28:42.022",2],["2017-12-25 21:28:43.022",3],["2017-12-25 21:28:44.022",4],["2017-12-25 21:28:45.022",5],["2017-12-25 21:28:46.022",6],["2017-12-25 21:28:47.022",7],["2017-12-25 21:28:48.022",8],["2017-12-25 21:28:49.022",9],["2017-12-25 21:28:50.022",10]],"rows":10}@ then
+if $system_content != @{"status":"succ","head":["ts","i"],"column_meta":[["ts",9,8],["i",4,4]],"data":[["2017-12-25 21:28:41.022",1],["2017-12-25 21:28:42.022",2],["2017-12-25 21:28:43.022",3],["2017-12-25 21:28:44.022",4],["2017-12-25 21:28:45.022",5],["2017-12-25 21:28:46.022",6],["2017-12-25 21:28:47.022",7],["2017-12-25 21:28:48.022",8],["2017-12-25 21:28:49.022",9],["2017-12-25 21:28:50.022",10]],"rows":10}@ then
return -1
endi
print =============== step4 - insert data
system_content curl -H 'Authorization: Taosd /KfeAzX/f9na8qdtNZmtONryp201ma04bEl8LcvLUd7a8qdtNZmtONryp201ma04' -d "insert into d1.table_rest values('2017-12-25 21:28:51.022', 11)" 127.0.0.1:7111/rest/sql
print curl 127.0.0.1:7111/rest/sql -----> $system_content
-if $system_content != @{"status":"succ","head":["affected_rows"],"data":[[1]],"rows":1}@ then
+if $system_content != @{"status":"succ","head":["affected_rows"],"column_meta":[["affected_rows",4,4]],"data":[[1]],"rows":1}@ then
return -1
endi
@@ -54,7 +54,7 @@ print =============== step5 - query data
system_content curl -H 'Authorization: Taosd /KfeAzX/f9na8qdtNZmtONryp201ma04bEl8LcvLUd7a8qdtNZmtONryp201ma04' -d 'select * from d1.table_rest' 127.0.0.1:7111/rest/sql
print curl 127.0.0.1:7111/rest/sql -----> $system_content
-if $system_content != @{"status":"succ","head":["ts","i"],"data":[["2017-12-25 21:28:41.022",1],["2017-12-25 21:28:42.022",2],["2017-12-25 21:28:43.022",3],["2017-12-25 21:28:44.022",4],["2017-12-25 21:28:45.022",5],["2017-12-25 21:28:46.022",6],["2017-12-25 21:28:47.022",7],["2017-12-25 21:28:48.022",8],["2017-12-25 21:28:49.022",9],["2017-12-25 21:28:50.022",10],["2017-12-25 21:28:51.022",11]],"rows":11}@ then
+if $system_content != @{"status":"succ","head":["ts","i"],"column_meta":[["ts",9,8],["i",4,4]],"data":[["2017-12-25 21:28:41.022",1],["2017-12-25 21:28:42.022",2],["2017-12-25 21:28:43.022",3],["2017-12-25 21:28:44.022",4],["2017-12-25 21:28:45.022",5],["2017-12-25 21:28:46.022",6],["2017-12-25 21:28:47.022",7],["2017-12-25 21:28:48.022",8],["2017-12-25 21:28:49.022",9],["2017-12-25 21:28:50.022",10],["2017-12-25 21:28:51.022",11]],"rows":11}@ then
return -1
endi
@@ -79,4 +79,4 @@ if $system_content != @{"status":"error","code":3,"desc":"Authentication failure
return -1
endi
-system sh/exec.sh -n dnode1 -s stop -x SIGINT
\ No newline at end of file
+system sh/exec.sh -n dnode1 -s stop -x SIGINT
diff --git a/tests/script/general/http/restful_full.sim b/tests/script/general/http/restful_full.sim
index 05f6a9ac9c372592b148ab83b211d733ced0dc9f..8094a943f507a702bb56a7d026da672134188b83 100644
--- a/tests/script/general/http/restful_full.sim
+++ b/tests/script/general/http/restful_full.sim
@@ -88,13 +88,13 @@ print =============== step2 - no db
#11
system_content curl -H 'Authorization: Taosd /KfeAzX/f9na8qdtNZmtONryp201ma04bEl8LcvLUd7a8qdtNZmtONryp201ma04' -d 'show databases' 127.0.0.1:7111/rest/sql
print 11-> $system_content
-if $system_content != @{"status":"succ","head":["name","created_time","ntables","vgroups","replica","quorum","days","keep0,keep1,keep(D)","cache(MB)","blocks","minrows","maxrows","wallevel","fsync","comp","cachelast","precision","update","status"],"data":[],"rows":0}@ then
+if $system_content != @{"status":"succ","head":["name","created_time","ntables","vgroups","replica","quorum","days","keep0,keep1,keep(D)","cache(MB)","blocks","minrows","maxrows","wallevel","fsync","comp","cachelast","precision","update","status"],"column_meta":[["name",8,32],["created_time",9,8],["ntables",4,4],["vgroups",4,4],["replica",3,2],["quorum",3,2],["days",3,2],["keep0,keep1,keep(D)",8,24],["cache(MB)",4,4],["blocks",4,4],["minrows",4,4],["maxrows",4,4],["wallevel",2,1],["fsync",4,4],["comp",2,1],["cachelast",2,1],["precision",8,3],["update",2,1],["status",8,10]],"data":[],"rows":0}@ then
return -1
endi
system_content curl -H 'Authorization: Taosd /KfeAzX/f9na8qdtNZmtONryp201ma04bEl8LcvLUd7a8qdtNZmtONryp201ma04' -d 'create database d1' 127.0.0.1:7111/rest/sql
print 12-> $system_content
-if $system_content != @{"status":"succ","head":["affected_rows"],"data":[[0]],"rows":1}@ then
+if $system_content != @{"status":"succ","head":["affected_rows"],"column_meta":[["affected_rows",4,4]],"data":[[0]],"rows":1}@ then
return -1
endi
@@ -160,26 +160,26 @@ endi
system_content curl -H 'Authorization: Taosd /KfeAzX/f9na8qdtNZmtONryp201ma04bEl8LcvLUd7a8qdtNZmtONryp201ma04' -d ' create table d1.t1 (ts timestamp, speed int)' 127.0.0.1:7111/rest/sql
print 22-> $system_content
-if $system_content != @{"status":"succ","head":["affected_rows"],"data":[[0]],"rows":1}@ then
+if $system_content != @{"status":"succ","head":["affected_rows"],"column_meta":[["affected_rows",4,4]],"data":[[0]],"rows":1}@ then
return -1
endi
system_content curl -H 'Authorization: Taosd /KfeAzX/f9na8qdtNZmtONryp201ma04bEl8LcvLUd7a8qdtNZmtONryp201ma04' -d ' select * from d1.t1 ' 127.0.0.1:7111/rest/sql
print 23-> $system_content
-if $system_content != @{"status":"succ","head":["ts","speed"],"data":[],"rows":0}@ then
+if $system_content != @{"status":"succ","head":["ts","speed"],"column_meta":[["ts",9,8],["speed",4,4]],"data":[],"rows":0}@ then
return -1
endi
#24
system_content curl -H 'Authorization: Taosd /KfeAzX/f9na8qdtNZmtONryp201ma04bEl8LcvLUd7a8qdtNZmtONryp201ma04' -d "insert into d1.t1 values('2017-12-25 21:28:41.022', 1)" 127.0.0.1:7111/rest/sql
print 24-> $system_content
-if $system_content != @{"status":"succ","head":["affected_rows"],"data":[[1]],"rows":1}@ then
+if $system_content != @{"status":"succ","head":["affected_rows"],"column_meta":[["affected_rows",4,4]],"data":[[1]],"rows":1}@ then
return -1
endi
system_content curl -H 'Authorization: Taosd /KfeAzX/f9na8qdtNZmtONryp201ma04bEl8LcvLUd7a8qdtNZmtONryp201ma04' -d ' select * from d1.t1 ' 127.0.0.1:7111/rest/sql
print 25-> $system_content
-if $system_content != @{"status":"succ","head":["ts","speed"],"data":[["2017-12-25 21:28:41.022",1]],"rows":1}@ then
+if $system_content != @{"status":"succ","head":["ts","speed"],"column_meta":[["ts",9,8],["speed",4,4]],"data":[["2017-12-25 21:28:41.022",1]],"rows":1}@ then
return -1
endi
@@ -208,32 +208,32 @@ system_content curl -H 'Authorization: Taosd /KfeAzX/f9na8qdtNZmtONryp201ma04bEl
#27
system_content curl -H 'Authorization: Taosd /KfeAzX/f9na8qdtNZmtONryp201ma04bEl8LcvLUd7a8qdtNZmtONryp201ma04' -d ' select * from d1.t1 ' 127.0.0.1:7111/rest/sql
print 27-> $system_content
-if $system_content != @{"status":"succ","head":["ts","speed"],"data":[["2017-12-25 21:28:41.022",1],["2017-12-25 21:28:42.022",2],["2017-12-25 21:28:43.022",3],["2017-12-25 21:28:44.022",4],["2017-12-25 21:28:45.022",5],["2017-12-25 21:28:46.022",6],["2017-12-25 21:28:47.022",7],["2017-12-25 21:28:48.022",8],["2017-12-25 21:28:49.022",9],["2017-12-25 21:28:50.022",10],["2017-12-25 21:28:51.022",11]],"rows":11}@ then
+if $system_content != @{"status":"succ","head":["ts","speed"],"column_meta":[["ts",9,8],["speed",4,4]],"data":[["2017-12-25 21:28:41.022",1],["2017-12-25 21:28:42.022",2],["2017-12-25 21:28:43.022",3],["2017-12-25 21:28:44.022",4],["2017-12-25 21:28:45.022",5],["2017-12-25 21:28:46.022",6],["2017-12-25 21:28:47.022",7],["2017-12-25 21:28:48.022",8],["2017-12-25 21:28:49.022",9],["2017-12-25 21:28:50.022",10],["2017-12-25 21:28:51.022",11]],"rows":11}@ then
return -1
endi
system_content curl -H 'Authorization: Taosd /KfeAzX/f9na8qdtNZmtONryp201ma04bEl8LcvLUd7a8qdtNZmtONryp201ma04' -d 'create database d2' 127.0.0.1:7111/rest/sql
print 28-> $system_content
-if $system_content != @{"status":"succ","head":["affected_rows"],"data":[[0]],"rows":1}@ then
+if $system_content != @{"status":"succ","head":["affected_rows"],"column_meta":[["affected_rows",4,4]],"data":[[0]],"rows":1}@ then
return -1
endi
system_content curl -H 'Authorization: Taosd /KfeAzX/f9na8qdtNZmtONryp201ma04bEl8LcvLUd7a8qdtNZmtONryp201ma04' -d ' create table d2.t1 (ts timestamp, speed int)' 127.0.0.1:7111/rest/sql
print 29-> $system_content
-if $system_content != @{"status":"succ","head":["affected_rows"],"data":[[0]],"rows":1}@ then
+if $system_content != @{"status":"succ","head":["affected_rows"],"column_meta":[["affected_rows",4,4]],"data":[[0]],"rows":1}@ then
return -1
endi
#30
system_content curl -H 'Authorization: Taosd /KfeAzX/f9na8qdtNZmtONryp201ma04bEl8LcvLUd7a8qdtNZmtONryp201ma04' -d "insert into d2.t1 values('2017-12-25 21:28:41.022', 1)" 127.0.0.1:7111/rest/sql
print 30-> $system_content
-if $system_content != @{"status":"succ","head":["affected_rows"],"data":[[1]],"rows":1}@ then
+if $system_content != @{"status":"succ","head":["affected_rows"],"column_meta":[["affected_rows",4,4]],"data":[[1]],"rows":1}@ then
return -1
endi
system_content curl -H 'Authorization: Taosd /KfeAzX/f9na8qdtNZmtONryp201ma04bEl8LcvLUd7a8qdtNZmtONryp201ma04' -d ' select * from d2.t1 ' 127.0.0.1:7111/rest/sql
print 31-> $system_content
-if $system_content != @{"status":"succ","head":["ts","speed"],"data":[["2017-12-25 21:28:41.022",1]],"rows":1}@ then
+if $system_content != @{"status":"succ","head":["ts","speed"],"column_meta":[["ts",9,8],["speed",4,4]],"data":[["2017-12-25 21:28:41.022",1]],"rows":1}@ then
return -1
endi
diff --git a/tests/script/general/http/telegraf.sim b/tests/script/general/http/telegraf.sim
index 6825e5c479774f2a8eca5df42d55910e12a975fd..f3426971864e6cf510ff6600b7731cf81f64f952 100644
--- a/tests/script/general/http/telegraf.sim
+++ b/tests/script/general/http/telegraf.sim
@@ -285,8 +285,8 @@ system_content curl -u root:taosdata -d 'select count(*) from db.win_cpu' 127.0
print $system_content
-if $system_content != @{"status":"succ","head":["count(*)"],"data":[[3]],"rows":1}@ then
+if $system_content != @{"status":"succ","head":["count(*)"],"column_meta":[["count(*)",5,8]],"data":[[3]],"rows":1}@ then
return -1
endi
-system sh/exec.sh -n dnode1 -s stop -x SIGINT
\ No newline at end of file
+system sh/exec.sh -n dnode1 -s stop -x SIGINT
diff --git a/tests/script/general/parser/create_db.sim b/tests/script/general/parser/create_db.sim
index 6cf08a5ac4231ea715c1892842b0e4d122d2520c..ea1cc17a6a779391c8dfa064bf98bf70715d9e70 100644
--- a/tests/script/general/parser/create_db.sim
+++ b/tests/script/general/parser/create_db.sim
@@ -169,8 +169,8 @@ sql_error create database $db cache 0
sql_error create database $db ctime 29
sql_error create database $db ctime 40961
-# wal {1, 2}
-sql_error create database $db wal 0
+# wal {0, 2}
+#sql_error create database $db wal 0
sql_error create database $db wal -1
sql_error create database $db wal 3
diff --git a/tests/script/general/user/monitor.sim b/tests/script/general/user/monitor.sim
index fe12df9baaf1f6ae3810e51d1fdc0020b67cbb40..016848c06d1a5a08f8e78a2e2ea8cdc5acc68744 100644
--- a/tests/script/general/user/monitor.sim
+++ b/tests/script/general/user/monitor.sim
@@ -15,18 +15,18 @@ print ========== step2
# return -1
#step21:
sql drop table log.dn -x step22
- return -1
+# return -1
step22:
sql drop user log -x step23
- return -1
+# return -1
step23:
print ========== step3
sleep 2000
-sql select * from log.dn
-if $rows == 0 then
- return -1
-endi
+#sql select * from log.dn
+#if $rows == 0 then
+# return -1
+#endi
-system sh/exec.sh -n dnode1 -s stop -x SIGINT
\ No newline at end of file
+system sh/exec.sh -n dnode1 -s stop -x SIGINT
diff --git a/tests/script/unique/http/opentsdb.sim b/tests/script/unique/http/opentsdb.sim
index 3d8e5a8c4411f1ae92d04d95596b052c26fe6889..7d1e6b03d4547a6b0b2a6a7857000a8a6518a002 100644
--- a/tests/script/unique/http/opentsdb.sim
+++ b/tests/script/unique/http/opentsdb.sim
@@ -169,7 +169,7 @@ endi
system_content curl -u root:taosdata -d 'select * from db.sys_cpu_d_bbb_lga_1_web01' 127.0.0.1:7111/rest/sql/
print $system_content
-if $system_content != @{"status":"succ","head":["ts","value"],"data":[["2012-09-05 20:00:00.000",18.000000000]],"rows":1}@ then
+if $system_content != @{"status":"succ","head":["ts","value"],"column_meta":[["ts",9,8],["value",7,8]],"data":[["2012-09-05 20:00:00.000",18.000000000]],"rows":1}@ then
return -1
endi
@@ -186,7 +186,7 @@ system_content curl -u root:taosdata -d 'select * from db.sys_cpu_d_bbb_lga_1_w
print $system_content
-if $system_content != @{"status":"succ","head":["ts","value"],"data":[["2012-09-05 20:00:00.000",18.000000000],["2012-09-05 20:00:05.000",18.000000000]],"rows":2}@ then
+if $system_content != @{"status":"succ","head":["ts","value"],"column_meta":[["ts",9,8],["value",7,8]],"data":[["2012-09-05 20:00:00.000",18.000000000],["2012-09-05 20:00:05.000",18.000000000]],"rows":2}@ then
return -1
endi
@@ -194,7 +194,7 @@ system_content curl -u root:taosdata -d 'select count(*) from db.sys_cpu_d_bbb'
print $system_content
-if $system_content != @{"status":"succ","head":["count(*)"],"data":[[3]],"rows":1}@ then
+if $system_content != @{"status":"succ","head":["count(*)"],"column_meta":[["count(*)",5,8]],"data":[[3]],"rows":1}@ then
return -1
endi
@@ -211,7 +211,7 @@ system_content curl -u root:taosdata -d 'select * from db.sys_mem_d_bbb_lga_1_w
print $system_content
-if $system_content != @{"status":"succ","head":["ts","value"],"data":[["2012-09-05 20:00:00.000",8.000000000],["2012-09-05 20:00:05.000",9.000000000]],"rows":2}@ then
+if $system_content != @{"status":"succ","head":["ts","value"],"column_meta":[["ts",9,8],["value",7,8]],"data":[["2012-09-05 20:00:00.000",8.000000000],["2012-09-05 20:00:05.000",9.000000000]],"rows":2}@ then
return -1
endi
@@ -219,7 +219,7 @@ system_content curl -u root:taosdata -d 'select count(*) from db.sys_mem_d_bbb'
print $system_content
-if $system_content != @{"status":"succ","head":["count(*)"],"data":[[2]],"rows":1}@ then
+if $system_content != @{"status":"succ","head":["count(*)"],"column_meta":[["count(*)",5,8]],"data":[[2]],"rows":1}@ then
return -1
endi
@@ -233,7 +233,7 @@ system_content curl -u root:taosdata -d '[{"metric": "sys_cpu","timestamp": 134
system_content curl -u root:taosdata -d 'select count(*) from db.sys_cpu_d_bbb' 127.0.0.1:7111/rest/sql/
print $system_content
-if $system_content != @{"status":"succ","head":["count(*)"],"data":[[7]],"rows":1}@ then
+if $system_content != @{"status":"succ","head":["count(*)"],"column_meta":[["count(*)",5,8]],"data":[[7]],"rows":1}@ then
return -1
endi
@@ -244,4 +244,4 @@ system sh/exec.sh -n dnode4 -s stop -x SIGINT
system sh/exec.sh -n dnode5 -s stop -x SIGINT
system sh/exec.sh -n dnode6 -s stop -x SIGINT
system sh/exec.sh -n dnode7 -s stop -x SIGINT
-system sh/exec.sh -n dnode8 -s stop -x SIGINT
\ No newline at end of file
+system sh/exec.sh -n dnode8 -s stop -x SIGINT
diff --git a/tests/tsim/src/simExe.c b/tests/tsim/src/simExe.c
index 83ca46599cbb7e219bf1c67123373d81159db4ec..dbda5f1bbdd01a451376f8afe7717b7290980796 100644
--- a/tests/tsim/src/simExe.c
+++ b/tests/tsim/src/simExe.c
@@ -146,7 +146,7 @@ char *simGetVariable(SScript *script, char *varName, int32_t varLen) {
int32_t simExecuteExpression(SScript *script, char *exp) {
char * op1, *op2, *var1, *var2, *var3, *rest;
int32_t op1Len, op2Len, var1Len, var2Len, var3Len, val0, val1;
- char t0[512], t1[512], t2[512], t3[1024];
+ char t0[1024], t1[1024], t2[1024], t3[2048];
int32_t result;
rest = paGetToken(exp, &var1, &var1Len);