Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
77f27b62
T
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1192
Star
22018
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
77f27b62
编写于
8月 16, 2022
作者:
H
Hongze Cheng
浏览文件
操作
浏览文件
下载
差异文件
Merge branch '3.0' of
https://github.com/taosdata/TDengine
into refact/tsdb_last
上级
fde0bf83
131b7670
变更
16
展开全部
隐藏空白更改
内联
并排
Showing
16 changed file
with
2153 addition
and
1780 deletion
+2153
-1780
docs/examples/node/nativeexample/subscribe_demo.js
docs/examples/node/nativeexample/subscribe_demo.js
+3
-2
docs/zh/07-develop/07-tmq.mdx
docs/zh/07-develop/07-tmq.mdx
+20
-4
docs/zh/12-taos-sql/29-changes.md
docs/zh/12-taos-sql/29-changes.md
+103
-0
docs/zh/12-taos-sql/index.md
docs/zh/12-taos-sql/index.md
+1
-1
docs/zh/14-reference/12-config/index.md
docs/zh/14-reference/12-config/index.md
+170
-0
docs/zh/28-releases.md
docs/zh/28-releases.md
+1
-1
examples/c/tmq.c
examples/c/tmq.c
+11
-23
include/client/taos.h
include/client/taos.h
+22
-18
include/util/taoserror.h
include/util/taoserror.h
+1
-0
include/util/tref.h
include/util/tref.h
+2
-2
source/client/src/clientMain.c
source/client/src/clientMain.c
+1
-0
source/client/src/taosx.c
source/client/src/taosx.c
+1628
-0
source/client/src/tmq.c
source/client/src/tmq.c
+187
-1727
source/libs/executor/src/scanoperator.c
source/libs/executor/src/scanoperator.c
+1
-1
source/libs/planner/src/planLogicCreater.c
source/libs/planner/src/planLogicCreater.c
+1
-1
source/util/src/terror.c
source/util/src/terror.c
+1
-0
未找到文件。
docs/examples/node/nativeexample/subscribe_demo.js
浏览文件 @
77f27b62
...
@@ -28,7 +28,8 @@ function runConsumer() {
...
@@ -28,7 +28,8 @@ function runConsumer() {
console
.
log
(
msg
.
topicPartition
);
console
.
log
(
msg
.
topicPartition
);
console
.
log
(
msg
.
block
);
console
.
log
(
msg
.
block
);
console
.
log
(
msg
.
fields
)
console
.
log
(
msg
.
fields
)
consumer
.
commit
(
msg
);
// fixme(@xiaolei): commented temp, should be fixed.
//consumer.commit(msg);
console
.
log
(
`=======consumer
${
i
}
done`
)
console
.
log
(
`=======consumer
${
i
}
done`
)
}
}
...
@@ -48,4 +49,4 @@ try {
...
@@ -48,4 +49,4 @@ try {
cursor
.
close
();
cursor
.
close
();
conn
.
close
();
conn
.
close
();
},
2000
);
},
2000
);
}
}
\ No newline at end of file
docs/zh/07-develop/07-tmq.mdx
浏览文件 @
77f27b62
...
@@ -238,6 +238,9 @@ public class MetersDeserializer extends ReferenceDeserializer<Meters> {
...
@@ -238,6 +238,9 @@ public class MetersDeserializer extends ReferenceDeserializer<Meters> {
一个 consumer 支持同时订阅多个 topic。
一个 consumer 支持同时订阅多个 topic。
<Tabs defaultValue="java" groupId="lang">
<TabItem value="c" label="C">
```c
```c
// 创建订阅 topics 列表
// 创建订阅 topics 列表
tmq_list_t* topicList = tmq_list_new();
tmq_list_t* topicList = tmq_list_new();
...
@@ -248,8 +251,23 @@ tmq_list_destroy(topicList);
...
@@ -248,8 +251,23 @@ tmq_list_destroy(topicList);
```
```
</TabItem>
<TabItem value="java" label="Java">
```java
List<String> topics = new ArrayList<>();
topics.add("tmq_topic");
consumer.subscribe(topics);
```
</TabItem>
</Tabs>
## 消费
## 消费
以下代码展示了不同语言下如何对 TMQ 消息进行消费。
<Tabs defaultValue="java" groupId="lang">
<Tabs defaultValue="java" groupId="lang">
<TabItem value="c" label="C">
<TabItem value="c" label="C">
...
@@ -267,10 +285,6 @@ while (running) {
...
@@ -267,10 +285,6 @@ while (running) {
<TabItem value="java" label="Java">
<TabItem value="java" label="Java">
```java
```java
List<String> topics = new ArrayList<>();
topics.add("tmq_topic");
consumer.subscribe(topics);
while(running){
while(running){
ConsumerRecords<Meters> meters = consumer.poll(Duration.ofMillis(100));
ConsumerRecords<Meters> meters = consumer.poll(Duration.ofMillis(100));
for (Meters meter : meters) {
for (Meters meter : meters) {
...
@@ -284,6 +298,8 @@ while(running){
...
@@ -284,6 +298,8 @@ while(running){
## 结束消费
## 结束消费
消费结束后,应当取消订阅。
<Tabs defaultValue="java" groupId="lang">
<Tabs defaultValue="java" groupId="lang">
<TabItem value="c" label="C">
<TabItem value="c" label="C">
...
...
docs/zh/12-taos-sql/29-changes.md
0 → 100644
浏览文件 @
77f27b62
---
sidebar_label
:
3.0 版本语法变更
title
:
3.0 版本语法变更
description
:
"
TDengine
3.0
版本的语法变更说明"
---
## SQL 基本元素变更
| # |
**元素**
|
**差异性**
|
**说明**
|
| - | :-------: | :--------: | :------- |
| 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 中,普通表的数据模型中可使用以下数据类型。
| # |
**语句**
|
**差异性**
|
**说明**
|
| - | :-------: | :--------: | :------- |
| 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>
BLOCKS:VNODE使用的内存块数。3.0版本使用BUFFER来表示VNODE写入内存池的大小。
</li><li>
UPDATE:更新操作的支持模式。3.0版本所有数据库都支持部分列更新。
</li><li>
CACHELAST:缓存最新一行数据的模式。3.0版本用CACHEMODEL代替。
</li><li>
COMP:3.0版本暂不支持修改。
<br/>
新增
</li><li>
CACHEMODEL:表示是否在内存中缓存子表的最近数据。
</li><li>
CACHESIZE:表示缓存子表最近数据的内存大小。
</li><li>
WAL_FSYNC_PERIOD:代替原FSYNC参数。
</li><li>
WAL_LEVEL:代替原WAL参数。
<br/>
调整
</li><li>
REPLICA:3.0.0版本暂不支持修改。
</li><li>
KEEP:3.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 | BALANCE VGROUP | 新增 | 集群存储负载均衡。3.0.0版本暂不支持。
| 8 | COMPACT VNODES | 暂不支持 | 整理指定VNODE的数据。3.0.0版本暂不支持。
| 9 | CREATE ACCOUNT | 废除 | 2.x中为企业版功能,3.0不再支持。语法暂时保留了,执行报“This statement is no longer supported”错误。
| 10 | CREATE DATABASE | 调整 | 废除
<ul><li>
BLOCKS:VNODE使用的内存块数。3.0版本使用BUFFER来表示VNODE写入内存池的大小。
</li><li>
CACHE:VNODE使用的内存块的大小。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>
WAL:WAL 级别。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_PERIOD:wal文件的额外保留策略,用于数据订阅。
</li><li>
WAL_RETENTION_SIZE:wal文件的额外保留策略,用于数据订阅。
</li><li>
WAL_ROLL_PERIOD:wal文件切换时长。
</li><li>
WAL_SEGMENT_SIZE:wal单个文件大小。
<br/>
调整
</li><li>
KEEP:3.0版本新增支持带单位的设置方式。
</li></ul>
| 11 | CREATE DNODE | 调整 | 新增主机名和端口号分开指定语法
<ul><li>
CREATE DNODE dnode_host_name PORT port_val
</li></ul>
| 12 | CREATE INDEX | 新增 | 创建SMA索引。
| 13 | CREATE MNODE | 新增 | 创建管理节点。
| 14 | CREATE QNODE | 新增 | 创建查询节点。
| 15 | CREATE SNODE | 新增 | 创建流计算节点。3.0.0版本暂不支持。
| 16 | CREATE STABLE | 调整 | 新增表参数语法
<li>
COMMENT:表注释。
</li>
| 17 | CREATE STREAM | 新增 | 创建流。
| 18 | CREATE TABLE | 调整 | 新增表参数语法
<ul><li>
COMMENT:表注释。
</li><li>
WATERMARK:指定窗口的关闭时间。
</li><li>
MAX_DELAY:用于控制推送计算结果的最大延迟。
</li><li>
ROLLUP:指定的聚合函数,提供基于多层级的降采样聚合结果。
</li><li>
SMA:提供基于数据块的自定义预计算功能。
</li><li>
TTL:用来指定表的生命周期的参数。
</li></ul>
| 18 | CREATE TOPIC | 新增 | 创建订阅主题。
| 19 | DROP ACCOUNT | 废除 | 2.x中为企业版功能,3.0不再支持。语法暂时保留了,执行报“This statement is no longer supported”错误。
| 20 | DROP BNODE | 新增 | 删除backup节点。3.0.0版本暂不支持。
| 21 | DROP CONSUMER GROUP | 新增 | 删除消费组。
| 22 | DROP DNODE | 新增 | 删除数据节点。3.0.0版本暂不支持。
| 23 | DROP INDEX | 新增 | 删除索引。
| 24 | DROP MNODE | 新增 | 创建管理节点。
| 25 | DROP QNODE | 新增 | 创建查询节点。
| 26 | DROP SNODE | 新增 | 删除流计算节点。3.0.0版本暂不支持。
| 27 | DROP STREAM | 新增 | 删除流。
| 28 | DROP TABLE | 调整 | 新增批量删除语法
| 29 | DROP TOPIC | 新增 | 删除订阅主题。
| 30 | EXPLAIN | 新增 | 查看查询语句的执行计划。
| 31 | GRANT | 新增 | 授予用户权限。
| 32 | KILL TRANSACTION | 新增 | 终止管理节点的事务。
| 33 | KILL STREAM | 废除 | 终止连续查询。3.0版本不再支持连续查询,而是用更通用的流计算来代替。
| 34 | MERGE VGROUP | 新增 | 合并VGROUP。
| 35 | REDISTRIBUTE VGROUP | 新增 | 调整VGROUP的数据分布。3.0.0版本暂不支持。
| 36 | REVOKE | 新增 | 回收用户权限。
| 37 | 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>
| 38 | SHOW ACCOUNTS | 废除 | 2.x中为企业版功能,3.0不再支持。语法暂时保留了,执行报“This statement is no longer supported”错误。
| 39 | SHOW APPS |新增 | 显示接入集群的应用(客户端)信息。
| 40 | SHOW BNODES |新增 | 显示当前系统中存在的 BNODE 的信息。3.0.0版本暂不支持。
| 41 | SHOW CONSUMERS | 新增 | 显示当前数据库下所有活跃的消费者的信息。
| 42 | SHOW DATABASES | 调整 | 3.0版本只显示数据库名。
| 43 | SHOW FUNCTIONS | 调整 | 3.0版本只显示自定义函数名。
| 44 | SHOW LICENCE | 新增 | 和SHOW GRANTS 命令等效。
| 45 | SHOW INDEXES | 新增 | 显示已创建的索引。
| 46 | SHOW LOCAL VARIABLES | 新增 | 显示当前客户端配置参数的运行值。
| 47 | SHOW MODULES | 废除 | 显示当前系统中所安装的组件的信息。
| 48 | SHOW QNODES | 新增 | 显示当前系统中QNODE的信息。
| 49 | SHOW SNODES | 新增 | 显示当前系统中SNODE的信息。3.0.0版本暂不支持。
| 50 | SHOW STABLES | 调整 | 3.0版本只显示超级表名。
| 51 | SHOW STREAMS | 调整 | 2.x版本此命令显示系统中已创建的连续查询的信息。3.0版本废除了连续查询,用流代替。此命令显示已创建的流。
| 52 | SHOW SUBSCRIPTIONS | 新增 | 显示当前数据库下的所有的订阅关系
| 53 | SHOW TABLES | 调整 | 3.0版本只显示表名。
| 54 | SHOW TABLE DISTRIBUTED | 新增 | 显示表的数据分布信息。代替2.x版本中的SELECT _block_dist() FROM { tb_name | stb_name }方式。
| 55 | SHOW TOPICS | 新增 | 显示当前数据库下的所有订阅主题。
| 56 | SHOW TRANSACTIONS | 新增 | 显示当前系统中正在执行的事务的信息。
| 57 | SHOW DNODE VARIABLES | 新增 |显示指定DNODE的配置参数。
| 58 | SHOW VNODES | 暂不支持 | 显示当前系统中VNODE的信息。3.0.0版本暂不支持。
| 59 | SPLIT VGROUP | 新增 | 拆分VGROUP。
| 60 | TRIM DATABASE | 新增 | 删除过期数据,并根据多级存储的配置归整数据。
## SQL 函数变更
| # |
**函数**
|
**差异性**
|
**说明**
|
| - | :-------: | :--------: | :------- |
| 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时,超级表的数据会被合并成一条时间线。
docs/zh/12-taos-sql/index.md
浏览文件 @
77f27b62
...
@@ -3,7 +3,7 @@ title: TAOS SQL
...
@@ -3,7 +3,7 @@ title: TAOS SQL
description
:
"
TAOS
SQL
支持的语法规则、主要查询功能、支持的
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。
TAOS SQL 是用户对 TDengine 进行数据写入和查询的主要工具。TAOS SQL 提供标准的 SQL 语法,并针对时序数据和业务的特点优化和新增了许多语法和功能。TAOS SQL 语句的最大长度为 1M。TAOS SQL 不支持关键字的缩写,例如 DELETE 不能缩写为 DEL。
...
...
docs/zh/14-reference/12-config/index.md
浏览文件 @
77f27b62
...
@@ -647,3 +647,173 @@ charset 的有效值是 UTF-8。
...
@@ -647,3 +647,173 @@ charset 的有效值是 UTF-8。
| 含义 | 是否启动 udf 服务 |
| 含义 | 是否启动 udf 服务 |
| 取值范围 | 0: 不启动;1:启动 |
| 取值范围 | 0: 不启动;1:启动 |
| 缺省值 | 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 | 是 | 否 |
docs/zh/28-releases.md
浏览文件 @
77f27b62
...
@@ -3,7 +3,7 @@ sidebar_label: 发布历史
...
@@ -3,7 +3,7 @@ sidebar_label: 发布历史
title
:
发布历史
title
:
发布历史
---
---
import Release from "/components/Release";
import Release from "/components/Release
V3
";
<Release
versionPrefix=
"3.0"
/>
<Release
versionPrefix=
"3.0"
/>
examples/c/tmq.c
浏览文件 @
77f27b62
...
@@ -45,10 +45,9 @@ static int32_t msg_process(TAOS_RES* msg) {
...
@@ -45,10 +45,9 @@ static int32_t msg_process(TAOS_RES* msg) {
int32_t
numOfFields
=
taos_field_count
(
msg
);
int32_t
numOfFields
=
taos_field_count
(
msg
);
int32_t
*
length
=
taos_fetch_lengths
(
msg
);
int32_t
*
length
=
taos_fetch_lengths
(
msg
);
int32_t
precision
=
taos_result_precision
(
msg
);
int32_t
precision
=
taos_result_precision
(
msg
);
const
char
*
tbName
=
tmq_get_table_name
(
msg
);
rows
++
;
rows
++
;
taos_print_row
(
buf
,
row
,
fields
,
numOfFields
);
taos_print_row
(
buf
,
row
,
fields
,
numOfFields
);
printf
(
"row content
from %s: %s
\n
"
,
(
tbName
!=
NULL
?
tbName
:
"table null"
)
,
buf
);
printf
(
"row content
: %s
\n
"
,
buf
);
}
}
return
rows
;
return
rows
;
...
@@ -167,7 +166,7 @@ int32_t create_topic() {
...
@@ -167,7 +166,7 @@ int32_t create_topic() {
}
}
taos_free_result
(
pRes
);
taos_free_result
(
pRes
);
pRes
=
taos_query
(
pConn
,
"create topic topicname as select ts, c1, c2, c3 from tmqdb.stb where c1 > 1"
);
pRes
=
taos_query
(
pConn
,
"create topic topicname as select ts, c1, c2, c3
, tbname
from tmqdb.stb where c1 > 1"
);
if
(
taos_errno
(
pRes
)
!=
0
)
{
if
(
taos_errno
(
pRes
)
!=
0
)
{
printf
(
"failed to create topic topicname, reason:%s
\n
"
,
taos_errstr
(
pRes
));
printf
(
"failed to create topic topicname, reason:%s
\n
"
,
taos_errstr
(
pRes
));
return
-
1
;
return
-
1
;
...
@@ -199,9 +198,7 @@ tmq_t* build_consumer() {
...
@@ -199,9 +198,7 @@ tmq_t* build_consumer() {
if
(
TMQ_CONF_OK
!=
code
)
return
NULL
;
if
(
TMQ_CONF_OK
!=
code
)
return
NULL
;
code
=
tmq_conf_set
(
conf
,
"auto.offset.reset"
,
"earliest"
);
code
=
tmq_conf_set
(
conf
,
"auto.offset.reset"
,
"earliest"
);
if
(
TMQ_CONF_OK
!=
code
)
return
NULL
;
if
(
TMQ_CONF_OK
!=
code
)
return
NULL
;
code
=
tmq_conf_set
(
conf
,
"experimental.snapshot.enable"
,
"true"
);
code
=
tmq_conf_set
(
conf
,
"experimental.snapshot.enable"
,
"false"
);
if
(
TMQ_CONF_OK
!=
code
)
return
NULL
;
code
=
tmq_conf_set
(
conf
,
"msg.with.table.name"
,
"true"
);
if
(
TMQ_CONF_OK
!=
code
)
return
NULL
;
if
(
TMQ_CONF_OK
!=
code
)
return
NULL
;
tmq_conf_set_auto_commit_cb
(
conf
,
tmq_commit_cb_print
,
NULL
);
tmq_conf_set_auto_commit_cb
(
conf
,
tmq_commit_cb_print
,
NULL
);
...
@@ -220,14 +217,7 @@ tmq_list_t* build_topic_list() {
...
@@ -220,14 +217,7 @@ tmq_list_t* build_topic_list() {
return
topicList
;
return
topicList
;
}
}
void
basic_consume_loop
(
tmq_t
*
tmq
,
tmq_list_t
*
topicList
)
{
void
basic_consume_loop
(
tmq_t
*
tmq
)
{
int32_t
code
;
if
((
code
=
tmq_subscribe
(
tmq
,
topicList
)))
{
fprintf
(
stderr
,
"%% Failed to tmq_subscribe(): %s
\n
"
,
tmq_err2str
(
code
));
return
;
}
int32_t
totalRows
=
0
;
int32_t
totalRows
=
0
;
int32_t
msgCnt
=
0
;
int32_t
msgCnt
=
0
;
int32_t
timeout
=
5000
;
int32_t
timeout
=
5000
;
...
@@ -237,8 +227,8 @@ void basic_consume_loop(tmq_t* tmq, tmq_list_t* topicList) {
...
@@ -237,8 +227,8 @@ void basic_consume_loop(tmq_t* tmq, tmq_list_t* topicList) {
msgCnt
++
;
msgCnt
++
;
totalRows
+=
msg_process
(
tmqmsg
);
totalRows
+=
msg_process
(
tmqmsg
);
taos_free_result
(
tmqmsg
);
taos_free_result
(
tmqmsg
);
/*} else {*/
}
else
{
/*break;*/
break
;
}
}
}
}
...
@@ -267,14 +257,12 @@ int main(int argc, char* argv[]) {
...
@@ -267,14 +257,12 @@ int main(int argc, char* argv[]) {
return
-
1
;
return
-
1
;
}
}
basic_consume_loop
(
tmq
,
topic_list
);
if
((
code
=
tmq_subscribe
(
tmq
,
topic_list
)))
{
fprintf
(
stderr
,
"%% Failed to tmq_subscribe(): %s
\n
"
,
tmq_err2str
(
code
));
code
=
tmq_unsubscribe
(
tmq
);
if
(
code
)
{
fprintf
(
stderr
,
"%% Failed to unsubscribe: %s
\n
"
,
tmq_err2str
(
code
));
}
else
{
fprintf
(
stderr
,
"%% unsubscribe
\n
"
);
}
}
tmq_list_destroy
(
topic_list
);
basic_consume_loop
(
tmq
);
code
=
tmq_consumer_close
(
tmq
);
code
=
tmq_consumer_close
(
tmq
);
if
(
code
)
{
if
(
code
)
{
...
...
include/client/taos.h
浏览文件 @
77f27b62
...
@@ -131,10 +131,10 @@ DLL_EXPORT int taos_options(TSDB_OPTION option, const void *arg, ...);
...
@@ -131,10 +131,10 @@ DLL_EXPORT int taos_options(TSDB_OPTION option, const void *arg, ...);
DLL_EXPORT
setConfRet
taos_set_config
(
const
char
*
config
);
DLL_EXPORT
setConfRet
taos_set_config
(
const
char
*
config
);
DLL_EXPORT
int
taos_init
(
void
);
DLL_EXPORT
int
taos_init
(
void
);
DLL_EXPORT
TAOS
*
taos_connect
(
const
char
*
ip
,
const
char
*
user
,
const
char
*
pass
,
const
char
*
db
,
uint16_t
port
);
DLL_EXPORT
TAOS
*
taos_connect
(
const
char
*
ip
,
const
char
*
user
,
const
char
*
pass
,
const
char
*
db
,
uint16_t
port
);
DLL_EXPORT
TAOS
*
taos_connect_auth
(
const
char
*
ip
,
const
char
*
user
,
const
char
*
auth
,
const
char
*
db
,
uint16_t
port
);
DLL_EXPORT
TAOS
*
taos_connect_auth
(
const
char
*
ip
,
const
char
*
user
,
const
char
*
auth
,
const
char
*
db
,
uint16_t
port
);
DLL_EXPORT
void
taos_close
(
TAOS
*
taos
);
DLL_EXPORT
void
taos_close
(
TAOS
*
taos
);
const
char
*
taos_data_type
(
int
type
);
const
char
*
taos_data_type
(
int
type
);
DLL_EXPORT
TAOS_STMT
*
taos_stmt_init
(
TAOS
*
taos
);
DLL_EXPORT
TAOS_STMT
*
taos_stmt_init
(
TAOS
*
taos
);
DLL_EXPORT
int
taos_stmt_prepare
(
TAOS_STMT
*
stmt
,
const
char
*
sql
,
unsigned
long
length
);
DLL_EXPORT
int
taos_stmt_prepare
(
TAOS_STMT
*
stmt
,
const
char
*
sql
,
unsigned
long
length
);
...
@@ -244,33 +244,37 @@ DLL_EXPORT void tmq_conf_set_auto_commit_cb(tmq_conf_t *conf, tmq_comm
...
@@ -244,33 +244,37 @@ DLL_EXPORT void tmq_conf_set_auto_commit_cb(tmq_conf_t *conf, tmq_comm
/* -------------------------TMQ MSG HANDLE INTERFACE---------------------- */
/* -------------------------TMQ MSG HANDLE INTERFACE---------------------- */
DLL_EXPORT
const
char
*
tmq_get_topic_name
(
TAOS_RES
*
res
);
DLL_EXPORT
const
char
*
tmq_get_db_name
(
TAOS_RES
*
res
);
DLL_EXPORT
int32_t
tmq_get_vgroup_id
(
TAOS_RES
*
res
);
/* ------------------------------ TAOSX -----------------------------------*/
// note: following apis are unstable
enum
tmq_res_t
{
enum
tmq_res_t
{
TMQ_RES_INVALID
=
-
1
,
TMQ_RES_INVALID
=
-
1
,
TMQ_RES_DATA
=
1
,
TMQ_RES_DATA
=
1
,
TMQ_RES_TABLE_META
=
2
,
TMQ_RES_TABLE_META
=
2
,
};
};
typedef
struct
tmq_raw_data
{
typedef
struct
tmq_raw_data
{
void
*
raw
;
void
*
raw
;
uint32_t
raw_len
;
uint32_t
raw_len
;
uint16_t
raw_type
;
uint16_t
raw_type
;
}
tmq_raw_data
;
}
tmq_raw_data
;
typedef
enum
tmq_res_t
tmq_res_t
;
typedef
enum
tmq_res_t
tmq_res_t
;
DLL_EXPORT
tmq_res_t
tmq_get_res_type
(
TAOS_RES
*
res
);
DLL_EXPORT
const
char
*
tmq_get_table_name
(
TAOS_RES
*
res
);
DLL_EXPORT
int32_t
tmq_get_raw
(
TAOS_RES
*
res
,
tmq_raw_data
*
raw
);
DLL_EXPORT
tmq_res_t
tmq_get_res_type
(
TAOS_RES
*
res
);
DLL_EXPORT
int32_t
tmq_write_raw
(
TAOS
*
taos
,
tmq_raw_data
raw
);
DLL_EXPORT
int32_t
tmq_get_raw
(
TAOS_RES
*
res
,
tmq_raw_data
*
raw
);
DLL_EXPORT
int
taos_write_raw_block
(
TAOS
*
taos
,
int
numOfRows
,
char
*
pData
,
const
char
*
tbname
);
DLL_EXPORT
int32_t
tmq_write_raw
(
TAOS
*
taos
,
tmq_raw_data
raw
);
DLL_EXPORT
void
tmq_free_raw
(
tmq_raw_data
raw
);
DLL_EXPORT
int
taos_write_raw_block
(
TAOS
*
taos
,
int
numOfRows
,
char
*
pData
,
const
char
*
tbname
);
DLL_EXPORT
char
*
tmq_get_json_meta
(
TAOS_RES
*
res
);
// Returning null means error. Returned result need to be freed by tmq_free_json_meta
DLL_EXPORT
void
tmq_free_raw
(
tmq_raw_data
raw
);
DLL_EXPORT
void
tmq_free_json_meta
(
char
*
jsonMeta
);
// Returning null means error. Returned result need to be freed by tmq_free_json_meta
DLL_EXPORT
const
char
*
tmq_get_topic_name
(
TAOS_RES
*
res
);
DLL_EXPORT
char
*
tmq_get_json_meta
(
TAOS_RES
*
res
);
DLL_EXPORT
const
char
*
tmq_get_db_name
(
TAOS_RES
*
res
);
DLL_EXPORT
void
tmq_free_json_meta
(
char
*
jsonMeta
);
DLL_EXPORT
int32_t
tmq_get_vgroup_id
(
TAOS_RES
*
res
);
DLL_EXPORT
const
char
*
tmq_get_table_name
(
TAOS_RES
*
res
);
/* ---------------------------- TAOSX END -------------------------------- */
/* ------------------------------ TMQ END -------------------------------- */
typedef
enum
{
typedef
enum
{
TSDB_SRV_STATUS_UNAVAILABLE
=
0
,
TSDB_SRV_STATUS_UNAVAILABLE
=
0
,
...
...
include/util/taoserror.h
浏览文件 @
77f27b62
...
@@ -622,6 +622,7 @@ int32_t* taosGetErrno();
...
@@ -622,6 +622,7 @@ int32_t* taosGetErrno();
//tmq
//tmq
#define TSDB_CODE_TMQ_INVALID_MSG TAOS_DEF_ERROR_CODE(0, 0x4000)
#define TSDB_CODE_TMQ_INVALID_MSG TAOS_DEF_ERROR_CODE(0, 0x4000)
#define TSDB_CODE_TMQ_CONSUMER_MISMATCH TAOS_DEF_ERROR_CODE(0, 0x4001)
#define TSDB_CODE_TMQ_CONSUMER_MISMATCH TAOS_DEF_ERROR_CODE(0, 0x4001)
#define TSDB_CODE_TMQ_CONSUMER_CLOSED TAOS_DEF_ERROR_CODE(0, 0x4002)
#ifdef __cplusplus
#ifdef __cplusplus
}
}
...
...
include/util/tref.h
浏览文件 @
77f27b62
...
@@ -29,11 +29,11 @@ int32_t taosOpenRef(int32_t max, void (*fp)(void *));
...
@@ -29,11 +29,11 @@ int32_t taosOpenRef(int32_t max, void (*fp)(void *));
// close the reference set, refId is the return value by taosOpenRef
// close the reference set, refId is the return value by taosOpenRef
// return 0 if success. On error, -1 is returned, and terrno is set appropriately
// return 0 if success. On error, -1 is returned, and terrno is set appropriately
int32_t
taosCloseRef
(
int32_t
r
ef
Id
);
int32_t
taosCloseRef
(
int32_t
r
set
Id
);
// add ref, p is the pointer to resource or pointer ID
// add ref, p is the pointer to resource or pointer ID
// return Reference ID(rid) allocated. On error, -1 is returned, and terrno is set appropriately
// return Reference ID(rid) allocated. On error, -1 is returned, and terrno is set appropriately
int64_t
taosAddRef
(
int32_t
r
ef
Id
,
void
*
p
);
int64_t
taosAddRef
(
int32_t
r
set
Id
,
void
*
p
);
// remove ref, rid is the reference ID returned by taosAddRef
// remove ref, rid is the reference ID returned by taosAddRef
// return 0 if success. On error, -1 is returned, and terrno is set appropriately
// return 0 if success. On error, -1 is returned, and terrno is set appropriately
...
...
source/client/src/clientMain.c
浏览文件 @
77f27b62
...
@@ -192,6 +192,7 @@ void taos_free_result(TAOS_RES *res) {
...
@@ -192,6 +192,7 @@ void taos_free_result(TAOS_RES *res) {
if
(
pRsp
->
rsp
.
withSchema
)
taosArrayDestroyP
(
pRsp
->
rsp
.
blockSchema
,
(
FDelete
)
tDeleteSSchemaWrapper
);
if
(
pRsp
->
rsp
.
withSchema
)
taosArrayDestroyP
(
pRsp
->
rsp
.
blockSchema
,
(
FDelete
)
tDeleteSSchemaWrapper
);
pRsp
->
resInfo
.
pRspMsg
=
NULL
;
pRsp
->
resInfo
.
pRspMsg
=
NULL
;
doFreeReqResultInfo
(
&
pRsp
->
resInfo
);
doFreeReqResultInfo
(
&
pRsp
->
resInfo
);
taosMemoryFree
(
pRsp
);
}
else
if
(
TD_RES_TMQ_META
(
res
))
{
}
else
if
(
TD_RES_TMQ_META
(
res
))
{
SMqMetaRspObj
*
pRspObj
=
(
SMqMetaRspObj
*
)
res
;
SMqMetaRspObj
*
pRspObj
=
(
SMqMetaRspObj
*
)
res
;
taosMemoryFree
(
pRspObj
->
metaRsp
.
metaRsp
);
taosMemoryFree
(
pRspObj
->
metaRsp
.
metaRsp
);
...
...
source/client/src/taosx.c
0 → 100644
浏览文件 @
77f27b62
此差异已折叠。
点击以展开。
source/client/src/tmq.c
浏览文件 @
77f27b62
此差异已折叠。
点击以展开。
source/libs/executor/src/scanoperator.c
浏览文件 @
77f27b62
...
@@ -128,7 +128,7 @@ static bool overlapWithTimeWindow(SInterval* pInterval, SDataBlockInfo* pBlockIn
...
@@ -128,7 +128,7 @@ static bool overlapWithTimeWindow(SInterval* pInterval, SDataBlockInfo* pBlockIn
w
=
getAlignQueryTimeWindow
(
pInterval
,
pInterval
->
precision
,
pBlockInfo
->
window
.
skey
);
w
=
getAlignQueryTimeWindow
(
pInterval
,
pInterval
->
precision
,
pBlockInfo
->
window
.
skey
);
assert
(
w
.
ekey
>=
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
;
return
true
;
}
}
...
...
source/libs/planner/src/planLogicCreater.c
浏览文件 @
77f27b62
...
@@ -1002,7 +1002,7 @@ static int32_t createPartitionLogicNode(SLogicPlanContext* pCxt, SSelectStmt* pS
...
@@ -1002,7 +1002,7 @@ static int32_t createPartitionLogicNode(SLogicPlanContext* pCxt, SSelectStmt* pS
int32_t
code
=
int32_t
code
=
nodesCollectColumns
(
pSelect
,
SQL_CLAUSE_PARTITION_BY
,
NULL
,
COLLECT_COL_TYPE_ALL
,
&
pPartition
->
node
.
pTargets
);
nodesCollectColumns
(
pSelect
,
SQL_CLAUSE_PARTITION_BY
,
NULL
,
COLLECT_COL_TYPE_ALL
,
&
pPartition
->
node
.
pTargets
);
if
(
TSDB_CODE_SUCCESS
==
code
&&
NULL
==
pPartition
->
node
.
pTargets
)
{
if
(
TSDB_CODE_SUCCESS
==
code
&&
NULL
==
pPartition
->
node
.
pTargets
)
{
code
=
nodesListMakeStrictAppend
(
&
pPartition
->
node
.
pTargets
,
nodes
ListGetNode
(
pCxt
->
pCurrRoot
->
pTargets
,
0
));
code
=
nodesListMakeStrictAppend
(
&
pPartition
->
node
.
pTargets
,
nodes
CloneNode
(
nodesListGetNode
(
pCxt
->
pCurrRoot
->
pTargets
,
0
)
));
}
}
if
(
TSDB_CODE_SUCCESS
==
code
)
{
if
(
TSDB_CODE_SUCCESS
==
code
)
{
...
...
source/util/src/terror.c
浏览文件 @
77f27b62
...
@@ -624,6 +624,7 @@ TAOS_DEFINE_ERROR(TSDB_CODE_INDEX_REBUILDING, "Invalid index file"
...
@@ -624,6 +624,7 @@ TAOS_DEFINE_ERROR(TSDB_CODE_INDEX_REBUILDING, "Invalid index file"
//tmq
//tmq
TAOS_DEFINE_ERROR
(
TSDB_CODE_TMQ_INVALID_MSG
,
"Invalid message"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_TMQ_INVALID_MSG
,
"Invalid message"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_TMQ_CONSUMER_MISMATCH
,
"Consumer mismatch"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_TMQ_CONSUMER_MISMATCH
,
"Consumer mismatch"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_TMQ_CONSUMER_CLOSED
,
"Consumer closed"
)
#ifdef TAOS_ERROR_C
#ifdef TAOS_ERROR_C
};
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录