Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
5413c640
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看板
未验证
提交
5413c640
编写于
4月 20, 2023
作者:
D
dapan1121
提交者:
GitHub
4月 20, 2023
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #20982 from taosdata/fix/TS-2754
fix: support INTERP with boolean type
上级
294a47f9
68883dbc
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
801 addition
and
16 deletion
+801
-16
src/client/src/tscSQLParser.c
src/client/src/tscSQLParser.c
+7
-7
src/common/src/tvariant.c
src/common/src/tvariant.c
+8
-8
tests/script/general/parser/interp_full_test1.sim
tests/script/general/parser/interp_full_test1.sim
+0
-1
tests/script/general/parser/interp_full_test2.sim
tests/script/general/parser/interp_full_test2.sim
+786
-0
未找到文件。
src/client/src/tscSQLParser.c
浏览文件 @
5413c640
...
@@ -2661,7 +2661,7 @@ static int32_t setExprInfoForFunctions(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, SS
...
@@ -2661,7 +2661,7 @@ static int32_t setExprInfoForFunctions(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, SS
}
}
}
else
if
(
f
==
TSDB_FUNC_INTERP
)
{
}
else
if
(
f
==
TSDB_FUNC_INTERP
)
{
int32_t
t1
=
pSchema
->
type
;
int32_t
t1
=
pSchema
->
type
;
if
(
!
IS_NUMERIC_TYPE
(
t1
))
{
if
(
!
IS_NUMERIC_TYPE
(
t1
)
&&
(
t1
!=
TSDB_DATA_TYPE_BOOL
)
)
{
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg1
);
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg1
);
return
-
1
;
return
-
1
;
}
}
...
...
src/common/src/tvariant.c
浏览文件 @
5413c640
tests/script/general/parser/interp_full_test1.sim
浏览文件 @
5413c640
...
@@ -3,7 +3,6 @@ sql connect
...
@@ -3,7 +3,6 @@ sql connect
sql use db;
sql use db;
sql_error SELECT INTERP(c7) FROM tb1;
sql_error SELECT INTERP(c8) FROM tb1;
sql_error SELECT INTERP(c8) FROM tb1;
sql_error SELECT INTERP(c9) FROM tb1;
sql_error SELECT INTERP(c9) FROM tb1;
sql_error SELECT INTERP(c1,c8) FROM tb1;
sql_error SELECT INTERP(c1,c8) FROM tb1;
...
...
tests/script/general/parser/interp_full_test2.sim
浏览文件 @
5413c640
...
@@ -2358,3 +2358,789 @@ endi
...
@@ -2358,3 +2358,789 @@ endi
if $data96 != tb2 then
if $data96 != tb2 then
return -1
return -1
endi
endi
sql SELECT INTERP(c7) FROM tb2 RANGE('2021-10-20 10:00:00','2021-10-20 10:00:14') EVERY(1s) FILL(NULL);
if $rows != 15 then
return -1
endi
if $data00 != @21-10-20 10:00:00.000@ then
return -1
endi
print $data01
print $data11
print $data21
print $data31
print $data41
if $data01 != 1 then
return -1
endi
if $data10 != @21-10-20 10:00:01.000@ then
return -1
endi
if $data11 != NULL then
return -1
endi
if $data20 != @21-10-20 10:00:02.000@ then
return -1
endi
if $data21 != 1 then
return -1
endi
if $data30 != @21-10-20 10:00:03.000@ then
return -1
endi
if $data31 != NULL then
return -1
endi
if $data40 != @21-10-20 10:00:04.000@ then
return -1
endi
if $data41 != 0 then
return -1
endi
if $data50 != @21-10-20 10:00:05.000@ then
return -1
endi
if $data51 != NULL then
return -1
endi
if $data60 != @21-10-20 10:00:06.000@ then
return -1
endi
if $data61 != 0 then
return -1
endi
if $data70 != @21-10-20 10:00:07.000@ then
return -1
endi
if $data71 != NULL then
return -1
endi
if $data80 != @21-10-20 10:00:08.000@ then
return -1
endi
if $data81 != NULL then
return -1
endi
if $data90 != @21-10-20 10:00:09.000@ then
return -1
endi
if $data91 != NULL then
return -1
endi
sql SELECT INTERP(c7) FROM tb2 RANGE('2021-10-20 10:00:00','2021-10-20 10:00:14') EVERY(1s) FILL(PREV);
if $rows != 15 then
return -1
endi
if $data00 != @21-10-20 10:00:00.000@ then
return -1
endi
if $data01 != 1 then
return -1
endi
if $data10 != @21-10-20 10:00:01.000@ then
return -1
endi
if $data11 != 1 then
return -1
endi
if $data20 != @21-10-20 10:00:02.000@ then
return -1
endi
if $data21 != 1 then
return -1
endi
if $data30 != @21-10-20 10:00:03.000@ then
return -1
endi
if $data31 != 1 then
return -1
endi
if $data40 != @21-10-20 10:00:04.000@ then
return -1
endi
if $data41 != 0 then
return -1
endi
if $data50 != @21-10-20 10:00:05.000@ then
return -1
endi
if $data51 != 0 then
return -1
endi
if $data60 != @21-10-20 10:00:06.000@ then
return -1
endi
if $data61 != 0 then
return -1
endi
if $data70 != @21-10-20 10:00:07.000@ then
return -1
endi
if $data71 != 0 then
return -1
endi
if $data80 != @21-10-20 10:00:08.000@ then
return -1
endi
if $data81 != 0 then
return -1
endi
if $data90 != @21-10-20 10:00:09.000@ then
return -1
endi
if $data91 != 0 then
return -1
endi
sql SELECT INTERP(c7) FROM tb2 RANGE('2021-10-20 10:00:00','2021-10-20 10:00:14') EVERY(1s) FILL(NEXT);
if $rows != 15 then
return -1
endi
if $data00 != @21-10-20 10:00:00.000@ then
return -1
endi
if $data01 != 1 then
return -1
endi
if $data10 != @21-10-20 10:00:01.000@ then
return -1
endi
if $data11 != 1 then
return -1
endi
if $data20 != @21-10-20 10:00:02.000@ then
return -1
endi
if $data21 != 1 then
return -1
endi
if $data30 != @21-10-20 10:00:03.000@ then
return -1
endi
if $data31 != 0 then
return -1
endi
if $data40 != @21-10-20 10:00:04.000@ then
return -1
endi
if $data41 != 0 then
return -1
endi
if $data50 != @21-10-20 10:00:05.000@ then
return -1
endi
if $data51 != 0 then
return -1
endi
if $data60 != @21-10-20 10:00:06.000@ then
return -1
endi
if $data61 != 0 then
return -1
endi
if $data70 != @21-10-20 10:00:07.000@ then
return -1
endi
if $data71 != 1 then
return -1
endi
if $data80 != @21-10-20 10:00:08.000@ then
return -1
endi
if $data81 != 1 then
return -1
endi
if $data90 != @21-10-20 10:00:09.000@ then
return -1
endi
if $data91 != 1 then
return -1
endi
sql SELECT INTERP(c7) FROM tb2 RANGE('2021-10-20 10:00:00','2021-10-20 10:00:14') EVERY(1s) FILL(VALUE, 1);
if $rows != 15 then
return -1
endi
if $data00 != @21-10-20 10:00:00.000@ then
return -1
endi
if $data01 != 1 then
return -1
endi
if $data10 != @21-10-20 10:00:01.000@ then
return -1
endi
if $data11 != 1 then
return -1
endi
if $data20 != @21-10-20 10:00:02.000@ then
return -1
endi
if $data21 != 1 then
return -1
endi
if $data30 != @21-10-20 10:00:03.000@ then
return -1
endi
if $data31 != 1 then
return -1
endi
if $data40 != @21-10-20 10:00:04.000@ then
return -1
endi
if $data41 != 0 then
return -1
endi
if $data50 != @21-10-20 10:00:05.000@ then
return -1
endi
if $data51 != 1 then
return -1
endi
if $data60 != @21-10-20 10:00:06.000@ then
return -1
endi
if $data61 != 0 then
return -1
endi
if $data70 != @21-10-20 10:00:07.000@ then
return -1
endi
if $data71 != 1 then
return -1
endi
if $data80 != @21-10-20 10:00:08.000@ then
return -1
endi
if $data81 != 1 then
return -1
endi
if $data90 != @21-10-20 10:00:09.000@ then
return -1
endi
if $data91 != 1 then
return -1
endi
sql SELECT INTERP(c7) FROM tb2 RANGE('2021-10-20 10:00:00','2021-10-20 10:00:14') EVERY(1s) FILL(VALUE, 1.5);
if $rows != 15 then
return -1
endi
if $data00 != @21-10-20 10:00:00.000@ then
return -1
endi
if $data01 != 1 then
return -1
endi
if $data10 != @21-10-20 10:00:01.000@ then
return -1
endi
if $data11 != 1 then
return -1
endi
if $data20 != @21-10-20 10:00:02.000@ then
return -1
endi
if $data21 != 1 then
return -1
endi
if $data30 != @21-10-20 10:00:03.000@ then
return -1
endi
if $data31 != 1 then
return -1
endi
if $data40 != @21-10-20 10:00:04.000@ then
return -1
endi
if $data41 != 0 then
return -1
endi
if $data50 != @21-10-20 10:00:05.000@ then
return -1
endi
if $data51 != 1 then
return -1
endi
if $data60 != @21-10-20 10:00:06.000@ then
return -1
endi
if $data61 != 0 then
return -1
endi
if $data70 != @21-10-20 10:00:07.000@ then
return -1
endi
if $data71 != 1 then
return -1
endi
if $data80 != @21-10-20 10:00:08.000@ then
return -1
endi
if $data81 != 1 then
return -1
endi
if $data90 != @21-10-20 10:00:09.000@ then
return -1
endi
if $data91 != 1 then
return -1
endi
sql SELECT INTERP(c7) FROM tb2 RANGE('2021-10-20 10:00:00','2021-10-20 10:00:14') EVERY(1s) FILL(VALUE, 1);
if $rows != 15 then
return -1
endi
if $data00 != @21-10-20 10:00:00.000@ then
return -1
endi
if $data01 != 1 then
return -1
endi
if $data10 != @21-10-20 10:00:01.000@ then
return -1
endi
if $data11 != 1 then
return -1
endi
if $data20 != @21-10-20 10:00:02.000@ then
return -1
endi
if $data21 != 1 then
return -1
endi
if $data30 != @21-10-20 10:00:03.000@ then
return -1
endi
if $data31 != 1 then
return -1
endi
if $data40 != @21-10-20 10:00:04.000@ then
return -1
endi
if $data41 != 0 then
return -1
endi
if $data50 != @21-10-20 10:00:05.000@ then
return -1
endi
if $data51 != 1 then
return -1
endi
if $data60 != @21-10-20 10:00:06.000@ then
return -1
endi
if $data61 != 0 then
return -1
endi
if $data70 != @21-10-20 10:00:07.000@ then
return -1
endi
if $data71 != 1 then
return -1
endi
if $data80 != @21-10-20 10:00:08.000@ then
return -1
endi
if $data81 != 1 then
return -1
endi
if $data90 != @21-10-20 10:00:09.000@ then
return -1
endi
if $data91 != 1 then
return -1
endi
sql SELECT INTERP(c7) FROM tb2 RANGE('2021-10-20 10:00:00','2021-10-20 10:00:14') EVERY(1s) FILL(VALUE, 0);
if $rows != 15 then
return -1
endi
if $data00 != @21-10-20 10:00:00.000@ then
return -1
endi
if $data01 != 1 then
return -1
endi
if $data10 != @21-10-20 10:00:01.000@ then
return -1
endi
if $data11 != 0 then
return -1
endi
if $data20 != @21-10-20 10:00:02.000@ then
return -1
endi
if $data21 != 1 then
return -1
endi
if $data30 != @21-10-20 10:00:03.000@ then
return -1
endi
if $data31 != 0 then
return -1
endi
if $data40 != @21-10-20 10:00:04.000@ then
return -1
endi
if $data41 != 0 then
return -1
endi
if $data50 != @21-10-20 10:00:05.000@ then
return -1
endi
if $data51 != 0 then
return -1
endi
if $data60 != @21-10-20 10:00:06.000@ then
return -1
endi
if $data61 != 0 then
return -1
endi
if $data70 != @21-10-20 10:00:07.000@ then
return -1
endi
if $data71 != 0 then
return -1
endi
if $data80 != @21-10-20 10:00:08.000@ then
return -1
endi
if $data81 != 0 then
return -1
endi
if $data90 != @21-10-20 10:00:09.000@ then
return -1
endi
if $data91 != 0 then
return -1
endi
sql SELECT INTERP(c7) FROM tb2 RANGE('2021-10-20 10:00:00','2021-10-20 10:00:14') EVERY(1s) FILL(VALUE, 0.0);
if $rows != 15 then
return -1
endi
if $data00 != @21-10-20 10:00:00.000@ then
return -1
endi
if $data01 != 1 then
return -1
endi
if $data10 != @21-10-20 10:00:01.000@ then
return -1
endi
if $data11 != 0 then
return -1
endi
if $data20 != @21-10-20 10:00:02.000@ then
return -1
endi
if $data21 != 1 then
return -1
endi
if $data30 != @21-10-20 10:00:03.000@ then
return -1
endi
if $data31 != 0 then
return -1
endi
if $data40 != @21-10-20 10:00:04.000@ then
return -1
endi
if $data41 != 0 then
return -1
endi
if $data50 != @21-10-20 10:00:05.000@ then
return -1
endi
if $data51 != 0 then
return -1
endi
if $data60 != @21-10-20 10:00:06.000@ then
return -1
endi
if $data61 != 0 then
return -1
endi
if $data70 != @21-10-20 10:00:07.000@ then
return -1
endi
if $data71 != 0 then
return -1
endi
if $data80 != @21-10-20 10:00:08.000@ then
return -1
endi
if $data81 != 0 then
return -1
endi
if $data90 != @21-10-20 10:00:09.000@ then
return -1
endi
if $data91 != 0 then
return -1
endi
sql SELECT INTERP(c7) FROM tb2 RANGE('2021-10-20 10:00:00','2021-10-20 10:00:14') EVERY(1s) FILL(VALUE, 0);
if $rows != 15 then
return -1
endi
if $data00 != @21-10-20 10:00:00.000@ then
return -1
endi
if $data01 != 1 then
return -1
endi
if $data10 != @21-10-20 10:00:01.000@ then
return -1
endi
if $data11 != 0 then
return -1
endi
if $data20 != @21-10-20 10:00:02.000@ then
return -1
endi
if $data21 != 1 then
return -1
endi
if $data30 != @21-10-20 10:00:03.000@ then
return -1
endi
if $data31 != 0 then
return -1
endi
if $data40 != @21-10-20 10:00:04.000@ then
return -1
endi
if $data41 != 0 then
return -1
endi
if $data50 != @21-10-20 10:00:05.000@ then
return -1
endi
if $data51 != 0 then
return -1
endi
if $data60 != @21-10-20 10:00:06.000@ then
return -1
endi
if $data61 != 0 then
return -1
endi
if $data70 != @21-10-20 10:00:07.000@ then
return -1
endi
if $data71 != 0 then
return -1
endi
if $data80 != @21-10-20 10:00:08.000@ then
return -1
endi
if $data81 != 0 then
return -1
endi
if $data90 != @21-10-20 10:00:09.000@ then
return -1
endi
if $data91 != 0 then
return -1
endi
sql SELECT INTERP(c7) FROM tb2 RANGE('2021-10-20 10:00:00','2021-10-20 10:00:14') EVERY(1s) FILL(VALUE, 'abc');
if $rows != 15 then
return -1
endi
if $data00 != @21-10-20 10:00:00.000@ then
return -1
endi
if $data01 != 1 then
return -1
endi
if $data10 != @21-10-20 10:00:01.000@ then
return -1
endi
if $data11 != 0 then
return -1
endi
if $data20 != @21-10-20 10:00:02.000@ then
return -1
endi
if $data21 != 1 then
return -1
endi
if $data30 != @21-10-20 10:00:03.000@ then
return -1
endi
if $data31 != 0 then
return -1
endi
if $data40 != @21-10-20 10:00:04.000@ then
return -1
endi
if $data41 != 0 then
return -1
endi
if $data50 != @21-10-20 10:00:05.000@ then
return -1
endi
if $data51 != 0 then
return -1
endi
if $data60 != @21-10-20 10:00:06.000@ then
return -1
endi
if $data61 != 0 then
return -1
endi
if $data70 != @21-10-20 10:00:07.000@ then
return -1
endi
if $data71 != 0 then
return -1
endi
if $data80 != @21-10-20 10:00:08.000@ then
return -1
endi
if $data81 != 0 then
return -1
endi
if $data90 != @21-10-20 10:00:09.000@ then
return -1
endi
if $data91 != 0 then
return -1
endi
sql SELECT INTERP(c7) FROM tb2 RANGE('2021-10-20 10:00:00','2021-10-20 10:00:14') EVERY(1s) FILL(VALUE, NULL);
if $rows != 15 then
return -1
endi
if $data00 != @21-10-20 10:00:00.000@ then
return -1
endi
if $data01 != 1 then
return -1
endi
if $data10 != @21-10-20 10:00:01.000@ then
return -1
endi
if $data11 != NULL then
return -1
endi
if $data20 != @21-10-20 10:00:02.000@ then
return -1
endi
if $data21 != 1 then
return -1
endi
if $data30 != @21-10-20 10:00:03.000@ then
return -1
endi
if $data31 != NULL then
return -1
endi
if $data40 != @21-10-20 10:00:04.000@ then
return -1
endi
if $data41 != 0 then
return -1
endi
if $data50 != @21-10-20 10:00:05.000@ then
return -1
endi
if $data51 != NULL then
return -1
endi
if $data60 != @21-10-20 10:00:06.000@ then
return -1
endi
if $data61 != 0 then
return -1
endi
if $data70 != @21-10-20 10:00:07.000@ then
return -1
endi
if $data71 != NULL then
return -1
endi
if $data80 != @21-10-20 10:00:08.000@ then
return -1
endi
if $data81 != NULL then
return -1
endi
if $data90 != @21-10-20 10:00:09.000@ then
return -1
endi
if $data91 != NULL then
return -1
endi
sql SELECT INTERP(c7) FROM tb2 RANGE('2021-10-20 10:00:00','2021-10-20 10:00:14') EVERY(1s) FILL(LINEAR);
if $rows != 15 then
return -1
endi
if $data00 != @21-10-20 10:00:00.000@ then
return -1
endi
if $data01 != 1 then
return -1
endi
if $data10 != @21-10-20 10:00:01.000@ then
return -1
endi
if $data11 != 1 then
return -1
endi
if $data20 != @21-10-20 10:00:02.000@ then
return -1
endi
if $data21 != 1 then
return -1
endi
if $data30 != @21-10-20 10:00:03.000@ then
return -1
endi
if $data31 != 0 then
return -1
endi
if $data40 != @21-10-20 10:00:04.000@ then
return -1
endi
if $data41 != 0 then
return -1
endi
if $data50 != @21-10-20 10:00:05.000@ then
return -1
endi
if $data51 != 0 then
return -1
endi
if $data60 != @21-10-20 10:00:06.000@ then
return -1
endi
if $data61 != 0 then
return -1
endi
if $data70 != @21-10-20 10:00:07.000@ then
return -1
endi
if $data71 != 0 then
return -1
endi
if $data80 != @21-10-20 10:00:08.000@ then
return -1
endi
if $data81 != 0 then
return -1
endi
if $data90 != @21-10-20 10:00:09.000@ then
return -1
endi
if $data91 != 0 then
return -1
endi
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录