Merge branch '3.0' into feature/stream

This commit is contained in:
Liu Jicong 2022-08-16 18:26:04 +08:00
commit b2b0f2f8fa
125 changed files with 6585 additions and 5902 deletions

View File

@ -81,7 +81,7 @@ ENDIF ()
IF (TD_WINDOWS)
MESSAGE("${Yellow} set compiler flag for Windows! ${ColourReset}")
SET(COMMON_FLAGS "/w /D_WIN32 /DWIN32 /Zi")
SET(COMMON_FLAGS "/w /D_WIN32 /DWIN32 /Zi /MTd")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /MANIFEST:NO")
# IF (MSVC AND (MSVC_VERSION GREATER_EQUAL 1900))
# SET(COMMON_FLAGS "${COMMON_FLAGS} /Wv:18")
@ -92,6 +92,12 @@ IF (TD_WINDOWS)
IF (CMAKE_DEPFILE_FLAGS_CXX)
SET(CMAKE_DEPFILE_FLAGS_CXX "")
ENDIF ()
IF (CMAKE_C_FLAGS_DEBUG)
SET(CMAKE_C_FLAGS_DEBUG "" CACHE STRING "" FORCE)
ENDIF ()
IF (CMAKE_CXX_FLAGS_DEBUG)
SET(CMAKE_CXX_FLAGS_DEBUG "" CACHE STRING "" FORCE)
ENDIF ()
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_FLAGS}")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMMON_FLAGS}")

View File

@ -273,7 +273,7 @@ endif(${BUILD_WITH_NURAFT})
# pthread
if(${BUILD_PTHREAD})
set(CMAKE_BUILD_TYPE release)
set(CMAKE_BUILD_TYPE debug)
add_definitions(-DPTW32_STATIC_LIB)
add_subdirectory(pthread EXCLUDE_FROM_ALL)
set_target_properties(libpthreadVC3 PROPERTIES OUTPUT_NAME pthread)

View File

@ -68,6 +68,7 @@ public class SubscribeDemo {
System.out.println(meter);
}
}
consumer.unsubscribe();
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();

View File

@ -1,59 +1,6 @@
import taos
from taos.tmq import *
conn = taos.connect()
# create database
conn.execute("drop database if exists py_tmq")
conn.execute("create database if not exists py_tmq vgroups 2")
# create table and stables
conn.select_db("py_tmq")
conn.execute("create stable if not exists stb1 (ts timestamp, c1 int, c2 float, c3 binary(10)) tags(t1 int)")
conn.execute("create table if not exists tb1 using stb1 tags(1)")
conn.execute("create table if not exists tb2 using stb1 tags(2)")
conn.execute("create table if not exists tb3 using stb1 tags(3)")
# create topic
conn.execute("drop topic if exists topic_ctb_column")
conn.execute("create topic if not exists topic_ctb_column as select ts, c1, c2, c3 from stb1")
# set consumer configure options
conf = TaosTmqConf()
conf.set("group.id", "tg2")
conf.set("td.connect.user", "root")
conf.set("td.connect.pass", "taosdata")
conf.set("enable.auto.commit", "true")
conf.set("msg.with.table.name", "true")
def tmq_commit_cb_print(tmq, resp, offset, param=None):
print(f"commit: {resp}, tmq: {tmq}, offset: {offset}, param: {param}")
conf.set_auto_commit_cb(tmq_commit_cb_print, None)
# build consumer
tmq = conf.new_consumer()
# build topic list
topic_list = TaosTmqList()
topic_list.append("topic_ctb_column")
# subscribe consumer
tmq.subscribe(topic_list)
# check subscriptions
sub_list = tmq.subscription()
print("subscribed topics: ",sub_list)
# start subscribe
while 1:
res = tmq.poll(1000)
if res:
topic = res.get_topic_name()
vg = res.get_vgroup_id()
db = res.get_db_name()
print(f"topic: {topic}\nvgroup id: {vg}\ndb: {db}")
for row in res:
print(row)
tb = res.get_table_name()
print(f"from table: {tb}")
from taos.tmq import TaosConsumer
consumer = TaosConsumer('topic_ctb_column', group_id='vg2')
for msg in consumer:
for row in msg:
print(row)

View File

@ -2,18 +2,15 @@
sidebar_label: Docker
title: 通过 Docker 快速体验 TDengine
---
:::info
如果您希望为 TDengine 贡献代码或对内部技术实现感兴趣,请参考[TDengine GitHub 主页](https://github.com/taosdata/TDengine) 下载源码构建和安装.
:::
本节首先介绍如何通过 Docker 快速体验 TDengine然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。
本节首先介绍如何通过 Docker 快速体验 TDengine然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker请使用[安装包的方式快速体验](../../get-started/package/)。如果您希望为 TDengine 贡献代码或对内部技术实现感兴趣,请参考 [TDengine GitHub 主页](https://github.com/taosdata/TDengine) 下载源码构建和安装.
## 启动 TDengine
如果已经安装了 docker 只需执行下面的命令。
```shell
docker run -d -p 6030:6030 -p 6041/6041 -p 6043-6049/6043-6049 -p 6043-6049:6043-6049/udp tdengine/tdengine
docker run -d -p 6030:6030 -p 6041:6041 -p 6043-6049:6043-6049 -p 6043-6049:6043-6049/udp tdengine/tdengine
```
注意TDengine 3.0 服务端仅使用 6030 TCP 端口。6041 为 taosAdapter 所使用提供 REST 服务端口。6043-6049 为 taosAdapter 提供第三方应用接入所使用端口,可根据需要选择是否打开。

View File

@ -5,17 +5,72 @@ title: 使用安装包立即开始
import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";
import PkgListV3 from "/components/PkgListV3";
:::info
如果您希望对 TDengine 贡献代码或对内部实现感兴趣,请参考我们的 [TDengine GitHub 主页](https://github.com/taosdata/TDengine) 下载源码构建和安装.
TDengine 完整的软件包包括服务端taosd、用于与第三方系统对接并提供 RESTful 接口的 taosAdapter、应用驱动taosc、命令行程序 (CLItaos) 和一些工具软件,目前服务端 taosd 和 taosAdapter 仅在 Linux 系统上安装和运行,后续将支持 Windows、macOS 等系统。应用驱动 taosc 与 TDengine CLI 可以在 Windows 或 Linux 上安装和运行。TDengine 除了提供多种语言的连接器之外,还通过 [taosAdapter](../../reference/taosadapter/) 提供 [RESTful 接口](../../reference/rest-api/)。
:::
在 Linux 系统上TDengine 开源版本提供 deb 和 rpm 格式安装包,用户可以根据自己的运行环境选择合适的安装包。其中 deb 支持 Debian/Ubuntu 及衍生系统rpm 支持 CentOS/RHEL/SUSE 及衍生系统。同时我们也为企业用户提供 tar.gz 格式安装包,也支持通过 `apt-get` 工具从线上进行安装。TDengine 也提供 Windows x64 平台的安装包。您也可以[用 Docker 立即体验](../../get-started/docker/)。如果您希望对 TDengine 贡献代码或对内部实现感兴趣,请参考我们的 [TDengine GitHub 主页](https://github.com/taosdata/TDengine) 下载源码构建和安装.
在 Linux 系统上TDengine 开源版本提供 deb 和 rpm 格式安装包,用户可以根据自己的运行环境选择合适的安装包。其中 deb 支持 Debian/Ubuntu 及衍生系统rpm 支持 CentOS/RHEL/SUSE 及衍生系统。同时我们也为企业用户提供 tar.gz 格式安装包,也支持通过 `apt-get` 工具从线上进行安装。TDengine 也提供 Windows x64 平台的安装包。
为方便使用,标准的服务端安装包包含了 taos、taosd、taosAdapter、taosdump、taosBenchmark、TDinsight 安装脚本和示例代码;如果您只需要用到服务端程序和客户端连接的 C/C++ 语言支持,也可以仅下载 lite 版本的安装包。
在安装包格式上,我们提供 tar.gz, rpm 和 deb 格式,为企业客户提供 tar.gz 格式安装包以方便在特定操作系统上使用。需要注意的是rpm 和 deb 包不含 taosdump 和 TDinsight 安装脚本,这些工具需要通过安装 taosTool 包获得。
## 安装
<Tabs>
<TabItem label="Deb 安装" value="debinst">
1. 从列表中下载获得 deb 安装包,例如 TDengine-server-3.0.0.0-Linux-x64.deb
<PkgListV3 type={6}/>
2. 进入到 TDengine-server-3.0.0.0-Linux-x64.deb 安装包所在目录,执行如下的安装命令:
```bash
sudo dpkg -i TDengine-server-3.0.0.0-Linux-x64.deb
```
</TabItem>
<TabItem label="RPM 安装" value="rpminst">
1. 从列表中下载获得 rpm 安装包,例如 TDengine-server-3.0.0.0-Linux-x64.rpm
<PkgListV3 type={5}/>
2. 进入到 TDengine-server-3.0.0.0-Linux-x64.rpm 安装包所在目录,执行如下的安装命令:
```bash
sudo rpm -ivh TDengine-server-3.0.0.0-Linux-x64.rpm
```
</TabItem>
<TabItem label="tar.gz 安装" value="tarinst">
1. 从列表中下载获得 tar.gz 安装包,例如 TDengine-server-3.0.0.0-Linux-x64.tar.gz
<PkgListV3 type={0}/>
2. 进入到 TDengine-server-3.0.0.0-Linux-x64.tar.gz 安装包所在目录,先解压文件后,进入子目录,执行其中的 install.sh 安装脚本:
```bash
tar -zxvf TDengine-server-3.0.0.0-Linux-x64.tar.gz
```
解压后进入相应路径,执行
```bash
sudo ./install.sh
```
:::info
install.sh 安装脚本在执行过程中,会通过命令行交互界面询问一些配置信息。如果希望采取无交互安装方式,那么可以用 -e no 参数来执行 install.sh 脚本。运行 `./install.sh -h` 指令可以查看所有参数的详细说明信息。
:::
</TabItem>
<TabItem label="Windows 安装" value="windows">
1. 从列表中下载获得 exe 安装程序,例如 TDengine-server-3.0.0.0-Windows-x64.exe
<PkgListV3 type={3}/>
2. 运行 TDengine-server-3.0.0.0-Windows-x64.exe 来安装 TDengine。
</TabItem>
<TabItem value="apt-get" label="apt-get">
可以使用 apt-get 工具从官方仓库安装。
@ -29,6 +84,7 @@ echo "deb [arch=amd64] http://repos.taosdata.com/tdengine-stable stable main" |
如果安装 Beta 版需要安装包仓库
```bash
wget -qO - http://repos.taosdata.com/tdengine.key | sudo apt-key add -
echo "deb [arch=amd64] http://repos.taosdata.com/tdengine-beta beta main" | sudo tee /etc/apt/sources.list.d/tdengine-beta.list
```
@ -44,58 +100,12 @@ sudo apt-get install tdengine
apt-get 方式只适用于 Debian 或 Ubuntu 系统
::::
</TabItem>
<TabItem label="Deb 安装" value="debinst">
1. 从 [发布历史页面](../../releases) 下载获得 deb 安装包,例如 TDengine-server-3.0.0.0-Linux-x64.deb
2. 进入到 TDengine-server-3.0.0.0-Linux-x64.deb 安装包所在目录,执行如下的安装命令:
```bash
sudo dpkg -i TDengine-server-3.0.0.0-Linux-x64.deb
```
</TabItem>
<TabItem label="RPM 安装" value="rpminst">
1. 从 [发布历史页面](../../releases) 下载获得 rpm 安装包,例如 TDengine-server-3.0.0.0-Linux-x64.rpm
2. 进入到 TDengine-server-3.0.0.0-Linux-x64.rpm 安装包所在目录,执行如下的安装命令:
```bash
sudo rpm -ivh TDengine-server-3.0.0.0-Linux-x64.rpm
```
</TabItem>
<TabItem label="tar.gz 安装" value="tarinst">
1. 从 [发布历史页面](../../releases) 下载获得 tar.gz 安装包,例如 TDengine-server-3.0.0.0-Linux-x64.tar.gz
2. 进入到 TDengine-server-3.0.0.0-Linux-x64.tar.gz 安装包所在目录,先解压文件后,进入子目录,执行其中的 install.sh 安装脚本:
```bash
tar -zxvf TDengine-server-3.0.0.0-Linux-x64.tar.gz
```
解压后进入相应路径,执行
```bash
sudo ./install.sh
```
</Tabs>
:::info
install.sh 安装脚本在执行过程中,会通过命令行交互界面询问一些配置信息。如果希望采取无交互安装方式,那么可以用 -e no 参数来执行 install.sh 脚本。运行 `./install.sh -h` 指令可以查看所有参数的详细说明信息。
下载其他组件、最新 Beta 版及之前版本的安装包,请点击[发布历史页面](../../releases)
:::
</TabItem>
<TabItem label="Windows 安装" value="windows">
1. 从 [发布历史页面](../../releases) 下载获得 exe 安装程序,例如 TDengine-server-3.0.0.0-Windows-x64.exe
2. 运行 TDengine-server-3.0.0.0-Windows-x64.exe 来安装 TDengine。
</TabItem>
</Tabs>
:::note
当安装第一个节点时,出现 Enter FQDN提示的时候不需要输入任何内容。只有当安装第二个或以后更多的节点时才需要输入已有集群中任何一个可用节点的 FQDN支持该新节点加入集群。当然也可以不输入而是在新节点启动前配置到新节点的配置文件中。

View File

@ -1,249 +0,0 @@
---
sidebar_label: 数据订阅
description: "数据订阅与推送服务。写入到 TDengine 中的时序数据能够被自动推送到订阅客户端。"
title: 数据订阅
---
import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";
import Java from "./_sub_java.mdx";
import Python from "./_sub_python.mdx";
import Go from "./_sub_go.mdx";
import Rust from "./_sub_rust.mdx";
import Node from "./_sub_node.mdx";
import CSharp from "./_sub_cs.mdx";
import CDemo from "./_sub_c.mdx";
为了帮助应用实时获取写入 TDengine 的数据或者以事件到达顺序处理数据TDengine提供了类似消息队列产品的数据订阅、消费接口。这样在很多场景下采用 TDengine 的时序数据处理系统不再需要集成消息队列产品,比如 kafka, 从而简化系统设计的复杂度,降低运营维护成本。
与 kafka 一样,你需要定义 topic, 但 TDengine 的 topic 是基于一个已经存在的超级表、子表或普通表的查询条件,即一个 SELECT 语句。你可以使用 SQL 对标签、表名、列、表达式等条件进行过滤,以及对数据进行标量函数与 UDF 计算(不包括数据聚合)。与其他消息队列软件相比,这是 TDengine 数据订阅功能的最大的优势,它提供了更大的灵活性,数据的颗粒度可以由应用随时调整,而且数据的过滤与预处理交给 TDengine而不是应用完成有效的减少传输的数据量与应用的复杂度。
消费者订阅 topic 后,可以实时获得最新的数据。多个消费者可以组成一个消费者组 (consumer group), 一个消费者组里的多个消费者共享消费进度便于多线程、分布式地消费数据提高消费速度。但不同消费者组中的消费者即使消费同一个topic, 并不共享消费进度。一个消费者可以订阅多个 topic。如果订阅的是超级表数据可能会分布在多个不同的 vnode 上,也就是多个 shard 上这样一个消费组里有多个消费者可以提高消费效率。TDengine 的消息队列提供了消息的ACK机制在宕机、重启等复杂环境下确保 at least once 消费。
为了实现上述功能TDengine 会为 WAL (Write-Ahead-Log) 文件自动创建索引以支持快速随机访问,并提供了灵活可配置的文件切换与保留机制:用户可以按需指定 WAL 文件保留的时间以及大小(详见 create database 语句)。通过以上方式将 WAL 改造成了一个保留事件到达顺序的、可持久化的存储引擎(但由于 TSDB 具有远比 WAL 更高的压缩率,我们不推荐保留太长时间,一般来说,不超过几天)。 对于以 topic 形式创建的查询TDengine 将对接 WAL 而不是 TSDB 作为其存储引擎。在消费时TDengine 根据当前消费进度从 WAL 直接读取数据,并使用统一的查询引擎实现过滤、变换等操作,将数据推送给消费者。
本文档不对消息队列本身的基础知识做介绍,如果需要了解,请自行搜索。
## 主要数据结构和API
TMQ 的 API 中与订阅相关的主要数据结构和API如下
```c
typedef struct tmq_t tmq_t;
typedef struct tmq_conf_t tmq_conf_t;
typedef struct tmq_list_t tmq_list_t;
typedef void(tmq_commit_cb(tmq_t *, int32_t code, void *param));
DLL_EXPORT tmq_list_t *tmq_list_new();
DLL_EXPORT int32_t tmq_list_append(tmq_list_t *, const char *);
DLL_EXPORT void tmq_list_destroy(tmq_list_t *);
DLL_EXPORT tmq_t *tmq_consumer_new(tmq_conf_t *conf, char *errstr, int32_t errstrLen);
DLL_EXPORT const char *tmq_err2str(int32_t code);
DLL_EXPORT int32_t tmq_subscribe(tmq_t *tmq, const tmq_list_t *topic_list);
DLL_EXPORT int32_t tmq_unsubscribe(tmq_t *tmq);
DLL_EXPORT TAOS_RES *tmq_consumer_poll(tmq_t *tmq, int64_t timeout);
DLL_EXPORT int32_t tmq_consumer_close(tmq_t *tmq);
DLL_EXPORT int32_t tmq_commit_sync(tmq_t *tmq, const TAOS_RES *msg);
DLL_EXPORT void tmq_commit_async(tmq_t *tmq, const TAOS_RES *msg, tmq_commit_cb *cb, void *param);
enum tmq_conf_res_t {
TMQ_CONF_UNKNOWN = -2,
TMQ_CONF_INVALID = -1,
TMQ_CONF_OK = 0,
};
typedef enum tmq_conf_res_t tmq_conf_res_t;
DLL_EXPORT tmq_conf_t *tmq_conf_new();
DLL_EXPORT tmq_conf_res_t tmq_conf_set(tmq_conf_t *conf, const char *key, const char *value);
DLL_EXPORT void tmq_conf_destroy(tmq_conf_t *conf);
DLL_EXPORT void tmq_conf_set_auto_commit_cb(tmq_conf_t *conf, tmq_commit_cb *cb, void *param);
```
这些 API 的文档请见 [C/C++ Connector](/reference/connector/cpp)下面介绍一下它们的具体用法超级表和子表结构请参考“数据建模”一节完整的示例代码请见下面C语言的示例代码。
## 写入数据
首先完成建库、建一张超级表和多张子表操作,然后就可以写入数据了,比如:
```sql
drop database if exists tmqdb;
create database tmqdb;
create table tmqdb.stb (ts timestamp, c1 int, c2 float, c3 varchar(16) tags(t1 int, t3 varchar(16));
create table tmqdb.ctb0 using tmqdb.stb tags(0, "subtable0");
create table tmqdb.ctb1 using tmqdb.stb tags(1, "subtable1");
insert into tmqdb.ctb0 values(now, 0, 0, 'a0')(now+1s, 0, 0, 'a00');
insert into tmqdb.ctb1 values(now, 1, 1, 'a1')(now+1s, 11, 11, 'a11');
```
## 创建topic
```sql
create topic topicName as select ts, c1, c2, c3 from tmqdb.stb where c1 > 1;
```
TMQ支持多种订阅类型
### 列订阅
语法CREATE TOPIC topic_name as subquery
通过select语句订阅包括select *或select ts, c1等指定列描述订阅可以带条件过滤、标量函数计算但不支持聚合函数、不支持时间窗口聚合
- TOPIC一旦创建则schema确定
- 被订阅或用于计算的column和tag不可被删除、修改
- 若发生schema变更新增的column不出现在结果中
### 超级表订阅
语法CREATE TOPIC topic_name AS STABLE stbName
与select * from stbName订阅的区别是
- 不会限制用户的schema变更
- 返回的是非结构化的数据返回数据的schema会随之超级表的schema变化而变化
- 用户对于要处理的每一个数据块都可能有不同的schema因此必须重新获取schema
- 返回数据不带有tag
## 创建 consumer 以及consumer group
对于consumer, 目前支持的config包括
| 参数名称 | 参数值 | 备注 |
| ---------------------------- | ------------------------------ | ------------------------------------------------------ |
| group.id | 最大长度192 | |
| enable.auto.commit | 合法值true, false | |
| auto.commit.interval.ms | | |
| auto.offset.reset | 合法值earliest, latest, none | |
| td.connect.ip | 用于连接同taos_connect的参数 | |
| td.connect.user | 用于连接同taos_connect的参数 | |
| td.connect.pass | 用于连接同taos_connect的参数 | |
| td.connect.port | 用于连接同taos_connect的参数 | |
| enable.heartbeat.background | 合法值true, false | 开启后台心跳即consumer不会因为长时间不poll而认为离线 |
| experimental.snapshot.enable | 合法值true, false | 从wal开始消费还是从tsbs开始消费 |
| msg.with.table.name | 合法值true, false | 从消息中能否解析表名 |
```sql
/* 根据需要,设置消费组(group.id)、自动提交(enable.auto.commit)、自动提交时间间隔(auto.commit.interval.ms)、用户名(td.connect.user)、密码(td.connect.pass)等参数 */
tmq_conf_t* conf = tmq_conf_new();
tmq_conf_set(conf, "enable.auto.commit", "true");
tmq_conf_set(conf, "auto.commit.interval.ms", "1000");
tmq_conf_set(conf, "group.id", "cgrpName");
tmq_conf_set(conf, "td.connect.user", "root");
tmq_conf_set(conf, "td.connect.pass", "taosdata");
tmq_conf_set(conf, "auto.offset.reset", "earliest");
tmq_conf_set(conf, "experimental.snapshot.enable", "true");
tmq_conf_set(conf, "msg.with.table.name", "true");
tmq_conf_set_auto_commit_cb(conf, tmq_commit_cb_print, NULL);
tmq_t* tmq = tmq_consumer_new(conf, NULL, 0);
tmq_conf_destroy(conf);
```
上述配置中包括consumer group ID如果多个 consumer 指定的 consumer group ID一样则自动形成一个consumer group共享消费进度。
## 创建 topic 列表
单个consumer支持同时订阅多个topic。
```sql
tmq_list_t* topicList = tmq_list_new();
tmq_list_append(topicList, "topicName");
```
## 启动订阅并开始消费
```
/* 启动订阅 */
tmq_subscribe(tmq, topicList);
tmq_list_destroy(topicList);
/* 循环poll消息 */
while (running) {
TAOS_RES* tmqmsg = tmq_consumer_poll(tmq, timeOut);
msg_process(tmqmsg);
}
```
这里是一个 **while** 循环每调用一次tmq_consumer_poll()获取一个消息该消息与普通查询返回的结果集完全相同可以使用相同的解析API完成消息内容的解析。
## 结束消费
```sql
/* 取消订阅 */
tmq_unsubscribe(tmq);
/* 关闭消费 */
tmq_consumer_close(tmq);
```
## 删除topic
如果不再需要可以删除创建topic但注意只有没有被订阅的topic才能别删除。
```sql
/* 删除topic */
drop topic topicName;
```
## 状态查看
1、topics查询已经创建的topic
```sql
show topics;
```
2、consumers查询consumer的状态及其订阅的topic
```sql
show consumers;
```
3、subscriptions查询consumer与vgroup之间的分配关系
```sql
show subscriptions;
```
## 示例代码
本节展示各种语言的示例代码。
<Tabs>
<TabItem label="C" value="c">
```c
{{#include examples/c/tmq.c}}
```
</TabItem>
<TabItem label="Java" value="java">
<Java />
</TabItem>
<TabItem label="Go" value="Go">
<Go/>
</TabItem>
<TabItem label="Rust" value="Rust">
<Rust />
</TabItem>
<TabItem label="Python" value="Python">
```python
{{#include docs/examples/python/tmq_example.py}}
```
</TabItem>
<TabItem label="Node.JS" value="Node.JS">
<Node/>
</TabItem>
<TabItem label="C#" value="C#">
<CSharp/>
</TabItem>
</Tabs>

File diff suppressed because it is too large Load Diff

View File

@ -103,7 +103,7 @@ SELECT d1001.* FROM d1001,d1003 WHERE d1001.ts = d1003.ts;
在超级表和子表的查询中可以指定 _标签列_,且标签列的值会与普通列的数据一起返回。
```sql
ELECT location, groupid, current FROM d1001 LIMIT 2;
SELECT location, groupid, current FROM d1001 LIMIT 2;
```
### 结果去重

View File

@ -1,6 +1,6 @@
---
sidebar_label: 消息队列
title: 消息队列
sidebar_label: 数据订阅
title: 数据订阅
---
TDengine 3.0.0.0 开始对消息队列做了大幅的优化和增强以简化用户的解决方案。
@ -8,24 +8,17 @@ TDengine 3.0.0.0 开始对消息队列做了大幅的优化和增强以简化用
## 创建订阅主题
```sql
CREATE TOPIC [IF NOT EXISTS] topic_name AS {subquery | DATABASE db_name | STABLE stb_name };
CREATE TOPIC [IF NOT EXISTS] topic_name AS subquery;
```
订阅主题包括三种:列订阅、超级表订阅和数据库订阅。
**列订阅是**用 subquery 描述,支持过滤和标量函数和 UDF 标量函数,不支持 JOIN、GROUP BY、窗口切分子句、聚合函数和 UDF 聚合函数。列订阅规则如下:
TOPIC 支持过滤和标量函数和 UDF 标量函数,不支持 JOIN、GROUP BY、窗口切分子句、聚合函数和 UDF 聚合函数。列订阅规则如下:
1. TOPIC 一旦创建则返回结果的字段确定
2. 被订阅或用于计算的列不可被删除、修改
3. 列可以新增,但新增的列不出现在订阅结果字段中
4. 对于 select \*,则订阅展开为创建时所有的列(子表、普通表为数据列,超级表为数据列加标签列)
**超级表订阅和数据库订阅**规则如下:
1. 被订阅主体的 schema 变更不受限
2. 返回消息中 schema 是块级别的,每块的 schema 可能不一样
3. 列变更后写入的数据若未落盘,将以写入时的 schema 返回
4. 列变更后写入的数据若未已落盘,将以落盘时的 schema 返回
## 删除订阅主题

View File

@ -0,0 +1,95 @@
---
sidebar_label: 3.0 版本语法变更
title: 3.0 版本语法变更
description: "TDengine 3.0 版本的语法变更说明"
---
## SQL 基本元素变更
| # | **元素** | **<div style={{width: 60}}>差异性</div>** | **说明** |
| - | :------- | :-------- | :------- |
| 1 | VARCHAR | 新增 | BINARY类型的别名。
| 2 | TIMESTAMP字面量 | 新增 | 新增支持 TIMESTAMP 'timestamp format' 语法。
| 3 | _ROWTS伪列 | 新增 | 表示时间戳主键。是_C0伪列的别名。
| 4 | INFORMATION_SCHEMA | 新增 | 包含各种SCHEMA定义的系统数据库。
| 5 | PERFORMANCE_SCHEMA | 新增 | 包含运行信息的系统数据库。
| 6 | 连续查询 | 废除 | 不再支持连续查询。相关的各种语法和接口废除。
| 7 | 混合运算 | 增强 | 查询中的混合运算标量运算和矢量运算混合全面增强SELECT的各个子句均全面支持符合语法语义的混合运算。
| 8 | 标签运算 | 新增 |在查询中,标签列可以像普通列一样参与各种运算,用于各种子句。
| 9 | 时间线子句和时间函数用于超级表查询 | 增强 |没有PARTITION BY时超级表的数据会被合并成一条时间线。
## SQL 语句变更
在 TDengine 中,普通表的数据模型中可使用以下数据类型。
| # | **语句** | **<div style={{width: 60}}>差异性</div>** | **说明** |
| - | :------- | :-------- | :------- |
| 1 | ALTER ACCOUNT | 废除 | 2.x中为企业版功能3.0不再支持。语法暂时保留了执行报“This statement is no longer supported”错误。
| 2 | ALTER ALL DNODES | 新增 | 修改所有DNODE的参数。
| 3 | ALTER DATABASE | 调整 | 废除<ul><li>QUORUM写入需要的副本确认数。3.0版本使用STRICT来指定强一致还是弱一致。3.0.0版本STRICT暂不支持修改。</li><li>BLOCKSVNODE使用的内存块数。3.0版本使用BUFFER来表示VNODE写入内存池的大小。</li><li>UPDATE更新操作的支持模式。3.0版本所有数据库都支持部分列更新。</li><li>CACHELAST缓存最新一行数据的模式。3.0版本用CACHEMODEL代替。</li><li>COMP3.0版本暂不支持修改。<br/>新增</li><li>CACHEMODEL表示是否在内存中缓存子表的最近数据。</li><li>CACHESIZE表示缓存子表最近数据的内存大小。</li><li>WAL_FSYNC_PERIOD代替原FSYNC参数。</li><li>WAL_LEVEL代替原WAL参数。<br/>调整</li><li>REPLICA3.0.0版本暂不支持修改。</li><li>KEEP3.0版本新增支持带单位的设置方式。</li></ul>
| 4 | ALTER STABLE | 调整 | 废除<ul><li>CHANGE TAG修改标签列的名称。3.0版本使用RENAME TAG代替。<br/>新增</li><li>RENAME TAG代替原CHANGE TAG子句。</li><li>COMMENT修改超级表的注释。</li></ul>
| 5 | ALTER TABLE | 调整 | 废除<ul><li>CHANGE TAG修改标签列的名称。3.0版本使用RENAME TAG代替。<br/>新增</li><li>RENAME TAG代替原CHANGE TAG子句。</li><li>COMMENT修改表的注释。</li><li>TTL修改表的生命周期。</li></ul>
| 6 | ALTER USER | 调整 | 废除<ul><li>PRIVILEGE修改用户权限。3.0版本使用GRANT和REVOKE来授予和回收权限。<br/>新增</li><li>ENABLE启用或停用此用户。</li><li>SYSINFO修改用户是否可查看系统信息。</li></ul>
| 7 | COMPACT VNODES | 暂不支持 | 整理指定VNODE的数据。3.0.0版本暂不支持。
| 8 | CREATE ACCOUNT | 废除 | 2.x中为企业版功能3.0不再支持。语法暂时保留了执行报“This statement is no longer supported”错误。
| 9 | CREATE DATABASE | 调整 | 废除<ul><li>BLOCKSVNODE使用的内存块数。3.0版本使用BUFFER来表示VNODE写入内存池的大小。</li><li>CACHEVNODE使用的内存块的大小。3.0版本使用BUFFER来表示VNODE写入内存池的大小。</li><li>CACHELAST缓存最新一行数据的模式。3.0版本用CACHEMODEL代替。</li><li>DAYS数据文件存储数据的时间跨度。3.0版本使用DURATION代替。</li><li>FSYNC当 WAL 设置为 2 时,执行 fsync 的周期。3.0版本使用WAL_FSYNC_PERIOD代替。</li><li>QUORUM写入需要的副本确认数。3.0版本使用STRICT来指定强一致还是弱一致。</li><li>UPDATE更新操作的支持模式。3.0版本所有数据库都支持部分列更新。</li><li>WALWAL 级别。3.0版本使用WAL_LEVEL代替。<br/>新增</li><li>BUFFER一个 VNODE 写入内存池大小。</li><li>CACHEMODEL表示是否在内存中缓存子表的最近数据。</li><li>CACHESIZE表示缓存子表最近数据的内存大小。</li><li>DURATION代替原DAYS参数。新增支持带单位的设置方式。</li><li>PAGES一个 VNODE 中元数据存储引擎的缓存页个数。</li><li>PAGESIZE一个 VNODE 中元数据存储引擎的页大小。</li><li>RETENTIONS表示数据的聚合周期和保存时长。</li><li>STRICT表示数据同步的一致性要求。</li><li>SINGLE_STABLE表示此数据库中是否只可以创建一个超级表。</li><li>VGROUPS数据库中初始VGROUP的数目。</li><li>WAL_FSYNC_PERIOD代替原FSYNC参数。</li><li>WAL_LEVEL代替原WAL参数。</li><li>WAL_RETENTION_PERIODwal文件的额外保留策略用于数据订阅。</li><li>WAL_RETENTION_SIZEwal文件的额外保留策略用于数据订阅。</li><li>WAL_ROLL_PERIODwal文件切换时长。</li><li>WAL_SEGMENT_SIZEwal单个文件大小。<br/>调整</li><li>KEEP3.0版本新增支持带单位的设置方式。</li></ul>
| 10 | CREATE DNODE | 调整 | 新增主机名和端口号分开指定语法<ul><li>CREATE DNODE dnode_host_name PORT port_val</li></ul>
| 11 | CREATE INDEX | 新增 | 创建SMA索引。
| 12 | CREATE MNODE | 新增 | 创建管理节点。
| 13 | CREATE QNODE | 新增 | 创建查询节点。
| 14 | CREATE STABLE | 调整 | 新增表参数语法<li>COMMENT表注释。</li>
| 15 | CREATE STREAM | 新增 | 创建流。
| 16 | CREATE TABLE | 调整 | 新增表参数语法<ul><li>COMMENT表注释。</li><li>WATERMARK指定窗口的关闭时间。</li><li>MAX_DELAY用于控制推送计算结果的最大延迟。</li><li>ROLLUP指定的聚合函数提供基于多层级的降采样聚合结果。</li><li>SMA提供基于数据块的自定义预计算功能。</li><li>TTL用来指定表的生命周期的参数。</li></ul>
| 17 | CREATE TOPIC | 新增 | 创建订阅主题。
| 18 | DROP ACCOUNT | 废除 | 2.x中为企业版功能3.0不再支持。语法暂时保留了执行报“This statement is no longer supported”错误。
| 19 | DROP CONSUMER GROUP | 新增 | 删除消费组。
| 20 | DROP INDEX | 新增 | 删除索引。
| 21 | DROP MNODE | 新增 | 创建管理节点。
| 22 | DROP QNODE | 新增 | 创建查询节点。
| 23 | DROP STREAM | 新增 | 删除流。
| 24 | DROP TABLE | 调整 | 新增批量删除语法
| 25 | DROP TOPIC | 新增 | 删除订阅主题。
| 26 | EXPLAIN | 新增 | 查看查询语句的执行计划。
| 27 | GRANT | 新增 | 授予用户权限。
| 28 | KILL TRANSACTION | 新增 | 终止管理节点的事务。
| 29 | KILL STREAM | 废除 | 终止连续查询。3.0版本不再支持连续查询,而是用更通用的流计算来代替。
| 30 | MERGE VGROUP | 新增 | 合并VGROUP。
| 31 | REVOKE | 新增 | 回收用户权限。
| 32 | SELECT | 调整 | <ul><li>SELECT关闭隐式结果列输出列均需要由SELECT子句来指定。</li><li>DISTINCT功能全面支持。2.x版本只支持对标签列去重并且不可以和JOIN、GROUP BY等子句混用。</li><li>JOIN功能增强。增加支持JOIN后WHERE条件中有OR条件JOIN后的多表运算JOIN后的多表GROUP BY。</li><li>FROM后子查询功能大幅增强。不限制子查询嵌套层数支持子查询和UNION ALL混合使用移除其他一些之前版本的语法限制。</li><li>WHERE后可以使用任意的标量表达式。</li><li>GROUP BY功能增强。支持任意标量表达式及其组合的分组。</li><li>SESSION可以用于超级表了。没有PARTITION BY时超级表的数据会被合并成一条时间线。</li><li>STATE_WINDOW可以用于超级表了。没有PARTITION BY时超级表的数据会被合并成一条时间线。</li><li>ORDER BY功能大幅增强。不再必须和GROUP BY子句一起使用不再有排序表达式个数的限制增加支持NULLS FIRST/LAST语法功能支持符合语法语义的任意表达式。</li><li>新增PARTITION BY语法。替代原来的GROUP BY tags。</li></ul>
| 33 | SHOW ACCOUNTS | 废除 | 2.x中为企业版功能3.0不再支持。语法暂时保留了执行报“This statement is no longer supported”错误。
| 34 | SHOW APPS |新增 | 显示接入集群的应用(客户端)信息。
| 35 | SHOW CONSUMERS | 新增 | 显示当前数据库下所有活跃的消费者的信息。
| 36 | SHOW DATABASES | 调整 | 3.0版本只显示数据库名。
| 37 | SHOW FUNCTIONS | 调整 | 3.0版本只显示自定义函数名。
| 38 | SHOW LICENCE | 新增 | 和SHOW GRANTS 命令等效。
| 39 | SHOW INDEXES | 新增 | 显示已创建的索引。
| 40 | SHOW LOCAL VARIABLES | 新增 | 显示当前客户端配置参数的运行值。
| 41 | SHOW MODULES | 废除 | 显示当前系统中所安装的组件的信息。
| 42 | SHOW QNODES | 新增 | 显示当前系统中QNODE的信息。
| 43 | SHOW STABLES | 调整 | 3.0版本只显示超级表名。
| 44 | SHOW STREAMS | 调整 | 2.x版本此命令显示系统中已创建的连续查询的信息。3.0版本废除了连续查询,用流代替。此命令显示已创建的流。
| 45 | SHOW SUBSCRIPTIONS | 新增 | 显示当前数据库下的所有的订阅关系
| 46 | SHOW TABLES | 调整 | 3.0版本只显示表名。
| 47 | SHOW TABLE DISTRIBUTED | 新增 | 显示表的数据分布信息。代替2.x版本中的SELECT _block_dist() FROM { tb_name | stb_name }方式。
| 48 | SHOW TOPICS | 新增 | 显示当前数据库下的所有订阅主题。
| 49 | SHOW TRANSACTIONS | 新增 | 显示当前系统中正在执行的事务的信息。
| 50 | SHOW DNODE VARIABLES | 新增 |显示指定DNODE的配置参数。
| 51 | SHOW VNODES | 暂不支持 | 显示当前系统中VNODE的信息。3.0.0版本暂不支持。
| 52 | SPLIT VGROUP | 新增 | 拆分VGROUP。
| 53 | TRIM DATABASE | 新增 | 删除过期数据,并根据多级存储的配置归整数据。
## SQL 函数变更
| # | **函数** | ** <div style={{width: 60}}>差异性</div> ** | **说明** |
| - | :------- | :-------- | :------- |
| 1 | TWA | 增强 | 可以直接用于超级表了。没有PARTITION BY时超级表的数据会被合并成一条时间线。
| 2 | IRATE | 增强 | 可以直接用于超级表了。没有PARTITION BY时超级表的数据会被合并成一条时间线。
| 3 | LEASTSQUARES | 增强 | 可以用于超级表了。
| 4 | ELAPSED | 增强 | 可以直接用于超级表了。没有PARTITION BY时超级表的数据会被合并成一条时间线。
| 5 | DIFF | 增强 | 可以直接用于超级表了。没有PARTITION BY时超级表的数据会被合并成一条时间线。
| 6 | DERIVATIVE | 增强 | 可以直接用于超级表了。没有PARTITION BY时超级表的数据会被合并成一条时间线。
| 7 | CSUM | 增强 | 可以直接用于超级表了。没有PARTITION BY时超级表的数据会被合并成一条时间线。
| 8 | MAVG | 增强 | 可以直接用于超级表了。没有PARTITION BY时超级表的数据会被合并成一条时间线。
| 9 | SAMPLE | 增强 | 可以直接用于超级表了。没有PARTITION BY时超级表的数据会被合并成一条时间线。
| 10 | STATECOUNT | 增强 | 可以直接用于超级表了。没有PARTITION BY时超级表的数据会被合并成一条时间线。
| 11 | STATEDURATION | 增强 | 可以直接用于超级表了。没有PARTITION BY时超级表的数据会被合并成一条时间线。

View File

@ -3,7 +3,7 @@ title: TAOS SQL
description: "TAOS SQL 支持的语法规则、主要查询功能、支持的 SQL 查询函数,以及常用技巧等内容"
---
本文档说明 TAOS SQL 支持的语法规则、主要查询功能、支持的 SQL 查询函数,以及常用技巧等内容。阅读本文档需要读者具有基本的 SQL 语言的基础。
本文档说明 TAOS SQL 支持的语法规则、主要查询功能、支持的 SQL 查询函数,以及常用技巧等内容。阅读本文档需要读者具有基本的 SQL 语言的基础。TDengine 3.0 版本相比 2.x 版本做了大量改进和优化,特别是查询引擎进行了彻底的重构,因此 SQL 语法相比 2.x 版本有很多变更。详细的变更内容请见 [3.0 版本语法变更](/taos-sql/changes) 章节
TAOS SQL 是用户对 TDengine 进行数据写入和查询的主要工具。TAOS SQL 提供标准的 SQL 语法并针对时序数据和业务的特点优化和新增了许多语法和功能。TAOS SQL 语句的最大长度为 1M。TAOS SQL 不支持关键字的缩写,例如 DELETE 不能缩写为 DEL。

View File

@ -2,7 +2,7 @@
title: REST API
---
为支持各种不同类型平台的开发TDengine 提供符合 REST 设计标准的 API即 REST API。为最大程度降低学习成本不同于其他数据库 REST API 的设计方法TDengine 直接通过 HTTP POST 请求 BODY 中包含的 SQL 语句来操作数据库,仅需要一个 URL。REST 连接器的使用参见[视频教程](https://www.taosdata.com/blog/2020/11/11/1965.html)。
为支持各种不同类型平台的开发TDengine 提供符合 REST 设计标准的 API即 REST API。为最大程度降低学习成本不同于其他数据库 REST API 的设计方法TDengine 直接通过 HTTP POST 请求 BODY 中包含的 SQL 语句来操作数据库,仅需要一个 URL。REST 连接器的使用参见 [视频教程](https://www.taosdata.com/blog/2020/11/11/1965.html)。
:::note
与原生连接器的一个区别是RESTful 接口是无状态的,因此 `USE db_name` 指令没有效果,所有对表名、超级表名的引用都需要指定数据库名前缀。支持在 RESTful URL 中指定 db_name这时如果 SQL 语句中没有指定数据库名前缀的话,会使用 URL 中指定的这个 db_name。
@ -20,8 +20,10 @@ RESTful 接口不依赖于任何 TDengine 的库,因此客户端不需要安
下面示例是列出所有的数据库,请把 h1.taosdata.com 和 6041缺省值替换为实际运行的 TDengine 服务 FQDN 和端口号:
```html
curl -L -H "Authorization: Basic cm9vdDp0YW9zZGF0YQ==" -d "show databases;" h1.taosdata.com:6041/rest/sql
```bash
curl -L -H "Authorization: Basic cm9vdDp0YW9zZGF0YQ==" \
-d "select name, ntables, status from information_schema.ins_databases;" \
h1.taosdata.com:6041/rest/sql
```
返回值结果如下表示验证通过:
@ -35,188 +37,27 @@ curl -L -H "Authorization: Basic cm9vdDp0YW9zZGF0YQ==" -d "show databases;" h1.t
"VARCHAR",
64
],
[
"create_time",
"TIMESTAMP",
8
],
[
"vgroups",
"SMALLINT",
2
],
[
"ntables",
"BIGINT",
8
],
[
"replica",
"TINYINT",
1
],
[
"strict",
"VARCHAR",
4
],
[
"duration",
"VARCHAR",
10
],
[
"keep",
"VARCHAR",
32
],
[
"buffer",
"INT",
4
],
[
"pagesize",
"INT",
4
],
[
"pages",
"INT",
4
],
[
"minrows",
"INT",
4
],
[
"maxrows",
"INT",
4
],
[
"comp",
"TINYINT",
1
],
[
"precision",
"VARCHAR",
2
],
[
"status",
"VARCHAR",
10
],
[
"retention",
"VARCHAR",
60
],
[
"single_stable",
"BOOL",
1
],
[
"cachemodel",
"VARCHAR",
11
],
[
"cachesize",
"INT",
4
],
[
"wal_level",
"TINYINT",
1
],
[
"wal_fsync_period",
"INT",
4
],
[
"wal_retention_period",
"INT",
4
],
[
"wal_retention_size",
"BIGINT",
8
],
[
"wal_roll_period",
"INT",
4
],
[
"wal_seg_size",
"BIGINT",
8
]
],
"data": [
[
"information_schema",
null,
null,
14,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
"ready",
null,
null,
null,
null,
null,
null,
null,
null,
null,
null
16,
"ready"
],
[
"performance_schema",
null,
null,
3,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
"ready",
null,
null,
null,
null,
null,
null,
null,
null,
null,
null
9,
"ready"
]
],
"rows": 2
@ -231,21 +72,21 @@ http://<fqdn>:<port>/rest/sql/[db_name]
参数说明:
- fqnd: 集群中的任一台主机 FQDN 或 IP 地址
- port: 配置文件中 httpPort 配置项,缺省为 6041
- fqnd: 集群中的任一台主机 FQDN 或 IP 地址
- port: 配置文件中 httpPort 配置项,缺省为 6041
- db_name: 可选参数,指定本次所执行的 SQL 语句的默认数据库库名。
例如:`http://h1.taos.com:6041/rest/sql/test` 是指向地址为 `h1.taos.com:6041` 的 URL并将默认使用的数据库库名设置为 `test`。
HTTP 请求的 Header 里需带有身份认证信息TDengine 支持 Basic 认证与自定义认证两种机制,后续版本将提供标准安全的数字签名机制来做身份验证。
- [自定义身份认证信息](#自定义授权码)如下所示
- [自定义身份认证信息](#自定义授权码)如下所示
```text
Authorization: Taosd <TOKEN>
```
- Basic 身份认证信息如下所示
- Basic 身份认证信息如下所示
```text
Authorization: Basic <TOKEN>
@ -259,13 +100,13 @@ HTTP 请求的 BODY 里就是一个完整的 SQL 语句SQL 语句中的数据
curl -L -H "Authorization: Basic <TOKEN>" -d "<SQL>" <ip>:<PORT>/rest/sql/[db_name]
```
或者
或者
```bash
curl -L -u username:password -d "<SQL>" <ip>:<PORT>/rest/sql/[db_name]
```
其中,`TOKEN` 为 `{username}:{password}` 经过 Base64 编码之后的字符串,例如 `root:taosdata` 编码后为 `cm9vdDp0YW9zZGF0YQ==`
其中,`TOKEN` 为 `{username}:{password}` 经过 Base64 编码之后的字符串,例如 `root:taosdata` 编码后为 `cm9vdDp0YW9zZGF0YQ==`
## HTTP 返回格式
@ -282,27 +123,9 @@ curl -L -u username:password -d "<SQL>" <ip>:<PORT>/rest/sql/[db_name]
### HTTP body 结构
<table>
<tr>
<th>执行结果</th>
<th>说明</th>
<th>样例</th>
</tr>
<tr>
<td>正确执行</td>
<td>
codeint0 代表成功
<br/>
<br/>
column_meta[][3]any列信息每个列会用三个值来说明分别为列名(string)、列类型(string)、类型长度(int)
<br/>
<br/>
rowsint数据返回行数
<br/>
<br/>
data[][]any具体数据内容
</td>
<td>
#### 正确执行
样例:
```json
{
@ -313,23 +136,16 @@ curl -L -u username:password -d "<SQL>" <ip>:<PORT>/rest/sql/[db_name]
}
```
</td>
</tr>
<tr>
<td>正确查询</td>
<td>
codeint0 代表成功
<br/>
<br/>
column_meta[][3]any 列信息每个列会用三个值来说明分别为列名string、列类型string、类型长度int
<br/>
<br/>
rowsint数据返回行数
<br/>
<br/>
data[][]any具体数据内容
</td>
<td>
说明:
- code`int`0 代表成功。
- column_meta`[1][3]any`)只返回 `[["affected_rows", "INT", 4]]`。
- rows`int`)只返回 `1`。
- data`[][]any`)返回受影响行数。
#### 正确查询
样例:
```json
{
@ -385,17 +201,35 @@ curl -L -u username:password -d "<SQL>" <ip>:<PORT>/rest/sql/[db_name]
}
```
</td>
</tr>
<tr>
<td>错误</td>
<td>
codeint错误码
<br/>
<br/>
descstring错误描述
</td>
<td>
说明:
- code`int`0 代表成功。
- column_meta`[][3]any` 列信息每个列会用三个值来说明分别为列名string、列类型string、类型长度int
- rows`int`)数据返回行数。
- data`[][]any`)具体数据内容(时间格式仅支持 RFC3339结果集为 0 时区)。
列类型使用如下字符串:
- "NULL"
- "BOOL"
- "TINYINT"
- "SMALLINT"
- "INT"
- "BIGINT"
- "FLOAT"
- "DOUBLE"
- "VARCHAR"
- "TIMESTAMP"
- "NCHAR"
- "TINYINT UNSIGNED"
- "SMALLINT UNSIGNED"
- "INT UNSIGNED"
- "BIGINT UNSIGNED"
- "JSON"
#### 错误
样例:
```json
{
@ -404,30 +238,10 @@ curl -L -u username:password -d "<SQL>" <ip>:<PORT>/rest/sql/[db_name]
}
```
</td>
</tr>
</table>
说明:
### 说明
- 时间格式仅支持 RFC3339结果集为 0 时区
- 列类型使用如下字符串:
> "NULL"
> "BOOL"
> "TINYINT"
> "SMALLINT"
> "INT"
> "BIGINT"
> "FLOAT"
> "DOUBLE"
> "VARCHAR"
> "TIMESTAMP"
> "NCHAR"
> "TINYINT UNSIGNED"
> "SMALLINT UNSIGNED"
> "INT UNSIGNED"
> "BIGINT UNSIGNED"
> "JSON"
- code`int`)错误码。
- desc`string`)错误描述。
## 自定义授权码
@ -439,11 +253,9 @@ curl http://<fqnd>:<port>/rest/login/<username>/<password>
其中,`fqdn` 是 TDengine 数据库的 FQDN 或 IP 地址,`port` 是 TDengine 服务的端口号,`username` 为数据库用户名,`password` 为数据库密码,返回值为 JSON 格式,各字段含义如下:
- status请求结果的标志位
- code返回值代码
- desc授权码
- status请求结果的标志位。
- code返回值代码。
- desc授权码。
获取授权码示例:

View File

@ -1,10 +1,10 @@
import PkgList from "/components/PkgList";
import PkgListV3 from "/components/PkgListV3";
1. 下载客户端安装包
<PkgList type={1} sys="Linux" />
<PkgListV3 type={1} sys="Linux" />
[所有下载](https://www.taosdata.com/cn/all-downloads/)
[所有下载](../../releases)
2. 解压缩软件包

View File

@ -1,11 +1,10 @@
import PkgList from "/components/PkgList";
import PkgListV3 from "/components/PkgListV3";
1. 下载客户端安装包
<PkgList type={1} sys="Windows" />
[所有下载](https://www.taosdata.com/cn/all-downloads/)
<PkgListV3 type={4} sys="Windows" />
[所有下载](../../releases)
2. 执行安装程序,按提示选择默认值,完成安装
3. 安装路径

View File

@ -404,47 +404,3 @@ TDengine 的异步 API 均采用非阻塞调用模式。应用程序可以用多
**支持版本**
该功能接口从 2.3.0.0 版本开始支持。
### 订阅和消费 API
订阅 API 目前支持订阅一张或多张表,并通过定期轮询的方式不断获取写入表中的最新数据。
- `TAOS_SUB *taos_subscribe(TAOS* taos, int restart, const char* topic, const char *sql, TAOS_SUBSCRIBE_CALLBACK fp, void *param, int interval)`
该函数负责启动订阅服务,成功时返回订阅对象,失败时返回 `NULL`,其参数为:
- taos已经建立好的数据库连接
- restart如果订阅已经存在是重新开始还是继续之前的订阅
- topic订阅的主题即名称此参数是订阅的唯一标识
- sql订阅的查询语句此语句只能是 `select` 语句,只应查询原始数据,只能按时间正序查询数据
- fp收到查询结果时的回调函数稍后介绍函数原型只在异步调用时使用同步调用时此参数应该传 `NULL`
- param调用回调函数时的附加参数系统 API 将其原样传递到回调函数,不进行任何处理
- interval轮询周期单位为毫秒。异步调用时将根据此参数周期性的调用回调函数为避免对系统性能造成影响不建议将此参数设置的过小同步调用时如两次调用 `taos_consume()` 的间隔小于此周期API 将会阻塞,直到时间间隔超过此周期。
- `typedef void (*TAOS_SUBSCRIBE_CALLBACK)(TAOS_SUB* tsub, TAOS_RES *res, void* param, int code)`
异步模式下,回调函数的原型,其参数为:
- tsub订阅对象
- res查询结果集注意结果集中可能没有记录
- param调用 `taos_subscribe()` 时客户程序提供的附加参数
- code错误码
:::note
在这个回调函数里不可以做耗时过长的处理,尤其是对于返回的结果集中数据较多的情况,否则有可能导致客户端阻塞等异常状态。如果必须进行复杂计算,则建议在另外的线程中进行处理。
:::
- `TAOS_RES *taos_consume(TAOS_SUB *tsub)`
同步模式下,该函数用来获取订阅的结果。 用户应用程序将其置于一个循环之中。 如两次调用 `taos_consume()` 的间隔小于订阅的轮询周期API 将会阻塞,直到时间间隔超过此周期。如果数据库有新记录到达,该 API 将返回该最新的记录,否则返回一个没有记录的空结果集。 如果返回值为 `NULL`,说明系统出错。 异步模式下,用户程序不应调用此 API。
:::note
在调用 `taos_consume()` 之后,用户应用应确保尽快调用 `taos_fetch_row()` 或 `taos_fetch_block()` 来处理订阅结果,否则服务端会持续缓存查询结果数据等待客户端读取,极端情况下会导致服务端内存消耗殆尽,影响服务稳定性。
:::
- `void taos_unsubscribe(TAOS_SUB *tsub, int keepProgress)`
取消订阅。 如参数 `keepProgress` 不为 0API 会保留订阅的进度信息,后续调用 `taos_subscribe()` 时可以基于此进度继续;否则将删除进度信息,后续只能重新开始读取数据。

View File

@ -93,12 +93,12 @@ Maven 项目中,在 pom.xml 中添加以下依赖:
可以通过下载 TDengine 的源码,自己编译最新版本的 Java connector
```shell
git clone https://github.com/taosdata/taos-connector-jdbc.git --branch 2.0
git clone https://github.com/taosdata/taos-connector-jdbc.git
cd taos-connector-jdbc
mvn clean install -Dmaven.test.skip=true
```
编译后,在 target 目录下会产生 taos-jdbcdriver-2.0.XX-dist.jar 的 jar 包,并自动将编译的 jar 文件放在本地的 Maven 仓库中。
编译后,在 target 目录下会产生 taos-jdbcdriver-3.0.*-dist.jar 的 jar 包,并自动将编译的 jar 文件放在本地的 Maven 仓库中。
</TabItem>
</Tabs>
@ -198,7 +198,7 @@ url 中的配置参数如下:
- user登录 TDengine 用户名,默认值 'root'。
- password用户登录密码默认值 'taosdata'。
- batchfetch: true在执行查询时批量拉取结果集false逐行拉取结果集。默认值为false。逐行拉取结果集使用 HTTP 方式进行数据传输。从 taos-jdbcdriver-2.0.38 开始JDBC REST 连接增加批量拉取数据功能。taos-jdbcdriver 与 TDengine 之间通过 WebSocket 连接进行数据传输。相较于 HTTPWebSocket 可以使 JDBC REST 连接支持大数据量查询,并提升查询性能。
- batchfetch: true在执行查询时批量拉取结果集false逐行拉取结果集。默认值为false。逐行拉取结果集使用 HTTP 方式进行数据传输。JDBC REST 连接支持批量拉取数据功能。taos-jdbcdriver 与 TDengine 之间通过 WebSocket 连接进行数据传输。相较于 HTTPWebSocket 可以使 JDBC REST 连接支持大数据量查询,并提升查询性能。
- charset: 当开启批量拉取数据时,指定解析字符串数据的字符集。
- batchErrorIgnoretrue在执行 Statement 的 executeBatch 时,如果中间有一条 SQL 执行失败,继续执行下面的 SQL 了。false不再执行失败 SQL 后的任何语句。默认值为false。
- httpConnectTimeout: 连接超时时间,单位 ms 默认值为 5000。
@ -216,7 +216,7 @@ url 中的配置参数如下:
INSERT INTO test.t1 USING test.weather (ts, temperature) TAGS('California.SanFrancisco') VALUES(now, 24.6);
```
- 从 taos-jdbcdriver-2.0.36 开始,如果在 url 中指定了 dbname那么JDBC REST 连接会默认使用/rest/sql/dbname 作为 restful 请求的 url在 SQL 中不需要指定 dbname。例如url 为 jdbc:TAOS-RS://127.0.0.1:6041/test那么可以执行 sqlinsert into t1 using weather(ts, temperature) tags('California.SanFrancisco') values(now, 24.6);
- 如果在 url 中指定了 dbname那么JDBC REST 连接会默认使用/rest/sql/dbname 作为 restful 请求的 url在 SQL 中不需要指定 dbname。例如url 为 jdbc:TAOS-RS://127.0.0.1:6041/test那么可以执行 sqlinsert into t1 using weather(ts, temperature) tags('California.SanFrancisco') values(now, 24.6);
:::
@ -230,7 +230,7 @@ INSERT INTO test.t1 USING test.weather (ts, temperature) TAGS('California.SanFra
**注意**
- 应用中设置的 client parameter 为进程级别的,即如果要更新 client 的参数,需要重启应用。这是因为 client parameter 是全局参数,仅在应用程序的第一次设置生效。
- 以下示例代码基于 taos-jdbcdriver-2.0.36
- 以下示例代码基于 taos-jdbcdriver-3.0.0
```java
public Connection getConn() throws Exception{
@ -367,7 +367,7 @@ TDengine 的 JDBC 原生连接实现大幅改进了参数绑定方式对数据
**注意**
- JDBC REST 连接目前不支持参数绑定
- 以下示例代码基于 taos-jdbcdriver-2.0.36
- 以下示例代码基于 taos-jdbcdriver-3.0.0
- binary 类型数据需要调用 setString 方法nchar 类型数据需要调用 setNString 方法
- setString 和 setNString 都要求用户在 size 参数里声明表定义中对应列的列宽
@ -635,7 +635,7 @@ TDengine 支持无模式写入功能。无模式写入兼容 InfluxDB 的 行协
**注意**
- JDBC REST 连接目前不支持无模式写入
- 以下示例代码基于 taos-jdbcdriver-2.0.36
- 以下示例代码基于 taos-jdbcdriver-3.0.0
```java
public class SchemalessInsertTest {
@ -666,7 +666,7 @@ public class SchemalessInsertTest {
}
```
### 订阅
### 数据订阅
TDengine Java 连接器支持订阅功能,应用 API 如下:
@ -712,14 +712,19 @@ while(true) {
}
```
`poll` 每次调用获取一个消息。请按需选择合理的调用 `poll` 的频率(如例子中的 `Duration.ofMillis(100)`),否则会给服务端造成不必要的压力。
`poll` 每次调用获取一个消息。
#### 关闭订阅
```java
// 取消订阅
consumer.unsubscribe();
// 关闭消费
consumer.close()
```
详情请参考:[数据订阅](../../../develop/tmq)
### 使用示例如下:
```java
@ -734,7 +739,7 @@ public abstract class ConsumerLoop {
config.setProperty("msg.with.table.name", "true");
config.setProperty("enable.auto.commit", "true");
config.setProperty("group.id", "group1");
config.setProperty("value.deserializer", "com.taosdata.jdbc.tmq.ConsumerTest.ResultDeserializer");
config.setProperty("value.deserializer", "com.taosdata.jdbc.tmq.ConsumerTest.ConsumerLoop$ResultDeserializer");
this.consumer = new TaosConsumer<>(config);
this.topics = Collections.singletonList("topic_speed");
@ -754,8 +759,9 @@ public abstract class ConsumerLoop {
process(record);
}
}
consumer.unsubscribe();
} finally {
consumer.close();
consumer.close();
shutdownLatch.countDown();
}
}
@ -765,11 +771,11 @@ public abstract class ConsumerLoop {
shutdownLatch.await();
}
static class ResultDeserializer extends ReferenceDeserializer<ResultBean> {
public static class ResultDeserializer extends ReferenceDeserializer<ResultBean> {
}
static class ResultBean {
public static class ResultBean {
private Timestamp ts;
private int speed;
@ -875,6 +881,7 @@ public static void main(String[] args) throws Exception {
| taos-jdbcdriver 版本 | 主要变化 |
| :------------------: | :----------------------------: |
| 3.0.0 | 支持 TDengine 3.0 |
| 2.0.39 - 2.0.40 | 增加 REST 连接/请求 超时设置 |
| 2.0.38 | JDBC REST 连接增加批量拉取功能 |
| 2.0.37 | 增加对 json tag 支持 |

View File

@ -647,3 +647,173 @@ charset 的有效值是 UTF-8。
| 含义 | 是否启动 udf 服务 |
| 取值范围 | 0: 不启动1启动 |
| 缺省值 | 1 |
## 2.X 与 3.0 配置参数对比
| # | **参数** | **适用于 2.X 版本** | **适用于 3.0 版本** |
| --- | :-----------------: | --------------- | --------------- |
| 1 | firstEp | 是 | 是 |
| 2 | secondEp | 是 | 是 |
| 3 | fqdn | 是 | 是 |
| 4 | serverPort | 是 | 是 |
| 5 | maxShellConns | 是 | 是 |
| 6 | monitor | 是 | 是 |
| 7 | monitorFqdn | 否 | 是 |
| 8 | monitorPort | 否 | 是 |
| 9 | monitorInterval | 是 | 是 |
| 10 | monitorMaxLogs | 否 | 是 |
| 11 | monitorComp | 否 | 是 |
| 12 | telemetryReporting | 是 | 是 |
| 13 | telemetryInterval | 否 | 是 |
| 14 | telemetryServer | 否 | 是 |
| 15 | telemetryPort | 否 | 是 |
| 16 | queryPolicy | 否 | 是 |
| 17 | querySmaOptimize | 否 | 是 |
| 18 | queryBufferSize | 是 | 是 |
| 19 | maxNumOfDistinctRes | 是 | 是 |
| 20 | minSlidingTime | 是 | 是 |
| 21 | minIntervalTime | 是 | 是 |
| 22 | countAlwaysReturnValue | 是 | 是 |
| 23 | dataDir | 是 | 是 |
| 24 | minimalDataDirGB | 是 | 是 |
| 25 | supportVnodes | 否 | 是 |
| 26 | tempDir | 是 | 是 |
| 27 | minimalTmpDirGB | 是 | 是 |
| 28 | compressMsgSize | 是 | 是 |
| 29 | compressColData | 是 | 是 |
| 30 | smlChildTableName | 是 | 是 |
| 31 | smlTagName | 是 | 是 |
| 32 | smlDataFormat | 否 | 是 |
| 33 | statusInterval | 是 | 是 |
| 34 | shellActivityTimer | 是 | 是 |
| 35 | transPullupInterval | 否 | 是 |
| 36 | mqRebalanceInterval | 否 | 是 |
| 37 | ttlUnit | 否 | 是 |
| 38 | ttlPushInterval | 否 | 是 |
| 39 | numOfTaskQueueThreads | 否 | 是 |
| 40 | numOfRpcThreads | 否 | 是 |
| 41 | numOfCommitThreads | 是 | 是 |
| 42 | numOfMnodeReadThreads | 否 | 是 |
| 43 | numOfVnodeQueryThreads | 否 | 是 |
| 44 | numOfVnodeStreamThreads | 否 | 是 |
| 45 | numOfVnodeFetchThreads | 否 | 是 |
| 46 | numOfVnodeWriteThreads | 否 | 是 |
| 47 | numOfVnodeSyncThreads | 否 | 是 |
| 48 | numOfQnodeQueryThreads | 否 | 是 |
| 49 | numOfQnodeFetchThreads | 否 | 是 |
| 50 | numOfSnodeSharedThreads | 否 | 是 |
| 51 | numOfSnodeUniqueThreads | 否 | 是 |
| 52 | rpcQueueMemoryAllowed | 否 | 是 |
| 53 | logDir | 是 | 是 |
| 54 | minimalLogDirGB | 是 | 是 |
| 55 | numOfLogLines | 是 | 是 |
| 56 | asyncLog | 是 | 是 |
| 57 | logKeepDays | 是 | 是 |
| 58 | debugFlag | 是 | 是 |
| 59 | tmrDebugFlag | 是 | 是 |
| 60 | uDebugFlag | 是 | 是 |
| 61 | rpcDebugFlag | 是 | 是 |
| 62 | jniDebugFlag | 是 | 是 |
| 63 | qDebugFlag | 是 | 是 |
| 64 | cDebugFlag | 是 | 是 |
| 65 | dDebugFlag | 是 | 是 |
| 66 | vDebugFlag | 是 | 是 |
| 67 | mDebugFlag | 是 | 是 |
| 68 | wDebugFlag | 是 | 是 |
| 69 | sDebugFlag | 是 | 是 |
| 70 | tsdbDebugFlag | 是 | 是 |
| 71 | tqDebugFlag | 否 | 是 |
| 72 | fsDebugFlag | 是 | 是 |
| 73 | udfDebugFlag | 否 | 是 |
| 74 | smaDebugFlag | 否 | 是 |
| 75 | idxDebugFlag | 否 | 是 |
| 76 | tdbDebugFlag | 否 | 是 |
| 77 | metaDebugFlag | 否 | 是 |
| 78 | timezone | 是 | 是 |
| 79 | locale | 是 | 是 |
| 80 | charset | 是 | 是 |
| 81 | udf | 是 | 是 |
| 82 | enableCoreFile | 是 | 是 |
| 83 | arbitrator | 是 | 否 |
| 84 | numOfThreadsPerCore | 是 | 否 |
| 85 | numOfMnodes | 是 | 否 |
| 86 | vnodeBak | 是 | 否 |
| 87 | balance | 是 | 否 |
| 88 | balanceInterval | 是 | 否 |
| 89 | offlineThreshold | 是 | 否 |
| 90 | role | 是 | 否 |
| 91 | dnodeNopLoop | 是 | 否 |
| 92 | keepTimeOffset | 是 | 否 |
| 93 | rpcTimer | 是 | 否 |
| 94 | rpcMaxTime | 是 | 否 |
| 95 | rpcForceTcp | 是 | 否 |
| 96 | tcpConnTimeout | 是 | 否 |
| 97 | syncCheckInterval | 是 | 否 |
| 98 | maxTmrCtrl | 是 | 否 |
| 99 | monitorReplica | 是 | 否 |
| 100 | smlTagNullName | 是 | 否 |
| 101 | keepColumnName | 是 | 否 |
| 102 | ratioOfQueryCores | 是 | 否 |
| 103 | maxStreamCompDelay | 是 | 否 |
| 104 | maxFirstStreamCompDelay | 是 | 否 |
| 105 | retryStreamCompDelay | 是 | 否 |
| 106 | streamCompDelayRatio | 是 | 否 |
| 107 | maxVgroupsPerDb | 是 | 否 |
| 108 | maxTablesPerVnode | 是 | 否 |
| 109 | minTablesPerVnode | 是 | 否 |
| 110 | tableIncStepPerVnode | 是 | 否 |
| 111 | cache | 是 | 否 |
| 112 | blocks | 是 | 否 |
| 113 | days | 是 | 否 |
| 114 | keep | 是 | 否 |
| 115 | minRows | 是 | 否 |
| 116 | maxRows | 是 | 否 |
| 117 | quorum | 是 | 否 |
| 118 | comp | 是 | 否 |
| 119 | walLevel | 是 | 否 |
| 120 | fsync | 是 | 否 |
| 121 | replica | 是 | 否 |
| 122 | partitions | 是 | 否 |
| 123 | quorum | 是 | 否 |
| 124 | update | 是 | 否 |
| 125 | cachelast | 是 | 否 |
| 126 | maxSQLLength | 是 | 否 |
| 127 | maxWildCardsLength | 是 | 否 |
| 128 | maxRegexStringLen | 是 | 否 |
| 129 | maxNumOfOrderedRes | 是 | 否 |
| 130 | maxConnections | 是 | 否 |
| 131 | mnodeEqualVnodeNum | 是 | 否 |
| 132 | http | 是 | 否 |
| 133 | httpEnableRecordSql | 是 | 否 |
| 134 | httpMaxThreads | 是 | 否 |
| 135 | restfulRowLimit | 是 | 否 |
| 136 | httpDbNameMandatory | 是 | 否 |
| 137 | httpKeepAlive | 是 | 否 |
| 138 | enableRecordSql | 是 | 否 |
| 139 | maxBinaryDisplayWidth | 是 | 否 |
| 140 | stream | 是 | 否 |
| 141 | retrieveBlockingModel | 是 | 否 |
| 142 | tsdbMetaCompactRatio | 是 | 否 |
| 143 | defaultJSONStrType | 是 | 否 |
| 144 | walFlushSize | 是 | 否 |
| 145 | keepTimeOffset | 是 | 否 |
| 146 | flowctrl | 是 | 否 |
| 147 | slaveQuery | 是 | 否 |
| 148 | adjustMaster | 是 | 否 |
| 149 | topicBinaryLen | 是 | 否 |
| 150 | telegrafUseFieldNum | 是 | 否 |
| 151 | deadLockKillQuery | 是 | 否 |
| 152 | clientMerge | 是 | 否 |
| 153 | sdbDebugFlag | 是 | 否 |
| 154 | odbcDebugFlag | 是 | 否 |
| 155 | httpDebugFlag | 是 | 否 |
| 156 | monDebugFlag | 是 | 否 |
| 157 | cqDebugFlag | 是 | 否 |
| 158 | shortcutFlag | 是 | 否 |
| 159 | probeSeconds | 是 | 否 |
| 160 | probeKillSeconds | 是 | 否 |
| 161 | probeInterval | 是 | 否 |
| 162 | lossyColumns | 是 | 否 |
| 163 | fPrecision | 是 | 否 |
| 164 | dPrecision | 是 | 否 |
| 165 | maxRange | 是 | 否 |
| 166 | range | 是 | 否 |

View File

@ -3,7 +3,7 @@ sidebar_label: 发布历史
title: 发布历史
---
import Release from "/components/Release";
import Release from "/components/ReleaseV3";
<Release versionPrefix="3.0" />

View File

@ -53,6 +53,8 @@ typedef struct SParseContext {
int8_t schemalessType;
const char* svrVer;
bool nodeOffline;
SArray* pTableMetaPos; // sql table pos => catalog data pos
SArray* pTableVgroupPos; // sql table pos => catalog data pos
} SParseContext;
int32_t qParseSql(SParseContext* pCxt, SQuery** pQuery);
@ -84,8 +86,8 @@ int32_t qBindStmtSingleColValue(void* pBlock, TAOS_MULTI_BIND* bind, char* msgBu
int32_t rowNum);
int32_t qBuildStmtColFields(void* pDataBlock, int32_t* fieldNum, TAOS_FIELD_E** fields);
int32_t qBuildStmtTagFields(void* pBlock, void* boundTags, int32_t* fieldNum, TAOS_FIELD_E** fields);
int32_t qBindStmtTagsValue(void* pBlock, void* boundTags, int64_t suid, const char* sTableName, char* tName, TAOS_MULTI_BIND* bind,
char* msgBuf, int32_t msgBufLen);
int32_t qBindStmtTagsValue(void* pBlock, void* boundTags, int64_t suid, const char* sTableName, char* tName,
TAOS_MULTI_BIND* bind, char* msgBuf, int32_t msgBufLen);
void destroyBoundColumnInfo(void* pBoundInfo);
int32_t qCreateSName(SName* pName, const char* pTableName, int32_t acctId, char* dbName, char* msgBuf,
int32_t msgBufLen);

View File

@ -30,6 +30,7 @@ extern bool gRaftDetailLog;
#define SYNC_SPEED_UP_HB_TIMER 400
#define SYNC_SPEED_UP_AFTER_MS (1000 * 20)
#define SYNC_SLOW_DOWN_RANGE 100
#define SYNC_MAX_READ_RANGE 10
#define SYNC_MAX_BATCH_SIZE 1
#define SYNC_INDEX_BEGIN 0
@ -210,9 +211,12 @@ void syncStop(int64_t rid);
int32_t syncSetStandby(int64_t rid);
ESyncState syncGetMyRole(int64_t rid);
bool syncIsReady(int64_t rid);
bool syncIsReadyForRead(int64_t rid);
const char* syncGetMyRoleStr(int64_t rid);
bool syncRestoreFinish(int64_t rid);
SyncTerm syncGetMyTerm(int64_t rid);
SyncIndex syncGetLastIndex(int64_t rid);
SyncIndex syncGetCommitIndex(int64_t rid);
SyncGroupId syncGetVgId(int64_t rid);
void syncGetEpSet(int64_t rid, SEpSet* pEpSet);
void syncGetRetryEpSet(int64_t rid, SEpSet* pEpSet);

View File

@ -5,217 +5,97 @@
# #
########################################################
# first fully qualified domain name (FQDN) for TDengine system
# The end point of the first dnode in the cluster to be connected to when `taosd` or `taos` is started
# firstEp hostname:6030
# local fully qualified domain name (FQDN)
# The end point of the second dnode to be connected to if the firstEp is not available when `taosd` or `taos` is started
# secondEp
# The FQDN of the host where `taosd` will be started. It can be IP address
# fqdn hostname
# first port number for the connection (12 continuous UDP/TCP port number are used)
# The port for external access after `taosd` is started
# serverPort 6030
# log file's directory
# The maximum number of connections a dnode can accept
# maxShellConns 5000
# The directory for writing log files
# logDir /var/log/taos
# data file's directory
# All data files are stored in this directory
# dataDir /var/lib/taos
# temporary file's directory
# tempDir /tmp/
# the arbitrator's fully qualified domain name (FQDN) for TDengine system, for cluster only
# arbitrator arbitrator_hostname:6042
# number of threads per CPU core
# numOfThreadsPerCore 1.0
# number of threads to commit cache data
# numOfCommitThreads 4
# the proportion of total CPU cores available for query processing
# 2.0: the query threads will be set to double of the CPU cores.
# 1.0: all CPU cores are available for query processing [default].
# 0.5: only half of the CPU cores are available for query.
# 0.0: only one core available.
# ratioOfQueryCores 1.0
# the last_row/first/last aggregator will not change the original column name in the result fields
keepColumnName 1
# number of management nodes in the system
# numOfMnodes 1
# enable/disable backuping vnode directory when removing vnode
# vnodeBak 1
# enable/disable installation / usage report
# Switch for allowing TDengine to collect and report service usage information
# telemetryReporting 1
# enable/disable load balancing
# balance 1
# The maximum number of vnodes supported by dnode
# supportVnodes 0
# role for dnode. 0 - any, 1 - mnode, 2 - dnode
# role 0
# max timer control blocks
# maxTmrCtrl 512
# time interval of system monitor, seconds
# monitorInterval 30
# number of seconds allowed for a dnode to be offline, for cluster only
# offlineThreshold 864000
# RPC re-try timer, millisecond
# rpcTimer 300
# RPC maximum time for ack, seconds.
# rpcMaxTime 600
# time interval of dnode status reporting to mnode, seconds, for cluster only
# The interval of dnode reporting status to mnode
# statusInterval 1
# time interval of heart beat from shell to dnode, seconds
# The interval for taos shell to send heartbeat to mnode
# shellActivityTimer 3
# minimum sliding window time, milli-second
# The minimum sliding window time, milli-second
# minSlidingTime 10
# minimum time window, milli-second
# The minimum time window, milli-second
# minIntervalTime 10
# maximum delay before launching a stream computation, milli-second
# maxStreamCompDelay 20000
# The maximum allowed query buffer size in MB during query processing for each data node
# -1 no limit (default)
# 0 no query allowed, queries are disabled
# queryBufferSize -1
# maximum delay before launching a stream computation for the first time, milli-second
# maxFirstStreamCompDelay 10000
# retry delay when a stream computation fails, milli-second
# retryStreamCompDelay 10
# the delayed time for launching a stream computation, from 0.1(default, 10% of whole computing time window) to 0.9
# streamCompDelayRatio 0.1
# max number of vgroups per db, 0 means configured automatically
# maxVgroupsPerDb 0
# max number of tables per vnode
# maxTablesPerVnode 1000000
# cache block size (Mbyte)
# cache 16
# number of cache blocks per vnode
# blocks 6
# number of days per DB file
# days 10
# number of days to keep DB file
# keep 3650
# minimum rows of records in file block
# minRows 100
# maximum rows of records in file block
# maxRows 4096
# the number of acknowledgments required for successful data writing
# quorum 1
# enable/disable compression
# comp 2
# write ahead log (WAL) level, 0: no wal; 1: write wal, but no fysnc; 2: write wal, and call fsync
# walLevel 1
# if walLevel is set to 2, the cycle of fsync being executed, if set to 0, fsync is called right away
# fsync 3000
# number of replications, for cluster only
# replica 1
# the compressed rpc message, option:
# The compressed rpc message, option:
# -1 (no compression)
# 0 (all message compressed),
# > 0 (rpc message body which larger than this value will be compressed)
# compressMsgSize -1
# compressMsgSize -1
# query retrieved column data compression option:
# -1 (no compression)
# 0 (all retrieved column data compressed),
# > 0 (any retrieved column size greater than this value all data will be compressed.)
# compressColData -1
# max length of an SQL
# maxSQLLength 65480
# max length of WildCards
# maxWildCardsLength 100
# the maximum number of records allowed for super table time sorting
# maxNumOfOrderedRes 100000
# compressColData -1
# system time zone
# timezone Asia/Shanghai (CST, +0800)
# system time zone (for windows 10)
# timezone UTC-8
# timezone UTC-8
# system locale
# locale en_US.UTF-8
# locale en_US.UTF-8
# default system charset
# charset UTF-8
# max number of connections allowed in dnode
# maxShellConns 5000
# max number of connections allowed in client
# maxConnections 5000
# charset UTF-8
# stop writing logs when the disk size of the log folder is less than this value
# minimalLogDirGB 1.0
# minimalLogDirGB 1.0
# stop writing temporary files when the disk size of the tmp folder is less than this value
# minimalTmpDirGB 1.0
# minimalTmpDirGB 1.0
# if disk free space is less than this value, taosd service exit directly within startup process
# minimalDataDirGB 2.0
# One mnode is equal to the number of vnode consumed
# mnodeEqualVnodeNum 4
# enbale/disable http service
# http 1
# minimalDataDirGB 2.0
# enable/disable system monitor
# monitor 1
# enable/disable recording the SQL statements via restful interface
# httpEnableRecordSql 0
# number of threads used to process http requests
# httpMaxThreads 2
# maximum number of rows returned by the restful interface
# restfulRowLimit 10240
# database name must be specified in restful interface if the following parameter is set, off by default
# httpDbNameMandatory 1
# http keep alive, default is 30 seconds
# httpKeepAlive 30000
# monitor 1
# The following parameter is used to limit the maximum number of lines in log files.
# max number of lines per log filters
# numOfLogLines 10000000
# numOfLogLines 10000000
# enable/disable async log
# asyncLog 1
# asyncLog 1
# time of keeping log files, days
# logKeepDays 0
# logKeepDays 0
# The following parameters are used for debug purpose only.
# debugFlag 8 bits mask: FILE-SCREEN-UNUSED-HeartBeat-DUMP-TRACE_WARN-ERROR
@ -226,87 +106,64 @@ keepColumnName 1
# 207: output trace, debug, warning and error to both screen and file
# debug flag for all log type, take effect when non-zero value
# debugFlag 0
# debugFlag 0
# debug flag for meta management messages
# mDebugFlag 135
# debug flag for timer
# tmrDebugFlag 131
# debug flag for dnode messages
# dDebugFlag 135
# debug flag for util
# uDebugFlag 131
# debug flag for sync module
# sDebugFlag 135
# debug flag for rpc
# rpcDebugFlag 131
# debug flag for WAL
# wDebugFlag 135
# debug flag for SDB
# sdbDebugFlag 135
# debug flag for RPC
# rpcDebugFlag 131
# debug flag for TAOS TIMER
# tmrDebugFlag 131
# debug flag for TDengine client
# cDebugFlag 131
# debug flag for JNI
# jniDebugFlag 131
# debug flag for storage
# uDebugFlag 131
# debug flag for http server
# httpDebugFlag 131
# debug flag for monitor
# monDebugFlag 131
# debug flag for jni
# jniDebugFlag 131
# debug flag for query
# qDebugFlag 131
# qDebugFlag 131
# debug flag for taosc driver
# cDebugFlag 131
# debug flag for dnode messages
# dDebugFlag 135
# debug flag for vnode
# vDebugFlag 131
# vDebugFlag 131
# debug flag for TSDB
# tsdbDebugFlag 131
# debug flag for meta management messages
# mDebugFlag 135
# debug flag for continue query
# cqDebugFlag 131
# debug flag for wal
# wDebugFlag 135
# enable/disable recording the SQL in taos client
# enableRecordSql 0
# debug flag for sync module
# sDebugFlag 135
# debug flag for tsdb
# tsdbDebugFlag 131
# debug flag for tq
# tqDebugFlag 131
# debug flag for fs
# fsDebugFlag 131
# debug flag for udf
# udfDebugFlag 131
# debug flag for sma
# smaDebugFlag 131
# debug flag for index
# idxDebugFlag 131
# debug flag for tdb
# tdbDebugFlag 131
# debug flag for meta
# metaDebugFlag 131
# generate core file when service crash
# enableCoreFile 1
# maximum display width of binary and nchar fields in the shell. The parts exceeding this limit will be hidden
# maxBinaryDisplayWidth 30
# enable/disable stream (continuous query)
# stream 1
# in retrieve blocking model, only in 50% query threads will be used in query processing in dnode
# retrieveBlockingModel 0
# the maximum allowed query buffer size in MB during query processing for each data node
# -1 no limit (default)
# 0 no query allowed, queries are disabled
# queryBufferSize -1
# percent of redundant data in tsdb meta will compact meta data,0 means donot compact
# tsdbMetaCompactRatio 0
# default string type used for storing JSON String, options can be binary/nchar, default is nchar
# defaultJSONStrType nchar
# force TCP transmission
# rpcForceTcp 0
# unit MB. Flush vnode wal file if walSize > walFlushSize and walSize > cache*0.5*blocks
# walFlushSize 1024
# unit Hour. Latency of data migration
# keepTimeOffset 0
# enableCoreFile 1

View File

@ -29,6 +29,7 @@ else
# Remove all links
${csudo}rm -f ${bin_link_dir}/taos || :
${csudo}rm -f ${bin_link_dir}/taosd || :
${csudo}rm -f ${bin_link_dir}/udfd || :
${csudo}rm -f ${bin_link_dir}/taosadapter || :
${csudo}rm -f ${bin_link_dir}/taosdemo || :
${csudo}rm -f ${cfg_link_dir}/* || :

View File

@ -60,6 +60,7 @@ cp ${compile_dir}/../packaging/tools/set_core.sh ${pkg_dir}${install_home_pat
cp ${compile_dir}/../packaging/tools/taosd-dump-cfg.gdb ${pkg_dir}${install_home_path}/bin
cp ${compile_dir}/build/bin/taosd ${pkg_dir}${install_home_path}/bin
cp ${compile_dir}/build/bin/udfd ${pkg_dir}${install_home_path}/bin
cp ${compile_dir}/build/bin/taosBenchmark ${pkg_dir}${install_home_path}/bin
if [ -f "${compile_dir}/build/bin/taosadapter" ]; then

View File

@ -69,6 +69,7 @@ cp %{_compiledir}/../packaging/tools/set_core.sh %{buildroot}%{homepath}/bin
cp %{_compiledir}/../packaging/tools/taosd-dump-cfg.gdb %{buildroot}%{homepath}/bin
cp %{_compiledir}/build/bin/taos %{buildroot}%{homepath}/bin
cp %{_compiledir}/build/bin/taosd %{buildroot}%{homepath}/bin
cp %{_compiledir}/build/bin/udfd %{buildroot}%{homepath}/bin
cp %{_compiledir}/build/bin/taosBenchmark %{buildroot}%{homepath}/bin
if [ -f %{_compiledir}/build/bin/taosadapter ]; then
@ -204,6 +205,7 @@ if [ $1 -eq 0 ];then
# Remove all links
${csudo}rm -f ${bin_link_dir}/taos || :
${csudo}rm -f ${bin_link_dir}/taosd || :
${csudo}rm -f ${bin_link_dir}/udfd || :
${csudo}rm -f ${bin_link_dir}/taosadapter || :
${csudo}rm -f ${cfg_link_dir}/* || :
${csudo}rm -f ${inc_link_dir}/taos.h || :

View File

@ -18,6 +18,7 @@ script_dir=$(dirname $(readlink -f "$0"))
clientName="taos"
serverName="taosd"
udfdName="udfd"
configFile="taos.cfg"
productName="TDengine"
emailName="taosdata.com"
@ -192,6 +193,7 @@ function install_bin() {
# Remove links
${csudo}rm -f ${bin_link_dir}/${clientName} || :
${csudo}rm -f ${bin_link_dir}/${serverName} || :
${csudo}rm -f ${bin_link_dir}/${udfdName} || :
${csudo}rm -f ${bin_link_dir}/${adapterName} || :
${csudo}rm -f ${bin_link_dir}/${uninstallScript} || :
${csudo}rm -f ${bin_link_dir}/${demoName} || :
@ -205,6 +207,7 @@ function install_bin() {
#Make link
[ -x ${install_main_dir}/bin/${clientName} ] && ${csudo}ln -s ${install_main_dir}/bin/${clientName} ${bin_link_dir}/${clientName} || :
[ -x ${install_main_dir}/bin/${serverName} ] && ${csudo}ln -s ${install_main_dir}/bin/${serverName} ${bin_link_dir}/${serverName} || :
[ -x ${install_main_dir}/bin/${udfdName} ] && ${csudo}ln -s ${install_main_dir}/bin/${udfdName} ${bin_link_dir}/${udfdName} || :
[ -x ${install_main_dir}/bin/${adapterName} ] && ${csudo}ln -s ${install_main_dir}/bin/${adapterName} ${bin_link_dir}/${adapterName} || :
[ -x ${install_main_dir}/bin/${benchmarkName} ] && ${csudo}ln -s ${install_main_dir}/bin/${benchmarkName} ${bin_link_dir}/${demoName} || :
[ -x ${install_main_dir}/bin/${benchmarkName} ] && ${csudo}ln -s ${install_main_dir}/bin/${benchmarkName} ${bin_link_dir}/${benchmarkName} || :
@ -742,7 +745,7 @@ function is_version_compatible() {
fi
exist_version=$(${installDir}/bin/${serverName} -V | head -1 | cut -d ' ' -f 3)
vercomp $exist_version "2.0.16.0"
vercomp $exist_version "3.0.0.0"
case $? in
2)
prompt_force=1

View File

@ -85,6 +85,7 @@ else
${build_dir}/bin/${clientName} \
${taostools_bin_files} \
${build_dir}/bin/taosadapter \
${build_dir}/bin/udfd \
${script_dir}/remove.sh \
${script_dir}/set_core.sh \
${script_dir}/startPre.sh \
@ -318,7 +319,7 @@ if [ "$verMode" == "cluster" ]; then
fi
# Copy release note
cp ${script_dir}/release_note ${install_dir}
# cp ${script_dir}/release_note ${install_dir}
# exit 1

View File

@ -118,6 +118,7 @@ function install_bin() {
# Remove links
${csudo}rm -f ${bin_link_dir}/taos || :
${csudo}rm -f ${bin_link_dir}/taosd || :
${csudo}rm -f ${bin_link_dir}/udfd || :
${csudo}rm -f ${bin_link_dir}/taosadapter || :
${csudo}rm -f ${bin_link_dir}/taosBenchmark || :
${csudo}rm -f ${bin_link_dir}/taosdemo || :
@ -130,6 +131,7 @@ function install_bin() {
#Make link
[ -x ${bin_dir}/taos ] && ${csudo}ln -s ${bin_dir}/taos ${bin_link_dir}/taos || :
[ -x ${bin_dir}/taosd ] && ${csudo}ln -s ${bin_dir}/taosd ${bin_link_dir}/taosd || :
[ -x ${bin_dir}/udfd ] && ${csudo}ln -s ${bin_dir}/udfd ${bin_link_dir}/udfd || :
[ -x ${bin_dir}/taosadapter ] && ${csudo}ln -s ${bin_dir}/taosadapter ${bin_link_dir}/taosadapter || :
[ -x ${bin_dir}/taosBenchmark ] && ${csudo}ln -sf ${bin_dir}/taosBenchmark ${bin_link_dir}/taosdemo || :
[ -x ${bin_dir}/taosBenchmark ] && ${csudo}ln -sf ${bin_dir}/taosBenchmark ${bin_link_dir}/taosBenchmark || :

View File

@ -51,7 +51,7 @@ Source: taos.bat; DestDir: "{app}\include"; Flags: igNoreversion;
;Source: taosdemo.png; DestDir: "{app}\include"; Flags: igNoreversion;
;Source: taosShell.png; DestDir: "{app}\include"; Flags: igNoreversion;
Source: favicon.ico; DestDir: "{app}\include"; Flags: igNoreversion;
Source: {#MyAppSourceDir}{#MyAppDLLName}; DestDir: "{win}\System32"; Flags: igNoreversion;
Source: {#MyAppSourceDir}{#MyAppDLLName}; DestDir: "{win}\System32"; Flags: 64bit;Check:IsWin64;
Source: {#MyAppSourceDir}{#MyAppCfgName}; DestDir: "{app}\cfg"; Flags: igNoreversion recursesubdirs createallsubdirs onlyifdoesntexist uninsneveruninstall
Source: {#MyAppSourceDir}{#MyAppDriverName}; DestDir: "{app}\driver"; Flags: igNoreversion recursesubdirs createallsubdirs
;Source: {#MyAppSourceDir}{#MyAppConnectorName}; DestDir: "{app}\connector"; Flags: igNoreversion recursesubdirs createallsubdirs

View File

@ -689,11 +689,11 @@ int32_t scheduleQuery(SRequestObj* pRequest, SQueryPlan* pDag, SArray* pNodeList
TDMT_VND_CREATE_TABLE == pRequest->type) {
pRequest->body.resInfo.numOfRows = res.numOfRows;
if (TDMT_VND_SUBMIT == pRequest->type) {
STscObj *pTscObj = pRequest->pTscObj;
SAppClusterSummary *pActivity = &pTscObj->pAppInfo->summary;
atomic_add_fetch_64((int64_t *)&pActivity->numOfInsertRows, res.numOfRows);
STscObj* pTscObj = pRequest->pTscObj;
SAppClusterSummary* pActivity = &pTscObj->pAppInfo->summary;
atomic_add_fetch_64((int64_t*)&pActivity->numOfInsertRows, res.numOfRows);
}
schedulerFreeJob(&pRequest->body.queryJob, 0);
}
@ -800,8 +800,8 @@ int32_t handleQueryExecRsp(SRequestObj* pRequest) {
break;
}
case TDMT_VND_SUBMIT: {
atomic_add_fetch_64((int64_t *)&pAppInfo->summary.insertBytes, pRes->numOfBytes);
atomic_add_fetch_64((int64_t*)&pAppInfo->summary.insertBytes, pRes->numOfBytes);
code = handleSubmitExecRes(pRequest, pRes->res, pCatalog, &epset);
break;
}
@ -832,9 +832,9 @@ void schedulerExecCb(SExecResult* pResult, void* param, int32_t code) {
if (pResult) {
pRequest->body.resInfo.numOfRows = pResult->numOfRows;
if (TDMT_VND_SUBMIT == pRequest->type) {
STscObj *pTscObj = pRequest->pTscObj;
SAppClusterSummary *pActivity = &pTscObj->pAppInfo->summary;
atomic_add_fetch_64((int64_t *)&pActivity->numOfInsertRows, pResult->numOfRows);
STscObj* pTscObj = pRequest->pTscObj;
SAppClusterSummary* pActivity = &pTscObj->pAppInfo->summary;
atomic_add_fetch_64((int64_t*)&pActivity->numOfInsertRows, pResult->numOfRows);
}
}
@ -877,14 +877,14 @@ SRequestObj* launchQueryImpl(SRequestObj* pRequest, SQuery* pQuery, bool keepQue
if (pQuery->pRoot) {
pRequest->stmtType = pQuery->pRoot->type;
}
if (pQuery->pRoot && !pRequest->inRetry) {
STscObj *pTscObj = pRequest->pTscObj;
SAppClusterSummary *pActivity = &pTscObj->pAppInfo->summary;
STscObj* pTscObj = pRequest->pTscObj;
SAppClusterSummary* pActivity = &pTscObj->pAppInfo->summary;
if (QUERY_NODE_VNODE_MODIF_STMT == pQuery->pRoot->type) {
atomic_add_fetch_64((int64_t *)&pActivity->numOfInsertsReq, 1);
atomic_add_fetch_64((int64_t*)&pActivity->numOfInsertsReq, 1);
} else if (QUERY_NODE_SELECT_STMT == pQuery->pRoot->type) {
atomic_add_fetch_64((int64_t *)&pActivity->numOfQueryReq, 1);
atomic_add_fetch_64((int64_t*)&pActivity->numOfQueryReq, 1);
}
}
@ -1467,9 +1467,9 @@ void* doFetchRows(SRequestObj* pRequest, bool setupOneRowPtr, bool convertUcs4)
tscDebug("0x%" PRIx64 " fetch results, numOfRows:%d total Rows:%" PRId64 ", complete:%d, reqId:0x%" PRIx64,
pRequest->self, pResInfo->numOfRows, pResInfo->totalRows, pResInfo->completed, pRequest->requestId);
STscObj *pTscObj = pRequest->pTscObj;
SAppClusterSummary *pActivity = &pTscObj->pAppInfo->summary;
atomic_add_fetch_64((int64_t *)&pActivity->fetchBytes, pRequest->body.resInfo.payloadLen);
STscObj* pTscObj = pRequest->pTscObj;
SAppClusterSummary* pActivity = &pTscObj->pAppInfo->summary;
atomic_add_fetch_64((int64_t*)&pActivity->fetchBytes, pRequest->body.resInfo.payloadLen);
if (pResultInfo->numOfRows == 0) {
return NULL;
@ -2006,7 +2006,7 @@ int32_t transferTableNameList(const char* tbList, int32_t acctId, char* dbName,
bool inEscape = false;
int32_t code = 0;
void *pIter = NULL;
void* pIter = NULL;
int32_t vIdx = 0;
int32_t vPos[2];

View File

@ -9,6 +9,11 @@ IF (TD_GRANT)
ADD_DEFINITIONS(-D_GRANT)
ENDIF ()
IF (TD_STORAGE)
ADD_DEFINITIONS(-D_STORAGE)
TARGET_LINK_LIBRARIES(common PRIVATE storage)
ENDIF ()
target_include_directories(
common
PUBLIC "${TD_SOURCE_DIR}/include/common"

View File

@ -165,58 +165,9 @@ int32_t tsTtlUnit = 86400;
int32_t tsTtlPushInterval = 86400;
int32_t tsGrantHBInterval = 60;
void taosAddDataDir(int32_t index, char *v1, int32_t level, int32_t primary) {
tstrncpy(tsDiskCfg[index].dir, v1, TSDB_FILENAME_LEN);
tsDiskCfg[index].level = level;
tsDiskCfg[index].primary = primary;
uTrace("dataDir:%s, level:%d primary:%d is configured", v1, level, primary);
}
static int32_t taosSetTfsCfg(SConfig *pCfg) {
SConfigItem *pItem = cfgGetItem(pCfg, "dataDir");
memset(tsDataDir, 0, PATH_MAX);
int32_t size = taosArrayGetSize(pItem->array);
if (size <= 0) {
tsDiskCfgNum = 1;
taosAddDataDir(0, pItem->str, 0, 1);
tstrncpy(tsDataDir, pItem->str, PATH_MAX);
if (taosMulMkDir(tsDataDir) != 0) {
uError("failed to create dataDir:%s since %s", tsDataDir, terrstr());
return -1;
}
} else {
tsDiskCfgNum = size < TFS_MAX_DISKS ? size : TFS_MAX_DISKS;
for (int32_t index = 0; index < tsDiskCfgNum; ++index) {
SDiskCfg *pCfg = taosArrayGet(pItem->array, index);
memcpy(&tsDiskCfg[index], pCfg, sizeof(SDiskCfg));
if (pCfg->level == 0 && pCfg->primary == 1) {
tstrncpy(tsDataDir, pCfg->dir, PATH_MAX);
}
if (taosMulMkDir(pCfg->dir) != 0) {
uError("failed to create tfsDir:%s since %s", tsDataDir, terrstr());
return -1;
}
}
}
if (tsDataDir[0] == 0) {
if (pItem->str != NULL) {
taosAddDataDir(tsDiskCfgNum, pItem->str, 0, 1);
tstrncpy(tsDataDir, pItem->str, PATH_MAX);
if (taosMulMkDir(tsDataDir) != 0) {
uError("failed to create tfsDir:%s since %s", tsDataDir, terrstr());
return -1;
}
tsDiskCfgNum++;
} else {
uError("datadir not set");
return -1;
}
}
return 0;
}
#ifndef _STORAGE
int32_t taosSetTfsCfg(SConfig *pCfg) { return 0; }
#endif
struct SConfig *taosGetCfg() {
return tsCfg;

View File

@ -98,6 +98,7 @@ void vnodeSyncStart(SVnode* pVnode);
void vnodeSyncClose(SVnode* pVnode);
void vnodeRedirectRpcMsg(SVnode* pVnode, SRpcMsg* pMsg);
bool vnodeIsLeader(SVnode* pVnode);
bool vnodeIsReadyForRead(SVnode* pVnode);
bool vnodeIsRoleLeader(SVnode* pVnode);
#ifdef __cplusplus

View File

@ -283,7 +283,7 @@ int32_t vnodePreprocessQueryMsg(SVnode *pVnode, SRpcMsg *pMsg) {
int32_t vnodeProcessQueryMsg(SVnode *pVnode, SRpcMsg *pMsg) {
vTrace("message in vnode query queue is processing");
if ((pMsg->msgType == TDMT_SCH_QUERY) && !vnodeIsLeader(pVnode)) {
if ((pMsg->msgType == TDMT_SCH_QUERY) && !vnodeIsReadyForRead(pVnode)) {
vnodeRedirectRpcMsg(pVnode, pMsg);
return 0;
}
@ -307,7 +307,7 @@ int32_t vnodeProcessFetchMsg(SVnode *pVnode, SRpcMsg *pMsg, SQueueInfo *pInfo) {
vTrace("vgId:%d, msg:%p in fetch queue is processing", pVnode->config.vgId, pMsg);
if ((pMsg->msgType == TDMT_SCH_FETCH || pMsg->msgType == TDMT_VND_TABLE_META || pMsg->msgType == TDMT_VND_TABLE_CFG ||
pMsg->msgType == TDMT_VND_BATCH_META) &&
!vnodeIsLeader(pVnode)) {
!vnodeIsReadyForRead(pVnode)) {
vnodeRedirectRpcMsg(pVnode, pMsg);
return 0;
}

View File

@ -781,3 +781,17 @@ bool vnodeIsLeader(SVnode *pVnode) {
return true;
}
bool vnodeIsReadyForRead(SVnode *pVnode) {
if (syncIsReady(pVnode->sync)) {
return true;
}
if (syncIsReadyForRead(pVnode->sync)) {
return true;
}
vDebug("vgId:%d, vnode not ready for read, state:%s, last:%ld, cmt:%ld", pVnode->config.vgId,
syncGetMyRoleStr(pVnode->sync), syncGetLastIndex(pVnode->sync), syncGetCommitIndex(pVnode->sync));
return false;
}

View File

@ -128,7 +128,7 @@ static bool overlapWithTimeWindow(SInterval* pInterval, SDataBlockInfo* pBlockIn
w = getAlignQueryTimeWindow(pInterval, pInterval->precision, pBlockInfo->window.skey);
assert(w.ekey >= pBlockInfo->window.skey);
if (w.ekey < pBlockInfo->window.ekey) {
if (TMAX(w.skey, pBlockInfo->window.skey) <= TMIN(w.ekey, pBlockInfo->window.ekey)) {
return true;
}

View File

@ -4918,6 +4918,16 @@ int32_t mavgFunction(SqlFunctionCtx* pCtx) {
return numOfElems;
}
static SSampleInfo* getSampleOutputInfo(SqlFunctionCtx* pCtx) {
SResultRowEntryInfo* pResInfo = GET_RES_INFO(pCtx);
SSampleInfo* pInfo = GET_ROWCELL_INTERBUF(pResInfo);
pInfo->data = (char*)pInfo + sizeof(SSampleInfo);
pInfo->tuplePos = (STuplePos*)((char*)pInfo + sizeof(SSampleInfo) + pInfo->samples * pInfo->colBytes);
return pInfo;
}
bool getSampleFuncEnv(SFunctionNode* pFunc, SFuncExecEnv* pEnv) {
SColumnNode* pCol = (SColumnNode*)nodesListGetNode(pFunc->pParameterList, 0);
SValueNode* pVal = (SValueNode*)nodesListGetNode(pFunc->pParameterList, 1);
@ -4972,7 +4982,7 @@ static void doReservoirSample(SqlFunctionCtx* pCtx, SSampleInfo* pInfo, char* da
int32_t sampleFunction(SqlFunctionCtx* pCtx) {
SResultRowEntryInfo* pResInfo = GET_RES_INFO(pCtx);
SSampleInfo* pInfo = GET_ROWCELL_INTERBUF(pResInfo);
SSampleInfo* pInfo = getSampleOutputInfo(pCtx);
SInputColumnInfoData* pInput = &pCtx->input;
@ -4998,7 +5008,7 @@ int32_t sampleFunction(SqlFunctionCtx* pCtx) {
int32_t sampleFinalize(SqlFunctionCtx* pCtx, SSDataBlock* pBlock) {
SResultRowEntryInfo* pEntryInfo = GET_RES_INFO(pCtx);
SSampleInfo* pInfo = GET_ROWCELL_INTERBUF(pEntryInfo);
SSampleInfo* pInfo = getSampleOutputInfo(pCtx);
pEntryInfo->complete = true;
int32_t slotId = pCtx->pExpr->base.resSchema.slotId;

View File

@ -22,6 +22,7 @@ extern "C" {
#include "catalog.h"
#include "os.h"
#include "parser.h"
#include "query.h"
#define parserFatal(param, ...) qFatal("PARSER: " param, ##__VA_ARGS__)
@ -44,18 +45,37 @@ typedef struct SParseTablesMetaReq {
SHashObj* pTables;
} SParseTablesMetaReq;
typedef enum ECatalogReqType {
CATALOG_REQ_TYPE_META = 1,
CATALOG_REQ_TYPE_VGROUP,
CATALOG_REQ_TYPE_BOTH
} ECatalogReqType;
typedef struct SInsertTablesMetaReq {
char dbFName[TSDB_DB_FNAME_LEN];
SArray* pTableMetaPos;
SArray* pTableMetaReq; // element is SName
SArray* pTableVgroupPos;
SArray* pTableVgroupReq; // element is SName
} SInsertTablesMetaReq;
typedef struct SParseMetaCache {
SHashObj* pTableMeta; // key is tbFName, element is STableMeta*
SHashObj* pDbVgroup; // key is dbFName, element is SArray<SVgroupInfo>*
SHashObj* pTableVgroup; // key is tbFName, element is SVgroupInfo*
SHashObj* pDbCfg; // key is tbFName, element is SDbCfgInfo*
SHashObj* pDbInfo; // key is tbFName, element is SDbInfo*
SHashObj* pUserAuth; // key is SUserAuthInfo serialized string, element is bool indicating whether or not to pass
SHashObj* pUdf; // key is funcName, element is SFuncInfo*
SHashObj* pTableIndex; // key is tbFName, element is SArray<STableIndexInfo>*
SHashObj* pTableCfg; // key is tbFName, element is STableCfg*
SArray* pDnodes; // element is SEpSet
bool dnodeRequired;
SHashObj* pTableMeta; // key is tbFName, element is STableMeta*
SHashObj* pDbVgroup; // key is dbFName, element is SArray<SVgroupInfo>*
SHashObj* pTableVgroup; // key is tbFName, element is SVgroupInfo*
SHashObj* pDbCfg; // key is tbFName, element is SDbCfgInfo*
SHashObj* pDbInfo; // key is tbFName, element is SDbInfo*
SHashObj* pUserAuth; // key is SUserAuthInfo serialized string, element is bool indicating whether or not to pass
SHashObj* pUdf; // key is funcName, element is SFuncInfo*
SHashObj* pTableIndex; // key is tbFName, element is SArray<STableIndexInfo>*
SHashObj* pTableCfg; // key is tbFName, element is STableCfg*
SArray* pDnodes; // element is SEpSet
bool dnodeRequired;
SHashObj* pInsertTables; // key is dbName, element is SInsertTablesMetaReq*, for insert
const char* pUser;
const SArray* pTableMetaData; // pRes = STableMeta*
const SArray* pTableVgroupData; // pRes = SVgroupInfo*
int32_t sqlTableNum;
} SParseMetaCache;
int32_t generateSyntaxErrMsg(SMsgBuf* pBuf, int32_t errCode, ...);
@ -72,8 +92,9 @@ STableMeta* tableMetaDup(const STableMeta* pTableMeta);
int32_t trimString(const char* src, int32_t len, char* dst, int32_t dlen);
int32_t buildCatalogReq(const SParseMetaCache* pMetaCache, SCatalogReq* pCatalogReq);
int32_t putMetaDataToCache(const SCatalogReq* pCatalogReq, const SMetaData* pMetaData, SParseMetaCache* pMetaCache);
int32_t buildCatalogReq(SParseContext* pCxt, const SParseMetaCache* pMetaCache, SCatalogReq* pCatalogReq);
int32_t putMetaDataToCache(const SCatalogReq* pCatalogReq, const SMetaData* pMetaData, SParseMetaCache* pMetaCache,
bool insertValuesStmt);
int32_t reserveTableMetaInCache(int32_t acctId, const char* pDb, const char* pTable, SParseMetaCache* pMetaCache);
int32_t reserveTableMetaInCacheExt(const SName* pName, SParseMetaCache* pMetaCache);
int32_t reserveDbVgInfoInCache(int32_t acctId, const char* pDb, SParseMetaCache* pMetaCache);
@ -100,6 +121,12 @@ int32_t getUdfInfoFromCache(SParseMetaCache* pMetaCache, const char* pFunc, SFun
int32_t getTableIndexFromCache(SParseMetaCache* pMetaCache, const SName* pName, SArray** pIndexes);
int32_t getTableCfgFromCache(SParseMetaCache* pMetaCache, const SName* pName, STableCfg** pOutput);
int32_t getDnodeListFromCache(SParseMetaCache* pMetaCache, SArray** pDnodes);
int32_t reserveTableMetaInCacheForInsert(const SName* pName, ECatalogReqType reqType, int32_t tableNo,
SParseMetaCache* pMetaCache);
int32_t getTableMetaFromCacheForInsert(SArray* pTableMetaPos, SParseMetaCache* pMetaCache, int32_t tableNo,
STableMeta** pMeta);
int32_t getTableVgroupFromCacheForInsert(SArray* pTableVgroupPos, SParseMetaCache* pMetaCache, int32_t tableNo,
SVgroupInfo* pVgroup);
void destoryParseMetaCache(SParseMetaCache* pMetaCache, bool request);
#ifdef __cplusplus

View File

@ -73,6 +73,9 @@ typedef struct SInsertParseContext {
SStmtCallback* pStmtCb;
SParseMetaCache* pMetaCache;
char sTableName[TSDB_TABLE_NAME_LEN];
char tmpTokenBuf[TSDB_MAX_BYTES_PER_ROW];
int64_t memElapsed;
int64_t parRowElapsed;
} SInsertParseContext;
typedef struct SInsertParseSyntaxCxt {
@ -203,10 +206,11 @@ static int32_t checkAuth(SInsertParseContext* pCxt, char* pDbFname, bool* pPass)
return catalogChkAuth(pBasicCtx->pCatalog, &conn, pBasicCtx->pUser, pDbFname, AUTH_TYPE_WRITE, pPass);
}
static int32_t getTableSchema(SInsertParseContext* pCxt, SName* pTbName, bool isStb, STableMeta** pTableMeta) {
static int32_t getTableSchema(SInsertParseContext* pCxt, int32_t tbNo, SName* pTbName, bool isStb,
STableMeta** pTableMeta) {
SParseContext* pBasicCtx = pCxt->pComCxt;
if (pBasicCtx->async) {
return getTableMetaFromCache(pCxt->pMetaCache, pTbName, pTableMeta);
return getTableMetaFromCacheForInsert(pBasicCtx->pTableMetaPos, pCxt->pMetaCache, tbNo, pTableMeta);
}
SRequestConnInfo conn = {.pTrans = pBasicCtx->pTransporter,
.requestId = pBasicCtx->requestId,
@ -219,10 +223,10 @@ static int32_t getTableSchema(SInsertParseContext* pCxt, SName* pTbName, bool is
return catalogGetTableMeta(pBasicCtx->pCatalog, &conn, pTbName, pTableMeta);
}
static int32_t getTableVgroup(SInsertParseContext* pCxt, SName* pTbName, SVgroupInfo* pVg) {
static int32_t getTableVgroup(SInsertParseContext* pCxt, int32_t tbNo, SName* pTbName, SVgroupInfo* pVg) {
SParseContext* pBasicCtx = pCxt->pComCxt;
if (pBasicCtx->async) {
return getTableVgroupFromCache(pCxt->pMetaCache, pTbName, pVg);
return getTableVgroupFromCacheForInsert(pBasicCtx->pTableVgroupPos, pCxt->pMetaCache, tbNo, pVg);
}
SRequestConnInfo conn = {.pTrans = pBasicCtx->pTransporter,
.requestId = pBasicCtx->requestId,
@ -231,28 +235,22 @@ static int32_t getTableVgroup(SInsertParseContext* pCxt, SName* pTbName, SVgroup
return catalogGetTableHashVgroup(pBasicCtx->pCatalog, &conn, pTbName, pVg);
}
static int32_t getTableMetaImpl(SInsertParseContext* pCxt, SName* name, char* dbFname, bool isStb) {
bool pass = false;
CHECK_CODE(checkAuth(pCxt, dbFname, &pass));
if (!pass) {
return TSDB_CODE_PAR_PERMISSION_DENIED;
}
CHECK_CODE(getTableSchema(pCxt, name, isStb, &pCxt->pTableMeta));
static int32_t getTableMetaImpl(SInsertParseContext* pCxt, int32_t tbNo, SName* name, char* dbFname, bool isStb) {
CHECK_CODE(getTableSchema(pCxt, tbNo, name, isStb, &pCxt->pTableMeta));
if (!isStb) {
SVgroupInfo vg;
CHECK_CODE(getTableVgroup(pCxt, name, &vg));
CHECK_CODE(getTableVgroup(pCxt, tbNo, name, &vg));
CHECK_CODE(taosHashPut(pCxt->pVgroupsHashObj, (const char*)&vg.vgId, sizeof(vg.vgId), (char*)&vg, sizeof(vg)));
}
return TSDB_CODE_SUCCESS;
}
static int32_t getTableMeta(SInsertParseContext* pCxt, SName* name, char* dbFname) {
return getTableMetaImpl(pCxt, name, dbFname, false);
static int32_t getTableMeta(SInsertParseContext* pCxt, int32_t tbNo, SName* name, char* dbFname) {
return getTableMetaImpl(pCxt, tbNo, name, dbFname, false);
}
static int32_t getSTableMeta(SInsertParseContext* pCxt, SName* name, char* dbFname) {
return getTableMetaImpl(pCxt, name, dbFname, true);
static int32_t getSTableMeta(SInsertParseContext* pCxt, int32_t tbNo, SName* name, char* dbFname) {
return getTableMetaImpl(pCxt, tbNo, name, dbFname, true);
}
static int32_t getDBCfg(SInsertParseContext* pCxt, const char* pDbFName, SDbCfgInfo* pInfo) {
@ -1028,13 +1026,13 @@ end:
return code;
}
static int32_t storeTableMeta(SInsertParseContext* pCxt, SHashObj* pHash, SName* pTableName, const char* pName,
int32_t len, STableMeta* pMeta) {
static int32_t storeTableMeta(SInsertParseContext* pCxt, SHashObj* pHash, int32_t tbNo, SName* pTableName,
const char* pName, int32_t len, STableMeta* pMeta) {
SVgroupInfo vg;
CHECK_CODE(getTableVgroup(pCxt, pTableName, &vg));
CHECK_CODE(getTableVgroup(pCxt, tbNo, pTableName, &vg));
CHECK_CODE(taosHashPut(pCxt->pVgroupsHashObj, (const char*)&vg.vgId, sizeof(vg.vgId), (char*)&vg, sizeof(vg)));
pMeta->uid = 0;
pMeta->uid = tbNo;
pMeta->vgId = vg.vgId;
pMeta->tableType = TSDB_CHILD_TABLE;
@ -1084,7 +1082,7 @@ static int32_t ignoreAutoCreateTableClause(SInsertParseContext* pCxt) {
}
// pSql -> stb_name [(tag1_name, ...)] TAGS (tag1_value, ...)
static int32_t parseUsingClause(SInsertParseContext* pCxt, SName* name, char* tbFName) {
static int32_t parseUsingClause(SInsertParseContext* pCxt, int32_t tbNo, SName* name, char* tbFName) {
int32_t len = strlen(tbFName);
STableMeta** pMeta = taosHashGet(pCxt->pSubTableHashObj, tbFName, len);
if (NULL != pMeta) {
@ -1102,11 +1100,11 @@ static int32_t parseUsingClause(SInsertParseContext* pCxt, SName* name, char* tb
tNameGetFullDbName(&sname, dbFName);
strcpy(pCxt->sTableName, sname.tname);
CHECK_CODE(getSTableMeta(pCxt, &sname, dbFName));
CHECK_CODE(getSTableMeta(pCxt, tbNo, &sname, dbFName));
if (TSDB_SUPER_TABLE != pCxt->pTableMeta->tableType) {
return buildInvalidOperationMsg(&pCxt->msg, "create table only from super table is allowed");
}
CHECK_CODE(storeTableMeta(pCxt, pCxt->pSubTableHashObj, name, tbFName, len, pCxt->pTableMeta));
CHECK_CODE(storeTableMeta(pCxt, pCxt->pSubTableHashObj, tbNo, name, tbFName, len, pCxt->pTableMeta));
SSchema* pTagsSchema = getTableTagSchema(pCxt->pTableMeta);
setBoundColumnInfo(&pCxt->tags, pTagsSchema, getNumOfTags(pCxt->pTableMeta));
@ -1195,7 +1193,7 @@ static int parseOneRow(SInsertParseContext* pCxt, STableDataBlocks* pDataBlocks,
tdSRowEnd(pBuilder);
*gotRow = true;
#ifdef TD_DEBUG_PRINT_ROW
STSchema* pSTSchema = tdGetSTSChemaFromSSChema(schema, spd->numOfCols, 1);
tdSRowPrint(row, pSTSchema, __func__);
@ -1214,7 +1212,7 @@ static int32_t parseValues(SInsertParseContext* pCxt, STableDataBlocks* pDataBlo
CHECK_CODE(initRowBuilder(&pDataBlock->rowBuilder, pDataBlock->pTableMeta->sversion, &pDataBlock->boundColumnInfo));
(*numOfRows) = 0;
char tmpTokenBuf[TSDB_MAX_BYTES_PER_ROW] = {0}; // used for deleting Escape character: \\, \', \"
// char tmpTokenBuf[TSDB_MAX_BYTES_PER_ROW] = {0}; // used for deleting Escape character: \\, \', \"
SToken sToken;
while (1) {
int32_t index = 0;
@ -1232,7 +1230,7 @@ static int32_t parseValues(SInsertParseContext* pCxt, STableDataBlocks* pDataBlo
}
bool gotRow = false;
CHECK_CODE(parseOneRow(pCxt, pDataBlock, tinfo.precision, &gotRow, tmpTokenBuf));
CHECK_CODE(parseOneRow(pCxt, pDataBlock, tinfo.precision, &gotRow, pCxt->tmpTokenBuf));
if (gotRow) {
pDataBlock->size += extendedRowSize; // len;
}
@ -1347,7 +1345,9 @@ static int32_t parseDataFromFile(SInsertParseContext* pCxt, SToken filePath, STa
}
static void destroyInsertParseContextForTable(SInsertParseContext* pCxt) {
taosMemoryFreeClear(pCxt->pTableMeta);
if (!pCxt->pComCxt->async) {
taosMemoryFreeClear(pCxt->pTableMeta);
}
destroyBoundColumnInfo(&pCxt->tags);
tdDestroySVCreateTbReq(&pCxt->createTblReq);
}
@ -1365,6 +1365,20 @@ static void destroyInsertParseContext(SInsertParseContext* pCxt) {
destroyBlockArrayList(pCxt->pVgDataBlocks);
}
static int32_t parseTableName(SInsertParseContext* pCxt, SToken* pTbnameToken, SName* pName, char* pDbFName,
char* pTbFName) {
int32_t code = createSName(pName, pTbnameToken, pCxt->pComCxt->acctId, pCxt->pComCxt->db, &pCxt->msg);
if (TSDB_CODE_SUCCESS == code) {
tNameExtractFullName(pName, pTbFName);
code = taosHashPut(pCxt->pTableNameHashObj, pTbFName, strlen(pTbFName), pName, sizeof(SName));
}
if (TSDB_CODE_SUCCESS == code) {
tNameGetFullDbName(pName, pDbFName);
code = taosHashPut(pCxt->pDbFNameHashObj, pDbFName, strlen(pDbFName), pDbFName, TSDB_DB_FNAME_LEN);
}
return code;
}
// tb_name
// [USING stb_name [(tag1_name, ...)] TAGS (tag1_value, ...)]
// [(field1_name, ...)]
@ -1372,7 +1386,9 @@ static void destroyInsertParseContext(SInsertParseContext* pCxt) {
// [...];
static int32_t parseInsertBody(SInsertParseContext* pCxt) {
int32_t tbNum = 0;
SName name;
char tbFName[TSDB_TABLE_FNAME_LEN];
char dbFName[TSDB_DB_FNAME_LEN];
bool autoCreateTbl = false;
// for each table
@ -1415,20 +1431,15 @@ static int32_t parseInsertBody(SInsertParseContext* pCxt) {
SToken tbnameToken = sToken;
NEXT_TOKEN(pCxt->pSql, sToken);
SName name;
CHECK_CODE(createSName(&name, &tbnameToken, pCxt->pComCxt->acctId, pCxt->pComCxt->db, &pCxt->msg));
tNameExtractFullName(&name, tbFName);
CHECK_CODE(taosHashPut(pCxt->pTableNameHashObj, tbFName, strlen(tbFName), &name, sizeof(SName)));
char dbFName[TSDB_DB_FNAME_LEN];
tNameGetFullDbName(&name, dbFName);
CHECK_CODE(taosHashPut(pCxt->pDbFNameHashObj, dbFName, strlen(dbFName), dbFName, sizeof(dbFName)));
if (!pCxt->pComCxt->async || TK_USING == sToken.type) {
CHECK_CODE(parseTableName(pCxt, &tbnameToken, &name, dbFName, tbFName));
}
bool existedUsing = false;
// USING clause
if (TK_USING == sToken.type) {
existedUsing = true;
CHECK_CODE(parseUsingClause(pCxt, &name, tbFName));
CHECK_CODE(parseUsingClause(pCxt, tbNum, &name, tbFName));
NEXT_TOKEN(pCxt->pSql, sToken);
autoCreateTbl = true;
}
@ -1438,22 +1449,31 @@ static int32_t parseInsertBody(SInsertParseContext* pCxt) {
// pSql -> field1_name, ...)
pBoundColsStart = pCxt->pSql;
CHECK_CODE(ignoreBoundColumns(pCxt));
// CHECK_CODE(parseBoundColumns(pCxt, &dataBuf->boundColumnInfo, getTableColumnSchema(pCxt->pTableMeta)));
NEXT_TOKEN(pCxt->pSql, sToken);
}
if (TK_USING == sToken.type) {
CHECK_CODE(parseUsingClause(pCxt, &name, tbFName));
if (pCxt->pComCxt->async) {
CHECK_CODE(parseTableName(pCxt, &tbnameToken, &name, dbFName, tbFName));
}
CHECK_CODE(parseUsingClause(pCxt, tbNum, &name, tbFName));
NEXT_TOKEN(pCxt->pSql, sToken);
autoCreateTbl = true;
} else if (!existedUsing) {
CHECK_CODE(getTableMeta(pCxt, &name, dbFName));
CHECK_CODE(getTableMeta(pCxt, tbNum, &name, dbFName));
}
STableDataBlocks* dataBuf = NULL;
CHECK_CODE(getDataBlockFromList(pCxt->pTableBlockHashObj, tbFName, strlen(tbFName), TSDB_DEFAULT_PAYLOAD_SIZE,
sizeof(SSubmitBlk), getTableInfo(pCxt->pTableMeta).rowSize, pCxt->pTableMeta,
&dataBuf, NULL, &pCxt->createTblReq));
if (pCxt->pComCxt->async) {
CHECK_CODE(getDataBlockFromList(pCxt->pTableBlockHashObj, &pCxt->pTableMeta->uid, sizeof(pCxt->pTableMeta->uid),
TSDB_DEFAULT_PAYLOAD_SIZE, sizeof(SSubmitBlk),
getTableInfo(pCxt->pTableMeta).rowSize, pCxt->pTableMeta, &dataBuf, NULL,
&pCxt->createTblReq));
} else {
CHECK_CODE(getDataBlockFromList(pCxt->pTableBlockHashObj, tbFName, strlen(tbFName), TSDB_DEFAULT_PAYLOAD_SIZE,
sizeof(SSubmitBlk), getTableInfo(pCxt->pTableMeta).rowSize, pCxt->pTableMeta,
&dataBuf, NULL, &pCxt->createTblReq));
}
if (NULL != pBoundColsStart) {
char* pCurrPos = pCxt->pSql;
@ -1532,7 +1552,9 @@ int32_t parseInsertSql(SParseContext* pContext, SQuery** pQuery, SParseMetaCache
.totalNum = 0,
.pOutput = (SVnodeModifOpStmt*)nodesMakeNode(QUERY_NODE_VNODE_MODIF_STMT),
.pStmtCb = pContext->pStmtCb,
.pMetaCache = pMetaCache};
.pMetaCache = pMetaCache,
.memElapsed = 0,
.parRowElapsed = 0};
if (pContext->pStmtCb && *pQuery) {
(*pContext->pStmtCb->getExecInfoFn)(pContext->pStmtCb->pStmt, &context.pVgroupsHashObj,
@ -1547,7 +1569,7 @@ int32_t parseInsertSql(SParseContext* pContext, SQuery** pQuery, SParseMetaCache
} else {
context.pVgroupsHashObj = taosHashInit(128, taosGetDefaultHashFunction(TSDB_DATA_TYPE_INT), true, HASH_NO_LOCK);
context.pTableBlockHashObj =
taosHashInit(128, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_NO_LOCK);
taosHashInit(128, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BIGINT), true, HASH_NO_LOCK);
}
if (NULL == context.pVgroupsHashObj || NULL == context.pTableBlockHashObj || NULL == context.pSubTableHashObj ||
@ -1656,24 +1678,24 @@ static int32_t skipUsingClause(SInsertParseSyntaxCxt* pCxt) {
return TSDB_CODE_SUCCESS;
}
static int32_t collectTableMetaKey(SInsertParseSyntaxCxt* pCxt, SToken* pTbToken) {
static int32_t collectTableMetaKey(SInsertParseSyntaxCxt* pCxt, bool isStable, int32_t tableNo, SToken* pTbToken) {
SName name;
CHECK_CODE(createSName(&name, pTbToken, pCxt->pComCxt->acctId, pCxt->pComCxt->db, &pCxt->msg));
CHECK_CODE(reserveUserAuthInCacheExt(pCxt->pComCxt->pUser, &name, AUTH_TYPE_WRITE, pCxt->pMetaCache));
CHECK_CODE(reserveTableMetaInCacheExt(&name, pCxt->pMetaCache));
CHECK_CODE(reserveTableVgroupInCacheExt(&name, pCxt->pMetaCache));
CHECK_CODE(reserveTableMetaInCacheForInsert(&name, isStable ? CATALOG_REQ_TYPE_META : CATALOG_REQ_TYPE_BOTH, tableNo,
pCxt->pMetaCache));
return TSDB_CODE_SUCCESS;
}
static int32_t collectAutoCreateTableMetaKey(SInsertParseSyntaxCxt* pCxt, SToken* pTbToken) {
static int32_t collectAutoCreateTableMetaKey(SInsertParseSyntaxCxt* pCxt, int32_t tableNo, SToken* pTbToken) {
SName name;
CHECK_CODE(createSName(&name, pTbToken, pCxt->pComCxt->acctId, pCxt->pComCxt->db, &pCxt->msg));
CHECK_CODE(reserveTableVgroupInCacheExt(&name, pCxt->pMetaCache));
CHECK_CODE(reserveTableMetaInCacheForInsert(&name, CATALOG_REQ_TYPE_VGROUP, tableNo, pCxt->pMetaCache));
return TSDB_CODE_SUCCESS;
}
static int32_t parseInsertBodySyntax(SInsertParseSyntaxCxt* pCxt) {
bool hasData = false;
bool hasData = false;
int32_t tableNo = 0;
// for each table
while (1) {
SToken sToken;
@ -1702,9 +1724,9 @@ static int32_t parseInsertBodySyntax(SInsertParseSyntaxCxt* pCxt) {
// USING clause
if (TK_USING == sToken.type) {
existedUsing = true;
CHECK_CODE(collectAutoCreateTableMetaKey(pCxt, &tbnameToken));
CHECK_CODE(collectAutoCreateTableMetaKey(pCxt, tableNo, &tbnameToken));
NEXT_TOKEN(pCxt->pSql, sToken);
CHECK_CODE(collectTableMetaKey(pCxt, &sToken));
CHECK_CODE(collectTableMetaKey(pCxt, true, tableNo, &sToken));
CHECK_CODE(skipUsingClause(pCxt));
NEXT_TOKEN(pCxt->pSql, sToken);
}
@ -1717,15 +1739,17 @@ static int32_t parseInsertBodySyntax(SInsertParseSyntaxCxt* pCxt) {
if (TK_USING == sToken.type && !existedUsing) {
existedUsing = true;
CHECK_CODE(collectAutoCreateTableMetaKey(pCxt, &tbnameToken));
CHECK_CODE(collectAutoCreateTableMetaKey(pCxt, tableNo, &tbnameToken));
NEXT_TOKEN(pCxt->pSql, sToken);
CHECK_CODE(collectTableMetaKey(pCxt, &sToken));
CHECK_CODE(collectTableMetaKey(pCxt, true, tableNo, &sToken));
CHECK_CODE(skipUsingClause(pCxt));
NEXT_TOKEN(pCxt->pSql, sToken);
} else {
CHECK_CODE(collectTableMetaKey(pCxt, &tbnameToken));
} else if (!existedUsing) {
CHECK_CODE(collectTableMetaKey(pCxt, false, tableNo, &tbnameToken));
}
++tableNo;
if (TK_VALUES == sToken.type) {
// pSql -> (field1_value, ...) [(field1_value2, ...) ...]
CHECK_CODE(skipValuesClause(pCxt));

View File

@ -1399,7 +1399,7 @@ static int32_t translateTimelineFunc(STranslateContext* pCxt, SFunctionNode* pFu
"%s function must be used in select statements", pFunc->functionName);
}
SSelectStmt* pSelect = (SSelectStmt*)pCxt->pCurrStmt;
if (QUERY_NODE_TEMP_TABLE == nodeType(pSelect->pFromTable) &&
if (NULL != pSelect->pFromTable && QUERY_NODE_TEMP_TABLE == nodeType(pSelect->pFromTable) &&
!isTimeLineQuery(((STempTableNode*)pSelect->pFromTable)->pSubquery)) {
return generateSyntaxErrMsgExt(&pCxt->msgBuf, TSDB_CODE_PAR_NOT_ALLOWED_FUNC,
"%s function requires valid time series input", pFunc->functionName);
@ -2037,16 +2037,13 @@ static int32_t setVnodeSysTableVgroupList(STranslateContext* pCxt, SName* pName,
code = getDBVgInfoImpl(pCxt, pName, &vgroupList);
}
if (TSDB_CODE_SUCCESS == code &&
0 == strcmp(pRealTable->table.dbName, TSDB_INFORMATION_SCHEMA_DB) &&
0 == strcmp(pRealTable->table.tableName, TSDB_INS_TABLE_TAGS) &&
isSelectStmt(pCxt->pCurrStmt) &&
if (TSDB_CODE_SUCCESS == code && 0 == strcmp(pRealTable->table.dbName, TSDB_INFORMATION_SCHEMA_DB) &&
0 == strcmp(pRealTable->table.tableName, TSDB_INS_TABLE_TAGS) && isSelectStmt(pCxt->pCurrStmt) &&
0 == taosArrayGetSize(vgroupList)) {
((SSelectStmt*)pCxt->pCurrStmt)->isEmptyResult = true;
}
if (TSDB_CODE_SUCCESS == code &&
0 == strcmp(pRealTable->table.dbName, TSDB_INFORMATION_SCHEMA_DB) &&
if (TSDB_CODE_SUCCESS == code && 0 == strcmp(pRealTable->table.dbName, TSDB_INFORMATION_SCHEMA_DB) &&
0 == strcmp(pRealTable->table.tableName, TSDB_INS_TABLE_TABLES)) {
code = addMnodeToVgroupList(&pCxt->pParseCxt->mgmtEpSet, &vgroupList);
}

View File

@ -476,9 +476,11 @@ static int32_t buildDbReq(SHashObj* pDbsHash, SArray** pDbs) {
static int32_t buildTableReqFromDb(SHashObj* pDbsHash, SArray** pDbs) {
if (NULL != pDbsHash) {
*pDbs = taosArrayInit(taosHashGetSize(pDbsHash), sizeof(STablesReq));
if (NULL == *pDbs) {
return TSDB_CODE_OUT_OF_MEMORY;
*pDbs = taosArrayInit(taosHashGetSize(pDbsHash), sizeof(STablesReq));
if (NULL == *pDbs) {
return TSDB_CODE_OUT_OF_MEMORY;
}
}
SParseTablesMetaReq* p = taosHashIterate(pDbsHash, NULL);
while (NULL != p) {
@ -530,7 +532,62 @@ static int32_t buildUdfReq(SHashObj* pUdfHash, SArray** pUdf) {
return TSDB_CODE_SUCCESS;
}
int32_t buildCatalogReq(const SParseMetaCache* pMetaCache, SCatalogReq* pCatalogReq) {
static int32_t buildCatalogReqForInsert(SParseContext* pCxt, const SParseMetaCache* pMetaCache,
SCatalogReq* pCatalogReq) {
int32_t ndbs = taosHashGetSize(pMetaCache->pInsertTables);
pCatalogReq->pTableMeta = taosArrayInit(ndbs, sizeof(STablesReq));
if (NULL == pCatalogReq->pTableMeta) {
return TSDB_CODE_OUT_OF_MEMORY;
}
pCatalogReq->pTableHash = taosArrayInit(ndbs, sizeof(STablesReq));
if (NULL == pCatalogReq->pTableHash) {
return TSDB_CODE_OUT_OF_MEMORY;
}
pCatalogReq->pUser = taosArrayInit(ndbs, sizeof(SUserAuthInfo));
if (NULL == pCatalogReq->pUser) {
return TSDB_CODE_OUT_OF_MEMORY;
}
pCxt->pTableMetaPos = taosArrayInit(pMetaCache->sqlTableNum, sizeof(int32_t));
pCxt->pTableVgroupPos = taosArrayInit(pMetaCache->sqlTableNum, sizeof(int32_t));
int32_t metaReqNo = 0;
int32_t vgroupReqNo = 0;
SInsertTablesMetaReq* p = taosHashIterate(pMetaCache->pInsertTables, NULL);
while (NULL != p) {
STablesReq req = {0};
strcpy(req.dbFName, p->dbFName);
TSWAP(req.pTables, p->pTableMetaReq);
taosArrayPush(pCatalogReq->pTableMeta, &req);
req.pTables = NULL;
TSWAP(req.pTables, p->pTableVgroupReq);
taosArrayPush(pCatalogReq->pTableHash, &req);
int32_t ntables = taosArrayGetSize(p->pTableMetaPos);
for (int32_t i = 0; i < ntables; ++i) {
taosArrayInsert(pCxt->pTableMetaPos, *(int32_t*)taosArrayGet(p->pTableMetaPos, i), &metaReqNo);
++metaReqNo;
}
ntables = taosArrayGetSize(p->pTableVgroupPos);
for (int32_t i = 0; i < ntables; ++i) {
taosArrayInsert(pCxt->pTableVgroupPos, *(int32_t*)taosArrayGet(p->pTableVgroupPos, i), &vgroupReqNo);
++vgroupReqNo;
}
SUserAuthInfo auth = {0};
strcpy(auth.user, pCxt->pUser);
strcpy(auth.dbFName, p->dbFName);
auth.type = AUTH_TYPE_WRITE;
taosArrayPush(pCatalogReq->pUser, &auth);
p = taosHashIterate(pMetaCache->pInsertTables, p);
}
return TSDB_CODE_SUCCESS;
}
int32_t buildCatalogReqForQuery(const SParseMetaCache* pMetaCache, SCatalogReq* pCatalogReq) {
int32_t code = buildTableReqFromDb(pMetaCache->pTableMeta, &pCatalogReq->pTableMeta);
if (TSDB_CODE_SUCCESS == code) {
code = buildDbReq(pMetaCache->pDbVgroup, &pCatalogReq->pDbVgroup);
@ -560,6 +617,13 @@ int32_t buildCatalogReq(const SParseMetaCache* pMetaCache, SCatalogReq* pCatalog
return code;
}
int32_t buildCatalogReq(SParseContext* pCxt, const SParseMetaCache* pMetaCache, SCatalogReq* pCatalogReq) {
if (NULL != pMetaCache->pInsertTables) {
return buildCatalogReqForInsert(pCxt, pMetaCache, pCatalogReq);
}
return buildCatalogReqForQuery(pMetaCache, pCatalogReq);
}
static int32_t putMetaDataToHash(const char* pKey, int32_t len, const SArray* pData, int32_t index, SHashObj** pHash) {
if (NULL == *pHash) {
*pHash = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), false, HASH_NO_LOCK);
@ -647,7 +711,8 @@ static int32_t putUdfToCache(const SArray* pUdfReq, const SArray* pUdfData, SHas
return TSDB_CODE_SUCCESS;
}
int32_t putMetaDataToCache(const SCatalogReq* pCatalogReq, const SMetaData* pMetaData, SParseMetaCache* pMetaCache) {
int32_t putMetaDataToCacheForQuery(const SCatalogReq* pCatalogReq, const SMetaData* pMetaData,
SParseMetaCache* pMetaCache) {
int32_t code = putDbTableDataToCache(pCatalogReq->pTableMeta, pMetaData->pTableMeta, &pMetaCache->pTableMeta);
if (TSDB_CODE_SUCCESS == code) {
code = putDbDataToCache(pCatalogReq->pDbVgroup, pMetaData->pDbVgroup, &pMetaCache->pDbVgroup);
@ -677,6 +742,30 @@ int32_t putMetaDataToCache(const SCatalogReq* pCatalogReq, const SMetaData* pMet
return code;
}
int32_t putMetaDataToCacheForInsert(const SMetaData* pMetaData, SParseMetaCache* pMetaCache) {
int32_t ndbs = taosArrayGetSize(pMetaData->pUser);
for (int32_t i = 0; i < ndbs; ++i) {
SMetaRes* pRes = taosArrayGet(pMetaData->pUser, i);
if (TSDB_CODE_SUCCESS != pRes->code) {
return pRes->code;
}
if (!(*(bool*)pRes->pRes)) {
return TSDB_CODE_PAR_PERMISSION_DENIED;
}
}
pMetaCache->pTableMetaData = pMetaData->pTableMeta;
pMetaCache->pTableVgroupData = pMetaData->pTableHash;
return TSDB_CODE_SUCCESS;
}
int32_t putMetaDataToCache(const SCatalogReq* pCatalogReq, const SMetaData* pMetaData, SParseMetaCache* pMetaCache,
bool insertValuesStmt) {
if (insertValuesStmt) {
return putMetaDataToCacheForInsert(pMetaData, pMetaCache);
}
return putMetaDataToCacheForQuery(pCatalogReq, pMetaData, pMetaCache);
}
static int32_t reserveTableReqInCacheImpl(const char* pTbFName, int32_t len, SHashObj** pTables) {
if (NULL == *pTables) {
*pTables = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_NO_LOCK);
@ -977,6 +1066,82 @@ int32_t getDnodeListFromCache(SParseMetaCache* pMetaCache, SArray** pDnodes) {
return TSDB_CODE_SUCCESS;
}
static int32_t reserveTableReqInCacheForInsert(const SName* pName, ECatalogReqType reqType, int32_t tableNo,
SInsertTablesMetaReq* pReq) {
switch (reqType) {
case CATALOG_REQ_TYPE_META:
taosArrayPush(pReq->pTableMetaReq, pName);
taosArrayPush(pReq->pTableMetaPos, &tableNo);
break;
case CATALOG_REQ_TYPE_VGROUP:
taosArrayPush(pReq->pTableVgroupReq, pName);
taosArrayPush(pReq->pTableVgroupPos, &tableNo);
break;
case CATALOG_REQ_TYPE_BOTH:
taosArrayPush(pReq->pTableMetaReq, pName);
taosArrayPush(pReq->pTableMetaPos, &tableNo);
taosArrayPush(pReq->pTableVgroupReq, pName);
taosArrayPush(pReq->pTableVgroupPos, &tableNo);
break;
default:
break;
}
return TSDB_CODE_SUCCESS;
}
static int32_t reserveTableReqInDbCacheForInsert(const SName* pName, ECatalogReqType reqType, int32_t tableNo,
SHashObj* pDbs) {
SInsertTablesMetaReq req = {.pTableMetaReq = taosArrayInit(4, sizeof(SName)),
.pTableMetaPos = taosArrayInit(4, sizeof(int32_t)),
.pTableVgroupReq = taosArrayInit(4, sizeof(SName)),
.pTableVgroupPos = taosArrayInit(4, sizeof(int32_t))};
tNameGetFullDbName(pName, req.dbFName);
int32_t code = reserveTableReqInCacheForInsert(pName, reqType, tableNo, &req);
if (TSDB_CODE_SUCCESS == code) {
code = taosHashPut(pDbs, pName->dbname, strlen(pName->dbname), &req, sizeof(SInsertTablesMetaReq));
}
return code;
}
int32_t reserveTableMetaInCacheForInsert(const SName* pName, ECatalogReqType reqType, int32_t tableNo,
SParseMetaCache* pMetaCache) {
if (NULL == pMetaCache->pInsertTables) {
pMetaCache->pInsertTables = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_NO_LOCK);
if (NULL == pMetaCache->pInsertTables) {
return TSDB_CODE_OUT_OF_MEMORY;
}
}
pMetaCache->sqlTableNum = tableNo;
SInsertTablesMetaReq* pReq = taosHashGet(pMetaCache->pInsertTables, pName->dbname, strlen(pName->dbname));
if (NULL == pReq) {
return reserveTableReqInDbCacheForInsert(pName, reqType, tableNo, pMetaCache->pInsertTables);
}
return reserveTableReqInCacheForInsert(pName, reqType, tableNo, pReq);
}
int32_t getTableMetaFromCacheForInsert(SArray* pTableMetaPos, SParseMetaCache* pMetaCache, int32_t tableNo,
STableMeta** pMeta) {
int32_t reqIndex = *(int32_t*)taosArrayGet(pTableMetaPos, tableNo);
SMetaRes* pRes = taosArrayGet(pMetaCache->pTableMetaData, reqIndex);
if (TSDB_CODE_SUCCESS == pRes->code) {
*pMeta = pRes->pRes;
if (NULL == *pMeta) {
return TSDB_CODE_OUT_OF_MEMORY;
}
}
return pRes->code;
}
int32_t getTableVgroupFromCacheForInsert(SArray* pTableVgroupPos, SParseMetaCache* pMetaCache, int32_t tableNo,
SVgroupInfo* pVgroup) {
int32_t reqIndex = *(int32_t*)taosArrayGet(pTableVgroupPos, tableNo);
SMetaRes* pRes = taosArrayGet(pMetaCache->pTableVgroupData, reqIndex);
if (TSDB_CODE_SUCCESS == pRes->code) {
memcpy(pVgroup, pRes->pRes, sizeof(SVgroupInfo));
}
return pRes->code;
}
void destoryParseTablesMetaReqHash(SHashObj* pHash) {
SParseTablesMetaReq* p = taosHashIterate(pHash, NULL);
while (NULL != p) {

View File

@ -185,7 +185,7 @@ int32_t qParseSqlSyntax(SParseContext* pCxt, SQuery** pQuery, struct SCatalogReq
code = parseSqlSyntax(pCxt, pQuery, &metaCache);
}
if (TSDB_CODE_SUCCESS == code) {
code = buildCatalogReq(&metaCache, pCatalogReq);
code = buildCatalogReq(pCxt, &metaCache, pCatalogReq);
}
destoryParseMetaCache(&metaCache, true);
terrno = code;
@ -195,7 +195,7 @@ int32_t qParseSqlSyntax(SParseContext* pCxt, SQuery** pQuery, struct SCatalogReq
int32_t qAnalyseSqlSemantic(SParseContext* pCxt, const struct SCatalogReq* pCatalogReq,
const struct SMetaData* pMetaData, SQuery* pQuery) {
SParseMetaCache metaCache = {0};
int32_t code = putMetaDataToCache(pCatalogReq, pMetaData, &metaCache);
int32_t code = putMetaDataToCache(pCatalogReq, pMetaData, &metaCache, NULL == pQuery->pRoot);
if (TSDB_CODE_SUCCESS == code) {
if (NULL == pQuery->pRoot) {
code = parseInsertSql(pCxt, &pQuery, &metaCache);

View File

@ -13,21 +13,13 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <functional>
#include <gtest/gtest.h>
#include "mockCatalogService.h"
#include "os.h"
#include "parInt.h"
#include "parTestUtil.h"
using namespace std;
using namespace std::placeholders;
using namespace testing;
namespace {
string toString(int32_t code) { return tstrerror(code); }
} // namespace
namespace ParserTest {
// syntax:
// INSERT INTO
@ -36,259 +28,60 @@ string toString(int32_t code) { return tstrerror(code); }
// [(field1_name, ...)]
// VALUES (field1_value, ...) [(field1_value2, ...) ...] | FILE csv_file_path
// [...];
class InsertTest : public Test {
protected:
InsertTest() : res_(nullptr) {}
~InsertTest() { reset(); }
void setDatabase(const string& acctId, const string& db) {
acctId_ = acctId;
db_ = db;
}
void bind(const char* sql) {
reset();
cxt_.acctId = atoi(acctId_.c_str());
cxt_.db = (char*)db_.c_str();
strcpy(sqlBuf_, sql);
cxt_.sqlLen = strlen(sql);
sqlBuf_[cxt_.sqlLen] = '\0';
cxt_.pSql = sqlBuf_;
}
int32_t run() {
code_ = parseInsertSql(&cxt_, &res_, nullptr);
if (code_ != TSDB_CODE_SUCCESS) {
cout << "code:" << toString(code_) << ", msg:" << errMagBuf_ << endl;
}
return code_;
}
int32_t runAsync() {
cxt_.async = true;
bool request = true;
unique_ptr<SParseMetaCache, function<void(SParseMetaCache*)> > metaCache(
new SParseMetaCache(), std::bind(_destoryParseMetaCache, _1, cref(request)));
code_ = parseInsertSyntax(&cxt_, &res_, metaCache.get());
if (code_ != TSDB_CODE_SUCCESS) {
cout << "parseInsertSyntax code:" << toString(code_) << ", msg:" << errMagBuf_ << endl;
return code_;
}
unique_ptr<SCatalogReq, void (*)(SCatalogReq*)> catalogReq(new SCatalogReq(),
MockCatalogService::destoryCatalogReq);
code_ = buildCatalogReq(metaCache.get(), catalogReq.get());
if (code_ != TSDB_CODE_SUCCESS) {
cout << "buildCatalogReq code:" << toString(code_) << ", msg:" << errMagBuf_ << endl;
return code_;
}
unique_ptr<SMetaData, void (*)(SMetaData*)> metaData(new SMetaData(), MockCatalogService::destoryMetaData);
g_mockCatalogService->catalogGetAllMeta(catalogReq.get(), metaData.get());
metaCache.reset(new SParseMetaCache());
request = false;
code_ = putMetaDataToCache(catalogReq.get(), metaData.get(), metaCache.get());
if (code_ != TSDB_CODE_SUCCESS) {
cout << "putMetaDataToCache code:" << toString(code_) << ", msg:" << errMagBuf_ << endl;
return code_;
}
code_ = parseInsertSql(&cxt_, &res_, metaCache.get());
if (code_ != TSDB_CODE_SUCCESS) {
cout << "parseInsertSql code:" << toString(code_) << ", msg:" << errMagBuf_ << endl;
return code_;
}
return code_;
}
void dumpReslut() {
SVnodeModifOpStmt* pStmt = getVnodeModifStmt(res_);
size_t num = taosArrayGetSize(pStmt->pDataBlocks);
cout << "payloadType:" << (int32_t)pStmt->payloadType << ", insertType:" << pStmt->insertType
<< ", numOfVgs:" << num << endl;
for (size_t i = 0; i < num; ++i) {
SVgDataBlocks* vg = (SVgDataBlocks*)taosArrayGetP(pStmt->pDataBlocks, i);
cout << "vgId:" << vg->vg.vgId << ", numOfTables:" << vg->numOfTables << ", dataSize:" << vg->size << endl;
SSubmitReq* submit = (SSubmitReq*)vg->pData;
cout << "length:" << ntohl(submit->length) << ", numOfBlocks:" << ntohl(submit->numOfBlocks) << endl;
int32_t numOfBlocks = ntohl(submit->numOfBlocks);
SSubmitBlk* blk = (SSubmitBlk*)(submit + 1);
for (int32_t i = 0; i < numOfBlocks; ++i) {
cout << "Block:" << i << endl;
cout << "\tuid:" << be64toh(blk->uid) << ", tid:" << be64toh(blk->suid) << ", sversion:" << ntohl(blk->sversion)
<< ", dataLen:" << ntohl(blk->dataLen) << ", schemaLen:" << ntohl(blk->schemaLen)
<< ", numOfRows:" << ntohl(blk->numOfRows) << endl;
blk = (SSubmitBlk*)(blk->data + ntohl(blk->dataLen));
}
}
}
void checkReslut(int32_t numOfTables, int32_t numOfRows1, int32_t numOfRows2 = -1) {
SVnodeModifOpStmt* pStmt = getVnodeModifStmt(res_);
ASSERT_EQ(pStmt->payloadType, PAYLOAD_TYPE_KV);
ASSERT_EQ(pStmt->insertType, TSDB_QUERY_TYPE_INSERT);
size_t num = taosArrayGetSize(pStmt->pDataBlocks);
ASSERT_GE(num, 0);
for (size_t i = 0; i < num; ++i) {
SVgDataBlocks* vg = (SVgDataBlocks*)taosArrayGetP(pStmt->pDataBlocks, i);
ASSERT_EQ(vg->numOfTables, numOfTables);
ASSERT_GE(vg->size, 0);
SSubmitReq* submit = (SSubmitReq*)vg->pData;
ASSERT_GE(ntohl(submit->length), 0);
ASSERT_GE(ntohl(submit->numOfBlocks), 0);
int32_t numOfBlocks = ntohl(submit->numOfBlocks);
SSubmitBlk* blk = (SSubmitBlk*)(submit + 1);
for (int32_t i = 0; i < numOfBlocks; ++i) {
ASSERT_EQ(ntohl(blk->numOfRows), (0 == i ? numOfRows1 : (numOfRows2 > 0 ? numOfRows2 : numOfRows1)));
blk = (SSubmitBlk*)(blk->data + ntohl(blk->dataLen));
}
}
}
private:
static const int max_err_len = 1024;
static const int max_sql_len = 1024 * 1024;
static void _destoryParseMetaCache(SParseMetaCache* pMetaCache, bool request) {
destoryParseMetaCache(pMetaCache, request);
delete pMetaCache;
}
void reset() {
memset(&cxt_, 0, sizeof(cxt_));
memset(errMagBuf_, 0, max_err_len);
cxt_.pMsg = errMagBuf_;
cxt_.msgLen = max_err_len;
code_ = TSDB_CODE_SUCCESS;
qDestroyQuery(res_);
res_ = nullptr;
}
SVnodeModifOpStmt* getVnodeModifStmt(SQuery* pQuery) { return (SVnodeModifOpStmt*)pQuery->pRoot; }
string acctId_;
string db_;
char errMagBuf_[max_err_len];
char sqlBuf_[max_sql_len];
SParseContext cxt_;
int32_t code_;
SQuery* res_;
};
class ParserInsertTest : public ParserTestBase {};
// INSERT INTO tb_name [(field1_name, ...)] VALUES (field1_value, ...)
TEST_F(InsertTest, singleTableSingleRowTest) {
setDatabase("root", "test");
TEST_F(ParserInsertTest, singleTableSingleRowTest) {
useDb("root", "test");
bind("insert into t1 values (now, 1, 'beijing', 3, 4, 5)");
ASSERT_EQ(run(), TSDB_CODE_SUCCESS);
dumpReslut();
checkReslut(1, 1);
run("INSERT INTO t1 VALUES (now, 1, 'beijing', 3, 4, 5)");
bind("insert into t1 (ts, c1, c2, c3, c4, c5) values (now, 1, 'beijing', 3, 4, 5)");
ASSERT_EQ(run(), TSDB_CODE_SUCCESS);
bind("insert into t1 values (now, 1, 'beijing', 3, 4, 5)");
ASSERT_EQ(runAsync(), TSDB_CODE_SUCCESS);
dumpReslut();
checkReslut(1, 1);
bind("insert into t1 (ts, c1, c2, c3, c4, c5) values (now, 1, 'beijing', 3, 4, 5)");
ASSERT_EQ(runAsync(), TSDB_CODE_SUCCESS);
run("INSERT INTO t1 (ts, c1, c2, c3, c4, c5) VALUES (now, 1, 'beijing', 3, 4, 5)");
}
// INSERT INTO tb_name VALUES (field1_value, ...)(field1_value, ...)
TEST_F(InsertTest, singleTableMultiRowTest) {
setDatabase("root", "test");
TEST_F(ParserInsertTest, singleTableMultiRowTest) {
useDb("root", "test");
bind(
"insert into t1 values (now, 1, 'beijing', 3, 4, 5)(now+1s, 2, 'shanghai', 6, 7, 8)"
run("INSERT INTO t1 VALUES (now, 1, 'beijing', 3, 4, 5)"
"(now+1s, 2, 'shanghai', 6, 7, 8)"
"(now+2s, 3, 'guangzhou', 9, 10, 11)");
ASSERT_EQ(run(), TSDB_CODE_SUCCESS);
dumpReslut();
checkReslut(1, 3);
bind(
"insert into t1 values (now, 1, 'beijing', 3, 4, 5)(now+1s, 2, 'shanghai', 6, 7, 8)"
"(now+2s, 3, 'guangzhou', 9, 10, 11)");
ASSERT_EQ(runAsync(), TSDB_CODE_SUCCESS);
}
// INSERT INTO tb1_name VALUES (field1_value, ...) tb2_name VALUES (field1_value, ...)
TEST_F(InsertTest, multiTableSingleRowTest) {
setDatabase("root", "test");
TEST_F(ParserInsertTest, multiTableSingleRowTest) {
useDb("root", "test");
bind("insert into st1s1 values (now, 1, \"beijing\") st1s2 values (now, 10, \"131028\")");
ASSERT_EQ(run(), TSDB_CODE_SUCCESS);
dumpReslut();
checkReslut(2, 1);
bind("insert into st1s1 values (now, 1, \"beijing\") st1s2 values (now, 10, \"131028\")");
ASSERT_EQ(runAsync(), TSDB_CODE_SUCCESS);
run("INSERT INTO st1s1 VALUES (now, 1, 'beijing') st1s2 VALUES (now, 10, '131028')");
}
// INSERT INTO tb1_name VALUES (field1_value, ...) tb2_name VALUES (field1_value, ...)
TEST_F(InsertTest, multiTableMultiRowTest) {
setDatabase("root", "test");
TEST_F(ParserInsertTest, multiTableMultiRowTest) {
useDb("root", "test");
bind(
"insert into st1s1 values (now, 1, \"beijing\")(now+1s, 2, \"shanghai\")(now+2s, 3, \"guangzhou\")"
" st1s2 values (now, 10, \"131028\")(now+1s, 20, \"132028\")");
ASSERT_EQ(run(), TSDB_CODE_SUCCESS);
dumpReslut();
checkReslut(2, 3, 2);
bind(
"insert into st1s1 values (now, 1, \"beijing\")(now+1s, 2, \"shanghai\")(now+2s, 3, \"guangzhou\")"
" st1s2 values (now, 10, \"131028\")(now+1s, 20, \"132028\")");
ASSERT_EQ(runAsync(), TSDB_CODE_SUCCESS);
run("INSERT INTO "
"st1s1 VALUES (now, 1, 'beijing')(now+1s, 2, 'shanghai')(now+2s, 3, 'guangzhou') "
"st1s2 VALUES (now, 10, '131028')(now+1s, 20, '132028')");
}
// INSERT INTO
// tb1_name USING st1_name [(tag1_name, ...)] TAGS (tag1_value, ...) VALUES (field1_value, ...)
// tb2_name USING st2_name [(tag1_name, ...)] TAGS (tag1_value, ...) VALUES (field1_value, ...)
TEST_F(InsertTest, autoCreateTableTest) {
setDatabase("root", "test");
TEST_F(ParserInsertTest, autoCreateTableTest) {
useDb("root", "test");
bind(
"insert into st1s1 using st1 tags(1, 'wxy', now) "
"values (now, 1, \"beijing\")(now+1s, 2, \"shanghai\")(now+2s, 3, \"guangzhou\")");
ASSERT_EQ(run(), TSDB_CODE_SUCCESS);
dumpReslut();
checkReslut(1, 3);
run("INSERT INTO st1s1 USING st1 TAGS(1, 'wxy', now) "
"VALUES (now, 1, 'beijing')(now+1s, 2, 'shanghai')(now+2s, 3, 'guangzhou')");
bind(
"insert into st1s1 using st1 (tag1, tag2) tags(1, 'wxy') values (now, 1, \"beijing\")"
"(now+1s, 2, \"shanghai\")(now+2s, 3, \"guangzhou\")");
ASSERT_EQ(run(), TSDB_CODE_SUCCESS);
run("INSERT INTO st1s1 USING st1 (tag1, tag2) TAGS(1, 'wxy') (ts, c1, c2) "
"VALUES (now, 1, 'beijing')(now+1s, 2, 'shanghai')(now+2s, 3, 'guangzhou')");
bind(
"insert into st1s1 using st1 tags(1, 'wxy', now) "
"values (now, 1, \"beijing\")(now+1s, 2, \"shanghai\")(now+2s, 3, \"guangzhou\")");
ASSERT_EQ(runAsync(), TSDB_CODE_SUCCESS);
run("INSERT INTO st1s1 (ts, c1, c2) USING st1 (tag1, tag2) TAGS(1, 'wxy') "
"VALUES (now, 1, 'beijing')(now+1s, 2, 'shanghai')(now+2s, 3, 'guangzhou')");
bind(
"insert into st1s1 using st1 (tag1, tag2) tags(1, 'wxy') values (now, 1, \"beijing\")"
"(now+1s, 2, \"shanghai\")(now+2s, 3, \"guangzhou\")");
ASSERT_EQ(runAsync(), TSDB_CODE_SUCCESS);
bind(
"insert into st1s1 using st1 tags(1, 'wxy', now) values (now, 1, \"beijing\")"
"st1s1 using st1 tags(1, 'wxy', now) values (now+1s, 2, \"shanghai\")");
ASSERT_EQ(run(), TSDB_CODE_SUCCESS);
run("INSERT INTO "
"st1s1 USING st1 (tag1, tag2) TAGS(1, 'wxy') (ts, c1, c2) VALUES (now, 1, 'beijing') "
"st1s2 (ts, c1, c2) USING st1 TAGS(2, 'abc', now) VALUES (now+1s, 2, 'shanghai')");
}
TEST_F(InsertTest, toleranceTest) {
setDatabase("root", "test");
bind("insert into");
ASSERT_NE(run(), TSDB_CODE_SUCCESS);
bind("insert into t");
ASSERT_NE(run(), TSDB_CODE_SUCCESS);
bind("insert into");
ASSERT_NE(runAsync(), TSDB_CODE_SUCCESS);
bind("insert into t");
ASSERT_NE(runAsync(), TSDB_CODE_SUCCESS);
}
} // namespace ParserTest

View File

@ -225,16 +225,17 @@ class ParserTestBaseImpl {
DO_WITH_THROW(collectMetaKey, pCxt, pQuery, pMetaCache);
}
void doBuildCatalogReq(const SParseMetaCache* pMetaCache, SCatalogReq* pCatalogReq) {
DO_WITH_THROW(buildCatalogReq, pMetaCache, pCatalogReq);
void doBuildCatalogReq(SParseContext* pCxt, const SParseMetaCache* pMetaCache, SCatalogReq* pCatalogReq) {
DO_WITH_THROW(buildCatalogReq, pCxt, pMetaCache, pCatalogReq);
}
void doGetAllMeta(const SCatalogReq* pCatalogReq, SMetaData* pMetaData) {
DO_WITH_THROW(g_mockCatalogService->catalogGetAllMeta, pCatalogReq, pMetaData);
}
void doPutMetaDataToCache(const SCatalogReq* pCatalogReq, const SMetaData* pMetaData, SParseMetaCache* pMetaCache) {
DO_WITH_THROW(putMetaDataToCache, pCatalogReq, pMetaData, pMetaCache);
void doPutMetaDataToCache(const SCatalogReq* pCatalogReq, const SMetaData* pMetaData, SParseMetaCache* pMetaCache,
bool isInsertValues) {
DO_WITH_THROW(putMetaDataToCache, pCatalogReq, pMetaData, pMetaCache, isInsertValues);
}
void doAuthenticate(SParseContext* pCxt, SQuery* pQuery, SParseMetaCache* pMetaCache) {
@ -261,7 +262,9 @@ class ParserTestBaseImpl {
void doParseSqlSyntax(SParseContext* pCxt, SQuery** pQuery, SCatalogReq* pCatalogReq) {
DO_WITH_THROW(qParseSqlSyntax, pCxt, pQuery, pCatalogReq);
ASSERT_NE(*pQuery, nullptr);
res_.parsedAst_ = toString((*pQuery)->pRoot);
if (nullptr != (*pQuery)->pRoot) {
res_.parsedAst_ = toString((*pQuery)->pRoot);
}
}
void doAnalyseSqlSemantic(SParseContext* pCxt, const SCatalogReq* pCatalogReq, const SMetaData* pMetaData,
@ -270,6 +273,17 @@ class ParserTestBaseImpl {
res_.calcConstAst_ = toString(pQuery->pRoot);
}
void doParseInsertSql(SParseContext* pCxt, SQuery** pQuery, SParseMetaCache* pMetaCache) {
DO_WITH_THROW(parseInsertSql, pCxt, pQuery, pMetaCache);
ASSERT_NE(*pQuery, nullptr);
res_.parsedAst_ = toString((*pQuery)->pRoot);
}
void doParseInsertSyntax(SParseContext* pCxt, SQuery** pQuery, SParseMetaCache* pMetaCache) {
DO_WITH_THROW(parseInsertSyntax, pCxt, pQuery, pMetaCache);
ASSERT_NE(*pQuery, nullptr);
}
string toString(const SNode* pRoot) {
char* pStr = NULL;
int32_t len = 0;
@ -287,15 +301,20 @@ class ParserTestBaseImpl {
SParseContext cxt = {0};
setParseContext(sql, &cxt);
unique_ptr<SQuery*, void (*)(SQuery**)> query((SQuery**)taosMemoryCalloc(1, sizeof(SQuery*)), _destroyQuery);
doParse(&cxt, query.get());
SQuery* pQuery = *(query.get());
if (qIsInsertValuesSql(cxt.pSql, cxt.sqlLen)) {
unique_ptr<SQuery*, void (*)(SQuery**)> query((SQuery**)taosMemoryCalloc(1, sizeof(SQuery*)), _destroyQuery);
doParseInsertSql(&cxt, query.get(), nullptr);
} else {
unique_ptr<SQuery*, void (*)(SQuery**)> query((SQuery**)taosMemoryCalloc(1, sizeof(SQuery*)), _destroyQuery);
doParse(&cxt, query.get());
SQuery* pQuery = *(query.get());
doAuthenticate(&cxt, pQuery, nullptr);
doAuthenticate(&cxt, pQuery, nullptr);
doTranslate(&cxt, pQuery, nullptr);
doTranslate(&cxt, pQuery, nullptr);
doCalculateConstant(&cxt, pQuery);
doCalculateConstant(&cxt, pQuery);
}
if (g_dump) {
dump();
@ -338,17 +357,22 @@ class ParserTestBaseImpl {
setParseContext(sql, &cxt, true);
unique_ptr<SQuery*, void (*)(SQuery**)> query((SQuery**)taosMemoryCalloc(1, sizeof(SQuery*)), _destroyQuery);
doParse(&cxt, query.get());
SQuery* pQuery = *(query.get());
bool request = true;
bool request = true;
unique_ptr<SParseMetaCache, function<void(SParseMetaCache*)> > metaCache(
new SParseMetaCache(), bind(_destoryParseMetaCache, _1, cref(request)));
doCollectMetaKey(&cxt, pQuery, metaCache.get());
bool isInsertValues = qIsInsertValuesSql(cxt.pSql, cxt.sqlLen);
if (isInsertValues) {
doParseInsertSyntax(&cxt, query.get(), metaCache.get());
} else {
doParse(&cxt, query.get());
doCollectMetaKey(&cxt, *(query.get()), metaCache.get());
}
SQuery* pQuery = *(query.get());
unique_ptr<SCatalogReq, void (*)(SCatalogReq*)> catalogReq(new SCatalogReq(),
MockCatalogService::destoryCatalogReq);
doBuildCatalogReq(metaCache.get(), catalogReq.get());
doBuildCatalogReq(&cxt, metaCache.get(), catalogReq.get());
string err;
thread t1([&]() {
@ -358,13 +382,17 @@ class ParserTestBaseImpl {
metaCache.reset(new SParseMetaCache());
request = false;
doPutMetaDataToCache(catalogReq.get(), metaData.get(), metaCache.get());
doPutMetaDataToCache(catalogReq.get(), metaData.get(), metaCache.get(), isInsertValues);
doAuthenticate(&cxt, pQuery, metaCache.get());
if (isInsertValues) {
doParseInsertSql(&cxt, query.get(), metaCache.get());
} else {
doAuthenticate(&cxt, pQuery, metaCache.get());
doTranslate(&cxt, pQuery, metaCache.get());
doTranslate(&cxt, pQuery, metaCache.get());
doCalculateConstant(&cxt, pQuery);
doCalculateConstant(&cxt, pQuery);
}
} catch (const TerminateFlag& e) {
// success and terminate
} catch (const runtime_error& e) {

View File

@ -1002,7 +1002,7 @@ static int32_t createPartitionLogicNode(SLogicPlanContext* pCxt, SSelectStmt* pS
int32_t code =
nodesCollectColumns(pSelect, SQL_CLAUSE_PARTITION_BY, NULL, COLLECT_COL_TYPE_ALL, &pPartition->node.pTargets);
if (TSDB_CODE_SUCCESS == code && NULL == pPartition->node.pTargets) {
code = nodesListMakeStrictAppend(&pPartition->node.pTargets, nodesListGetNode(pCxt->pCurrRoot->pTargets, 0));
code = nodesListMakeStrictAppend(&pPartition->node.pTargets, nodesCloneNode(nodesListGetNode(pCxt->pCurrRoot->pTargets, 0)));
}
if (TSDB_CODE_SUCCESS == code) {

View File

@ -642,7 +642,6 @@ static int32_t doTrimFunction(SScalarParam *pInput, int32_t inputNum, SScalarPar
int32_t charLen = (type == TSDB_DATA_TYPE_VARCHAR) ? len : len / TSDB_NCHAR_SIZE;
trimFn(input, output, type, charLen);
varDataSetLen(output, len);
colDataAppend(pOutputData, i, output, false);
output += varDataTLen(output);
}

View File

@ -392,6 +392,29 @@ bool syncIsReady(int64_t rid) {
return b;
}
bool syncIsReadyForRead(int64_t rid) {
SSyncNode* pSyncNode = (SSyncNode*)taosAcquireRef(tsNodeRefId, rid);
if (pSyncNode == NULL) {
return false;
}
ASSERT(rid == pSyncNode->rid);
// TODO: last not noop?
SyncIndex lastIndex = syncNodeGetLastIndex(pSyncNode);
bool b = (pSyncNode->state == TAOS_SYNC_STATE_LEADER) && (pSyncNode->commitIndex >= lastIndex - SYNC_MAX_READ_RANGE);
taosReleaseRef(tsNodeRefId, pSyncNode->rid);
// if false, set error code
if (false == b) {
if (pSyncNode->state != TAOS_SYNC_STATE_LEADER) {
terrno = TSDB_CODE_SYN_NOT_LEADER;
} else {
terrno = TSDB_CODE_APP_NOT_READY;
}
}
return b;
}
bool syncIsRestoreFinish(int64_t rid) {
SSyncNode* pSyncNode = (SSyncNode*)taosAcquireRef(tsNodeRefId, rid);
if (pSyncNode == NULL) {
@ -519,6 +542,30 @@ SyncTerm syncGetMyTerm(int64_t rid) {
return term;
}
SyncIndex syncGetLastIndex(int64_t rid) {
SSyncNode* pSyncNode = (SSyncNode*)taosAcquireRef(tsNodeRefId, rid);
if (pSyncNode == NULL) {
return SYNC_INDEX_INVALID;
}
ASSERT(rid == pSyncNode->rid);
SyncIndex lastIndex = syncNodeGetLastIndex(pSyncNode);
taosReleaseRef(tsNodeRefId, pSyncNode->rid);
return lastIndex;
}
SyncIndex syncGetCommitIndex(int64_t rid) {
SSyncNode* pSyncNode = (SSyncNode*)taosAcquireRef(tsNodeRefId, rid);
if (pSyncNode == NULL) {
return SYNC_INDEX_INVALID;
}
ASSERT(rid == pSyncNode->rid);
SyncIndex cmtIndex = pSyncNode->commitIndex;
taosReleaseRef(tsNodeRefId, pSyncNode->rid);
return cmtIndex;
}
SyncGroupId syncGetVgId(int64_t rid) {
SSyncNode* pSyncNode = (SSyncNode*)taosAcquireRef(tsNodeRefId, rid);
if (pSyncNode == NULL) {
@ -828,6 +875,15 @@ int32_t syncNodePropose(SSyncNode* pSyncNode, SRpcMsg* pMsg, bool isWeak) {
pSyncNode->changing = true;
}
// not restored, vnode enable
if (!pSyncNode->restoreFinish && pSyncNode->vgId != 1) {
ret = -1;
terrno = TSDB_CODE_SYN_PROPOSE_NOT_READY;
sError("vgId:%d, failed to sync propose since not ready, type:%s, last:%ld, cmt:%ld", pSyncNode->vgId,
TMSG_INFO(pMsg->msgType), syncNodeGetLastIndex(pSyncNode), pSyncNode->commitIndex);
goto _END;
}
SRespStub stub;
stub.createTime = taosGetTimestampMs();
stub.rpcMsg = *pMsg;

View File

@ -37,9 +37,13 @@ uint32_t taosRandR(uint32_t *pSeed) {
uint32_t taosSafeRand(void) {
#ifdef WINDOWS
uint32_t seed;
uint32_t seed = taosRand();
HCRYPTPROV hCryptProv;
if (!CryptAcquireContext(&hCryptProv, NULL, NULL, PROV_RSA_FULL, 0)) return seed;
if (!CryptAcquireContext(&hCryptProv, NULL, NULL, PROV_RSA_FULL, 0)) {
if (!CryptAcquireContext(&hCryptProv, NULL, NULL, PROV_RSA_FULL, CRYPT_NEWKEYSET)) {
return seed;
}
}
if (hCryptProv != NULL) {
if (!CryptGenRandom(hCryptProv, 4, &seed)) return seed;
}

View File

@ -1120,7 +1120,7 @@ class Database:
@classmethod
def setupLastTick(cls):
# start time will be auto generated , start at 10 years ago local time
local_time = datetime.datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S.%f')[:-16]
local_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')[:-16]
local_epoch_time = [int(i) for i in local_time.split("-")]
#local_epoch_time will be such as : [2022, 7, 18]

View File

@ -46,7 +46,7 @@ class Logging:
@classmethod
def _get_datetime(cls):
return datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S.%f')[:-1]
return datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')[:-1]
@classmethod
def getLogger(cls):

View File

@ -238,19 +238,23 @@ class TAdapter:
if self.running != 0:
psCmd = f"ps -ef|grep -w {toBeKilled}| grep -v grep | awk '{{print $2}}'"
# psCmd = f"pgrep {toBeKilled}"
processID = subprocess.check_output(
psCmd, shell=True).decode("utf-8")
psCmd, shell=True)
while(processID):
killCmd = f"kill {signal} {processID} > /dev/null 2>&1"
killCmd = f"pkill {signal} {processID} > /dev/null 2>&1"
os.system(killCmd)
time.sleep(1)
processID = subprocess.check_output(
psCmd, shell=True).decode("utf-8")
if not platform.system().lower() == 'windows':
for port in range(6030, 6041):
fuserCmd = f"fuser -k -n tcp {port} > /dev/null"
os.system(fuserCmd)
port = 6041
fuserCmd = f"fuser -k -n tcp {port} > /dev/null"
os.system(fuserCmd)
# for port in range(6030, 6041):
# fuserCmd = f"fuser -k -n tcp {port} > /dev/null"
# os.system(fuserCmd)
self.running = 0
tdLog.debug(f"taosadapter is stopped by kill {signal}")

View File

@ -10,12 +10,12 @@ sql create table d3.mt (ts timestamp, c000 int, c001 int, c002 int, c003 int, c0
sql create table d3.t1 using d3.mt tags(1, 2, '3', 4, 5, 6)
sql show tables
if $rows != 1 then
if $rows != 1 then
return -1
endi
sql show stables
if $rows != 1 then
if $rows != 1 then
return -1
endi
@ -33,50 +33,50 @@ sql insert into d3.t1 values (now+1d,9 , 9 , 9 , 9 , 9 , 9 , 9 , 9 , 9 , 9 , 9 ,
print =============== step3
sql select * from d3.mt
if $rows != 10 then
if $rows != 10 then
return -1
endi
sql select * from d3.mt where c001 = 1
if $rows != 1 then
if $rows != 1 then
return -1
endi
sql select * from d3.mt where c002 = 2 and c003 = 2
if $rows != 1 then
if $rows != 1 then
return -1
endi
sql select count(c001), count(c248), avg(c001), avg(c248), sum(c001), max(c001), min(c248), avg(c235), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*) from d3.mt
print $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
if $data00 != 10 then
if $data00 != 10 then
return -1
endi
if $data01 != 10 then
if $data01 != 10 then
return -1
endi
if $data02 != 4.500000000 then
if $data02 != 4.500000000 then
return -1
endi
if $data03 != 4.500000000 then
if $data03 != 4.500000000 then
return -1
endi
if $data04 != 45 then
if $data04 != 45 then
return -1
endi
if $data05 != 9 then
if $data05 != 9 then
return -1
endi
if $data06 != 0 then
if $data06 != 0 then
return -1
endi
if $data07 != 4.500000000 then
if $data07 != 4.500000000 then
return -1
endi
if $data08 != 10 then
if $data08 != 10 then
return -1
endi
if $data09 != 10 then
if $data09 != 10 then
return -1
endi
@ -86,17 +86,17 @@ system sh/exec.sh -n dnode1 -s start
print =============== step5
sql select * from d3.mt
if $rows != 10 then
if $rows != 10 then
return -1
endi
sql select * from d3.mt where c001 = 1
if $rows != 1 then
if $rows != 1 then
return -1
endi
sql select * from d3.mt where c002 = 2 and c003 = 2
if $rows != 1 then
if $rows != 1 then
return -1
endi
@ -107,35 +107,35 @@ endi
sql select count(c001), count(c248), avg(c001), avg(c248), sum(c001), max(c001), min(c248), avg(c128), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*) from d3.mt
print $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
if $data00 != 10 then
if $data00 != 10 then
return -1
endi
if $data01 != 10 then
if $data01 != 10 then
return -1
endi
if $data02 != 4.500000000 then
if $data02 != 4.500000000 then
return -1
endi
if $data03 != 4.500000000 then
if $data03 != 4.500000000 then
return -1
endi
if $data04 != 45 then
if $data04 != 45 then
return -1
endi
if $data05 != 9 then
if $data05 != 9 then
return -1
endi
if $data06 != 0 then
if $data06 != 0 then
return -1
endi
if $data07 != 4.500000000 then
if $data07 != 4.500000000 then
return -1
endi
if $data08 != 10 then
if $data08 != 10 then
return -1
endi
if $data09 != 10 then
if $data09 != 10 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -11,12 +11,12 @@ sql create table d2.t1 using d2.mt tags(1, 2, '3', 4, 5, 6)
sql create table d2.t2 using d2.mt tags(6, 7, '8', 9, 10, 11)
sql show tables
if $rows != 2 then
if $rows != 2 then
return -1
endi
sql show stables
if $rows != 1 then
if $rows != 1 then
return -1
endi
@ -53,98 +53,98 @@ sql insert into d2.t2 values (now+9m,9 , 9 , 9 , 9 , 9 , 9 , 9 , 9 , 9 , 9 , 9 ,
print =============== step3
sql select * from d2.mt
if $rows != 20 then
if $rows != 20 then
return -1
endi
sql select * from d2.mt where ts < now + 4m
if $rows != 10 then
if $rows != 10 then
return -1
endi
sql select * from d2.mt where c001 = 1
if $rows != 2 then
if $rows != 2 then
return -1
endi
sql select * from d2.mt where c002 = 2 and c003 = 2
if $rows != 2 then
if $rows != 2 then
return -1
endi
sql select * from d2.mt where c002 = 2 and c003 = 2 and ts < now + 4m
if $rows != 2 then
if $rows != 2 then
return -1
endi
sql select count(*) from d2.mt
if $data00 != 20 then
if $data00 != 20 then
return -1
endi
sql select count(c001), count(c248), avg(c001), avg(c248), sum(c001), max(c001), min(c248), avg(c235), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*) from d2.mt
print $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
if $data00 != 20 then
if $data00 != 20 then
return -1
endi
if $data01 != 20 then
if $data01 != 20 then
return -1
endi
if $data02 != 4.500000000 then
if $data02 != 4.500000000 then
return -1
endi
if $data03 != 4.500000000 then
if $data03 != 4.500000000 then
return -1
endi
if $data04 != 90 then
if $data04 != 90 then
return -1
endi
if $data05 != 9 then
if $data05 != 9 then
return -1
endi
if $data06 != 0 then
if $data06 != 0 then
return -1
endi
if $data07 != 4.500000000 then
if $data07 != 4.500000000 then
return -1
endi
if $data08 != 20 then
if $data08 != 20 then
return -1
endi
if $data09 != 20 then
if $data09 != 20 then
return -1
endi
sql select count(c001), count(c248), avg(c001), avg(c248), sum(c001), max(c001), min(c248), avg(c238), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*) from d2.mt where a = 1
print $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
if $data00 != 10 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
if $data00 != 10 then
return -1
endi
if $data01 != 10 then
if $data01 != 10 then
return -1
endi
if $data02 != 4.500000000 then
if $data02 != 4.500000000 then
return -1
endi
if $data03 != 4.500000000 then
if $data03 != 4.500000000 then
return -1
endi
if $data04 != 45 then
if $data04 != 45 then
return -1
endi
if $data05 != 9 then
if $data05 != 9 then
return -1
endi
if $data06 != 0 then
if $data06 != 0 then
return -1
endi
if $data07 != 4.500000000 then
if $data07 != 4.500000000 then
return -1
endi
if $data08 != 10 then
if $data08 != 10 then
return -1
endi
if $data09 != 10 then
if $data09 != 10 then
return -1
endi
@ -154,56 +154,56 @@ system sh/exec.sh -n dnode1 -s start
print =============== step5
sql select * from d2.mt
if $rows != 20 then
if $rows != 20 then
return -1
endi
sql select * from d2.mt where c001 = 1
if $rows != 2 then
if $rows != 2 then
return -1
endi
sql select * from d2.mt where c002 = 2 and c003 = 2
if $rows != 2 then
if $rows != 2 then
return -1
endi
sql select count(*) from d2.mt
if $data00 != 20 then
if $data00 != 20 then
return -1
endi
sql select count(c001), count(c248), avg(c001), avg(c248), sum(c001), max(c001), min(c248), avg(c128), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*) from d2.mt
print $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
if $data00 != 20 then
if $data00 != 20 then
return -1
endi
if $data01 != 20 then
if $data01 != 20 then
return -1
endi
if $data02 != 4.500000000 then
if $data02 != 4.500000000 then
return -1
endi
if $data03 != 4.500000000 then
if $data03 != 4.500000000 then
return -1
endi
if $data04 != 90 then
if $data04 != 90 then
return -1
endi
if $data05 != 9 then
if $data05 != 9 then
return -1
endi
if $data06 != 0 then
if $data06 != 0 then
return -1
endi
if $data07 != 4.500000000 then
if $data07 != 4.500000000 then
return -1
endi
if $data08 != 20 then
if $data08 != 20 then
return -1
endi
if $data09 != 20 then
if $data09 != 20 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -9,7 +9,7 @@ sql use d1
sql create table d1.t1 (ts timestamp, c000 int, c001 int, c002 int, c003 int, c004 int, c005 int, c006 int, c007 int, c008 int, c009 int, c010 int, c011 int, c012 int, c013 int, c014 int, c015 int, c016 int, c017 int, c018 int, c019 int, c020 int, c021 int, c022 int, c023 int, c024 int, c025 int, c026 int, c027 int, c028 int, c029 int, c030 int, c031 int, c032 int, c033 int, c034 int, c035 int, c036 int, c037 int, c038 int, c039 int, c040 int, c041 int, c042 int, c043 int, c044 int, c045 int, c046 int, c047 int, c048 int, c049 int, c050 int, c051 int, c052 int, c053 int, c054 int, c055 int, c056 int, c057 int, c058 int, c059 int, c060 int, c061 int, c062 int, c063 int, c064 int, c065 int, c066 int, c067 int, c068 int, c069 int, c070 int, c071 int, c072 int, c073 int, c074 int, c075 int, c076 int, c077 int, c078 int, c079 int, c080 int, c081 int, c082 int, c083 int, c084 int, c085 int, c086 int, c087 int, c088 int, c089 int, c090 int, c091 int, c092 int, c093 int, c094 int, c095 int, c096 int, c097 int, c098 int, c099 int, c100 int, c101 int, c102 int, c103 int, c104 int, c105 int, c106 int, c107 int, c108 int, c109 int, c110 int, c111 int, c112 int, c113 int, c114 int, c115 int, c116 int, c117 int, c118 int, c119 int, c120 int, c121 int, c122 int, c123 int, c124 int, c125 int, c126 int, c127 int, c128 int, c129 int, c130 int, c131 int, c132 int, c133 int, c134 int, c135 int, c136 int, c137 int, c138 int, c139 int, c140 int, c141 int, c142 int, c143 int, c144 int, c145 int, c146 int, c147 int, c148 int, c149 int, c150 int, c151 int, c152 int, c153 int, c154 int, c155 int, c156 int, c157 int, c158 int, c159 int, c160 int, c161 int, c162 int, c163 int, c164 int, c165 int, c166 int, c167 int, c168 int, c169 int, c170 int, c171 int, c172 int, c173 int, c174 int, c175 int, c176 int, c177 int, c178 int, c179 int, c180 int, c181 int, c182 int, c183 int, c184 int, c185 int, c186 int, c187 int, c188 int, c189 int, c190 int, c191 int, c192 int, c193 int, c194 int, c195 int, c196 int, c197 int, c198 int, c199 int, c200 int, c201 int, c202 int, c203 int, c204 int, c205 int, c206 int, c207 int, c208 int, c209 int, c210 int, c211 int, c212 int, c213 int, c214 int, c215 int, c216 int, c217 int, c218 int, c219 int, c220 int, c221 int, c222 int, c223 int, c224 int, c225 int, c226 int, c227 int, c228 int, c229 int, c230 int, c231 int, c232 int, c233 int, c234 int, c235 int, c236 int, c237 int, c238 int, c239 int, c240 int, c241 int, c242 int, c243 int, c244 int, c245 int, c246 int, c247 int, c248 int, c249 int, c250 int)
sql show tables
if $rows != 1 then
if $rows != 1 then
return -1
endi
@ -32,91 +32,91 @@ sql insert into d1.t1 values (now+9m,9 , 9 , 9 , 9 , 9 , 9 , 9 , 9 , 9 , 9 , 9 ,
print ======= step3
sql select * from d1.t1
print select * from d1.t1 => rows $rows
if $rows != 10 then
if $rows != 10 then
return -1
endi
sql select * from d1.t1 where ts < now + 4m
print select * from d1.t1 where ts < now + 4m => rows $rows
if $rows != 5 then
if $rows != 5 then
return -1
endi
sql select * from d1.t1 where c001 = 1
print select * from d1.t1 where c001 = 1 => rows $rows
if $rows != 1 then
if $rows != 1 then
return -1
endi
sql select * from d1.t1 where c002 = 2 and c003 = 2
print select * from d1.t1 where c002 = 2 and c003 = 2 => rows $rows
if $rows != 1 then
if $rows != 1 then
return -1
endi
sql select * from d1.t1 where c002 = 2 and c003 = 2 and ts < now + 4m
print select * from d1.t1 where c002 = 2 and c003 = 2 and ts < now + 4m => rows $rows
if $rows != 1 then
if $rows != 1 then
return -1
endi
sql select count(*) from d1.t1
print select count(*) from d1.t1 => $data00
if $data00 != 10 then
if $data00 != 10 then
return -1
endi
sql select count(c001), count(c250), avg(c001), avg(c250), sum(c001), max(c001), min(c250), stddev(c250) from d1.t1
print $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07
if $data00 != 10 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07
if $data00 != 10 then
return -1
endi
if $data01 != 10 then
if $data01 != 10 then
return -1
endi
if $data02 != 4.500000000 then
if $data02 != 4.500000000 then
return -1
endi
if $data03 != 4.500000000 then
if $data03 != 4.500000000 then
return -1
endi
if $data04 != 45 then
if $data04 != 45 then
return -1
endi
if $data05 != 9 then
if $data05 != 9 then
return -1
endi
if $data06 != 0 then
if $data06 != 0 then
return -1
endi
if $data07 != 2.872281323 then
if $data07 != 2.872281323 then
return -1
endi
sql select count(c001), count(c250), avg(c001), avg(c250), sum(c001), max(c001), min(c250), stddev(c250), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*) from d1.t1
sql select count(c001), count(c250), avg(c001), avg(c250), sum(c001), max(c001), min(c250), stddev(c250), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*) from d1.t1
if $data00 != 10 then
if $data00 != 10 then
return -1
endi
if $data01 != 10 then
if $data01 != 10 then
return -1
endi
if $data02 != 4.500000000 then
if $data02 != 4.500000000 then
return -1
endi
if $data03 != 4.500000000 then
if $data03 != 4.500000000 then
return -1
endi
if $data04 != 45 then
if $data04 != 45 then
return -1
endi
if $data05 != 9 then
if $data05 != 9 then
return -1
endi
if $data06 != 0 then
if $data06 != 0 then
return -1
endi
if $data07 != 2.872281323 then
if $data07 != 2.872281323 then
return -1
endi
@ -128,79 +128,79 @@ print ============== step5
sql select * from d1.t1
print select * from d1.t1 => rows $rows
if $rows != 10 then
if $rows != 10 then
return -1
endi
sql select * from d1.t1 where c001 = 1
print select * from d1.t1 where c001 = 1 => rows $rows
if $rows != 1 then
if $rows != 1 then
return -1
endi
sql select * from d1.t1 where c002 = 2 and c003 = 2
print select * from d1.t1 where c002 = 2 and c003 = 2 => rows $rows
if $rows != 1 then
if $rows != 1 then
return -1
endi
sql select count(*) from d1.t1
print select count(*) from d1.t1 => $data00
if $data00 != 10 then
if $data00 != 10 then
return -1
endi
sql select count(c001), count(c250), avg(c001), avg(c250), sum(c001), max(c001), min(c250), stddev(c250) from d1.t1
print $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07
if $data00 != 10 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07
if $data00 != 10 then
return -1
endi
if $data01 != 10 then
if $data01 != 10 then
return -1
endi
if $data02 != 4.500000000 then
if $data02 != 4.500000000 then
return -1
endi
if $data03 != 4.500000000 then
if $data03 != 4.500000000 then
return -1
endi
if $data04 != 45 then
if $data04 != 45 then
return -1
endi
if $data05 != 9 then
if $data05 != 9 then
return -1
endi
if $data06 != 0 then
if $data06 != 0 then
return -1
endi
if $data07 != 2.872281323 then
if $data07 != 2.872281323 then
return -1
endi
sql select count(c001), count(c250), avg(c001), avg(c250), sum(c001), max(c001), min(c250), stddev(c250), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*), count(*) from d1.t1
if $data00 != 10 then
if $data00 != 10 then
return -1
endi
if $data01 != 10 then
if $data01 != 10 then
return -1
endi
if $data02 != 4.500000000 then
if $data02 != 4.500000000 then
return -1
endi
if $data03 != 4.500000000 then
if $data03 != 4.500000000 then
return -1
endi
if $data04 != 45 then
if $data04 != 45 then
return -1
endi
if $data05 != 9 then
if $data05 != 9 then
return -1
endi
if $data06 != 0 then
if $data06 != 0 then
return -1
endi
if $data07 != 2.872281323 then
if $data07 != 2.872281323 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -25,18 +25,18 @@ $i = 0
while $i < $tbNum
$tb = $tbPrefix . $i
sql create table $tb using $mt tags( $i )
$x = 0
while $x < $rowNum
$cc = $x * 60000
$ms = 1601481600000 + $cc
sql insert into $tb values ($ms , $x )
sql insert into $tb values ($ms , $x )
$x = $x + 1
endw
endw
$i = $i + 1
endw
endw
print =============== step2
$i = 1
@ -44,7 +44,7 @@ $tb = $tbPrefix . $i
sql select avg(tbcol) from $tb
print ===> $data00
if $data00 != 9.500000000 then
if $data00 != 9.500000000 then
return -1
endi
@ -53,27 +53,27 @@ $cc = 4 * 60000
$ms = 1601481600000 + $cc
sql select avg(tbcol) from $tb where ts <= $ms
print ===> $data00
if $data00 != 2.000000000 then
if $data00 != 2.000000000 then
return -1
endi
print =============== step4
sql select avg(tbcol) as b from $tb
print ===> $data00
if $data00 != 9.500000000 then
if $data00 != 9.500000000 then
return -1
endi
print =============== step5
sql select avg(tbcol) as b from $tb interval(1m)
print ===> $data01
if $data10 != 1.000000000 then
if $data10 != 1.000000000 then
return -1
endi
sql select avg(tbcol) as b from $tb interval(1d)
print ===> $data01
if $data00 != 9.500000000 then
if $data00 != 9.500000000 then
return -1
endi
@ -82,17 +82,17 @@ $cc = 4 * 60000
$ms = 1601481600000 + $cc
sql select avg(tbcol) as b from $tb where ts <= $ms interval(1m)
print ===> $data01
if $data40 != 4.000000000 then
if $data40 != 4.000000000 then
return -1
endi
if $rows != 5 then
if $rows != 5 then
return -1
endi
print =============== step7
sql select avg(tbcol) from $mt
print ===> $data00
if $data00 != 9.500000000 then
if $data00 != 9.500000000 then
return -1
endi
@ -101,13 +101,13 @@ $cc = 4 * 60000
$ms = 1601481600000 + $cc
sql select avg(tbcol) as c from $mt where ts <= $ms
print ===> $data00
if $data00 != 2.000000000 then
if $data00 != 2.000000000 then
return -1
endi
sql select avg(tbcol) as c from $mt where tgcol < 5
print ===> $data00
if $data00 != 9.500000000 then
if $data00 != 9.500000000 then
return -1
endi
@ -115,31 +115,31 @@ $cc = 4 * 60000
$ms = 1601481600000 + $cc
sql select avg(tbcol) as c from $mt where tgcol < 5 and ts <= $ms
print ===> $data00
if $data00 != 2.000000000 then
if $data00 != 2.000000000 then
return -1
endi
print =============== step9
sql select avg(tbcol) as b from $mt interval(1m)
print ===> $data10
if $data10 != 1.000000000 then
if $data10 != 1.000000000 then
return -1
endi
sql select avg(tbcol) as b from $mt interval(1d)
print ===> $data01
if $data00 != 9.500000000 then
if $data00 != 9.500000000 then
return -1
endi
print =============== step10
sql select avg(tbcol) as b from $mt group by tgcol
print ===> $data00
if $data00 != 9.500000000 then
if $data00 != 9.500000000 then
return -1
endi
if $rows != $tbNum then
if $rows != $tbNum then
return -1
endi
@ -148,18 +148,18 @@ $cc = 4 * 60000
$ms = 1601481600000 + $cc
sql select avg(tbcol) as b from $mt where ts <= $ms partition by tgcol interval(1m)
print ===> $data10
if $data10 != 1.000000000 then
if $data10 != 1.000000000 then
return -1
endi
if $rows != 50 then
if $rows != 50 then
return -1
endi
print =============== clear
sql drop database $db
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -27,25 +27,25 @@ $i = 0
while $i < $tbNum
$tb = $tbPrefix . $i
sql create table $tb using $mt tags( $i )
$x = 0
while $x < $rowNum
$cc = $x * 60000
$ms = 1601481600000 + $cc
sql insert into $tb values ($ms , $x )
sql insert into $tb values ($ms , $x )
$x = $x + 1
endw
endw
$i = $i + 1
endw
endw
sql create table $nt (ts timestamp, tbcol int)
$x = 0
while $x < $rowNum
$cc = $x * 60000
$ms = 1601481600000 + $cc
sql insert into $nt values ($ms , $x )
$x = $x + 1
sql insert into $nt values ($ms , $x )
$x = $x + 1
endw
sql flush database $db
@ -94,7 +94,7 @@ sql_error select _block_dist() from (select * from $mt)
print =============== clear
sql drop database $db
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi

View File

@ -25,18 +25,18 @@ $i = 0
while $i < $tbNum
$tb = $tbPrefix . $i
sql create table $tb using $mt tags( $i )
$x = 0
while $x < $rowNum
$cc = $x * 60000
$ms = 1601481600000 + $cc
sql insert into $tb values ($ms , $x )
sql insert into $tb values ($ms , $x )
$x = $x + 1
endw
endw
$i = $i + 1
endw
endw
print =============== step2
$i = 1
@ -44,7 +44,7 @@ $tb = $tbPrefix . $i
sql select bottom(tbcol, 1) from $tb
print ===> $data00
if $data00 != 0 then
if $data00 != 0 then
return -1
endi
@ -53,24 +53,24 @@ $cc = 4 * 60000
$ms = 1601481600000 + $cc
sql select bottom(tbcol, 1) from $tb where ts > $ms
print ===> $data00
if $data00 != 5 then
if $data00 != 5 then
return -1
endi
print =============== step4
sql select bottom(tbcol, 1) as b from $tb
print ===> $data00
if $data00 != 0 then
if $data00 != 0 then
return -1
endi
print =============== step5
sql select bottom(tbcol, 2) as b from $tb
sql select bottom(tbcol, 2) as b from $tb
print ===> $data00 $data10
if $data00 != 1 then
if $data00 != 1 then
return -1
endi
if $data10 != 0 then
if $data10 != 0 then
return -1
endi
@ -79,10 +79,10 @@ $cc = 4 * 60000
$ms = 1601481600000 + $cc
sql select bottom(tbcol, 2) as b from $tb where ts > $ms
print ===> $data00 $data10
if $data00 != 6 then
if $data00 != 6 then
return -1
endi
if $data10 != 5 then
if $data10 != 5 then
return -1
endi
@ -93,8 +93,8 @@ step6:
print =============== clear
sql drop database $db
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -25,18 +25,18 @@ $i = 0
while $i < $tbNum
$tb = $tbPrefix . $i
sql create table $tb using $mt tags( $i )
$x = 0
while $x < $rowNum
$cc = $x * 60000
$ms = 1601481600000 + $cc
sql insert into $tb values ($ms , $x )
sql insert into $tb values ($ms , $x )
$x = $x + 1
endw
endw
$i = $i + 1
endw
endw
print =============== step2
$i = 1
@ -44,19 +44,19 @@ $tb = $tbPrefix . $i
sql select count(*) from $tb
print ===> select count(*) from $tb => $data00
if $data00 != $rowNum then
if $data00 != $rowNum then
return -1
endi
sql select count(1) from $tb
print ===> select count(1) from $tb => $data00
if $data00 != $rowNum then
if $data00 != $rowNum then
return -1
endi
sql select count(tbcol) from $tb
print ===> $data00
if $data00 != $rowNum then
if $data00 != $rowNum then
return -1
endi
@ -65,27 +65,27 @@ $cc = 4 * 60000
$ms = 1601481600000 + $cc
sql select count(tbcol) from $tb where ts <= $ms
print ===> $data00
if $data00 != 5 then
if $data00 != 5 then
return -1
endi
print =============== step4
sql select count(tbcol) as b from $tb
print ===> $data00
if $data00 != $rowNum then
if $data00 != $rowNum then
return -1
endi
print =============== step5
sql select count(tbcol) as b from $tb interval(1m)
print ===> $data00
if $data00 != 1 then
if $data00 != 1 then
return -1
endi
sql select count(tbcol) as b from $tb interval(1d)
print ===> $data00
if $data00 != $rowNum then
if $data00 != $rowNum then
return -1
endi
@ -94,30 +94,30 @@ $cc = 4 * 60000
$ms = 1601481600000 + $cc
sql select count(tbcol) as b from $tb where ts <= $ms interval(1m)
print ===> $data00
if $data00 != 1 then
if $data00 != 1 then
return -1
endi
if $rows != 5 then
if $rows != 5 then
return -1
endi
print =============== step7
sql select count(*) from $mt
print ===> $data00
if $data00 != $totalNum then
if $data00 != $totalNum then
return -1
endi
print =============== step8
sql select count(1) from $mt
print ===> $data00
if $data00 != $totalNum then
if $data00 != $totalNum then
return -1
endi
sql select count(tbcol) from $mt
print ===> $data00
if $data00 != $totalNum then
if $data00 != $totalNum then
return -1
endi
@ -126,13 +126,13 @@ $cc = 4 * 60000
$ms = 1601481600000 + $cc
sql select count(tbcol) as c from $mt where ts <= $ms
print ===> $data00
if $data00 != 50 then
if $data00 != 50 then
return -1
endi
sql select count(tbcol) as c from $mt where tgcol < 5
print ===> $data00
if $data00 != 100 then
if $data00 != 100 then
return -1
endi
@ -140,34 +140,34 @@ $cc = 4 * 60000
$ms = 1601481600000 + $cc
sql select count(tbcol) as c from $mt where tgcol < 5 and ts <= $ms
print ===> $data00
if $data00 != 25 then
if $data00 != 25 then
return -1
endi
print =============== step9
sql select count(tbcol) as b from $mt interval(1m)
print ===> $data00
if $data00 != 10 then
if $data00 != 10 then
return -1
endi
if $data10 != 10 then
if $data10 != 10 then
return -1
endi
sql select count(tbcol) as b from $mt interval(1d)
print ===> $data00
if $data00 != 200 then
if $data00 != 200 then
return -1
endi
print =============== step10
sql select count(tbcol) as b from $mt group by tgcol
print ===> $data00
if $data00 != $rowNum then
if $data00 != $rowNum then
return -1
endi
if $rows != $tbNum then
if $rows != $tbNum then
return -1
endi
@ -176,17 +176,17 @@ $cc = 4 * 60000
$ms = 1601481600000 + $cc
sql select count(tbcol) as b from $mt where ts <= $ms partition by tgcol interval(1m)
print ===> $data01
if $data00 != 1 then
if $data00 != 1 then
return -1
endi
if $rows != 50 then
if $rows != 50 then
return -1
endi
print =============== clear
sql drop database $db
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi

View File

@ -25,17 +25,17 @@ $i = 0
while $i < $tbNum
$tb = $tbPrefix . $i
sql create table $tb using $mt tags( $i )
$x = 0
while $x < $rowNum
$cc = $x * 60000
$ms = 1601481600000 + $cc
sql insert into $tb values ($ms , $x )
sql insert into $tb values ($ms , $x )
$x = $x + 1
endw
endw
$i = $i + 1
endw
endw
print =============== step2
$i = 1
@ -43,7 +43,7 @@ $tb = $tbPrefix . $i
sql select diff(tbcol) from $tb
print ===> $data10
if $data10 != 1 then
if $data10 != 1 then
return -1
endi
@ -52,7 +52,7 @@ $cc = 4 * 60000
$ms = 1601481600000 + $cc
sql select diff(tbcol) from $tb where ts > $ms
print ===> $data10
if $data10 != 1 then
if $data10 != 1 then
return -1
endi
@ -60,14 +60,14 @@ $cc = 4 * 60000
$ms = 1601481600000 + $cc
sql select diff(tbcol) from $tb where ts <= $ms
print ===> $data10
if $data10 != 1 then
if $data10 != 1 then
return -1
endi
print =============== step4
sql select diff(tbcol) as b from $tb
print ===> $data10
if $data10 != 1 then
if $data10 != 1 then
return -1
endi
@ -86,8 +86,8 @@ step6:
print =============== clear
sql drop database $db
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -26,19 +26,19 @@ $i = 0
while $i < $tbNum
$tb = $tbPrefix . $i
sql create table $tb using $mt tags( $i )
$x = 0
while $x < $rowNum
$cc = $x * 60000
$ms = 1601481600000 + $cc
$tinyint = $x / 128
sql insert into $tb values ($ms , $x , $x , $x , $x , $tinyint , $x , $x , $x , $x )
sql insert into $tb values ($ms , $x , $x , $x , $x , $tinyint , $x , $x , $x , $x )
$x = $x + 1
endw
endw
$i = $i + 1
endw
endw
print =============== step2
$i = 1
@ -46,7 +46,7 @@ $tb = $tbPrefix . $i
sql select diff(c1) from $tb
print ===> $data10
if $data10 != 1 then
if $data10 != 1 then
return -1
endi
sql select diff(c2) from $tb
@ -56,22 +56,22 @@ if $data10 != 1.000000000 then
endi
sql select diff(c3) from $tb
print ===> $data10
if $data10 != 1 then
if $data10 != 1 then
return -1
endi
sql select diff(c4) from $tb
print ===> $data10
if $data10 != 1 then
if $data10 != 1 then
return -1
endi
sql select diff(c5) from $tb
print ===> $data10
if $data10 != 0 then
if $data10 != 0 then
return -1
endi
sql select diff(c6) from $tb
print ===> $data10
if $data10 != 1.000000000 then
if $data10 != 1.000000000 then
return -1
endi
@ -90,7 +90,7 @@ sql_error select diff(c1) from m_di_tb1 where c2 like '2%'
print =============== step3
sql select diff(c1) from $tb where c1 > 5
print ===> $data10
if $data10 != 1 then
if $data10 != 1 then
return -1
endi
sql select diff(c2) from $tb where c2 > 5
@ -100,38 +100,38 @@ if $data10 != 1.000000000 then
endi
sql select diff(c3) from $tb where c3 > 5
print ===> $data10
if $data10 != 1 then
if $data10 != 1 then
return -1
endi
sql select diff(c4) from $tb where c4 > 5
print ===> $data10
if $data10 != 1 then
if $data10 != 1 then
return -1
endi
sql select diff(c5) from $tb where c5 > 5
print ===> $data10
if $data10 != 0 then
if $data10 != 0 then
return -1
endi
sql select diff(c6) from $tb where c6 > 5
print ===> $data10
if $data10 != 1.000000000 then
if $data10 != 1.000000000 then
return -1
endi
print =============== step4
sql select diff(c1) from $tb where c1 > 5 and c2 < $rowNum
print ===> $data10
if $data10 != 1 then
if $data10 != 1 then
return -1
endi
sql select diff(c1) from $tb where c9 like '%9' and c1 <= 20
if $rows != 1 then
if $rows != 1 then
return -1
endi
print ===> $data10
if $data00 != 10 then
if $data00 != 10 then
return -1
endi
@ -148,8 +148,8 @@ step6:
print =============== clear
#sql drop database $db
#sql select * from information_schema.ins_databases
#if $rows != 2 then
#if $rows != 2 then
# return -1
#endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -25,18 +25,18 @@ $i = 0
while $i < $tbNum
$tb = $tbPrefix . $i
sql create table $tb using $mt tags( $i )
$x = 0
while $x < $rowNum
$cc = $x * 60000
$ms = 1601481600000 + $cc
sql insert into $tb values ($ms , $x )
sql insert into $tb values ($ms , $x )
$x = $x + 1
endw
endw
$i = $i + 1
endw
endw
print =============== step2
$i = 1
@ -44,7 +44,7 @@ $tb = $tbPrefix . $i
sql select first(tbcol) from $tb
print ===> $data00
if $data00 != 0 then
if $data00 != 0 then
return -1
endi
@ -53,27 +53,27 @@ $cc = 4 * 60000
$ms = 1601481600000 + $cc
sql select first(tbcol) from $tb where ts <= $ms
print ===> $data00
if $data00 != 0 then
if $data00 != 0 then
return -1
endi
print =============== step4
sql select first(tbcol) as b from $tb
print ===> $data00
if $data00 != 0 then
if $data00 != 0 then
return -1
endi
print =============== step5
sql select first(tbcol) as b from $tb interval(1m)
print ===> $data00
if $data00 != 0 then
if $data00 != 0 then
return -1
endi
sql select first(tbcol) as b from $tb interval(1d)
print ===> $data00
if $data00 != 0 then
if $data00 != 0 then
return -1
endi
@ -82,17 +82,17 @@ $cc = 4 * 60000
$ms = 1601481600000 + $cc
sql select first(tbcol) as b from $tb where ts <= $ms interval(1m)
print ===> $data00
if $data40 != 4 then
if $data40 != 4 then
return -1
endi
if $rows != 5 then
if $rows != 5 then
return -1
endi
print =============== step7
sql select first(tbcol) from $mt
print ===> $data00
if $data00 != 0 then
if $data00 != 0 then
return -1
endi
@ -101,13 +101,13 @@ $cc = 4 * 60000
$ms = 1601481600000 + $cc
sql select first(tbcol) as c from $mt where ts <= $ms
print ===> $data00
if $data00 != 0 then
if $data00 != 0 then
return -1
endi
sql select first(tbcol) as c from $mt where tgcol < 5
print ===> $data00
if $data00 != 0 then
if $data00 != 0 then
return -1
endi
@ -115,7 +115,7 @@ $cc = 4 * 60000
$ms = 1601481600000 + $cc
sql select first(tbcol) as c from $mt where tgcol < 5 and ts <= $ms
print ===> $data00
if $data00 != 0 then
if $data00 != 0 then
return -1
endi
@ -123,24 +123,24 @@ print =============== step9
sql select first(tbcol) as b from $mt interval(1m)
print select first(tbcol) as b from $mt interval(1m)
print ===> $data10
if $data10 != 1 then
if $data10 != 1 then
return -1
endi
sql select first(tbcol) as b from $mt interval(1d)
print ===> $data00
if $data00 != 0 then
if $data00 != 0 then
return -1
endi
print =============== step10
sql select first(tbcol) as b from $mt group by tgcol
print ===> $data00
if $data00 != 0 then
if $data00 != 0 then
return -1
endi
if $rows != $tbNum then
if $rows != $tbNum then
return -1
endi
@ -149,19 +149,19 @@ $cc = 4 * 60000
$ms = 1601481600000 + $cc
sql select first(tbcol) as b from $mt where ts <= $ms partition by tgcol interval(1m)
print ===> $data10
if $data10 != 1 then
if $data10 != 1 then
return -1
endi
print ===> $rows
if $rows != 50 then
if $rows != 50 then
return -1
endi
print =============== clear
sql drop database $db
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -25,18 +25,18 @@ $i = 0
while $i < $tbNum
$tb = $tbPrefix . $i
sql create table $tb using $mt tags( $i )
$x = 0
while $x < $rowNum
$cc = $x * 60000
$ms = 1601481600000 + $cc
sql insert into $tb values ($ms , $x )
sql insert into $tb values ($ms , $x )
$x = $x + 1
endw
endw
$i = $i + 1
endw
endw
print =============== step2
$i = 1
@ -44,13 +44,13 @@ $tb = $tbPrefix . $i
sql select count(tbcol), avg(tbcol), max(tbcol), min(tbcol), count(tbcol) from $tb interval(1m)
print ===> $rows
if $rows < $rowNum then
if $rows < $rowNum then
return -1
endi
if $data00 != 1 then
if $data00 != 1 then
return -1
endi
if $data04 != 1 then
if $data04 != 1 then
return -1
endi
@ -59,16 +59,16 @@ $cc = 4 * 60000
$ms = 1601481600000 + $cc
sql select count(tbcol), avg(tbcol), max(tbcol), min(tbcol), count(tbcol) from $tb where ts <= $ms interval(1m)
print ===> $rows
if $rows > 10 then
if $rows > 10 then
return -1
endi
if $rows < 3 then
if $rows < 3 then
return -1
endi
if $data00 != 1 then
if $data00 != 1 then
return -1
endi
if $data04 != 1 then
if $data04 != 1 then
return -1
endi
@ -81,16 +81,16 @@ $ms2 = 1601481600000 - $cc
sql select count(tbcol), avg(tbcol), max(tbcol), min(tbcol), count(tbcol) from $tb where ts <= $ms and ts > $ms2 interval(1m)
print ===> $rows
if $rows < 18 then
if $rows < 18 then
return -1
endi
if $rows > 22 then
if $rows > 22 then
return -1
endi
if $data00 != 1 then
if $data00 != 1 then
return -1
endi
if $data04 != 1 then
if $data04 != 1 then
return -1
endi
@ -107,29 +107,29 @@ if $rows < 30 then
print expect greater than 30, actual: $rows
return -1
endi
if $rows > 50 then
if $rows > 50 then
return -1
endi
if $data20 != 1 then
if $data20 != 1 then
return -1
endi
if $data24 != 1 then
if $data24 != 1 then
return -1
endi
print =============== step6
sql select count(tbcol), avg(tbcol), max(tbcol), min(tbcol), count(tbcol) from $mt interval(1m)
print ===> $rows
if $rows < 18 then
if $rows < 18 then
return -1
endi
if $rows > 22 then
if $rows > 22 then
return -1
endi
if $data10 > 15 then
if $data10 > 15 then
return -1
endi
if $data10 < 5 then
if $data10 < 5 then
return -1
endi
@ -138,16 +138,16 @@ $cc = 4 * 60000
$ms = 1601481600000 + $cc
sql select count(tbcol), avg(tbcol), max(tbcol), min(tbcol), count(tbcol) from $mt where ts <= $ms interval(1m)
print ===> $rows
if $rows < 3 then
if $rows < 3 then
return -1
endi
if $rows > 7 then
if $rows > 7 then
return -1
endi
if $data10 > 15 then
if $data10 > 15 then
return -1
endi
if $data10 < 5 then
if $data10 < 5 then
return -1
endi
@ -160,16 +160,16 @@ $ms2 = 1601481600000 - $cc
sql select count(tbcol), avg(tbcol), max(tbcol), min(tbcol), count(tbcol) from $mt where ts <= $ms1 and ts > $ms2 interval(1m)
print ===> $rows
if $rows < 18 then
if $rows < 18 then
return -1
endi
if $rows > 22 then
if $rows > 22 then
return -1
endi
if $data10 > 15 then
if $data10 > 15 then
return -1
endi
if $data10 < 5 then
if $data10 < 5 then
return -1
endi
@ -181,24 +181,24 @@ $cc = 1 * 60000
$ms2 = 1601481600000 - $cc
sql select count(tbcol), avg(tbcol), max(tbcol), min(tbcol), count(tbcol) from $mt where ts <= $ms1 and ts > $ms2 interval(1m) fill(value, 0)
if $rows < 30 then
if $rows < 30 then
return -1
endi
if $rows > 50 then
if $rows > 50 then
return -1
endi
if $data10 > 15 then
if $data10 > 15 then
return -1
endi
if $data10 < 5 then
if $data10 < 5 then
return -1
endi
print =============== clear
sql drop database $db
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -25,18 +25,18 @@ $i = 0
while $i < $tbNum
$tb = $tbPrefix . $i
sql create table $tb using $mt tags( $i )
$x = 0
while $x < $rowNum
$cc = $x * 60000
$ms = 1601481600000 + $cc
sql insert into $tb values ($ms , $x )
sql insert into $tb values ($ms , $x )
$x = $x + 1
endw
endw
$i = $i + 1
endw
endw
print =============== step2
$i = 1
@ -44,7 +44,7 @@ $tb = $tbPrefix . $i
sql select last(tbcol) from $tb
print ===> $data00
if $data00 != 19 then
if $data00 != 19 then
return -1
endi
@ -54,27 +54,27 @@ $ms = 1601481600000 + $cc
sql select last(tbcol) from $tb where ts <= $ms
print ===> $data00
if $data00 != 4 then
if $data00 != 4 then
return -1
endi
print =============== step4
sql select last(tbcol) as b from $tb
print ===> $data00
if $data00 != 19 then
if $data00 != 19 then
return -1
endi
print =============== step5
sql select last(tbcol) as b from $tb interval(1m)
print ===> $data10
if $data10 != 1 then
if $data10 != 1 then
return -1
endi
sql select last(tbcol) as b from $tb interval(1d)
print ===> $data00
if $data00 != 19 then
if $data00 != 19 then
return -1
endi
@ -84,17 +84,17 @@ $ms = 1601481600000 + $cc
sql select last(tbcol) as b from $tb where ts <= $ms interval(1m)
print ===> $data10
if $data10 != 1 then
if $data10 != 1 then
return -1
endi
if $rows != 5 then
if $rows != 5 then
return -1
endi
print =============== step7
sql select last(tbcol) from $mt
print ===> $data00
if $data00 != 19 then
if $data00 != 19 then
return -1
endi
@ -104,13 +104,13 @@ $ms = 1601481600000 + $cc
sql select last(tbcol) as c from $mt where ts <= $ms
print ===> $data00
if $data00 != 4 then
if $data00 != 4 then
return -1
endi
sql select last(tbcol) as c from $mt where tgcol < 5
print ===> $data00
if $data00 != 19 then
if $data00 != 19 then
return -1
endi
@ -119,31 +119,31 @@ $ms = 1601481600000 + $cc
sql select last(tbcol) as c from $mt where tgcol < 5 and ts <= $ms
print ===> $data00
if $data00 != 4 then
if $data00 != 4 then
return -1
endi
print =============== step9
sql select last(tbcol) as b from $mt interval(1m)
print ===> $data10
if $data10 != 1 then
if $data10 != 1 then
return -1
endi
sql select last(tbcol) as b from $mt interval(1d)
print ===> $data00
if $data00 != 19 then
if $data00 != 19 then
return -1
endi
print =============== step10
sql select last(tbcol) as b from $mt group by tgcol
print ===> $data00
if $data00 != 19 then
if $data00 != 19 then
return -1
endi
if $rows != $tbNum then
if $rows != $tbNum then
return -1
endi
@ -153,19 +153,19 @@ $ms = 1601481600000 + $cc
sql select last(tbcol) as b from $mt where ts <= $ms partition by tgcol interval(1m)
print ===> $data10
if $data10 != 1 then
if $data10 != 1 then
return -1
endi
print ===> $rows
if $rows != 50 then
if $rows != 50 then
return -1
endi
print =============== clear
sql drop database $db
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -25,18 +25,18 @@ $i = 0
while $i < $tbNum
$tb = $tbPrefix . $i
sql create table $tb using $mt tags( $i )
$x = 0
while $x < $rowNum
$cc = $x * 60000
$ms = 1601481600000 + $cc
sql insert into $tb values ($ms , $x )
sql insert into $tb values ($ms , $x )
$x = $x + 1
endw
endw
$i = $i + 1
endw
endw
print =============== step2
$i = 1
@ -44,7 +44,7 @@ $tb = $tbPrefix . $i
sql select last_row(tbcol) from $tb
print ===> $data00
if $data00 != 19 then
if $data00 != 19 then
return -1
endi
@ -54,21 +54,21 @@ $ms = 1601481600000 + $cc
print select last_row(tbcol) from $tb where ts <= $ms
sql select last_row(tbcol) from $tb where ts <= $ms
print ===> $data00
if $data00 != 4 then
if $data00 != 4 then
return -1
endi
print =============== step4
sql select last_row(tbcol) as b from $tb
print ===> $data00
if $data00 != 19 then
if $data00 != 19 then
return -1
endi
print =============== step7
sql select last_row(tbcol) from $mt
print ===> $data00
if $data00 != 19 then
if $data00 != 19 then
return -1
endi
@ -77,13 +77,13 @@ $cc = 4 * 60000
$ms = 1601481600000 + $cc
sql select last_row(tbcol) as c from $mt where ts <= $ms
print ===> $data00
if $data00 != 4 then
if $data00 != 4 then
return -1
endi
sql select last_row(tbcol) as c from $mt where tgcol < 5
print ===> $data00
if $data00 != 19 then
if $data00 != 19 then
return -1
endi
@ -91,18 +91,18 @@ $cc = 4 * 60000
$ms = 1601481600000 + $cc
sql select last_row(tbcol) as c from $mt where tgcol < 5 and ts <= $ms
print ===> $data00
if $data00 != 4 then
if $data00 != 4 then
return -1
endi
print =============== step10
sql select last_row(tbcol) as b from $mt group by tgcol
print ===> $data00
if $data00 != 19 then
if $data00 != 19 then
return -1
endi
if $rows != $tbNum then
if $rows != $tbNum then
return -1
endi
@ -110,28 +110,28 @@ print =============== step11
$cc = 1 * 3600000
$ms = 1601481600000 + $cc
sql insert into $tb values( $ms , 10)
sql insert into $tb values( $ms , 10)
$cc = 3 * 3600000
$ms = 1601481600000 + $cc
sql insert into $tb values( $ms , null)
sql insert into $tb values( $ms , null)
$cc = 5 * 3600000
$ms = 1601481600000 + $cc
sql insert into $tb values( $ms , -1)
sql insert into $tb values( $ms , -1)
$cc = 7 * 3600000
$ms = 1601481600000 + $cc
sql insert into $tb values( $ms , null)
sql insert into $tb values( $ms , null)
## for super table
$cc = 6 * 3600000
$ms = 1601481600000 + $cc
sql select last_row(*) from $mt where ts < $ms
if $data01 != -1 then
if $data01 != -1 then
return -1
endi
@ -139,12 +139,12 @@ $cc = 8 * 3600000
$ms = 1601481600000 + $cc
sql select last_row(*) from $mt where ts < $ms
if $data01 != NULL then
if $data01 != NULL then
return -1
endi
sql select last_row(*) from $mt
if $data01 != NULL then
if $data01 != NULL then
return -1
endi
@ -152,7 +152,7 @@ $cc = 4 * 3600000
$ms = 1601481600000 + $cc
sql select last_row(*) from $mt where ts < $ms
if $data01 != NULL then
if $data01 != NULL then
return -1
endi
@ -162,7 +162,7 @@ $cc = 4 * 3600000
$ms2 = 1601481600000 + $cc
sql select last_row(*) from $mt where ts > $ms1 and ts <= $ms2
if $data01 != NULL then
if $data01 != NULL then
return -1
endi
@ -171,7 +171,7 @@ $cc = 6 * 3600000
$ms = 1601481600000 + $cc
sql select last_row(*) from $tb where ts <= $ms
if $data01 != -1 then
if $data01 != -1 then
return -1
endi
@ -179,12 +179,12 @@ $cc = 8 * 3600000
$ms = 1601481600000 + $cc
sql select last_row(*) from $tb where ts <= $ms
if $data01 != NULL then
if $data01 != NULL then
return -1
endi
sql select last_row(*) from $tb
if $data01 != NULL then
if $data01 != NULL then
return -1
endi
@ -192,7 +192,7 @@ $cc = 4 * 3600000
$ms = 1601481600000 + $cc
sql select last_row(*) from $tb where ts <= $ms
if $data01 != NULL then
if $data01 != NULL then
return -1
endi
@ -202,14 +202,14 @@ $cc = 4 * 3600000
$ms2 = 1601481600000 + $cc
sql select last_row(*) from $tb where ts > $ms1 and ts <= $ms2
if $data01 != NULL then
if $data01 != NULL then
return -1
endi
print =============== clear
sql drop database $db
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi

View File

@ -25,17 +25,17 @@ $i = 0
while $i < $tbNum
$tb = $tbPrefix . $i
sql create table $tb using $mt tags( $i )
$x = 2
$ms = 1000
while $x < $rowNum
$ms = $ms + 1000
sql insert into $tb values ($ms , $x )
sql insert into $tb values ($ms , $x )
$x = $x + 1
endw
endw
$i = $i + 1
endw
endw
print =============== step2
$i = 1
@ -63,7 +63,7 @@ endi
print =============== step5
sql select leastsquares(tbcol, 1, 1) as b from $tb interval(1m)
print ===> $data00
print ===> $data00
if $data00 != @{slop:1.000000, intercept:1.000000}@ then
return -1
endi
@ -81,15 +81,15 @@ if $data00 != @{slop:1.000000, intercept:1.000000}@ then
return -1
endi
print ===> $rows
if $rows != 1 then
if $rows != 1 then
return -1
endi
print =============== clear
sql drop database $db
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -25,18 +25,18 @@ $i = 0
while $i < $tbNum
$tb = $tbPrefix . $i
sql create table $tb using $mt tags( $i )
$x = 0
while $x < $rowNum
$cc = $x * 60000
$ms = 1601481600000 + $cc
sql insert into $tb values ($ms , $x )
sql insert into $tb values ($ms , $x )
$x = $x + 1
endw
endw
$i = $i + 1
endw
endw
print =============== step2
$i = 1
@ -44,7 +44,7 @@ $tb = $tbPrefix . $i
sql select max(tbcol) from $tb
print ===> $data00
if $data00 != 19 then
if $data00 != 19 then
return -1
endi
@ -54,27 +54,27 @@ $ms = 1601481600000 + $cc
sql select max(tbcol) from $tb where ts <= $ms
print ===> $data00
if $data00 != 4 then
if $data00 != 4 then
return -1
endi
print =============== step4
sql select max(tbcol) as b from $tb
print ===> $data00
if $data00 != 19 then
if $data00 != 19 then
return -1
endi
print =============== step5
sql select max(tbcol) as b from $tb interval(1m)
print ===> $data10
if $data10 != 1 then
if $data10 != 1 then
return -1
endi
sql select max(tbcol) as b from $tb interval(1d)
print ===> $data00
if $data00 != 19 then
if $data00 != 19 then
return -1
endi
@ -84,17 +84,17 @@ $ms = 1601481600000 + $cc
sql select max(tbcol) as b from $tb where ts <= $ms interval(1m)
print ===> $data10
if $data10 != 1 then
if $data10 != 1 then
return -1
endi
if $rows != 5 then
if $rows != 5 then
return -1
endi
print =============== step7
sql select max(tbcol) from $mt
print ===> $data00
if $data00 != 19 then
if $data00 != 19 then
return -1
endi
@ -104,13 +104,13 @@ $ms = 1601481600000 + $cc
sql select max(tbcol) as c from $mt where ts <= $ms
print ===> $data00
if $data00 != 4 then
if $data00 != 4 then
return -1
endi
sql select max(tbcol) as c from $mt where tgcol < 5
print ===> $data00
if $data00 != 19 then
if $data00 != 19 then
return -1
endi
@ -119,31 +119,31 @@ $ms = 1601481600000 + $cc
sql select max(tbcol) as c from $mt where tgcol < 5 and ts <= $ms
print ===> $data00
if $data00 != 4 then
if $data00 != 4 then
return -1
endi
print =============== step9
sql select max(tbcol) as b from $mt interval(1m)
print ===> $data10
if $data10 != 1 then
if $data10 != 1 then
return -1
endi
sql select max(tbcol) as b from $mt interval(1d)
print ===> $data00
if $data00 != 19 then
if $data00 != 19 then
return -1
endi
print =============== step10
sql select max(tbcol) as b from $mt group by tgcol
print ===> $data00
if $data00 != 19 then
if $data00 != 19 then
return -1
endi
if $rows != $tbNum then
if $rows != $tbNum then
return -1
endi
@ -153,19 +153,19 @@ $ms = 1601481600000 + $cc
sql select max(tbcol) as b from $mt where ts <= $ms partition by tgcol interval(1m)
print ===> $data10
if $data10 != 1 then
if $data10 != 1 then
return -1
endi
print ===> $rows
if $rows != 50 then
if $rows != 50 then
return -1
endi
print =============== clear
sql drop database $db
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -25,18 +25,18 @@ $i = 0
while $i < $tbNum
$tb = $tbPrefix . $i
sql create table $tb using $mt tags( $i )
$x = 0
while $x < $rowNum
$cc = $x * 60000
$ms = 1601481600000 + $cc
sql insert into $tb values ($ms , $x )
sql insert into $tb values ($ms , $x )
$x = $x + 1
endw
endw
$i = $i + 1
endw
endw
print =============== step2
$i = 1
@ -44,7 +44,7 @@ $tb = $tbPrefix . $i
sql select min(tbcol) from $tb
print ===> $data00
if $data00 != 0 then
if $data00 != 0 then
return -1
endi
@ -54,27 +54,27 @@ $ms = 1601481600000 + $cc
sql select min(tbcol) from $tb where ts < $ms
print ===> $data00
if $data00 != 0 then
if $data00 != 0 then
return -1
endi
print =============== step4
sql select min(tbcol) as b from $tb
print ===> $data00
if $data00 != 0 then
if $data00 != 0 then
return -1
endi
print =============== step5
sql select min(tbcol) as b from $tb interval(1m)
print ===> $data10
if $data10 != 1 then
if $data10 != 1 then
return -1
endi
sql select min(tbcol) as b from $tb interval(1d)
print ===> $data00
if $data00 != 0 then
if $data00 != 0 then
return -1
endi
@ -85,17 +85,17 @@ $ms = 1601481600000 + $cc
sql select min(tbcol) as b from $tb where ts <= $ms interval(1m)
print select min(tbcol) as b from $tb where ts <= $ms interval(1m)
print ===> $data10
if $data10 != 1 then
if $data10 != 1 then
return -1
endi
if $rows != 5 then
if $rows != 5 then
return -1
endi
print =============== step7
sql select min(tbcol) from $mt
print ===> $data00
if $data00 != 0 then
if $data00 != 0 then
return -1
endi
@ -104,13 +104,13 @@ $cc = 4 * 60000
$ms = 1601481600000 + $cc
sql select min(tbcol) as c from $mt where ts < $ms
print ===> $data00
if $data00 != 0 then
if $data00 != 0 then
return -1
endi
sql select min(tbcol) as c from $mt where tgcol < 5
print ===> $data00
if $data00 != 0 then
if $data00 != 0 then
return -1
endi
@ -118,31 +118,31 @@ $cc = 4 * 60000
$ms = 1601481600000 + $cc
sql select min(tbcol) as c from $mt where tgcol < 5 and ts <= $ms
print ===> $data00
if $data00 != 0 then
if $data00 != 0 then
return -1
endi
print =============== step9
sql select min(tbcol) as b from $mt interval(1m)
print ===> $data10
if $data10 != 1 then
if $data10 != 1 then
return -1
endi
sql select min(tbcol) as b from $mt interval(1d)
print ===> $data00
if $data00 != 0 then
if $data00 != 0 then
return -1
endi
print =============== step10
sql select min(tbcol) as b from $mt group by tgcol
print ===> $data00
if $data00 != 0 then
if $data00 != 0 then
return -1
endi
if $rows != $tbNum then
if $rows != $tbNum then
return -1
endi
@ -151,19 +151,19 @@ $cc = 4 * 60000
$ms = 1601481600000 + $cc
sql select min(tbcol) as b from $mt where ts <= $ms partition by tgcol interval(1m)
print ===> $data10
if $data10 != 1 then
if $data10 != 1 then
return -1
endi
print ===> $rows
if $rows != 50 then
if $rows != 50 then
return -1
endi
print =============== clear
sql drop database $db
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -25,24 +25,24 @@ $i = 0
while $i < $tbNum
$tb = $tbPrefix . $i
sql create table $tb using $mt tags( $i )
$x = 0
while $x < $rowNum
$cc = $x * 60000
$ms = 1601481600000 + $cc
$v1 = $x
$v1 = $x
$v2 = $x
if $x == 0 then
$v1 = NULL
endi
sql insert into $tb values ($ms , $v1 , $v2 )
sql insert into $tb values ($ms , $v1 , $v2 )
$x = $x + 1
endw
endw
$i = $i + 1
endw
endw
print =============== step2
$i = 1
@ -61,47 +61,47 @@ if $rows != 20 then
endi
print =============== step3
sql select count(tbcol), count(tbcol2), avg(tbcol), avg(tbcol2), sum(tbcol), sum(tbcol2) from $tb
print ===> $data00 $data01 $data02 $data03 $data04 $data05
if $data00 != 19 then
sql select count(tbcol), count(tbcol2), avg(tbcol), avg(tbcol2), sum(tbcol), sum(tbcol2) from $tb
print ===> $data00 $data01 $data02 $data03 $data04 $data05
if $data00 != 19 then
return -1
endi
if $data01 != 20 then
if $data01 != 20 then
return -1
endi
if $data02 != 10.000000000 then
if $data02 != 10.000000000 then
return -1
endi
if $data03 != 9.500000000 then
if $data03 != 9.500000000 then
return -1
endi
if $data04 != 190 then
if $data04 != 190 then
return -1
endi
if $data05 != 190 then
if $data05 != 190 then
return -1
endi
print =============== step4
sql select * from $tb where tbcol2 = 19
print ===> $data01 $data02
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != 19 then
if $data01 != 19 then
return -1
endi
if $data02 != 19 then
if $data02 != 19 then
return -1
endi
sql select * from $tb where tbcol is NULL
if $rows != 1 then
sql select * from $tb where tbcol is NULL
if $rows != 1 then
return -1
endi
sql select * from $tb where tbcol = NULL
if $rows != 0 then
sql select * from $tb where tbcol = NULL
if $rows != 0 then
return -1
endi
@ -113,29 +113,29 @@ sql create table tt using $mt tags( NULL )
#step52:
sql select * from $mt where tgcol is NULL
if $rows != 0 then
if $rows != 0 then
return -1
endi
print =============== step6
sql select count(tbcol), count(tbcol2), avg(tbcol), avg(tbcol2), sum(tbcol), sum(tbcol2) from $mt
print ===> $data00 $data01 $data02 $data03 $data04 $data05
if $data00 != 190 then
sql select count(tbcol), count(tbcol2), avg(tbcol), avg(tbcol2), sum(tbcol), sum(tbcol2) from $mt
print ===> $data00 $data01 $data02 $data03 $data04 $data05
if $data00 != 190 then
return -1
endi
if $data01 != 200 then
if $data01 != 200 then
return -1
endi
if $data02 != 10.000000000 then
if $data02 != 10.000000000 then
return -1
endi
if $data03 != 9.500000000 then
if $data03 != 9.500000000 then
return -1
endi
if $data04 != 1900 then
if $data04 != 1900 then
return -1
endi
if $data05 != 1900 then
if $data05 != 1900 then
return -1
endi
@ -158,15 +158,15 @@ sql insert into t7 values(now, NULL)
#sql insert into t8 values(now, NULL)
#sql select * from t1
#if $rows != 1 then
#if $rows != 1 then
# return -1
#endi
#if $data01 != NULL then
#if $data01 != NULL then
# return -1
#endi
sql select * from t2
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != NULL then
@ -174,7 +174,7 @@ if $data01 != NULL then
endi
sql select * from t3
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != NULL then
@ -182,7 +182,7 @@ if $data01 != NULL then
endi
sql select * from t4
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != NULL then
@ -190,7 +190,7 @@ if $data01 != NULL then
endi
sql select * from t5
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != NULL then
@ -198,7 +198,7 @@ if $data01 != NULL then
endi
sql select * from t6
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != NULL then
@ -206,7 +206,7 @@ if $data01 != NULL then
endi
sql select * from t7
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != NULL then
@ -214,7 +214,7 @@ if $data01 != NULL then
endi
#sql select * from t8
#if $rows != 1 then
#if $rows != 1 then
# return -1
#endi
#if $data01 != NULL then
@ -224,8 +224,8 @@ endi
print =============== clear
sql drop database $db
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -25,18 +25,18 @@ $i = 0
while $i < $tbNum
$tb = $tbPrefix . $i
sql create table $tb using $mt tags( $i )
$x = 0
while $x < $rowNum
$cc = $x * 60000
$ms = 1601481600000 + $cc
sql insert into $tb values ($ms , $x )
sql insert into $tb values ($ms , $x )
$x = $x + 1
endw
endw
$i = $i + 1
endw
endw
print =============== step2
$i = 1
@ -44,19 +44,19 @@ $tb = $tbPrefix . $i
sql select percentile(tbcol, 10) from $tb
print ===> $data00
if $data00 != 1.900000000 then
if $data00 != 1.900000000 then
return -1
endi
sql select percentile(tbcol, 20) from $tb
print ===> $data00
if $data00 != 3.800000000 then
if $data00 != 3.800000000 then
return -1
endi
sql select percentile(tbcol, 100) from $tb
print ===> $data00
if $data00 != 19.000000000 then
if $data00 != 19.000000000 then
return -1
endi
@ -70,7 +70,7 @@ $ms = 1601481600000 + $cc
sql select percentile(tbcol, 1) from $tb where ts > $ms
print ===> $data00
if $data00 != 5.140000000 then
if $data00 != 5.140000000 then
return -1
endi
@ -79,7 +79,7 @@ $ms = 1601481600000 + $cc
sql select percentile(tbcol, 5) from $tb where ts > $ms
print ===> $data00
if $data00 != 5.700000000 then
if $data00 != 5.700000000 then
return -1
endi
@ -88,7 +88,7 @@ $ms = 1601481600000 + $cc
sql select percentile(tbcol, 0) from $tb where ts > $ms
print ===> $data00
if $data00 != 5.000000000 then
if $data00 != 5.000000000 then
return -1
endi
@ -98,7 +98,7 @@ $ms = 1601481600000 + $cc
sql select percentile(tbcol, 1) as c from $tb where ts > $ms
print ===> $data00
if $data00 != 5.140000000 then
if $data00 != 5.140000000 then
return -1
endi
@ -107,7 +107,7 @@ $ms = 1601481600000 + $cc
sql select percentile(tbcol, 5) as c from $tb where ts > $ms
print ===> $data00
if $data00 != 5.700000000 then
if $data00 != 5.700000000 then
return -1
endi
@ -116,15 +116,15 @@ $ms = 1601481600000 + $cc
sql select percentile(tbcol, 0) as c from $tb where ts > $ms
print ===> $data00
if $data00 != 5.000000000 then
if $data00 != 5.000000000 then
return -1
endi
print =============== clear
sql drop database $db
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -25,18 +25,18 @@ $i = 0
while $i < $tbNum
$tb = $tbPrefix . $i
sql create table $tb using $mt tags( $i )
$x = 0
while $x < $rowNum
$cc = $x * 60000
$ms = 1601481600000 + $cc
sql insert into $tb values ($ms , $x )
sql insert into $tb values ($ms , $x )
$x = $x + 1
endw
endw
$i = $i + 1
endw
endw
print =============== step2
$i = 1
@ -44,7 +44,7 @@ $tb = $tbPrefix . $i
sql select stddev(tbcol) from $tb
print ===> $data00
if $data00 != 5.766281297 then
if $data00 != 5.766281297 then
return -1
endi
@ -54,27 +54,27 @@ $ms = 1601481600000 + $cc
sql select stddev(tbcol) from $tb where ts <= $ms
print ===> $data00
if $data00 != 1.414213562 then
if $data00 != 1.414213562 then
return -1
endi
print =============== step4
sql select stddev(tbcol) as b from $tb
print ===> $data00
if $data00 != 5.766281297 then
if $data00 != 5.766281297 then
return -1
endi
print =============== step5
sql select stddev(tbcol) as b from $tb interval(1m)
print ===> $data00
if $data00 != 0.000000000 then
print ===> $data00
if $data00 != 0.000000000 then
return -1
endi
sql select stddev(tbcol) as b from $tb interval(1d)
print ===> $data00
if $data00 != 5.766281297 then
if $data00 != 5.766281297 then
return -1
endi
@ -84,18 +84,18 @@ $ms = 1601481600000 + $cc
sql select stddev(tbcol) as b from $tb where ts <= $ms interval(1m)
print ===> $data00
if $data00 != 0.000000000 then
if $data00 != 0.000000000 then
return -1
endi
if $rows != 5 then
if $rows != 5 then
return -1
endi
print =============== clear
sql drop database $db
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -25,18 +25,18 @@ $i = 0
while $i < $tbNum
$tb = $tbPrefix . $i
sql create table $tb using $mt tags( $i )
$x = 0
while $x < $rowNum
$cc = $x * 60000
$ms = 1601481600000 + $cc
sql insert into $tb values ($ms , $x )
sql insert into $tb values ($ms , $x )
$x = $x + 1
endw
endw
$i = $i + 1
endw
endw
print =============== step2
$i = 1
@ -44,7 +44,7 @@ $tb = $tbPrefix . $i
sql select sum(tbcol) from $tb
print ===> $data00
if $data00 != 190 then
if $data00 != 190 then
return -1
endi
@ -54,27 +54,27 @@ $ms = 1601481600000 + $cc
sql select sum(tbcol) from $tb where ts <= $ms
print ===> $data00
if $data00 != 10 then
if $data00 != 10 then
return -1
endi
print =============== step4
sql select sum(tbcol) as b from $tb
print ===> $data00
if $data00 != 190 then
if $data00 != 190 then
return -1
endi
print =============== step5
sql select sum(tbcol) as b from $tb interval(1m)
print ===> $data10
if $data10 != 1 then
if $data10 != 1 then
return -1
endi
sql select sum(tbcol) as b from $tb interval(1d)
print ===> $data00
if $data00 != 190 then
if $data00 != 190 then
return -1
endi
@ -84,17 +84,17 @@ $ms = 1601481600000 + $cc
sql select sum(tbcol) as b from $tb where ts <= $ms interval(1m)
print ===> $data10
if $data10 != 1 then
if $data10 != 1 then
return -1
endi
if $rows != 5 then
if $rows != 5 then
return -1
endi
print =============== step7
sql select sum(tbcol) from $mt
print ===> $data00
if $data00 != 1900 then
if $data00 != 1900 then
return -1
endi
@ -104,13 +104,13 @@ $ms = 1601481600000 + $cc
sql select sum(tbcol) as c from $mt where ts <= $ms
print ===> $data00
if $data00 != 100 then
if $data00 != 100 then
return -1
endi
sql select sum(tbcol) as c from $mt where tgcol < 5
print ===> $data00
if $data00 != 950 then
if $data00 != 950 then
return -1
endi
@ -119,31 +119,31 @@ $ms = 1601481600000 + $cc
sql select sum(tbcol) as c from $mt where tgcol < 5 and ts <= $ms
print ===> $data00
if $data00 != 50 then
if $data00 != 50 then
return -1
endi
print =============== step9
sql select sum(tbcol) as b from $mt interval(1m)
print ===> $data10
if $data10 < 5 then
if $data10 < 5 then
return -1
endi
sql select sum(tbcol) as b from $mt interval(1d)
print ===> $data00
if $data00 != 1900 then
if $data00 != 1900 then
return -1
endi
print =============== step10
sql select sum(tbcol) as b from $mt group by tgcol
print ===> $data00
if $data00 != 190 then
if $data00 != 190 then
return -1
endi
if $rows != $tbNum then
if $rows != $tbNum then
return -1
endi
@ -153,19 +153,19 @@ $ms = 1601481600000 + $cc
sql select sum(tbcol) as b from $mt where ts <= $ms partition by tgcol interval(1d)
print select sum(tbcol) as b from $mt where ts <= $ms partition by tgcol interval(1d)
print ===> $data00 $rows
if $data00 != 10 then
print ===> $data00 $rows
if $data00 != 10 then
return -1
endi
if $rows != 10 then
if $rows != 10 then
return -1
endi
print =============== clear
sql drop database $db
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -25,18 +25,18 @@ $i = 0
while $i < $tbNum
$tb = $tbPrefix . $i
sql create table $tb using $mt tags( $i )
$x = 0
while $x < $rowNum
$cc = $x * 60000
$ms = 1601481600000 + $cc
sql insert into $tb values ($ms , $x )
sql insert into $tb values ($ms , $x )
$x = $x + 1
endw
endw
$i = $i + 1
endw
endw
print =============== step2
$i = 1
@ -44,7 +44,7 @@ $tb = $tbPrefix . $i
sql select top(tbcol, 1) from $tb
print ===> $data00
if $data00 != 19 then
if $data00 != 19 then
return -1
endi
@ -54,24 +54,24 @@ $ms = 1601481600000 + $cc
sql select top(tbcol, 1) from $tb where ts <= $ms
print ===> $data00
if $data00 != 4 then
if $data00 != 4 then
return -1
endi
print =============== step4
sql select top(tbcol, 1) as b from $tb
print ===> $data00
if $data00 != 19 then
if $data00 != 19 then
return -1
endi
print =============== step5
sql select top(tbcol, 2) as b from $tb
sql select top(tbcol, 2) as b from $tb
print ===> $data00 $data10
if $data00 != 18 then
if $data00 != 18 then
return -1
endi
if $data10 != 19 then
if $data10 != 19 then
return -1
endi
@ -81,10 +81,10 @@ $ms = 1601481600000 + $cc
sql select top(tbcol, 2) as b from $tb where ts <= $ms
print ===> $data00 $data10
if $data00 != 3 then
if $data00 != 3 then
return -1
endi
if $data10 != 4 then
if $data10 != 4 then
return -1
endi
@ -95,8 +95,8 @@ step6:
print =============== clear
sql drop database $db
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -8,9 +8,9 @@ print =============== create database
sql create database `database`
sql create database `DataBase`
sql select * from information_schema.ins_databases
print rows: $rows
print rows: $rows
print $data00 $data01
print $data10 $data11
print $data10 $data11
print $data20 $data21
if $rows != 4 then
return -1
@ -27,12 +27,12 @@ endi
$dbCnt = 0
while $dbCnt < 2
if $dbCnt == 0 then
if $dbCnt == 0 then
sql use `database`
else
else
sql use `DataBase`
endi
$dbCnt = $dbCnt + 1
print =============== create super table, include all type
@ -41,13 +41,13 @@ while $dbCnt < 2
sql create table `Stable` (`timestamp` timestamp, `int` int, `Binary` binary(32), `Nchar` nchar(32)) tags (`float` float, `binary` binary(16), `nchar` nchar(16))
sql show stables
print rows: $rows
print rows: $rows
print $data00 $data01
print $data10 $data11
if $rows != 2 then
if $rows != 2 then
return -1
endi
if $data00 != Stable then
if $data00 != Stable then
if $data00 != stable then
return -1
endi
@ -57,24 +57,24 @@ while $dbCnt < 2
return -1
endi
endi
print =============== create child table
sql create table `table` using `stable` tags(100.0, 'stable+table', 'stable+table')
sql create table `Table` using `stable` tags(100.1, 'stable+Table', 'stable+Table')
sql create table `TAble` using `Stable` tags(100.0, 'Stable+TAble', 'Stable+TAble')
sql create table `TABle` using `Stable` tags(100.1, 'Stable+TABle', 'Stable+TABle')
sql create table `TABle` using `Stable` tags(100.1, 'Stable+TABle', 'Stable+TABle')
sql show tables
print rows: $rows
print rows: $rows
print $data00 $data01
print $data10 $data11
print $data20 $data21
print $data30 $data31
if $rows != 4 then
if $rows != 4 then
return -1
endi
print =============== insert data
sql insert into `table` values(now+0s, 10, 'table', 'table')(now+1s, 11, 'table', 'table')
sql insert into `Table` values(now+0s, 20, 'Table', 'Table')(now+1s, 21, 'Table', 'Table')
@ -86,15 +86,15 @@ while $dbCnt < 2
print rows: $rows
print $data00 $data01 $data02 $data03
print $data10 $data11 $data12 $data13
if $rows != 2 then
if $rows != 2 then
return -1
endi
if $data01 != 10 then
endi
if $data01 != 10 then
return -1
endi
if $data02 != table then
endi
if $data02 != table then
return -1
endi
endi
if $data03 != table then
print expect table, actual $data03
return -1
@ -103,57 +103,57 @@ while $dbCnt < 2
print =================> 1
sql select * from `Table`
print rows: $rows
print rows: $rows
print $data00 $data01 $data02 $data03
print $data10 $data11 $data12 $data13
if $rows != 2 then
if $rows != 2 then
return -1
endi
if $data01 != 20 then
endi
if $data01 != 20 then
return -1
endi
if $data02 != Table then
endi
if $data02 != Table then
return -1
endi
if $data03 != Table then
endi
if $data03 != Table then
return -1
endi
print ================>2
sql select * from `TAble`
print rows: $rows
print rows: $rows
print $data00 $data01 $data02 $data03
print $data10 $data11 $data12 $data13
if $rows != 2 then
return -1
endi
if $data01 != 30 then
return -1
endi
if $data02 != TAble then
return -1
endi
if $data03 != TAble then
if $rows != 2 then
return -1
endi
if $data01 != 30 then
return -1
endi
if $data02 != TAble then
return -1
endi
if $data03 != TAble then
return -1
endi
sql select * from `TABle`
print rows: $rows
print rows: $rows
print $data00 $data01 $data02 $data03
print $data10 $data11 $data12 $data13
if $rows != 2 then
return -1
endi
if $data01 != 40 then
return -1
endi
if $data02 != TABle then
return -1
endi
if $data03 != TABle then
if $rows != 2 then
return -1
endi
if $data01 != 40 then
return -1
endi
if $data02 != TABle then
return -1
endi
if $data03 != TABle then
return -1
endi
#print =============== query data from st, but not support select * from super table, waiting fix
#sql select count(*) from `stable`
#print rows: $rows
@ -174,7 +174,7 @@ while $dbCnt < 2
# return -1
#endi
#sql select * from `stable`
#if $rows != 4 then
#if $rows != 4 then
# return -1
#endi
@ -185,9 +185,9 @@ system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s start
sql select * from information_schema.ins_databases
print rows: $rows
print rows: $rows
print $data00 $data01
print $data10 $data11
print $data10 $data11
print $data20 $data21
if $rows != 4 then
return -1
@ -204,22 +204,22 @@ endi
$dbCnt = 0
while $dbCnt < 2
if $dbCnt == 0 then
if $dbCnt == 0 then
sql use `database`
else
else
sql use `DataBase`
endi
$dbCnt = $dbCnt + 1
sql show stables
print rows: $rows
print rows: $rows
print $data00 $data01
print $data10 $data11
if $rows != 2 then
if $rows != 2 then
return -1
endi
if $data00 != Stable then
if $data00 != Stable then
if $data00 != stable then
return -1
endi
@ -229,86 +229,86 @@ while $dbCnt < 2
return -1
endi
endi
sql show tables
print rows: $rows
print rows: $rows
print $data00 $data01
print $data10 $data11
print $data20 $data21
print $data30 $data31
if $rows != 4 then
if $rows != 4 then
return -1
endi
print =============== query data
sql select * from `table`
print rows: $rows
print rows: $rows
print $data00 $data01 $data02 $data03
print $data10 $data11 $data12 $data13
if $rows != 2 then
return -1
endi
if $data01 != 10 then
return -1
endi
if $data02 != table then
return -1
endi
if $data03 != table then
if $rows != 2 then
return -1
endi
if $data01 != 10 then
return -1
endi
if $data02 != table then
return -1
endi
if $data03 != table then
return -1
endi
sql select * from `Table`
print rows: $rows
print rows: $rows
print $data00 $data01 $data02 $data03
print $data10 $data11 $data12 $data13
if $rows != 2 then
return -1
endi
if $data01 != 20 then
return -1
endi
if $data02 != Table then
return -1
endi
if $data03 != Table then
if $rows != 2 then
return -1
endi
if $data01 != 20 then
return -1
endi
if $data02 != Table then
return -1
endi
if $data03 != Table then
return -1
endi
sql select * from `TAble`
print rows: $rows
print rows: $rows
print $data00 $data01 $data02 $data03
print $data10 $data11 $data12 $data13
if $rows != 2 then
return -1
endi
if $data01 != 30 then
return -1
endi
if $data02 != TAble then
return -1
endi
if $data03 != TAble then
if $rows != 2 then
return -1
endi
if $data01 != 30 then
return -1
endi
if $data02 != TAble then
return -1
endi
if $data03 != TAble then
return -1
endi
sql select * from `TABle`
print rows: $rows
print rows: $rows
print $data00 $data01 $data02 $data03
print $data10 $data11 $data12 $data13
if $rows != 2 then
return -1
endi
if $data01 != 40 then
return -1
endi
if $data02 != TABle then
return -1
endi
if $data03 != TABle then
if $rows != 2 then
return -1
endi
if $data01 != 40 then
return -1
endi
if $data02 != TABle then
return -1
endi
if $data03 != TABle then
return -1
endi
#print =============== query data from st, but not support select * from super table, waiting fix
#sql select count(*) from `stable`
#print rows: $rows
@ -329,7 +329,7 @@ while $dbCnt < 2
# return -1
#endi
#sql select * from `stable`
#if $rows != 4 then
#if $rows != 4 then
# return -1
#endi

View File

@ -20,26 +20,26 @@ $x = 0
while $x < 10
$cc = $x * 60000
$ms = 1601481600000 + $cc
sql insert into $tb values ($ms , $x )
sql insert into $tb values ($ms , $x )
$x = $x + 1
endw
endw
print =============== step 2
$x = 0
while $x < 5
$cc = $x * 60000
$ms = 1551481600000 + $cc
sql insert into $tb values ($ms , $x )
sql insert into $tb values ($ms , $x )
$x = $x + 1
endw
endw
sql select * from $tb
print $rows points data are retrieved
if $rows != 15 then
if $rows != 15 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -18,7 +18,7 @@ print =============== create super table, include column type for count/sum/min/
sql create table if not exists stb (ts timestamp, c1 int, c2 float, c3 double) tags (t1 int unsigned)
sql show stables
if $rows != 1 then
if $rows != 1 then
return -1
endi
@ -28,7 +28,7 @@ sql create table ct2 using stb tags(2000)
sql create table ct3 using stb tags(3000)
sql show tables
if $rows != 3 then
if $rows != 3 then
return -1
endi
@ -46,7 +46,7 @@ sql insert into ct3 values('2021-01-01 00:00:00.000', 10, 2.0, 3.0)
#===================================================================
print =============== query data from child table
sql select * from ct1
print rows: $rows
print rows: $rows
print $data00 $data01 $data02 $data03
print $data10 $data11 $data12 $data13
print $data20 $data21 $data22 $data23
@ -58,111 +58,111 @@ if $data01 != 10 then
print expect 10, actual: $data01
return -1
endi
if $data02 != 2.00000 then
if $data02 != 2.00000 then
return -1
endi
if $data03 != 3.000000000 then
if $data03 != 3.000000000 then
return -1
endi
print =============== select count(*) from child table
sql select count(*) from ct1
print rows: $rows
print rows: $rows
print $data00 $data01 $data02 $data03
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != 4 then
if $data00 != 4 then
return -1
endi
print =============== select count(column) from child table
sql select count(ts), count(c1), count(c2), count(c3) from ct1
print rows: $rows
print rows: $rows
print $data00 $data01 $data02 $data03
if $data00 != 4 then
if $data00 != 4 then
return -1
endi
if $data01 != 4 then
if $data01 != 4 then
return -1
endi
if $data02 != 4 then
if $data02 != 4 then
return -1
endi
if $data03 != 4 then
if $data03 != 4 then
return -1
endi
#print =============== select first(*)/first(column) from child table
sql select first(*) from ct1
print ====> select first(*) from ct1
print rows: $rows
print rows: $rows
print $data00 $data01 $data02 $data03
sql select first(ts), first(c1), first(c2), first(c3) from ct1
print ====> select first(ts), first(c1), first(c2), first(c3) from ct1
print rows: $rows
print rows: $rows
print $data00 $data01 $data02 $data03
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != 10 then
if $data01 != 10 then
return -1
endi
if $data02 != 2.00000 then
if $data02 != 2.00000 then
return -1
endi
if $data03 != 3.000000000 then
if $data03 != 3.000000000 then
return -1
endi
print =============== select min(column) from child table
sql select min(c1), min(c2), min(c3) from ct1
print rows: $rows
print rows: $rows
print $data00 $data01 $data02 $data03
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != -13 then
if $data00 != -13 then
return -1
endi
if $data01 != -2.30000 then
print expect -2.30000, actual: $data01
return -1
endi
if $data02 != -3.300000000 then
if $data02 != -3.300000000 then
return -1
endi
print =============== select max(column) from child table
sql select max(c1), max(c2), max(c3) from ct1
print $data00 $data01 $data02 $data03
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != 11 then
if $data00 != 11 then
return -1
endi
if $data01 != 2.10000 then
if $data01 != 2.10000 then
return -1
endi
if $data02 != 3.100000000 then
if $data02 != 3.100000000 then
return -1
endi
print =============== select sum(column) from child table
sql select sum(c1), sum(c2), sum(c3) from ct1
print $data00 $data01 $data02 $data03
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != -4 then
if $data00 != -4 then
return -1
endi
if $data01 != -0.400000095 then
if $data01 != -0.400000095 then
return -1
endi
if $data02 != -0.400000000 then
if $data02 != -0.400000000 then
return -1
endi
@ -173,34 +173,34 @@ print $data00 $data01 $data02
print $data10 $data11 $data12
print $data20 $data21 $data22
print $data30 $data31 $data32
if $rows != 4 then
if $rows != 4 then
return -1
endi
if $data00 != 10 then
if $data00 != 10 then
return -1
endi
if $data01 != 2.00000 then
if $data01 != 2.00000 then
return -1
endi
if $data02 != 3.000000000 then
if $data02 != 3.000000000 then
return -1
endi
if $data10 != 11 then
if $data10 != 11 then
return -1
endi
if $data11 != 2.10000 then
if $data11 != 2.10000 then
return -1
endi
if $data12 != 3.100000000 then
if $data12 != 3.100000000 then
return -1
endi
if $data30 != -13 then
if $data30 != -13 then
return -1
endi
if $data31 != -2.30000 then
if $data31 != -2.30000 then
return -1
endi
if $data32 != -3.300000000 then
if $data32 != -3.300000000 then
return -1
endi
#===================================================================
@ -208,17 +208,17 @@ endi
#print =============== query data from stb
sql select * from stb
print $rows
if $rows != 9 then
if $rows != 9 then
return -1
endi
#print =============== select count(*) from supter table
sql select count(*) from stb
print $data00 $data01 $data02
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != 9 then
if $data00 != 9 then
return -1
endi
@ -234,19 +234,19 @@ print $data50 $data51 $data52 $data53
print $data60 $data61 $data62 $data63
print $data70 $data71 $data72 $data73
print $data80 $data81 $data82 $data83
if $rows != 9 then
if $rows != 9 then
return -1
endi
# The order of data from different sub tables in the super table is random,
# The order of data from different sub tables in the super table is random,
# so this detection may fail randomly
if $data01 != 10 then
if $data01 != 10 then
return -1
endi
if $data02 != 2.00000 then
if $data02 != 2.00000 then
return -1
endi
if $data03 != 3.000000000 then
if $data03 != 3.000000000 then
return -1
endi
@ -254,16 +254,16 @@ endi
sql select count(ts), count(c1), count(c2), count(c3) from stb
print rows: $rows
print $data00 $data01 $data02 $data03
if $data00 != 9 then
if $data00 != 9 then
return -1
endi
if $data01 != 9 then
if $data01 != 9 then
return -1
endi
if $data02 != 9 then
if $data02 != 9 then
return -1
endi
if $data03 != 9 then
if $data03 != 9 then
return -1
endi
@ -274,7 +274,7 @@ system sh/exec.sh -n dnode1 -s start
print =============== query data from child table
sql select * from ct1
print rows: $rows
print rows: $rows
print $data00 $data01 $data02 $data03
print $data10 $data11 $data12 $data13
print $data20 $data21 $data22 $data23
@ -282,113 +282,113 @@ print $data30 $data31 $data32 $data33
if $rows != 4 then
return -1
endi
if $data01 != 10 then
if $data01 != 10 then
return -1
endi
if $data02 != 2.00000 then
if $data02 != 2.00000 then
return -1
endi
if $data03 != 3.000000000 then
if $data03 != 3.000000000 then
return -1
endi
print =============== select count(*) from child table
sql select count(*) from ct1
print rows: $rows
print rows: $rows
print $data00 $data01 $data02 $data03
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != 4 then
if $data00 != 4 then
return -1
endi
print =============== select count(column) from child table
sql select count(ts), count(c1), count(c2), count(c3) from ct1
print rows: $rows
print rows: $rows
print $data00 $data01 $data02 $data03
if $data00 != 4 then
if $data00 != 4 then
return -1
endi
if $data01 != 4 then
if $data01 != 4 then
return -1
endi
if $data02 != 4 then
if $data02 != 4 then
return -1
endi
if $data03 != 4 then
if $data03 != 4 then
return -1
endi
#print =============== select first(*)/first(column) from child table
sql select first(*) from ct1
print ====> select first(*) from ct1
print rows: $rows
print rows: $rows
print $data00 $data01 $data02 $data03
sql select first(ts), first(c1), first(c2), first(c3) from ct1
print ====> select first(ts), first(c1), first(c2), first(c3) from ct1
print rows: $rows
print rows: $rows
print $data00 $data01 $data02 $data03
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != 10 then
if $data01 != 10 then
return -1
endi
if $data02 != 2.00000 then
if $data02 != 2.00000 then
return -1
endi
if $data03 != 3.000000000 then
if $data03 != 3.000000000 then
return -1
endi
print =============== select min(column) from child table
sql select min(c1), min(c2), min(c3) from ct1
print rows: $rows
print rows: $rows
print $data00 $data01 $data02 $data03
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != -13 then
if $data00 != -13 then
return -1
endi
if $data01 != -2.30000 then
if $data01 != -2.30000 then
return -1
endi
if $data02 != -3.300000000 then
if $data02 != -3.300000000 then
return -1
endi
print =============== select max(column) from child table
sql select max(c1), max(c2), max(c3) from ct1
print $data00 $data01 $data02 $data03
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != 11 then
if $data00 != 11 then
return -1
endi
if $data01 != 2.10000 then
if $data01 != 2.10000 then
return -1
endi
if $data02 != 3.100000000 then
if $data02 != 3.100000000 then
return -1
endi
print =============== select sum(column) from child table
sql select sum(c1), sum(c2), sum(c3) from ct1
print $data00 $data01 $data02 $data03
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != -4 then
if $data00 != -4 then
return -1
endi
if $data01 != -0.400000095 then
if $data01 != -0.400000095 then
return -1
endi
if $data02 != -0.400000000 then
if $data02 != -0.400000000 then
return -1
endi
@ -399,51 +399,51 @@ print $data00 $data01 $data02
print $data10 $data11 $data12
print $data20 $data21 $data22
print $data30 $data31 $data32
if $rows != 4 then
if $rows != 4 then
return -1
endi
if $data00 != 10 then
if $data00 != 10 then
return -1
endi
if $data01 != 2.00000 then
if $data01 != 2.00000 then
return -1
endi
if $data02 != 3.000000000 then
if $data02 != 3.000000000 then
return -1
endi
if $data10 != 11 then
if $data10 != 11 then
return -1
endi
if $data11 != 2.10000 then
if $data11 != 2.10000 then
return -1
endi
if $data12 != 3.100000000 then
if $data12 != 3.100000000 then
return -1
endi
if $data30 != -13 then
if $data30 != -13 then
return -1
endi
if $data31 != -2.30000 then
if $data31 != -2.30000 then
return -1
endi
if $data32 != -3.300000000 then
if $data32 != -3.300000000 then
return -1
endi
#===================================================================
print =============== query data from stb
sql select * from stb
if $rows != 9 then
if $rows != 9 then
return -1
endi
endi
print =============== select count(*) from supter table
sql select count(*) from stb
print $data00 $data01 $data02
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != 9 then
if $data00 != 9 then
return -1
endi
@ -459,35 +459,35 @@ print $data50 $data51 $data52 $data53
print $data60 $data61 $data62 $data63
print $data70 $data71 $data72 $data73
print $data80 $data81 $data82 $data83
if $rows != 9 then
if $rows != 9 then
return -1
endi
# The order of data from different sub tables in the super table is random,
# The order of data from different sub tables in the super table is random,
# so this detection may fail randomly
if $data01 != 10 then
if $data01 != 10 then
return -1
endi
if $data02 != 2.00000 then
if $data02 != 2.00000 then
return -1
endi
if $data03 != 3.000000000 then
if $data03 != 3.000000000 then
return -1
endi
#print =============== select count(column) from supter table
sql select count(ts), count(c1), count(c2), count(c3) from stb
print $data00 $data01 $data02 $data03
if $data00 != 9 then
if $data00 != 9 then
return -1
endi
if $data01 != 9 then
if $data01 != 9 then
return -1
endi
if $data02 != 9 then
if $data02 != 9 then
return -1
endi
if $data03 != 9 then
if $data03 != 9 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -21,7 +21,7 @@ sql create table stb_2 (ts timestamp, i int) tags (j int)
sql create stable stb_3 (ts timestamp, i int) tags (j int)
sql show stables
if $rows != 4 then
if $rows != 4 then
return -1
endi
@ -30,7 +30,7 @@ sql create table c1 using stb tags(true, -1, -2, -3, -4, -6.0, -7.0, 'child tbl
sql create table c2 using stb tags(false, -1, -2, -3, -4, -6.0, -7.0, 'child tbl 2', 'child tbl 2', '2022-02-25 18:00:00.000', 10, 20, 30, 40)
sql show tables
if $rows != 2 then
if $rows != 2 then
return -1
endi
@ -39,12 +39,12 @@ sql insert into c1 values(now+0s, true, -1, -2, -3, -4, -6.0, -7.0, 'child tbl 1
print =============== query data
sql select * from c1
print rows: $rows
print rows: $rows
print $data00 $data01
print $data10 $data11
print $data10 $data11
print $data20 $data21
print $data30 $data31
if $rows != 4 then
if $rows != 4 then
return -1
endi
@ -53,17 +53,17 @@ if $data01 != 1 then
return -1
endi
if $data02 != -1 then
if $data02 != -1 then
return -1
endi
if $data03 != -2 then
if $data03 != -2 then
return -1
endi
print =============== query data from st, but not support select * from super table, waiting fix
sql select * from stb
if $rows != 4 then
if $rows != 4 then
return -1
endi
@ -73,12 +73,12 @@ system sh/exec.sh -n dnode1 -s start
print =============== query data
sql select * from c1
print rows: $rows
print rows: $rows
print $data00 $data01
print $data10 $data11
print $data10 $data11
print $data20 $data21
print $data30 $data31
if $rows != 4 then
if $rows != 4 then
return -1
endi
@ -86,17 +86,17 @@ if $data01 != 1 then
return -1
endi
if $data02 != -1 then
if $data02 != -1 then
return -1
endi
if $data03 != -2 then
if $data03 != -2 then
return -1
endi
print =============== query data from st, but not support select * from super table, waiting fix
sql select * from stb
if $rows != 4 then
if $rows != 4 then
return -1
endi

View File

@ -11,7 +11,7 @@ print =============== create super table
sql create table if not exists stb (ts timestamp, c1 int unsigned, c2 double, c3 binary(10), c4 nchar(10), c5 double) tags (city binary(20),district binary(20));
sql show stables
if $rows != 1 then
if $rows != 1 then
return -1
endi
@ -20,7 +20,7 @@ sql create table ct1 using stb tags("BeiJing", "ChaoYang")
sql create table ct2 using stb tags("BeiJing", "HaiDian")
sql show tables
if $rows != 2 then
if $rows != 2 then
return -1
endi
@ -47,7 +47,7 @@ print $data20 $data21 $data22 $data23 $data24 $data25
print $data30 $data31 $data32 $data33 $data34 $data35
print $data40 $data41 $data42 $data43 $data44 $data45
if $rows != 5 then
if $rows != 5 then
print rows $rows != 5
return -1
endi
@ -189,7 +189,7 @@ print $data20 $data21 $data22 $data23 $data24 $data25
print $data30 $data31 $data32 $data33 $data34 $data35
print $data40 $data41 $data42 $data43 $data44 $data45
if $rows != 5 then
if $rows != 5 then
print rows $rows != 5
return -1
endi
@ -319,4 +319,4 @@ if $data45 != 30.000000000 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -63,7 +63,7 @@ reboot_and_check:
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s start
print =============== insert duplicated records to memory - loop $reboot_max - $reboot_cnt
print =============== insert duplicated records to memory - loop $reboot_max - $reboot_cnt
sql use db
sql insert into ct1 values ('2022-05-01 18:30:27.001', 0.0);
sql insert into ct4 values ('2022-04-28 18:30:27.002', 0.0);
@ -91,7 +91,7 @@ sql insert into ct4 values ('2018-05-01 18:30:27.023', NULL) ;
sql insert into ct4 values ('2021-03-01 18:30:27.024', NULL) ;
sql insert into ct4 values ('2022-08-01 18:30:27.025', NULL) ;
print =============== select * from ct1 - merge memory and file - loop $reboot_max - $reboot_cnt
print =============== select * from ct1 - merge memory and file - loop $reboot_max - $reboot_cnt
sql select * from ct1;
if $rows != 13 then
print rows = $rows != 13
@ -163,8 +163,8 @@ if $data[12][1] != -99.990000000 then
print $data[12][1] != -99.990000000
return -1
endi
print =============== select * from ct4 - merge memory and file - loop $reboot_max - $reboot_cnt
print =============== select * from ct4 - merge memory and file - loop $reboot_max - $reboot_cnt
sql select * from ct4;
if $rows != 12 then
print rows = $rows != 12

View File

@ -25,16 +25,16 @@ $ts = $ts0
while $i < 10
$tb = tb . $i
sql create table $tb using $stb tags( $i )
$x = 0
while $x < $rowNum
$xs = $x * $delta
$ts = $ts0 + $xs
sql insert into $tb values ( $ts , $x )
sql insert into $tb values ( $ts , $x )
$x = $x + 1
endw
endw
$i = $i + 1
endw
endw
print ====== tables created
print ================== restart server to commit data into disk
@ -46,18 +46,18 @@ sql use $db
sql drop table tb5
$i = 0
while $i < 4
$tb = tb . $i
$x = 0
while $x < $rowNum
$xs = $x * $delta
$ts = $ts0 + $xs
sql insert into $tb values ( $ts , $x )
sql insert into $tb values ( $ts , $x )
$x = $x + 1
endw
endw
$i = $i + 1
endw
endw
print ================== restart server to commit data into disk
system sh/exec.sh -n dnode1 -s stop -x SIGINT
@ -73,4 +73,4 @@ if $rows != 0 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -3,7 +3,7 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/exec.sh -n dnode1 -s start
sql connect
print ======== step1
print ======== step1
sql drop database if exists db1;
sql create database db1 vgroups 3;
sql use db1;

View File

@ -18,7 +18,7 @@ print =============== create super table, include column type for count/sum/min/
sql create table if not exists stb (ts timestamp, c1 int, c2 float, c3 double, c4 bigint) tags (t1 int unsigned)
sql show stables
if $rows != 1 then
if $rows != 1 then
return -1
endi
@ -28,7 +28,7 @@ sql create table ct2 using stb tags(2000)
sql create table ct3 using stb tags(3000)
sql show tables
if $rows != 3 then
if $rows != 3 then
return -1
endi
@ -55,22 +55,22 @@ print ===> rows4: $data40 $data41 $data42 $data43 $data44
if $rows != 12 then
return -1
endi
if $data01 != 10 then
if $data01 != 10 then
return -1
endi
if $data02 != 2.00000 then
if $data02 != 2.00000 then
return -1
endi
if $data03 != 3.000000000 then
if $data03 != 3.000000000 then
return -1
endi
#if $data41 != -14 then
#if $data41 != -14 then
# return -1
#endi
#if $data42 != -2.40000 then
#if $data42 != -2.40000 then
# return -1
#endi
#if $data43 != -3.400000000 then
#if $data43 != -3.400000000 then
# return -1
#endi
@ -79,10 +79,10 @@ sql select count(*) from ct1
print ===> select count(*) from ct1
print ===> rows: $rows
print ===> rows0: $data00 $data01 $data02 $data03 $data04
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != 12 then
if $data00 != 12 then
return -1
endi
@ -91,16 +91,16 @@ sql select count(ts), count(c1), count(c2), count(c3) from ct1
print ===> select count(ts), count(c1), count(c2), count(c3) from ct1
print ===> rows: $rows
print ===> rows0: $data00 $data01 $data02 $data03 $data04
if $data00 != 12 then
if $data00 != 12 then
return -1
endi
if $data01 != 8 then
if $data01 != 8 then
return -1
endi
if $data02 != 8 then
if $data02 != 8 then
return -1
endi
if $data03 != 8 then
if $data03 != 8 then
return -1
endi
@ -113,16 +113,16 @@ sql select min(c1), min(c2), min(c3) from ct1
print ===> select min(c1), min(c2), min(c3) from ct1
print ===> rows: $rows
print ===> rows0: $data00 $data01 $data02 $data03 $data04
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != -2147483647 then
if $data00 != -2147483647 then
return -1
endi
if $data01 != 2.00000 then
if $data01 != 2.00000 then
return -1
endi
if $data02 != 3.000000000 then
if $data02 != 3.000000000 then
return -1
endi
@ -131,16 +131,16 @@ sql select max(c1), max(c2), max(c3) from ct1
print ===> select max(c1), max(c2), max(c3) from ct1
print ===> rows: $rows
print ===> rows0: $data00 $data01 $data02 $data03 $data04
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != 16 then
if $data00 != 16 then
return -1
endi
if $data01 != 2.70000 then
if $data01 != 2.70000 then
return -1
endi
if $data02 != 3.700000000 then
if $data02 != 3.700000000 then
return -1
endi
@ -149,16 +149,16 @@ sql select sum(c1), sum(c2), sum(c3) from ct1
print ===> select sum(c1), sum(c2), sum(c3) from ct1
print ===> rows: $rows
print ===> rows0: $data00 $data01 $data02 $data03 $data04
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != -2147483556 then
if $data00 != -2147483556 then
return -1
endi
if $data01 != 18.799999952 then
if $data01 != 18.799999952 then
return -1
endi
if $data02 != 26.800000000 then
if $data02 != 26.800000000 then
return -1
endi
@ -167,43 +167,43 @@ sql select c1, c2, c3 from ct1
print ===> select c1, c2, c3 from ct1
print ===> rows: $rows
print ===> rows0: $data00 $data01 $data02 $data03 $data04
if $rows != 12 then
if $rows != 12 then
return -1
endi
if $data00 != 10 then
if $data00 != 10 then
return -1
endi
if $data01 != 2.00000 then
if $data01 != 2.00000 then
return -1
endi
if $data02 != 3.000000000 then
if $data02 != 3.000000000 then
return -1
endi
if $data10 != NULL then
if $data10 != NULL then
return -1
endi
if $data11 != NULL then
if $data11 != NULL then
return -1
endi
if $data12 != NULL then
if $data12 != NULL then
return -1
endi
if $data30 != 11 then
if $data30 != 11 then
return -1
endi
if $data31 != NULL then
if $data31 != NULL then
return -1
endi
if $data32 != 3.200000000 then
if $data32 != 3.200000000 then
return -1
endi
if $data90 != 16 then
if $data90 != 16 then
return -1
endi
if $data91 != 2.60000 then
if $data91 != 2.60000 then
return -1
endi
if $data92 != 3.600000000 then
if $data92 != 3.600000000 then
return -1
endi
#===================================================================
@ -211,36 +211,36 @@ endi
#print =============== query data from stb
sql select * from stb
print ===>
print ===>
print ===> rows: $rows
print ===> rows0: $data00 $data01 $data02 $data03 $data04
if $rows != 12 then
if $rows != 12 then
return -1
endi
#print =============== select count(*) from supter table
sql select count(*) from stb
print $data00 $data01 $data02
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != 12 then
if $data00 != 12 then
return -1
endi
#print =============== select count(column) from supter table
sql select count(ts), count(c1), count(c2), count(c3) from stb
print $data00 $data01 $data02 $data03
if $data00 != 12 then
if $data00 != 12 then
return -1
endi
if $data01 != 8 then
if $data01 != 8 then
return -1
endi
if $data02 != 8 then
if $data02 != 8 then
return -1
endi
if $data03 != 8 then
if $data03 != 8 then
return -1
endi
@ -264,22 +264,22 @@ print ===> rows4: $data40 $data41 $data42 $data43 $data44
if $rows != 12 then
return -1
endi
if $data01 != 10 then
if $data01 != 10 then
return -1
endi
if $data02 != 2.00000 then
if $data02 != 2.00000 then
return -1
endi
if $data03 != 3.000000000 then
if $data03 != 3.000000000 then
return -1
endi
if $data41 != 12 then
if $data41 != 12 then
return -1
endi
if $data42 != 2.20000 then
if $data42 != 2.20000 then
return -1
endi
if $data43 != NULL then
if $data43 != NULL then
return -1
endi
@ -288,10 +288,10 @@ sql select count(*) from ct1
print ===> select count(*) from ct1
print ===> rows: $rows
print ===> rows0: $data00 $data01 $data02 $data03 $data04
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != 12 then
if $data00 != 12 then
return -1
endi
@ -300,16 +300,16 @@ sql select count(ts), count(c1), count(c2), count(c3) from ct1
print ===> select count(ts), count(c1), count(c2), count(c3) from ct1
print ===> rows: $rows
print ===> rows0: $data00 $data01 $data02 $data03 $data04
if $data00 != 12 then
if $data00 != 12 then
return -1
endi
if $data01 != 8 then
if $data01 != 8 then
return -1
endi
if $data02 != 8 then
if $data02 != 8 then
return -1
endi
if $data03 != 8 then
if $data03 != 8 then
return -1
endi
@ -322,16 +322,16 @@ sql select min(c1), min(c2), min(c3) from ct1
print ===> select min(c1), min(c2), min(c3) from ct1
print ===> rows: $rows
print ===> rows0: $data00 $data01 $data02 $data03 $data04
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != -2147483647 then
if $data00 != -2147483647 then
return -1
endi
if $data01 != 2.00000 then
if $data01 != 2.00000 then
return -1
endi
if $data02 != 3.000000000 then
if $data02 != 3.000000000 then
return -1
endi
@ -340,16 +340,16 @@ sql select max(c1), max(c2), max(c3) from ct1
print ===> select max(c1), max(c2), max(c3) from ct1
print ===> rows: $rows
print ===> rows0: $data00 $data01 $data02 $data03 $data04
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != 16 then
if $data00 != 16 then
return -1
endi
if $data01 != 2.70000 then
if $data01 != 2.70000 then
return -1
endi
if $data02 != 3.700000000 then
if $data02 != 3.700000000 then
return -1
endi
@ -358,16 +358,16 @@ sql select sum(c1), sum(c2), sum(c3) from ct1
print ===> select sum(c1), sum(c2), sum(c3) from ct1
print ===> rows: $rows
print ===> rows0: $data00 $data01 $data02 $data03 $data04
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != -2147483556 then
if $data00 != -2147483556 then
return -1
endi
if $data01 != 18.799999952 then
if $data01 != 18.799999952 then
return -1
endi
if $data02 != 26.800000000 then
if $data02 != 26.800000000 then
return -1
endi
@ -376,78 +376,78 @@ sql select c1, c2, c3 from ct1
print ===> select c1, c2, c3 from ct1
print ===> rows: $rows
print ===> rows0: $data00 $data01 $data02 $data03 $data04
if $rows != 12 then
if $rows != 12 then
return -1
endi
if $data00 != 10 then
if $data00 != 10 then
return -1
endi
if $data01 != 2.00000 then
if $data01 != 2.00000 then
return -1
endi
if $data02 != 3.000000000 then
if $data02 != 3.000000000 then
return -1
endi
if $data10 != NULL then
if $data10 != NULL then
return -1
endi
if $data11 != NULL then
if $data11 != NULL then
return -1
endi
if $data12 != NULL then
if $data12 != NULL then
return -1
endi
if $data30 != 11 then
if $data30 != 11 then
return -1
endi
if $data31 != NULL then
if $data31 != NULL then
return -1
endi
if $data32 != 3.200000000 then
if $data32 != 3.200000000 then
return -1
endi
if $data90 != 16 then
if $data90 != 16 then
return -1
endi
if $data91 != 2.60000 then
if $data91 != 2.60000 then
return -1
endi
if $data92 != 3.600000000 then
if $data92 != 3.600000000 then
return -1
endi
#===================================================================
print =============== query data from stb
sql select * from stb
print ===>
print ===>
print ===> rows: $rows
print ===> rows0: $data00 $data01 $data02 $data03 $data04
if $rows != 12 then
if $rows != 12 then
return -1
endi
print =============== select count(*) from supter table
sql select count(*) from stb
print $data00 $data01 $data02
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data00 != 12 then
if $data00 != 12 then
return -1
endi
print =============== select count(column) from supter table
sql select count(ts), count(c1), count(c2), count(c3) from stb
print $data00 $data01 $data02 $data03
if $data00 != 12 then
if $data00 != 12 then
return -1
endi
if $data01 != 8 then
if $data01 != 8 then
return -1
endi
if $data02 != 8 then
if $data02 != 8 then
return -1
endi
if $data03 != 8 then
if $data03 != 8 then
return -1
endi

View File

@ -16,36 +16,36 @@ sql create database $db
sql use $db
sql create table $tb (ts timestamp, speed int)
#commit to file will trigger if insert 82 rows
#commit to file will trigger if insert 82 rows
$N = 82
$N = 82
print =============== step 1
$x = $N
$y = $N / 2
while $x > $y
$ms = $x . m
$xt = - . $x
sql insert into $tb values (now - $ms , -$x )
$xt = - . $x
sql insert into $tb values (now - $ms , -$x )
$x = $x - 1
endw
endw
sql select * from $tb
print sql select * from $tb -> $rows points
if $rows != $y then
print sql select * from $tb -> $rows points
if $rows != $y then
return -1
endi
$x = $N / 2
$y = $N
while $x < $y
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$x = $x + 1
endw
endw
sql select * from $tb
print sql select * from $tb -> $rows points
if $rows != $N then
print sql select * from $tb -> $rows points
if $rows != $N then
return -1
endi
@ -53,18 +53,18 @@ print =============== step 2
$R = 4
$x = $N * 2
$y = $N * $R
$y = $N * $R
$expect = $y + $N
$y = $y + $x
while $x < $y
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$x = $x + 1
endw
endw
sql select * from $tb
print sql select * from $tb -> $rows points
if $rows != $expect then
print sql select * from $tb -> $rows points
if $rows != $expect then
return -1
endi
@ -100,7 +100,7 @@ endi
sql select * from $tb where ts < $start2 and ts > $end1
print select * from $tb where ts < $start2 and ts > $end1 -> $rows points
if $rows != $result1 then
if $rows != $result1 then
return -1
endi
@ -115,23 +115,23 @@ if $rows != 0 then
endi
sql select * from $tb where ts < $start3 and ts > $end1
print sql select * from $tb where ts < $start3 and ts > $end1 -> $rows points
if $rows != $result2 then
print sql select * from $tb where ts < $start3 and ts > $end1 -> $rows points
if $rows != $result2 then
return -1
endi
sql select * from $tb where ts < $start3 and ts > $end2
print sql select * from $tb where ts < $start3 and ts > $end2 -> $rows points
if $rows != $result1 then
print sql select * from $tb where ts < $start3 and ts > $end2 -> $rows points
if $rows != $result1 then
return -1
endi
sql select * from $tb where ts < $start3 and ts > $end3
sql select * from $tb where ts < $start3 and ts > $end3
if $rows != 0 then
return -1
endi
print ================= order by ts desc
print ================= order by ts desc
sql select * from $tb where ts < $start1 and ts > $end1 order by ts desc
if $rows != 0 then
@ -148,9 +148,9 @@ if $rows != 0 then
return -1
endi
sql select * from $tb where ts < $start2 and ts > $end1 order by ts desc
sql select * from $tb where ts < $start2 and ts > $end1 order by ts desc
print select * from $tb where ts < $start2 and ts > $end1 order by ts desc -> $rows points
if $rows != $result1 then
if $rows != $result1 then
return -1
endi
@ -164,15 +164,15 @@ if $rows != 0 then
return -1
endi
sql select * from $tb where ts < $start3 and ts > $end1 order by ts desc
print sql select * from $tb where ts < $start3 and ts > $end1 order by ts desc -> $rows points
if $rows != $result2 then
sql select * from $tb where ts < $start3 and ts > $end1 order by ts desc
print sql select * from $tb where ts < $start3 and ts > $end1 order by ts desc -> $rows points
if $rows != $result2 then
return -1
endi
sql select * from $tb where ts < $start3 and ts > $end2 order by ts desc
print sql select * from $tb where ts < $start3 and ts > $end2 order by ts desc -> $rows points
if $rows != $result1 then
sql select * from $tb where ts < $start3 and ts > $end2 order by ts desc
print sql select * from $tb where ts < $start3 and ts > $end2 order by ts desc -> $rows points
if $rows != $result1 then
return -1
endi
@ -185,8 +185,8 @@ clear:
sql drop database $db
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -17,9 +17,9 @@ sql use $db
sql create table $tb (ts timestamp, speed int)
#commit to file will trigger if insert 82 rows
#commit to file will trigger if insert 82 rows
$N = 82
$N = 82
print =============== step 1
$x = $N
@ -28,14 +28,14 @@ while $x > $y
$z = $x * 60000
$ms = 1601481600000 - $z
$xt = - . $x
sql insert into $tb values ($ms , -$x )
$xt = - . $x
sql insert into $tb values ($ms , -$x )
$x = $x - 1
endw
endw
sql select * from $tb
print sql select * from $tb -> $rows points
if $rows != $y then
print sql select * from $tb -> $rows points
if $rows != $y then
return -1
endi
@ -45,12 +45,12 @@ while $x < $y
$z = $x * 60000
$ms = 1601481600000 + $z
sql insert into $tb values ($ms , $x )
sql insert into $tb values ($ms , $x )
$x = $x + 1
endw
endw
sql select * from $tb
print sql select * from $tb -> $rows points
if $rows != $N then
print sql select * from $tb -> $rows points
if $rows != $N then
return -1
endi
@ -69,100 +69,100 @@ $end2 = 1601481600000
$end3 = 1601481600000 + $step
sql select * from $tb where ts < $start1 and ts > $end1
if $rows != 0 then
if $rows != 0 then
return -1
endi
sql select * from $tb where ts < $start1 and ts > $end2
if $rows != 0 then
if $rows != 0 then
return -1
endi
sql select * from $tb where ts < $start1 and ts > $end3
if $rows != 0 then
if $rows != 0 then
return -1
endi
sql select * from $tb where ts < $start2 and ts > $end1
print select * from $tb where ts < $start2 and ts > $end1 -> $rows points
if $rows != $result1 then
if $rows != $result1 then
return -1
endi
sql select * from $tb where ts < $start2 and ts > $end2
if $rows != 0 then
if $rows != 0 then
return -1
endi
sql select * from $tb where ts < $start2 and ts > $end3
if $rows != 0 then
if $rows != 0 then
return -1
endi
sql select * from $tb where ts < $start3 and ts > $end1
print sql select * from $tb where ts < $start3 and ts > $end1 -> $rows points
if $rows != $result2 then
print sql select * from $tb where ts < $start3 and ts > $end1 -> $rows points
if $rows != $result2 then
return -1
endi
sql select * from $tb where ts < $start3 and ts > $end2
print sql select * from $tb where ts < $start3 and ts > $end2 -> $rows points
if $rows != $result1 then
print sql select * from $tb where ts < $start3 and ts > $end2 -> $rows points
if $rows != $result1 then
return -1
endi
sql select * from $tb where ts < $start3 and ts > $end3
if $rows != 0 then
if $rows != 0 then
return -1
endi
print ================= order by ts desc
print ================= order by ts desc
sql select * from $tb where ts < $start1 and ts > $end1 order by ts desc
if $rows != 0 then
if $rows != 0 then
return -1
endi
sql select * from $tb where ts < $start1 and ts > $end2 order by ts desc
if $rows != 0 then
if $rows != 0 then
return -1
endi
sql select * from $tb where ts < $start1 and ts > $end3 order by ts desc
if $rows != 0 then
if $rows != 0 then
return -1
endi
sql select * from $tb where ts < $start2 and ts > $end1 order by ts desc
sql select * from $tb where ts < $start2 and ts > $end1 order by ts desc
print select * from $tb where ts < $start2 and ts > $end1 order by ts desc -> $rows points
if $rows != $result1 then
if $rows != $result1 then
return -1
endi
sql select * from $tb where ts < $start2 and ts > $end2 order by ts desc
if $rows != 0 then
if $rows != 0 then
return -1
endi
sql select * from $tb where ts < $start2 and ts > $end3 order by ts desc
if $rows != 0 then
if $rows != 0 then
return -1
endi
sql select * from $tb where ts < $start3 and ts > $end1 order by ts desc
print sql select * from $tb where ts < $start3 and ts > $end1 order by ts desc -> $rows points
if $rows != $result2 then
sql select * from $tb where ts < $start3 and ts > $end1 order by ts desc
print sql select * from $tb where ts < $start3 and ts > $end1 order by ts desc -> $rows points
if $rows != $result2 then
return -1
endi
sql select * from $tb where ts < $start3 and ts > $end2 order by ts desc
print sql select * from $tb where ts < $start3 and ts > $end2 order by ts desc -> $rows points
if $rows != $result1 then
sql select * from $tb where ts < $start3 and ts > $end2 order by ts desc
print sql select * from $tb where ts < $start3 and ts > $end2 order by ts desc -> $rows points
if $rows != $result1 then
return -1
endi
sql select * from $tb where ts < $start3 and ts > $end3 order by ts desc
if $rows != 0 then
if $rows != 0 then
return -1
endi
@ -170,8 +170,8 @@ clear:
sql drop database $db
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -16,23 +16,23 @@ sql create database $db
sql use $db
sql create table $tb (ts timestamp, speed int)
#commit to file will trigger if insert 82 rows
$N = 82
#commit to file will trigger if insert 82 rows
$N = 82
print =============== step 1
$x = $N * 2
$y = $N
$expect = $N
while $x > $y
$ms = $x . m
$xt = - . $x
sql insert into $tb values (now - $ms , $xt )
$ms = $x . m
$xt = - . $x
sql insert into $tb values (now - $ms , $xt )
$x = $x - 1
endw
endw
sql select * from $tb
print sql select * from $tb -> $rows points
if $rows != $expect then
print sql select * from $tb -> $rows points
if $rows != $expect then
return -1
endi
@ -40,20 +40,20 @@ $x = $N
$y = $N * 2
$expect = $N * 2
while $x < $y
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$x = $x + 1
endw
endw
sql select * from $tb
print sql select * from $tb -> $rows points
if $rows != $expect then
print sql select * from $tb -> $rows points
if $rows != $expect then
return -1
endi
print =============== step 2
$R = 4
$y = $N * $R
$y = $N * $R
$expect = $y + $N
$expect = $expect + $N
@ -62,17 +62,17 @@ $x = $N * 3
$y = $y + $x
while $x < $y
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$x = $x + 1
endw
endw
sql select * from $tb
print sql select * from $tb -> $rows points
if $rows != $expect then
print sql select * from $tb -> $rows points
if $rows != $expect then
return -1
endi
print =============== step 2
@ -106,7 +106,7 @@ endi
sql select * from $tb where ts < $start2 and ts > $end1
print select * from $tb where ts < $start2 and ts > $end1 -> $rows points
if $rows != $result1 then
if $rows != $result1 then
return -1
endi
@ -121,14 +121,14 @@ if $rows != 0 then
endi
sql select * from $tb where ts < $start3 and ts > $end1
print sql select * from $tb where ts < $start3 and ts > $end1 -> $rows points
if $rows != $result2 then
print sql select * from $tb where ts < $start3 and ts > $end1 -> $rows points
if $rows != $result2 then
return -1
endi
sql select * from $tb where ts < $start3 and ts > $end2
print sql select * from $tb where ts < $start3 and ts > $end2 -> $rows points
if $rows != $result1 then
print sql select * from $tb where ts < $start3 and ts > $end2 -> $rows points
if $rows != $result1 then
return -1
endi
@ -137,7 +137,7 @@ if $rows != 0 then
return -1
endi
print ================= order by ts desc
print ================= order by ts desc
sql select * from $tb where ts < $start1 and ts > $end1 order by ts desc
if $rows != 0 then
@ -154,9 +154,9 @@ if $rows != 0 then
return -1
endi
sql select * from $tb where ts < $start2 and ts > $end1 order by ts desc
sql select * from $tb where ts < $start2 and ts > $end1 order by ts desc
print select * from $tb where ts < $start2 and ts > $end1 order by ts desc -> $rows points
if $rows != $result1 then
if $rows != $result1 then
return -1
endi
@ -170,15 +170,15 @@ if $rows != 0 then
return -1
endi
sql select * from $tb where ts < $start3 and ts > $end1 order by ts desc
print sql select * from $tb where ts < $start3 and ts > $end1 order by ts desc -> $rows points
if $rows != $result2 then
sql select * from $tb where ts < $start3 and ts > $end1 order by ts desc
print sql select * from $tb where ts < $start3 and ts > $end1 order by ts desc -> $rows points
if $rows != $result2 then
return -1
endi
sql select * from $tb where ts < $start3 and ts > $end2 order by ts desc
print sql select * from $tb where ts < $start3 and ts > $end2 order by ts desc -> $rows points
if $rows != $result1 then
sql select * from $tb where ts < $start3 and ts > $end2 order by ts desc
print sql select * from $tb where ts < $start3 and ts > $end2 order by ts desc -> $rows points
if $rows != $result1 then
return -1
endi
@ -191,8 +191,8 @@ clear:
sql drop database $db
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -14,22 +14,22 @@ sql drop database -x step1
step1:
sql create database $db
sql use $db
sql create table $tb (ts timestamp, speed int)
sql create table $tb (ts timestamp, speed int)
$N = 82
$N = 82
$x = $N * 2
$y = $N
while $x > $y
$ms = $x . m
$xt = - . $x
sql insert into $tb values (now - $ms , $xt )
$ms = $x . m
$xt = - . $x
sql insert into $tb values (now - $ms , $xt )
$x = $x - 1
endw
endw
sql select * from $tb
print sql select * from $tb -> $rows points
if $rows != $y then
print sql select * from $tb -> $rows points
if $rows != $y then
return -1
endi
@ -37,13 +37,13 @@ $x = $N
$y = $N * 2
$expect = $N * 2
while $x < $y
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$x = $x + 1
endw
endw
sql select * from $tb
print sql select * from $tb -> $rows points
if $rows != $expect then
print sql select * from $tb -> $rows points
if $rows != $expect then
return -1
endi
@ -63,107 +63,107 @@ $end2 = now
$end3 = now+ . $step
sql select * from $tb where ts < $start1 and ts > $end1
if $rows != 0 then
if $rows != 0 then
return -1
endi
sql select * from $tb where ts < $start1 and ts > $end2
if $rows != 0 then
if $rows != 0 then
return -1
endi
sql select * from $tb where ts < $start1 and ts > $end3
if $rows != 0 then
if $rows != 0 then
return -1
endi
sql select * from $tb where ts < $start2 and ts > $end1
print select * from $tb where ts < $start2 and ts > $end1 -> $rows points
if $rows != $result1 then
if $rows != $result1 then
return -1
endi
sql select * from $tb where ts < $start2 and ts > $end2
if $rows != 0 then
if $rows != 0 then
return -1
endi
sql select * from $tb where ts < $start2 and ts > $end3
if $rows != 0 then
if $rows != 0 then
return -1
endi
sql select * from $tb where ts < $start3 and ts > $end1
print sql select * from $tb where ts < $start3 and ts > $end1 -> $rows points
if $rows != $result2 then
if $rows != $result2 then
return -1
endi
sql select * from $tb where ts < $start3 and ts > $end2
print sql select * from $tb where ts < $start3 and ts > $end2 -> $rows points
if $rows != $result1 then
print sql select * from $tb where ts < $start3 and ts > $end2 -> $rows points
if $rows != $result1 then
return -1
endi
sql select * from $tb where ts < $start3 and ts > $end3
if $rows != 0 then
if $rows != 0 then
return -1
endi
print ================= order by ts desc
print ================= order by ts desc
sql select * from $tb where ts < $start1 and ts > $end1 order by ts desc
if $rows != 0 then
if $rows != 0 then
return -1
endi
sql select * from $tb where ts < $start1 and ts > $end2 order by ts desc
if $rows != 0 then
if $rows != 0 then
return -1
endi
sql select * from $tb where ts < $start1 and ts > $end3 order by ts desc
if $rows != 0 then
if $rows != 0 then
return -1
endi
sql select * from $tb where ts < $start2 and ts > $end1 order by ts desc
sql select * from $tb where ts < $start2 and ts > $end1 order by ts desc
print select * from $tb where ts < $start2 and ts > $end1 order by ts desc -> $rows points
if $rows != $result1 then
if $rows != $result1 then
return -1
endi
sql select * from $tb where ts < $start2 and ts > $end2 order by ts desc
if $rows != 0 then
if $rows != 0 then
return -1
endi
sql select * from $tb where ts < $start2 and ts > $end3 order by ts desc
if $rows != 0 then
if $rows != 0 then
return -1
endi
sql select * from $tb where ts < $start3 and ts > $end1 order by ts desc
print sql select * from $tb where ts < $start3 and ts > $end1 order by ts desc -> $rows points
if $rows != $result2 then
sql select * from $tb where ts < $start3 and ts > $end1 order by ts desc
print sql select * from $tb where ts < $start3 and ts > $end1 order by ts desc -> $rows points
if $rows != $result2 then
return -1
endi
sql select * from $tb where ts < $start3 and ts > $end2 order by ts desc
print sql select * from $tb where ts < $start3 and ts > $end2 order by ts desc -> $rows points
if $rows != $result1 then
sql select * from $tb where ts < $start3 and ts > $end2 order by ts desc
print sql select * from $tb where ts < $start3 and ts > $end2 order by ts desc -> $rows points
if $rows != $result1 then
return -1
endi
sql select * from $tb where ts < $start3 and ts > $end3 order by ts desc
if $rows != 0 then
if $rows != 0 then
return -1
endi
sql drop database $db
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -17,23 +17,23 @@ sql use $db
sql create table $tb (ts timestamp, speed int)
#commit to file will trigger if insert 82 rows
#commit to file will trigger if insert 82 rows
$N = 82
$N = 82
$x = $N * 2
$y = $N
$expect = $y
while $x > $y
$ms = $x . m
$xt = - . $x
sql insert into $tb values (now - $ms , $xt )
$ms = $x . m
$xt = - . $x
sql insert into $tb values (now - $ms , $xt )
$x = $x - 1
endw
endw
sql select * from $tb
print sql select * from $tb -> $rows points
if $rows != $expect then
print sql select * from $tb -> $rows points
if $rows != $expect then
return -1
endi
@ -41,37 +41,37 @@ $x = $N
$y = $N * 2
$expect = $N * 2
while $x < $y
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$x = $x + 1
endw
endw
sql select * from $tb
print sql select * from $tb -> $rows points
if $rows != $expect then
print sql select * from $tb -> $rows points
if $rows != $expect then
return -1
endi
$R = 4
$R = $R - 1
$y = $N * $R
$y = $N * $R
$expect = $y + $N
$expect = $expect + $N
$x = $N * 3
$y = $y + $x
while $x < $y
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$x = $x + 1
endw
endw
sql select * from $tb
print sql select * from $tb -> $rows points
if $rows != $expect then
print sql select * from $tb -> $rows points
if $rows != $expect then
return -1
endi
print =============== step 2
@ -105,7 +105,7 @@ endi
sql select * from $tb where ts < $start2 and ts > $end1
print select * from $tb where ts < $start2 and ts > $end1 -> $rows points
if $rows != $result1 then
if $rows != $result1 then
return -1
endi
@ -120,14 +120,14 @@ if $rows != 0 then
endi
sql select * from $tb where ts < $start3 and ts > $end1
print sql select * from $tb where ts < $start3 and ts > $end1 -> $rows points
if $rows != $result2 then
print sql select * from $tb where ts < $start3 and ts > $end1 -> $rows points
if $rows != $result2 then
return -1
endi
sql select * from $tb where ts < $start3 and ts > $end2
print sql select * from $tb where ts < $start3 and ts > $end2 -> $rows points
if $rows != $result1 then
print sql select * from $tb where ts < $start3 and ts > $end2 -> $rows points
if $rows != $result1 then
return -1
endi
@ -136,7 +136,7 @@ if $rows != 0 then
return -1
endi
print ================= order by ts desc
print ================= order by ts desc
sql select * from $tb where ts < $start1 and ts > $end1 order by ts desc
if $rows != 0 then
@ -153,9 +153,9 @@ if $rows != 0 then
return -1
endi
sql select * from $tb where ts < $start2 and ts > $end1 order by ts desc
sql select * from $tb where ts < $start2 and ts > $end1 order by ts desc
print select * from $tb where ts < $start2 and ts > $end1 order by ts desc -> $rows points
if $rows != $result1 then
if $rows != $result1 then
return -1
endi
@ -169,15 +169,15 @@ if $rows != 0 then
return -1
endi
sql select * from $tb where ts < $start3 and ts > $end1 order by ts desc
print sql select * from $tb where ts < $start3 and ts > $end1 order by ts desc -> $rows points
if $rows != $result2 then
sql select * from $tb where ts < $start3 and ts > $end1 order by ts desc
print sql select * from $tb where ts < $start3 and ts > $end1 order by ts desc -> $rows points
if $rows != $result2 then
return -1
endi
sql select * from $tb where ts < $start3 and ts > $end2 order by ts desc
print sql select * from $tb where ts < $start3 and ts > $end2 order by ts desc -> $rows points
if $rows != $result1 then
sql select * from $tb where ts < $start3 and ts > $end2 order by ts desc
print sql select * from $tb where ts < $start3 and ts > $end2 order by ts desc -> $rows points
if $rows != $result1 then
return -1
endi
@ -190,8 +190,8 @@ clear:
sql drop database $db
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -15,18 +15,18 @@ step1:
sql create database $db
sql use $db
sql create table $tb (ts timestamp, speed int)
sql create table $tb (ts timestamp, speed int)
$N = 20000
$x = 0
while $x < $N
$ms = $x . s
$ms = $x . s
#print insert into $tb values (now + $ms , $x )
sql insert into $tb values (now + $ms , $x ) -x error_insert
$x = $x + 1
endw
endw
error_insert:
sql select * from $tb
@ -37,8 +37,8 @@ endi
sql drop database $db
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -21,8 +21,8 @@ while $x < 10000
$ms = $x . s
sql insert into tb values (now + $ms , '1' )
$x = $x + 1
endw
endw
sql select * from tb
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -11,7 +11,7 @@ print =============== create super table
sql create table if not exists stb (ts timestamp, c1 int) tags (city binary(20),district binary(20));
sql show stables
if $rows != 1 then
if $rows != 1 then
return -1
endi
@ -20,7 +20,7 @@ sql create table ct1 using stb tags("BeiJing", "ChaoYang")
sql create table ct2 using stb tags("BeiJing", "HaiDian")
sql show tables
if $rows != 2 then
if $rows != 2 then
return -1
endi
@ -43,7 +43,7 @@ print $data30 $data31
print $data40 $data41
print $data50 $data51
if $rows != 6 then
if $rows != 6 then
print rows $rows != 6
return -1
endi
@ -74,7 +74,7 @@ print $data00 $data01
print $data10 $data11
print $data20 $data21
if $rows != 3 then
if $rows != 3 then
print rows $rows != 3
return -1
endi
@ -107,7 +107,7 @@ print $data30 $data31
print $data40 $data41
print $data50 $data51
if $rows != 6 then
if $rows != 6 then
print rows $rows != 6
return -1
endi
@ -133,7 +133,7 @@ print $data00 $data01
print $data10 $data11
print $data20 $data21
if $rows != 3 then
if $rows != 3 then
print rows $rows != 3
return -1
endi
@ -166,7 +166,7 @@ print $data30 $data31
print $data40 $data41
print $data50 $data51
if $rows != 6 then
if $rows != 6 then
print rows $rows != 6
return -1
endi
@ -198,7 +198,7 @@ print $data20 $data21
print $data30 $data31
print $data40 $data41
if $rows != 5 then
if $rows != 5 then
print rows $rows != 5
return -1
endi
@ -228,4 +228,4 @@ if $data41 != NULL then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -13,7 +13,7 @@ print =============== create super table
sql create table if not exists stb (ts timestamp, c1 int unsigned, c2 double, c3 binary(10), c4 nchar(10), c5 double) tags (city binary(20),district binary(20));
sql show stables
if $rows != 1 then
if $rows != 1 then
return -1
endi
@ -24,7 +24,7 @@ sql create table ct3 using stb tags("BeiJing", "PingGu")
sql create table ct4 using stb tags("BeiJing", "YanQing")
sql show tables
if $rows != 4 then
if $rows != 4 then
print rows $rows != 4
return -1
endi
@ -69,7 +69,7 @@ print $data30 $data31 $data32 $data33 $data34 $data35
print $data40 $data41 $data42 $data43 $data44 $data45
print $data50 $data51 $data52 $data53 $data54 $data55
if $rows != 6 then
if $rows != 6 then
print rows $rows != 6
return -1
endi
@ -154,7 +154,7 @@ print =============== step 6 query records of ct2 from memory(taosc and taosd me
sql select * from ct2;
print $data00 $data01 $data02 $data03 $data04 $data05
if $rows != 1 then
if $rows != 1 then
print rows $rows != 1
return -1
endi
@ -196,12 +196,12 @@ print $data60 $data61 $data62 $data63 $data64 $data65
print $data70 $data71 $data72 $data73 $data74 $data75
print $data80 $data81 $data82 $data83 $data84 $data85
print $data90 $data91 $data92 $data93 $data94 $data95
print $data[10][0] $data[10][1] $data[10][2] $data[10][3] $data[10][4] $data[10][5]
print $data[11][0] $data[11][1] $data[11][2] $data[11][3] $data[11][4] $data[11][5]
print $data[12][0] $data[12][1] $data[12][2] $data[12][3] $data[12][4] $data[12][5]
print $data[13][0] $data[13][1] $data[13][2] $data[13][3] $data[13][4] $data[13][5]
print $data[10][0] $data[10][1] $data[10][2] $data[10][3] $data[10][4] $data[10][5]
print $data[11][0] $data[11][1] $data[11][2] $data[11][3] $data[11][4] $data[11][5]
print $data[12][0] $data[12][1] $data[12][2] $data[12][3] $data[12][4] $data[12][5]
print $data[13][0] $data[13][1] $data[13][2] $data[13][3] $data[13][4] $data[13][5]
if $rows != 14 then
if $rows != 14 then
print rows $rows != 14
return -1
endi
@ -356,7 +356,7 @@ print $data30 $data31 $data32 $data33 $data34 $data35
print $data40 $data41 $data42 $data43 $data44 $data45
if $rows != 5 then
if $rows != 5 then
print rows $rows != 5
return -1
endi
@ -451,7 +451,7 @@ print $data30 $data31 $data32 $data33 $data34 $data35
print $data40 $data41 $data42 $data43 $data44 $data45
print $data50 $data51 $data52 $data53 $data54 $data55
if $rows != 6 then
if $rows != 6 then
print rows $rows != 6
return -1
endi
@ -536,7 +536,7 @@ print =============== step 10 query records of ct2 from file
sql select * from ct2;
print $data00 $data01 $data02 $data03 $data04 $data05
if $rows != 1 then
if $rows != 1 then
print rows $rows != 1
return -1
endi
@ -578,12 +578,12 @@ print $data60 $data61 $data62 $data63 $data64 $data65
print $data70 $data71 $data72 $data73 $data74 $data75
print $data80 $data81 $data82 $data83 $data84 $data85
print $data90 $data91 $data92 $data93 $data94 $data95
print $data[10][0] $data[10][1] $data[10][2] $data[10][3] $data[10][4] $data[10][5]
print $data[11][0] $data[11][1] $data[11][2] $data[11][3] $data[11][4] $data[11][5]
print $data[12][0] $data[12][1] $data[12][2] $data[12][3] $data[12][4] $data[12][5]
print $data[13][0] $data[13][1] $data[13][2] $data[13][3] $data[13][4] $data[13][5]
print $data[10][0] $data[10][1] $data[10][2] $data[10][3] $data[10][4] $data[10][5]
print $data[11][0] $data[11][1] $data[11][2] $data[11][3] $data[11][4] $data[11][5]
print $data[12][0] $data[12][1] $data[12][2] $data[12][3] $data[12][4] $data[12][5]
print $data[13][0] $data[13][1] $data[13][2] $data[13][3] $data[13][4] $data[13][5]
if $rows != 14 then
if $rows != 14 then
print rows $rows != 14
return -1
endi
@ -738,7 +738,7 @@ print $data30 $data31 $data32 $data33 $data34 $data35
print $data40 $data41 $data42 $data43 $data44 $data45
if $rows != 5 then
if $rows != 5 then
print rows $rows != 5
return -1
endi
@ -818,4 +818,4 @@ if $data44 != n8 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -3,7 +3,7 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/exec.sh -n dnode1 -s start
sql connect
print ======== step1
print ======== step1
sql drop database if exists db1;
sql create database db1 vgroups 3;
sql use db1;
@ -11,24 +11,24 @@ sql create stable st1 (fts timestamp, fbool bool, ftiny tinyint, fsmall smallint
sql create table tb1 using st1 tags('2022-07-10 16:31:00', true, 1, 1, 1, 1, 1, 1, 1, 1, 1.0, 1.0, 'a', 'a');
sql create table tb2 using st1 tags('2022-07-10 16:32:00', false, 2, 2, 2, 2, 2, 2, 2, 2, 2.0, 2.0, 'b', 'b');
sql create table tb3 using st1 tags('2022-07-10 16:33:00', true, 3, 3, 3, 3, 3, 3, 3, 3, 3.0, 3.0, 'c', 'c');
sql insert into tb1 values ('2022-07-10 16:31:01', false, 1, 1, 1, 1, 1, 1, 1, 1, 1.0, 1.0, 'a', 'a');
sql insert into tb1 values ('2022-07-10 16:31:02', true, 2, 2, 2, 2, 2, 2, 2, 2, 2.0, 2.0, 'b', 'b');
sql insert into tb1 values ('2022-07-10 16:31:03', false, 3, 3, 3, 3, 3, 3, 3, 3, 3.0, 3.0, 'c', 'c');
sql insert into tb1 values ('2022-07-10 16:31:04', true, 4, 4, 4, 4, 4, 4, 4, 4, 4.0, 4.0, 'd', 'd');
sql insert into tb1 values ('2022-07-10 16:31:05', false, 5, 5, 5, 5, 5, 5, 5, 5, 5.0, 5.0, 'e', 'e');
sql insert into tb2 values ('2022-07-10 16:32:01', false, 1, 1, 1, 1, 1, 1, 1, 1, 1.0, 1.0, 'a', 'a');
sql insert into tb2 values ('2022-07-10 16:32:02', true, 2, 2, 2, 2, 2, 2, 2, 2, 2.0, 2.0, 'b', 'b');
sql insert into tb2 values ('2022-07-10 16:32:02', true, 2, 2, 2, 2, 2, 2, 2, 2, 2.0, 2.0, 'b', 'b');
sql insert into tb2 values ('2022-07-10 16:32:03', false, 3, 3, 3, 3, 3, 3, 3, 3, 3.0, 3.0, 'c', 'c');
sql insert into tb2 values ('2022-07-10 16:32:04', true, 4, 4, 4, 4, 4, 4, 4, 4, 4.0, 4.0, 'd', 'd');
sql insert into tb2 values ('2022-07-10 16:32:04', true, 4, 4, 4, 4, 4, 4, 4, 4, 4.0, 4.0, 'd', 'd');
sql insert into tb2 values ('2022-07-10 16:32:05', false, 5, 5, 5, 5, 5, 5, 5, 5, 5.0, 5.0, 'e', 'e');
sql insert into tb3 values ('2022-07-10 16:33:01', false, 1, 1, 1, 1, 1, 1, 1, 1, 1.0, 1.0, 'a', 'a');
sql insert into tb3 values ('2022-07-10 16:33:02', true, 2, 2, 2, 2, 2, 2, 2, 2, 2.0, 2.0, 'b', 'b');
sql insert into tb3 values ('2022-07-10 16:33:02', true, 2, 2, 2, 2, 2, 2, 2, 2, 2.0, 2.0, 'b', 'b');
sql insert into tb3 values ('2022-07-10 16:33:03', false, 3, 3, 3, 3, 3, 3, 3, 3, 3.0, 3.0, 'c', 'c');
sql insert into tb3 values ('2022-07-10 16:33:04', true, 4, 4, 4, 4, 4, 4, 4, 4, 4.0, 4.0, 'd', 'd');
sql insert into tb3 values ('2022-07-10 16:33:05', false, 5, 5, 5, 5, 5, 5, 5, 5, 5.0, 5.0, 'e', 'e');
sql insert into tb3 values ('2022-07-10 16:33:04', true, 4, 4, 4, 4, 4, 4, 4, 4, 4.0, 4.0, 'd', 'd');
sql insert into tb3 values ('2022-07-10 16:33:05', false, 5, 5, 5, 5, 5, 5, 5, 5, 5.0, 5.0, 'e', 'e');
sql select * from tb1 where fts in ('2022-07-10 16:31:01', '2022-07-10 16:31:03', 1657441865000);
if $rows != 3 then

View File

@ -3,7 +3,7 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/exec.sh -n dnode1 -s start
sql connect
print ======== step1
print ======== step1
sql drop database if exists db1;
sql create database db1 vgroups 3;
sql use db1;
@ -11,24 +11,24 @@ sql create stable st1 (fts timestamp, fbool bool, ftiny tinyint, fsmall smallint
sql create table tb1 using st1 tags('2022-07-10 16:31:00', true, 1, 1, 1, 1, 1, 1, 1, 1, 1.0, 1.0, 'a', 'a');
sql create table tb2 using st1 tags('2022-07-10 16:32:00', false, 2, 2, 2, 2, 2, 2, 2, 2, 2.0, 2.0, 'b', 'b');
sql create table tb3 using st1 tags('2022-07-10 16:33:00', true, 3, 3, 3, 3, 3, 3, 3, 3, 3.0, 3.0, 'c', 'c');
sql insert into tb1 values ('2022-07-10 16:31:01', false, 1, 1, 1, 1, 1, 1, 1, 1, 1.0, 1.0, 'a', 'a');
sql insert into tb1 values ('2022-07-10 16:31:02', true, 2, 2, 2, 2, 2, 2, 2, 2, 2.0, 2.0, 'b', 'b');
sql insert into tb1 values ('2022-07-10 16:31:03', false, 3, 3, 3, 3, 3, 3, 3, 3, 3.0, 3.0, 'c', 'c');
sql insert into tb1 values ('2022-07-10 16:31:04', true, 4, 4, 4, 4, 4, 4, 4, 4, 4.0, 4.0, 'd', 'd');
sql insert into tb1 values ('2022-07-10 16:31:05', false, 5, 5, 5, 5, 5, 5, 5, 5, 5.0, 5.0, 'e', 'e');
sql insert into tb2 values ('2022-07-10 16:32:01', false, 1, 1, 1, 1, 1, 1, 1, 1, 1.0, 1.0, 'a', 'a');
sql insert into tb2 values ('2022-07-10 16:32:02', true, 2, 2, 2, 2, 2, 2, 2, 2, 2.0, 2.0, 'b', 'b');
sql insert into tb2 values ('2022-07-10 16:32:02', true, 2, 2, 2, 2, 2, 2, 2, 2, 2.0, 2.0, 'b', 'b');
sql insert into tb2 values ('2022-07-10 16:32:03', false, 3, 3, 3, 3, 3, 3, 3, 3, 3.0, 3.0, 'c', 'c');
sql insert into tb2 values ('2022-07-10 16:32:04', true, 4, 4, 4, 4, 4, 4, 4, 4, 4.0, 4.0, 'd', 'd');
sql insert into tb2 values ('2022-07-10 16:32:04', true, 4, 4, 4, 4, 4, 4, 4, 4, 4.0, 4.0, 'd', 'd');
sql insert into tb2 values ('2022-07-10 16:32:05', false, 5, 5, 5, 5, 5, 5, 5, 5, 5.0, 5.0, 'e', 'e');
sql insert into tb3 values ('2022-07-10 16:33:01', false, 1, 1, 1, 1, 1, 1, 1, 1, 1.0, 1.0, 'a', 'a');
sql insert into tb3 values ('2022-07-10 16:33:02', true, 2, 2, 2, 2, 2, 2, 2, 2, 2.0, 2.0, 'b', 'b');
sql insert into tb3 values ('2022-07-10 16:33:02', true, 2, 2, 2, 2, 2, 2, 2, 2, 2.0, 2.0, 'b', 'b');
sql insert into tb3 values ('2022-07-10 16:33:03', false, 3, 3, 3, 3, 3, 3, 3, 3, 3.0, 3.0, 'c', 'c');
sql insert into tb3 values ('2022-07-10 16:33:04', true, 4, 4, 4, 4, 4, 4, 4, 4, 4.0, 4.0, 'd', 'd');
sql insert into tb3 values ('2022-07-10 16:33:05', false, 5, 5, 5, 5, 5, 5, 5, 5, 5.0, 5.0, 'e', 'e');
sql insert into tb3 values ('2022-07-10 16:33:04', true, 4, 4, 4, 4, 4, 4, 4, 4, 4.0, 4.0, 'd', 'd');
sql insert into tb3 values ('2022-07-10 16:33:05', false, 5, 5, 5, 5, 5, 5, 5, 5, 5.0, 5.0, 'e', 'e');
sql select 1+1n;
if $rows != 1 then

View File

@ -24,496 +24,496 @@ sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol1 bool, tgcol2 int, tgc
$i = 0
while $i < 5
$tb = $tbPrefix . $i
sql create table $tb using $mt tags( 0, 0, 0 )
sql create table $tb using $mt tags( 0, 0, 0 )
$x = 0
while $x < $rowNum
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$x = $x + 1
endw
endw
$i = $i + 1
endw
endw
while $i < 10
$tb = $tbPrefix . $i
sql create table $tb using $mt tags( 1, 1, 1 )
sql create table $tb using $mt tags( 1, 1, 1 )
$x = 0
while $x < $rowNum
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$x = $x + 1
endw
endw
$i = $i + 1
endw
endw
print =============== step2
sql select * from $mt
if $rows != $totalNum then
if $rows != $totalNum then
return -1
endi
sql select * from $mt where ts < now + 4m
if $rows != 50 then
if $rows != 50 then
return -1
endi
sql select * from $mt where ts > now + 4m
if $rows != 150 then
if $rows != 150 then
return -1
endi
sql select * from $mt where ts = now + 4m
if $rows != 0 then
if $rows != 0 then
return -1
endi
sql select * from $mt where ts > now + 4m and ts < now + 5m
if $rows != 10 then
if $rows != 10 then
return -1
endi
print =============== step3
sql select * from $mt where tgcol1 = 0
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol1 <> 0
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol1 = 1
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol1 <> 1
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol1 = true
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol1 <> true
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol1 = false
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol1 <> false
if $rows != 100 then
if $rows != 100 then
return -1
endi
print =============== step4
sql select * from $mt where tgcol2 = 0
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol2 <> 0
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol2 = 1
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol2 <> 1
if $rows != 100 then
if $rows != 100 then
return -1
endi
print =============== step5
sql select * from $mt where tgcol3 = 0
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol3 <> 0
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol3 = 1
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol3 <> 1
if $rows != 100 then
if $rows != 100 then
return -1
endi
print =============== step6
sql select * from $mt where ts > now + 4m and tgcol1 = true
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol1 <> true
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol1 = false
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol1 <> false
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol1 = false
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol1 <> false
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts > now + 4m and ts < now + 5m and tgcol1 <> false
if $rows != 5 then
if $rows != 5 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol1 <> false and ts < now + 5m
if $rows != 5 then
if $rows != 5 then
return -1
endi
print =============== step7
sql select * from $mt where ts > now + 4m and tgcol2 = 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol2 <> 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol2 = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol2 <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol2 = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol2 <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts > now + 4m and ts < now + 5m and tgcol2 <> 0
if $rows != 5 then
if $rows != 5 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol2 <> 0 and ts < now + 5m
if $rows != 5 then
if $rows != 5 then
return -1
endi
print =============== step8
sql select * from $mt where ts > now + 4m and tgcol3 = 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol3 <> 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol3 = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol3 <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol3 = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol3 <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts > now + 4m and ts < now + 5m and tgcol3 <> 0
if $rows != 5 then
if $rows != 5 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol3 <> 0 and ts < now + 5m
if $rows != 5 then
if $rows != 5 then
return -1
endi
print =============== step9
sql select * from $mt where ts > now + 4m and tgcol2 = 1 and tgcol1 = true
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol2 <> 1 and tgcol1 <> true
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol2 = 0 and tgcol1 = false
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol2 <> 0 and tgcol1 <> false
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol2 = 0 and tgcol1 = false
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol2 <> 0 and tgcol1 <> false
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts > now + 4m and ts < now + 5m and tgcol2 <> 0 and tgcol1 <> false
if $rows != 5 then
if $rows != 5 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol2 <> 0 and ts < now + 5m and ts < now + 5m and tgcol1 <> false
if $rows != 5 then
if $rows != 5 then
return -1
endi
print =============== step10
sql select * from $mt where ts > now + 4m and tgcol3 = 1 and tgcol1 = true
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol3 <> 1 and tgcol1 <> true
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol3 = 0 and tgcol1 = false
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol3 <> 0 and tgcol1 <> false
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol3 = 0 and tgcol1 = false
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol3 <> 0 and tgcol1 <> false
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts > now + 4m and ts < now + 5m and tgcol3 <> 0 and tgcol1 <> false
if $rows != 5 then
if $rows != 5 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol3 <> 0 and ts < now + 5m and ts < now + 5m and tgcol1 <> false
if $rows != 5 then
if $rows != 5 then
return -1
endi
print =============== step11
sql select * from $mt where ts > now + 4m and tgcol3 = 1 and tgcol2 = 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol3 <> 1 and tgcol2 <> 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol3 = 0 and tgcol2 = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol3 <> 0 and tgcol2 <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol3 = 0 and tgcol2 = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol3 <> 0 and tgcol2 <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts > now + 4m and ts < now + 5m and tgcol3 <> 0 and tgcol2 <> 0
if $rows != 5 then
if $rows != 5 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol3 <> 0 and ts < now + 5m and ts < now + 5m and tgcol2 <> 0
if $rows != 5 then
if $rows != 5 then
return -1
endi
print =============== step12
sql select * from $mt where ts > now + 4m and tgcol1 = 1 and tgcol2 = 1 and tgcol3 = 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol1 <> 1 and tgcol2 <> 1 and tgcol3 <> 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol1 = 0 and tgcol2 = 0 and tgcol3 = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol1 <> 0 and tgcol2 <> 0 and tgcol3 <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol1 = 0 and tgcol2 = 0 and tgcol3 = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol1 <> 0 and tgcol2 <> 0 and tgcol3 <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts > now + 4m and ts < now + 5m and tgcol1 <> 0 and tgcol2 <> 0 and tgcol3 <> 0
if $rows != 5 then
if $rows != 5 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol1 <> 0 and ts < now + 5m and ts < now + 5m and tgcol2 <> 0 and tgcol3 <> 0
if $rows != 5 then
if $rows != 5 then
return -1
endi
print =============== step13
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 200 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 200 then
return -1
endi
print =============== step14
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol1 = true
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol1 = true and tgcol2 = 1
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol1 = true and tgcol2 = 1
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol1 = true and tgcol2 = 1 and tgcol3 = 1
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
print =============== step15
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 50 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 50 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m and tgcol1 = true
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m and tgcol1 = true and tgcol2 = 1
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m and tgcol1 = true and tgcol2 = 1
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m and tgcol1 = true and tgcol2 = 1 and tgcol3 = 1
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
return -1
endi
print =============== step16
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt group by tgcol1
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt group by tgcol2
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt group by tgcol3
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
print =============== step17
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol1 = true group by tgcol1
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol1 = true and tgcol2 = 1 group by tgcol1
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol1 = true and tgcol2 = 1 and tgcol3 = 1 group by tgcol1
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
print =============== step18
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m group by tgcol2
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m and tgcol1 = true group by tgcol2
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m and tgcol1 = true and tgcol2 = 1 group by tgcol2
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m and tgcol1 = true and tgcol2 = 1 and tgcol3 = 1 group by tgcol2
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
return -1
endi
print =============== step19
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol1 = true and tgcol2 = 1 and tgcol3 = 1 partition by tgcol1 interval(1d)
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol1 = true and tgcol2 = 1 and tgcol3 = 1 partition by tgcol2 interval(1d)
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol1 = true and tgcol2 = 1 and tgcol3 = 1 partition by tgcol3 interval(1d)
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
print =============== clear
sql drop database $db
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -24,686 +24,686 @@ sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol1 smallint, tgcol2 bigi
$i = 0
while $i < 5
$tb = $tbPrefix . $i
sql create table $tb using $mt tags( 0, 0, 0, 0 )
sql create table $tb using $mt tags( 0, 0, 0, 0 )
$x = 0
while $x < $rowNum
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$x = $x + 1
endw
endw
$i = $i + 1
endw
endw
while $i < 10
$tb = $tbPrefix . $i
sql create table $tb using $mt tags( 1, 1, 1, 1 )
sql create table $tb using $mt tags( 1, 1, 1, 1 )
$x = 0
while $x < $rowNum
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$x = $x + 1
endw
endw
$i = $i + 1
endw
endw
print =============== step2
sql select * from $mt
if $rows != $totalNum then
if $rows != $totalNum then
return -1
endi
sql select * from $mt where ts < now + 4m
if $rows != 50 then
if $rows != 50 then
return -1
endi
sql select * from $mt where ts > now + 4m
if $rows != 150 then
if $rows != 150 then
return -1
endi
sql select * from $mt where ts = now + 4m
if $rows != 0 then
if $rows != 0 then
return -1
endi
sql select * from $mt where ts > now + 4m and ts < now + 5m
if $rows != 10 then
if $rows != 10 then
return -1
endi
print =============== step3
sql select * from $mt where tgcol1 = 0
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol1 <> 0
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol1 = 1
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol1 <> 1
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol1 = 1
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol1 <> 1
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol1 = 0
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol1 <> 0
if $rows != 100 then
if $rows != 100 then
return -1
endi
print =============== step4
sql select * from $mt where tgcol2 = 0
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol2 <> 0
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol2 = 1
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol2 <> 1
if $rows != 100 then
if $rows != 100 then
return -1
endi
print =============== step5
sql select * from $mt where tgcol3 = 0
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol3 <> 0
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol3 = 1
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol3 <> 1
if $rows != 100 then
if $rows != 100 then
return -1
endi
print =============== step6
sql select * from $mt where tgcol4 = 0
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol4 <> 0
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol4 = 1
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol4 <> 1
if $rows != 100 then
if $rows != 100 then
return -1
endi
print =============== step7
sql select * from $mt where ts > now + 4m and tgcol1 = 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol1 <> 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol1 = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol1 <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol1 = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol1 <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts > now + 4m and ts < now + 5m and tgcol1 <> 0
if $rows != 5 then
if $rows != 5 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol1 <> 0 and ts < now + 5m
if $rows != 5 then
if $rows != 5 then
return -1
endi
print =============== step8
sql select * from $mt where ts > now + 4m and tgcol2 = 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol2 <> 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol2 = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol2 <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol2 = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol2 <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts > now + 4m and ts < now + 5m and tgcol2 <> 0
if $rows != 5 then
if $rows != 5 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol2 <> 0 and ts < now + 5m
if $rows != 5 then
if $rows != 5 then
return -1
endi
print =============== step9
sql select * from $mt where ts > now + 4m and tgcol3 = 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol3 <> 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol3 = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol3 <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol3 = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol3 <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts > now + 4m and ts < now + 5m and tgcol3 <> 0
if $rows != 5 then
if $rows != 5 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol3 <> 0 and ts < now + 5m
if $rows != 5 then
if $rows != 5 then
return -1
endi
print =============== step10
sql select * from $mt where ts > now + 4m and tgcol4 = 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol4 <> 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol4 = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol4 <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol4 = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol4 <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts > now + 4m and ts < now + 5m and tgcol4 <> 0
if $rows != 5 then
if $rows != 5 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol4 <> 0 and ts < now + 5m
if $rows != 5 then
if $rows != 5 then
return -1
endi
print =============== step11
sql select * from $mt where ts > now + 4m and tgcol2 = 1 and tgcol1 = 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol2 <> 1 and tgcol1 <> 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol2 = 0 and tgcol1 = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol2 <> 0 and tgcol1 <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol2 = 0 and tgcol1 = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol2 <> 0 and tgcol1 <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts > now + 4m and ts < now + 5m and tgcol2 <> 0 and tgcol1 <> 0
if $rows != 5 then
if $rows != 5 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol2 <> 0 and ts < now + 5m and ts < now + 5m and tgcol1 <> 0
if $rows != 5 then
if $rows != 5 then
return -1
endi
print =============== step12
sql select * from $mt where ts > now + 4m and tgcol3 = 1 and tgcol1 = 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol3 <> 1 and tgcol1 <> 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol3 = 0 and tgcol1 = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol3 <> 0 and tgcol1 <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol3 = 0 and tgcol1 = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol3 <> 0 and tgcol1 <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts > now + 4m and ts < now + 5m and tgcol3 <> 0 and tgcol1 <> 0
if $rows != 5 then
if $rows != 5 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol3 <> 0 and ts < now + 5m and ts < now + 5m and tgcol1 <> 0
if $rows != 5 then
if $rows != 5 then
return -1
endi
print =============== step13
sql select * from $mt where ts > now + 4m and tgcol3 = 1 and tgcol2 = 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol3 <> 1 and tgcol2 <> 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol3 = 0 and tgcol2 = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol3 <> 0 and tgcol2 <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol3 = 0 and tgcol2 = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol3 <> 0 and tgcol2 <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts > now + 4m and ts < now + 5m and tgcol3 <> 0 and tgcol2 <> 0
if $rows != 5 then
if $rows != 5 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol3 <> 0 and ts < now + 5m and ts < now + 5m and tgcol2 <> 0
if $rows != 5 then
if $rows != 5 then
return -1
endi
print =============== step14
sql select * from $mt where ts > now + 4m and tgcol3 = 1 and tgcol4 = 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol3 <> 1 and tgcol4 <> 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol3 = 0 and tgcol4 = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol3 <> 0 and tgcol4 <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol3 = 0 and tgcol4 = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol3 <> 0 and tgcol4 <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts > now + 4m and ts < now + 5m and tgcol3 <> 0 and tgcol4 <> 0
if $rows != 5 then
if $rows != 5 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol3 <> 0 and ts < now + 5m and ts < now + 5m and tgcol4 <> 0
if $rows != 5 then
if $rows != 5 then
return -1
endi
print =============== step15
sql select * from $mt where ts > now + 4m and tgcol1 = 1 and tgcol2 = 1 and tgcol3 = 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol1 <> 1 and tgcol2 <> 1 and tgcol3 <> 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol1 = 0 and tgcol2 = 0 and tgcol3 = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol1 <> 0 and tgcol2 <> 0 and tgcol3 <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol1 = 0 and tgcol2 = 0 and tgcol3 = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol1 <> 0 and tgcol2 <> 0 and tgcol3 <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts > now + 4m and ts < now + 5m and tgcol1 <> 0 and tgcol2 <> 0 and tgcol3 <> 0
if $rows != 5 then
if $rows != 5 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol1 <> 0 and ts < now + 5m and ts < now + 5m and tgcol2 <> 0 and tgcol3 <> 0
if $rows != 5 then
if $rows != 5 then
return -1
endi
print =============== step16
sql select * from $mt where ts > now + 4m and tgcol4 = 1 and tgcol2 = 1 and tgcol3 = 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol4 <> 1 and tgcol2 <> 1 and tgcol3 <> 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol4 = 0 and tgcol2 = 0 and tgcol3 = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol4 <> 0 and tgcol2 <> 0 and tgcol3 <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol4 = 0 and tgcol2 = 0 and tgcol3 = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol4 <> 0 and tgcol2 <> 0 and tgcol3 <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts > now + 4m and ts < now + 5m and tgcol4 <> 0 and tgcol2 <> 0 and tgcol3 <> 0
if $rows != 5 then
if $rows != 5 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol4 <> 0 and ts < now + 5m and ts < now + 5m and tgcol2 <> 0 and tgcol3 <> 0
if $rows != 5 then
if $rows != 5 then
return -1
endi
print =============== step17
sql select * from $mt where ts > now + 4m and tgcol4 = 1 and tgcol2 = 1 and tgcol3 = 1 and tgcol1 = 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol4 <> 1 and tgcol2 <> 1 and tgcol3 <> 1 and tgcol1 <> 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol4 = 0 and tgcol2 = 0 and tgcol3 = 0 and tgcol1 = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol4 <> 0 and tgcol2 <> 0 and tgcol3 <> 0 and tgcol1 <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol4 = 0 and tgcol2 = 0 and tgcol3 = 0 and tgcol1 = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol4 <> 0 and tgcol2 <> 0 and tgcol3 <> 0 and tgcol1 <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts > now + 4m and ts < now + 5m and tgcol4 <> 0 and tgcol2 <> 0 and tgcol3 <> 0 and tgcol1 <> 0
if $rows != 5 then
if $rows != 5 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol4 <> 0 and ts < now + 5m and ts < now + 5m and tgcol2 <> 0 and tgcol3 <> 0 and tgcol1 <> 0
if $rows != 5 then
if $rows != 5 then
return -1
endi
print =============== step18
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 200 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 200 then
return -1
endi
print =============== step19
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol1 = 1
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol1 = 1 and tgcol2 = 1
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol1 = 1 and tgcol2 = 1
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol1 = 1 and tgcol2 = 1 and tgcol3 = 1
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol1 = 1 and tgcol2 = 1 and tgcol3 = 1 and tgcol4 = 1
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
print =============== step20
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 50 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 50 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m and tgcol1 = 1
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m and tgcol1 = 1 and tgcol2 = 1
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m and tgcol1 = 1 and tgcol2 = 1
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m and tgcol1 = 1 and tgcol2 = 1 and tgcol3 = 1
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m and tgcol1 = 1 and tgcol2 = 1 and tgcol3 = 1 and tgcol4 = 1
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
return -1
endi
print =============== step21
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt group by tgcol1
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt group by tgcol2
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt group by tgcol3
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt group by tgcol4
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
print =============== step22
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol1 = 1 group by tgcol1
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol1 = 1 and tgcol2 = 1 group by tgcol1
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol1 = 1 and tgcol2 = 1 and tgcol3 = 1 group by tgcol1
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol1 = 1 and tgcol2 = 1 and tgcol3 = 1 and tgcol4 = 1 group by tgcol1
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
print =============== step23
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m group by tgcol2
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m and tgcol1 = 1 group by tgcol2
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m and tgcol1 = 1 and tgcol2 = 1 group by tgcol2
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m and tgcol1 = 1 and tgcol2 = 1 and tgcol3 = 1 group by tgcol2
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m and tgcol1 = 1 and tgcol2 = 1 and tgcol3 = 1 and tgcol4 = 1 group by tgcol2
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
return -1
endi
print =============== step24
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol1 = 1 and tgcol2 = 1 and tgcol3 = 1 partition by tgcol1 interval(1d)
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol1 = 1 and tgcol2 = 1 and tgcol3 = 1 partition by tgcol2 interval(1d)
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol1 = 1 and tgcol2 = 1 and tgcol3 = 1 partition by tgcol2 interval(1d)
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol1 = 1 and tgcol2 = 1 and tgcol3 = 1 partition by tgcol3 interval(1d)
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol1 = 1 and tgcol2 = 1 and tgcol3 = 1 and tgcol4 = 1 partition by tgcol4 interval(1d)
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
print =============== clear
sql drop database $db
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -25,39 +25,39 @@ $mt = $mtPrefix . $i
$tb = $tbPrefix . $i
sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol1 bool, tgcol2 int)
sql create table $tb using $mt tags( 1, 2 )
sql insert into $tb values(now, 1)
sql insert into $tb values(now, 1)
sql select * from $mt where tgcol2 = 2
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != 1 then
if $data01 != 1 then
return -1
endi
if $data02 != 1 then
return -1
endi
if $data03 != 2 then
if $data03 != 2 then
return -1
endi
sql alter table $mt drop tag tgcol2
sql alter table $mt add tag tgcol4 int
sql reset query cache
sql alter table $tb set tag tgcol4 =4
sql alter table $tb set tag tgcol4 =4
sql reset query cache
sql select * from $mt where tgcol4 = 4
print $data01 $data02 $data03
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != 1 then
if $data01 != 1 then
return -1
endi
if $data02 != 1 then
return -1
endi
if $data03 != 4 then
if $data03 != 4 then
return -1
endi
@ -71,61 +71,61 @@ $mt = $mtPrefix . $i
$tb = $tbPrefix . $i
sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol1 smallint, tgcol2 tinyint)
sql create table $tb using $mt tags( 1, 2 )
sql insert into $tb values(now, 1)
sql insert into $tb values(now, 1)
sql select * from $mt where tgcol2 = 2
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != 1 then
if $data01 != 1 then
return -1
endi
if $data02 != 1 then
if $data02 != 1 then
return -1
endi
if $data03 != 2 then
if $data03 != 2 then
return -1
endi
sql alter table $mt drop tag tgcol2
sql alter table $mt add tag tgcol4 tinyint
sql reset query cache
sql alter table $tb set tag tgcol4=4
sql alter table $tb set tag tgcol4=4
sql reset query cache
sql select * from $mt where tgcol4 = 4
print $data01 $data02 $data03
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != 1 then
if $data01 != 1 then
return -1
endi
if $data02 != 1 then
if $data02 != 1 then
return -1
endi
if $data03 != 4 then
if $data03 != 4 then
return -1
endi
sql select * from $mt where tgcol2 = 1 -x step3
return -1
step3:
print =============== step4
$i = 4
$mt = $mtPrefix . $i
$tb = $tbPrefix . $i
sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol1 bigint, tgcol2 float)
sql create table $tb using $mt tags( 1, 2 )
sql insert into $tb values(now, 1)
sql insert into $tb values(now, 1)
sql select * from $mt where tgcol2 = 2
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != 1 then
if $data01 != 1 then
return -1
endi
if $data02 != 1 then
if $data02 != 1 then
return -1
endi
if $data03 != 2.00000 then
@ -134,34 +134,34 @@ endi
sql describe $tb
print sql describe $tb
if $data21 != BIGINT then
if $data21 != BIGINT then
return -1
endi
if $data31 != FLOAT then
if $data31 != FLOAT then
return -1
endi
if $data23 != TAG then
if $data23 != TAG then
return -1
endi
if $data33 != TAG then
if $data33 != TAG then
return -1
endi
sql alter table $mt drop tag tgcol2
sql alter table $mt add tag tgcol4 float
sql reset query cache
sql alter table $tb set tag tgcol4=4
sql alter table $tb set tag tgcol4=4
sql reset query cache
sql select * from $mt where tgcol4 = 4
print $data01 $data02 $data03
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != 1 then
if $data01 != 1 then
return -1
endi
if $data02 != 1 then
if $data02 != 1 then
return -1
endi
if $data03 != 4.00000 then
@ -171,184 +171,184 @@ endi
sql select * from $mt where tgcol2 = 1 -x step4
return -1
step4:
print =============== step5
$i = 5
$mt = $mtPrefix . $i
$tb = $tbPrefix . $i
sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol1 double, tgcol2 binary(10))
sql create table $tb using $mt tags( 1, '2' )
sql insert into $tb values(now, 1)
sql insert into $tb values(now, 1)
sql select * from $mt where tgcol2 = '2'
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != 1 then
if $data01 != 1 then
return -1
endi
if $data02 != 1.000000000 then
if $data02 != 1.000000000 then
return -1
endi
if $data03 != 2 then
if $data03 != 2 then
return -1
endi
sql alter table $mt drop tag tgcol2
sql alter table $mt add tag tgcol4 smallint
sql reset query cache
sql alter table $tb set tag tgcol4=4
sql alter table $tb set tag tgcol4=4
sql reset query cache
sql select * from $mt where tgcol4 = 4
print $data01 $data02 $data03
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != 1 then
if $data01 != 1 then
return -1
endi
if $data02 != 1.000000000 then
if $data02 != 1.000000000 then
return -1
endi
if $data03 != 4 then
if $data03 != 4 then
return -1
endi
sql select * from $mt where tgcol3 = '1' -x step5
return -1
step5:
print =============== step6
$i = 6
$mt = $mtPrefix . $i
$tb = $tbPrefix . $i
sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol1 bool, tgcol2 int, tgcol3 tinyint)
sql create table $tb using $mt tags( 1, 2, 3 )
sql insert into $tb values(now, 1)
sql insert into $tb values(now, 1)
sql select * from $mt where tgcol2 = 2
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != 1 then
if $data01 != 1 then
return -1
endi
if $data02 != 1 then
return -1
endi
if $data03 != 2 then
if $data03 != 2 then
return -1
endi
if $data04 != 3 then
if $data04 != 3 then
return -1
endi
sql alter table $mt rename tag tgcol1 tgcol4
sql alter table $mt drop tag tgcol2
sql alter table $mt drop tag tgcol2
sql alter table $mt drop tag tgcol3
sql alter table $mt add tag tgcol5 binary(10)
sql alter table $mt add tag tgcol6 binary(10)
sql reset query cache
sql alter table $tb set tag tgcol4=false
sql alter table $tb set tag tgcol5='5'
sql alter table $tb set tag tgcol6='6'
sql alter table $tb set tag tgcol4=false
sql alter table $tb set tag tgcol5='5'
sql alter table $tb set tag tgcol6='6'
sql reset query cache
sql select * from $mt where tgcol5 = '5'
print $data01 $data02 $data03
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != 1 then
if $data01 != 1 then
return -1
endi
if $data02 != 0 then
return -1
endi
if $data03 != 5 then
if $data03 != 5 then
return -1
endi
if $data04 != 6 then
if $data04 != 6 then
return -1
endi
sql select * from $mt where tgcol6 = '6'
print $data01 $data02 $data03
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != 1 then
if $data01 != 1 then
return -1
endi
if $data02 != 0 then
return -1
endi
if $data03 != 5 then
if $data03 != 5 then
return -1
endi
if $data04 != 6 then
if $data04 != 6 then
return -1
endi
sql select * from $mt where tgcol4 = 1
if $rows != 0 then
if $rows != 0 then
return -1
endi
sql select * from $mt where tgcol3 = 1 -x step52
return -1
step52:
print =============== step7
$i = 7
$mt = $mtPrefix . $i
$tb = $tbPrefix . $i
sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol1 smallint, tgcol2 tinyint, tgcol3 binary(10))
sql create table $tb using $mt tags( 1, 2, '3' )
sql insert into $tb values(now, 1)
sql insert into $tb values(now, 1)
sql select * from $mt where tgcol3 = '3'
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != 1 then
if $data01 != 1 then
return -1
endi
if $data02 != 1 then
if $data02 != 1 then
return -1
endi
if $data03 != 2 then
if $data03 != 2 then
return -1
endi
if $data04 != 3 then
if $data04 != 3 then
return -1
endi
sql alter table $mt rename tag tgcol1 tgcol4
sql alter table $mt drop tag tgcol2
sql alter table $mt drop tag tgcol2
sql alter table $mt drop tag tgcol3
sql alter table $mt add tag tgcol5 bigint
sql alter table $mt add tag tgcol6 tinyint
sql reset query cache
sql alter table $tb set tag tgcol4=4
sql alter table $tb set tag tgcol5=5
sql alter table $tb set tag tgcol6=6
sql alter table $tb set tag tgcol4=4
sql alter table $tb set tag tgcol5=5
sql alter table $tb set tag tgcol6=6
sql reset query cache
sql select * from $mt where tgcol6 = 6
print $data01 $data02 $data03
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != 1 then
if $data01 != 1 then
return -1
endi
if $data02 != 4 then
if $data02 != 4 then
return -1
endi
if $data03 != 5 then
if $data03 != 5 then
return -1
endi
if $data04 != 6 then
if $data04 != 6 then
return -1
endi
@ -358,55 +358,55 @@ step71:
sql select * from $mt where tgcol3 = 1 -x step72
return -1
step72:
print =============== step8
$i = 8
$mt = $mtPrefix . $i
$tb = $tbPrefix . $i
sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol1 bigint, tgcol2 float, tgcol3 binary(10))
sql create table $tb using $mt tags( 1, 2, '3' )
sql insert into $tb values(now, 1)
sql insert into $tb values(now, 1)
sql select * from $mt where tgcol3 = '3'
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != 1 then
if $data01 != 1 then
return -1
endi
if $data02 != 1 then
if $data02 != 1 then
return -1
endi
if $data03 != 2.00000 then
return -1
endi
if $data04 != 3 then
if $data04 != 3 then
return -1
endi
sql alter table $mt rename tag tgcol1 tgcol4
sql alter table $mt drop tag tgcol2
sql alter table $mt drop tag tgcol2
sql alter table $mt drop tag tgcol3
sql alter table $mt add tag tgcol5 binary(17)
sql alter table $mt add tag tgcol6 bool
sql reset query cache
sql alter table $tb set tag tgcol4=4
sql alter table $tb set tag tgcol5='5'
sql alter table $tb set tag tgcol4=4
sql alter table $tb set tag tgcol5='5'
sql alter table $tb set tag tgcol6='1'
sql reset query cache
sql select * from $mt where tgcol5 = '5'
print select * from $mt where tgcol5 = 5
print $data01 $data02 $data03 $data04
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != 1 then
if $data01 != 1 then
return -1
endi
if $data02 != 4 then
if $data02 != 4 then
return -1
endi
if $data03 != 5 then
if $data03 != 5 then
return -1
endi
if $data04 != 0 then
@ -426,45 +426,45 @@ $mt = $mtPrefix . $i
$tb = $tbPrefix . $i
sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol1 double, tgcol2 binary(10), tgcol3 binary(10))
sql create table $tb using $mt tags( 1, '2', '3' )
sql insert into $tb values(now, 1)
sql insert into $tb values(now, 1)
sql select * from $mt where tgcol2 = '2'
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != 1 then
if $data01 != 1 then
return -1
endi
if $data02 != 1.000000000 then
if $data02 != 1.000000000 then
return -1
endi
if $data03 != 2 then
if $data03 != 2 then
return -1
endi
if $data04 != 3 then
if $data04 != 3 then
return -1
endi
sql alter table $mt rename tag tgcol1 tgcol4
sql alter table $mt drop tag tgcol2
sql alter table $mt drop tag tgcol2
sql alter table $mt drop tag tgcol3
sql alter table $mt add tag tgcol5 bool
sql alter table $mt add tag tgcol6 float
sql reset query cache
sql alter table $tb set tag tgcol4=4
sql alter table $tb set tag tgcol4=4
sql alter table $tb set tag tgcol5=1
sql alter table $tb set tag tgcol6=6
sql reset query cache
sql select * from $mt where tgcol5 = 1
print $data01 $data02 $data03
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != 1 then
if $data01 != 1 then
return -1
endi
if $data02 != 4.000000000 then
if $data02 != 4.000000000 then
return -1
endi
if $data03 != 1 then
@ -487,24 +487,24 @@ $mt = $mtPrefix . $i
$tb = $tbPrefix . $i
sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol1 binary(10), tgcol2 binary(10), tgcol3 binary(10), tgcol4 binary(10))
sql create table $tb using $mt tags( '1', '2', '3', '4' )
sql insert into $tb values(now, 1)
sql insert into $tb values(now, 1)
sql select * from $mt where tgcol4 = '4'
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != 1 then
if $data01 != 1 then
return -1
endi
if $data02 != 1 then
if $data02 != 1 then
return -1
endi
if $data03 != 2 then
if $data03 != 2 then
return -1
endi
if $data04 != 3 then
if $data04 != 3 then
return -1
endi
if $data05 != 4 then
if $data05 != 4 then
return -1
endi
@ -512,7 +512,7 @@ sql alter table $mt rename tag tgcol1 tgcol4 -x step103
return -1
step103:
sql alter table $mt drop tag tgcol2
sql alter table $mt drop tag tgcol2
sql alter table $mt drop tag tgcol3
sql alter table $mt drop tag tgcol4
sql reset query cache
@ -520,28 +520,28 @@ sql alter table $mt add tag tgcol4 binary(10)
sql alter table $mt add tag tgcol5 bool
sql reset query cache
sql alter table $tb set tag tgcol4='4'
sql alter table $tb set tag tgcol4='4'
sql alter table $tb set tag tgcol5=false
sql reset query cache
sql select * from $mt where tgcol4 = '4'
print $data01 $data02 $data03
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != 1 then
if $data01 != 1 then
return -1
endi
if $data02 != 1 then
if $data02 != 1 then
return -1
endi
if $data03 != 4 then
if $data03 != 4 then
return -1
endi
if $data04 != 0 then
return -1
endi
if $data05 != null then
if $data05 != null then
return -1
endi
@ -558,27 +558,27 @@ $mt = $mtPrefix . $i
$tb = $tbPrefix . $i
sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol1 bool, tgcol2 int, tgcol3 smallint, tgcol4 float, tgcol5 binary(10))
sql create table $tb using $mt tags( 1, 2, 3, 4, '5' )
sql insert into $tb values(now, 1)
sql insert into $tb values(now, 1)
sql select * from $mt where tgcol1 = 1
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != 1 then
if $data01 != 1 then
return -1
endi
if $data02 != 1 then
return -1
endi
if $data03 != 2 then
if $data03 != 2 then
return -1
endi
if $data04 != 3 then
if $data04 != 3 then
return -1
endi
if $data05 != 4.00000 then
return -1
endi
if $data06 != 5 then
if $data06 != 5 then
return -1
endi
@ -586,7 +586,7 @@ sql alter table $mt rename tag tgcol1 tgcol4 -x step114
return -1
step114:
sql alter table $mt drop tag tgcol2
sql alter table $mt drop tag tgcol2
sql alter table $mt drop tag tgcol3
sql alter table $mt drop tag tgcol4
sql alter table $mt drop tag tgcol5
@ -598,7 +598,7 @@ sql alter table $mt add tag tgcol7 bigint
sql alter table $mt add tag tgcol8 smallint
sql reset query cache
sql alter table $tb set tag tgcol4='4'
sql alter table $tb set tag tgcol4='4'
sql alter table $tb set tag tgcol5=5
sql alter table $tb set tag tgcol6='6'
sql alter table $tb set tag tgcol7=7
@ -607,28 +607,28 @@ sql reset query cache
sql select * from $mt where tgcol5 =5
print $data01 $data02 $data03
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != 1 then
if $data01 != 1 then
return -1
endi
if $data02 != 1 then
return -1
endi
if $data03 != 4 then
if $data03 != 4 then
return -1
endi
if $data04 != 5 then
if $data04 != 5 then
return -1
endi
if $data05 != 6 then
if $data05 != 6 then
return -1
endi
if $data06 != 7 then
if $data06 != 7 then
return -1
endi
if $data07 != 8 then
if $data07 != 8 then
return -1
endi
@ -648,34 +648,34 @@ $mt = $mtPrefix . $i
$tb = $tbPrefix . $i
sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol1 bool, tgcol2 smallint, tgcol3 float, tgcol4 double, tgcol5 binary(10), tgcol6 binary(20))
sql create table $tb using $mt tags( 1, 2, 3, 4, '5', '6' )
sql insert into $tb values(now, 1)
sql insert into $tb values(now, 1)
sql select * from $mt where tgcol1 = 1
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != 1 then
if $data01 != 1 then
return -1
endi
if $data02 != 1 then
return -1
endi
if $data03 != 2 then
if $data03 != 2 then
return -1
endi
if $data04 != 3.00000 then
return -1
endi
if $data05 != 4.000000000 then
if $data05 != 4.000000000 then
return -1
endi
if $data06 != 5 then
if $data06 != 5 then
return -1
endi
if $data07 != 6 then
if $data07 != 6 then
return -1
endi
sql alter table $mt drop tag tgcol2
sql alter table $mt drop tag tgcol2
sql alter table $mt drop tag tgcol3
sql alter table $mt drop tag tgcol4
sql alter table $mt drop tag tgcol5
@ -686,8 +686,8 @@ sql alter table $mt add tag tgcol4 binary(10)
sql alter table $mt add tag tgcol5 bigint
sql reset query cache
sql alter table $tb set tag tgcol1=false
sql alter table $tb set tag tgcol2='5'
sql alter table $tb set tag tgcol1=false
sql alter table $tb set tag tgcol2='5'
sql alter table $tb set tag tgcol3=4
sql alter table $tb set tag tgcol4='3'
sql alter table $tb set tag tgcol5=2
@ -696,28 +696,28 @@ sql reset query cache
sql select * from $mt where tgcol4 = '3'
print $data01 $data02 $data03
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != 1 then
if $data01 != 1 then
return -1
endi
if $data02 != 0 then
return -1
endi
if $data03 != 1 then
if $data03 != 1 then
return -1
endi
if $data04 != 5 then
if $data04 != 5 then
return -1
endi
if $data05 != 4 then
if $data05 != 4 then
return -1
endi
if $data06 != 3 then
if $data06 != 3 then
return -1
endi
if $data07 != 2 then
if $data07 != 2 then
return -1
endi
@ -747,34 +747,34 @@ $mt = $mtPrefix . $i
$tb = $tbPrefix . $i
sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol1 binary(10), tgcol2 int, tgcol3 smallint, tgcol4 binary(11), tgcol5 double, tgcol6 binary(20))
sql create table $tb using $mt tags( '1', 2, 3, '4', 5, '6' )
sql insert into $tb values(now, 1)
sql insert into $tb values(now, 1)
sql select * from $mt where tgcol1 = '1'
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != 1 then
if $data01 != 1 then
return -1
endi
if $data02 != 1 then
if $data02 != 1 then
return -1
endi
if $data03 != 2 then
if $data03 != 2 then
return -1
endi
if $data04 != 3 then
if $data04 != 3 then
return -1
endi
if $data05 != 4 then
if $data05 != 4 then
return -1
endi
if $data06 != 5.000000000 then
if $data06 != 5.000000000 then
return -1
endi
if $data07 != 6 then
if $data07 != 6 then
return -1
endi
sql alter table $mt drop tag tgcol2
sql alter table $mt drop tag tgcol2
sql alter table $mt drop tag tgcol4
sql alter table $mt drop tag tgcol6
sql reset query cache
@ -783,8 +783,8 @@ sql alter table $mt add tag tgcol4 int
sql alter table $mt add tag tgcol6 bigint
sql reset query cache
sql alter table $tb set tag tgcol1='7'
sql alter table $tb set tag tgcol2='8'
sql alter table $tb set tag tgcol1='7'
sql alter table $tb set tag tgcol2='8'
sql alter table $tb set tag tgcol3=9
sql alter table $tb set tag tgcol4=10
sql alter table $tb set tag tgcol5=11
@ -793,28 +793,28 @@ sql reset query cache
sql select * from $mt where tgcol2 = '8'
print $data01 $data02 $data03
if $rows != 1 then
if $rows != 1 then
return -1
endi
if $data01 != 1 then
if $data01 != 1 then
return -1
endi
if $data02 != 7 then
if $data02 != 7 then
return -1
endi
if $data03 != 9 then
if $data03 != 9 then
return -1
endi
if $data04 != 11.000000000 then
if $data04 != 11.000000000 then
return -1
endi
if $data05 != 8 then
if $data05 != 8 then
return -1
endi
if $data06 != 10 then
if $data06 != 10 then
return -1
endi
if $data07 != 12 then
if $data07 != 12 then
return -1
endi
@ -824,7 +824,7 @@ $mt = $mtPrefix . $i
$tb = $tbPrefix . $i
sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol1 bool, tgcol2 bigint)
sql create table $tb using $mt tags( 1, 1 )
sql insert into $tb values(now, 1)
sql insert into $tb values(now, 1)
sql alter table $mt add tag tgcol3 binary(10)
sql alter table $mt add tag tgcol4 int
@ -834,13 +834,13 @@ sql alter table $mt add tag tgcol6 bigint
sql reset query cache
sql alter table $mt drop tag tgcol6
sql alter table $mt add tag tgcol7 bigint
sql alter table $mt add tag tgcol8 bigint
sql alter table $mt add tag tgcol8 bigint
print =============== clear
sql drop database $db
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -24,50 +24,50 @@ sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol bigint)
$i = 0
while $i < 5
$tb = $tbPrefix . $i
sql create table $tb using $mt tags( 0 )
sql create table $tb using $mt tags( 0 )
$x = 0
while $x < $rowNum
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$x = $x + 1
endw
endw
$i = $i + 1
endw
endw
while $i < 10
$tb = $tbPrefix . $i
sql create table $tb using $mt tags( 1 )
sql create table $tb using $mt tags( 1 )
$x = 0
while $x < $rowNum
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$x = $x + 1
endw
endw
$i = $i + 1
endw
endw
print =============== step2
sql select * from $tb
if $rows != $rowNum then
if $rows != $rowNum then
return -1
endi
sql select * from $tb where ts < now + 4m
if $rows != 5 then
if $rows != 5 then
return -1
endi
sql select * from $tb where ts <= now + 4m
if $rows != 5 then
if $rows != 5 then
return -1
endi
sql select * from $tb where ts > now + 4m
if $rows != 15 then
if $rows != 15 then
return -1
endi
sql select * from $tb where ts >= now + 4m
if $rows != 15 then
if $rows != 15 then
return -1
endi
sql select * from $tb where ts > now + 4m and ts < now + 5m
if $rows != 1 then
if $rows != 1 then
return -1
endi
sql select * from $tb where ts < now + 4m and ts > now + 5m
@ -83,155 +83,155 @@ if $rows != 0 then
return -1
endi
sql select * from $tb where ts > now + 4m and ts > now + 5m and ts < now + 6m
if $rows != 1 then
if $rows != 1 then
return -1
endi
print =============== step3
sql select * from $mt
if $rows != $totalNum then
if $rows != $totalNum then
return -1
endi
sql select * from $mt where ts < now + 4m
if $rows != 50 then
if $rows != 50 then
return -1
endi
sql select * from $mt where ts > now + 4m
if $rows != 150 then
if $rows != 150 then
return -1
endi
sql select * from $mt where ts = now + 4m
if $rows != 0 then
if $rows != 0 then
return -1
endi
sql select * from $mt where ts > now + 4m and ts < now + 5m
if $rows != 10 then
if $rows != 10 then
return -1
endi
print =============== step4
sql select * from $mt where tgcol = 0
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol <> 0
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol = 1
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol <> 1
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol = 1
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol <> 1
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol = 0
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol <> 0
if $rows != 100 then
if $rows != 100 then
return -1
endi
print =============== step5
sql select * from $mt where ts > now + 4m and tgcol = 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol <> 1
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol = 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol <> 0
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts > now + 4m and ts < now + 5m and tgcol <> 0
if $rows != 5 then
if $rows != 5 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol <> 0 and ts < now + 5m
if $rows != 5 then
if $rows != 5 then
return -1
endi
print =============== step6
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 200 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 200 then
return -1
endi
print =============== step7
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol = 1
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
print =============== step8
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 50 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 50 then
return -1
endi
print =============== step9
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt group by tgcol
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
print =============== step10
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol = 1 group by tgcol
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
print =============== step11
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
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
return -1
endi
print =============== step12
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt partition by tgcol interval(1d)
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
print =============== clear
sql drop database $db
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -24,50 +24,50 @@ sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol binary(10))
$i = 0
while $i < 5
$tb = $tbPrefix . $i
sql create table $tb using $mt tags( '0' )
sql create table $tb using $mt tags( '0' )
$x = 0
while $x < $rowNum
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$x = $x + 1
endw
endw
$i = $i + 1
endw
endw
while $i < 10
$tb = $tbPrefix . $i
sql create table $tb using $mt tags( '1' )
sql create table $tb using $mt tags( '1' )
$x = 0
while $x < $rowNum
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$x = $x + 1
endw
endw
$i = $i + 1
endw
endw
print =============== step2
sql select * from $tb
if $rows != $rowNum then
if $rows != $rowNum then
return -1
endi
sql select * from $tb where ts < now + 4m
if $rows != 5 then
if $rows != 5 then
return -1
endi
sql select * from $tb where ts <= now + 4m
if $rows != 5 then
if $rows != 5 then
return -1
endi
sql select * from $tb where ts > now + 4m
if $rows != 15 then
if $rows != 15 then
return -1
endi
sql select * from $tb where ts >= now + 4m
if $rows != 15 then
if $rows != 15 then
return -1
endi
sql select * from $tb where ts > now + 4m and ts < now + 5m
if $rows != 1 then
if $rows != 1 then
return -1
endi
sql select * from $tb where ts < now + 4m and ts > now + 5m
@ -83,155 +83,155 @@ if $rows != 0 then
return -1
endi
sql select * from $tb where ts > now + 4m and ts > now + 5m and ts < now + 6m
if $rows != 1 then
if $rows != 1 then
return -1
endi
print =============== step3
sql select * from $mt
if $rows != $totalNum then
if $rows != $totalNum then
return -1
endi
sql select * from $mt where ts < now + 4m
if $rows != 50 then
if $rows != 50 then
return -1
endi
sql select * from $mt where ts > now + 4m
if $rows != 150 then
if $rows != 150 then
return -1
endi
sql select * from $mt where ts = now + 4m
if $rows != 0 then
if $rows != 0 then
return -1
endi
sql select * from $mt where ts > now + 4m and ts < now + 5m
if $rows != 10 then
if $rows != 10 then
return -1
endi
print =============== step4
sql select * from $mt where tgcol = '0'
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol <> '0'
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol = '1'
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol <> '1'
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol = '1'
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol <> '1'
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol = '0'
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol <> '0'
if $rows != 100 then
if $rows != 100 then
return -1
endi
print =============== step5
sql select * from $mt where ts > now + 4m and tgcol = '1'
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol <> '1'
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol = '0'
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol <> '0'
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol = '0'
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol <> '0'
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts > now + 4m and ts < now + 5m and tgcol <> '0'
if $rows != 5 then
if $rows != 5 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol <> '0' and ts < now + 5m
if $rows != 5 then
if $rows != 5 then
return -1
endi
print =============== step6
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 200 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 200 then
return -1
endi
print =============== step7
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol = '1'
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
print =============== step8
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 50 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 50 then
return -1
endi
print =============== step9
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt group by tgcol
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
print =============== step10
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol = '1' group by tgcol
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
print =============== step11
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
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
return -1
endi
print =============== step12
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt partition by tgcol interval(1d)
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
print =============== clear
sql drop database $db
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -24,283 +24,283 @@ sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol binary(5), tgcol2 bina
$i = 0
while $i < 5
$tb = $tbPrefix . $i
sql create table $tb using $mt tags( '0', '0' )
sql create table $tb using $mt tags( '0', '0' )
$x = 0
while $x < $rowNum
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$x = $x + 1
endw
endw
$i = $i + 1
endw
endw
while $i < 10
$tb = $tbPrefix . $i
sql create table $tb using $mt tags( '1', '1' )
sql create table $tb using $mt tags( '1', '1' )
$x = 0
while $x < $rowNum
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$ms = $x . m
sql insert into $tb values (now + $ms , $x )
$x = $x + 1
endw
endw
$i = $i + 1
endw
endw
print =============== step2
sql select * from $mt
if $rows != $totalNum then
if $rows != $totalNum then
return -1
endi
sql select * from $mt where ts < now + 4m
if $rows != 50 then
if $rows != 50 then
return -1
endi
sql select * from $mt where ts > now + 4m
if $rows != 150 then
if $rows != 150 then
return -1
endi
sql select * from $mt where ts = now + 4m
if $rows != 0 then
if $rows != 0 then
return -1
endi
sql select * from $mt where ts > now + 4m and ts < now + 5m
if $rows != 10 then
if $rows != 10 then
return -1
endi
print =============== step3
sql select * from $mt where tgcol = '0'
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol <> '0'
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol = '1'
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol <> '1'
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol = '1'
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol <> '1'
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol = '0'
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol <> '0'
if $rows != 100 then
if $rows != 100 then
return -1
endi
print =============== step4
sql select * from $mt where tgcol2 = '0'
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol2 <> '0'
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol2 = '1'
if $rows != 100 then
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol2 <> '1'
if $rows != 100 then
if $rows != 100 then
return -1
endi
print =============== step5
sql select * from $mt where ts > now + 4m and tgcol = '1'
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol <> '1'
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol = '0'
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol <> '0'
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol = '0'
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol <> '0'
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts > now + 4m and ts < now + 5m and tgcol <> '0'
if $rows != 5 then
if $rows != 5 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol <> '0' and ts < now + 5m
if $rows != 5 then
if $rows != 5 then
return -1
endi
print =============== step6
sql select * from $mt where ts > now + 4m and tgcol2 = '1'
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol2 <> '1'
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol2 = '0'
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol2 <> '0'
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol2 = '0'
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol2 <> '0'
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts > now + 4m and ts < now + 5m and tgcol2 <> '0'
if $rows != 5 then
if $rows != 5 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol2 <> '0' and ts < now + 5m
if $rows != 5 then
if $rows != 5 then
return -1
endi
print =============== step7
sql select * from $mt where ts > now + 4m and tgcol2 = '1' and tgcol = '1'
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol2 <> '1' and tgcol <> '1'
if $rows != 75 then
if $rows != 75 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol2 = '0' and tgcol = '0'
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts < now + 4m and tgcol2 <> '0' and tgcol <> '0'
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol2 = '0' and tgcol = '0'
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts <= now + 4m and tgcol2 <> '0' and tgcol <> '0'
if $rows != 25 then
if $rows != 25 then
return -1
endi
sql select * from $mt where ts > now + 4m and ts < now + 5m and tgcol2 <> '0' and tgcol <> '0'
if $rows != 5 then
if $rows != 5 then
return -1
endi
sql select * from $mt where ts > now + 4m and tgcol2 <> '0' and ts < now + 5m and ts < now + 5m and tgcol <> '0'
if $rows != 5 then
if $rows != 5 then
return -1
endi
print =============== step8
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 200 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 200 then
return -1
endi
print =============== step9
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol = '1'
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol2 = '1'
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol = '1' and tgcol2 = '1'
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
print =============== step10
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 50 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 50 then
return -1
endi
print =============== step11
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt group by tgcol
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
print =============== step12
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol = '1' group by tgcol
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol2 = '1' group by tgcol
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tgcol = '1' and tgcol2 = '1' group by tgcol
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
print =============== step13
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
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 25 then
return -1
endi
print =============== step14
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt partition by tgcol interval(1d)
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
return -1
endi
print =============== clear
sql drop database $db
sql select * from information_schema.ins_databases
if $rows != 2 then
if $rows != 2 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT

Some files were not shown because too many files have changed in this diff Show More