Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Mr、小李
TDengine
提交
a170da72
T
TDengine
项目概览
Mr、小李
/
TDengine
与 Fork 源项目一致
Fork自
taosdata / TDengine
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
a170da72
编写于
10月 21, 2020
作者:
H
Haojun Liao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[td-1664]
上级
6b985a6e
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
55 addition
and
1 deletion
+55
-1
src/client/src/tscSQLParser.c
src/client/src/tscSQLParser.c
+17
-1
src/query/src/qSyntaxtreefunction.c
src/query/src/qSyntaxtreefunction.c
+3
-0
tests/script/general/parser/col_arithmetic_operation.sim
tests/script/general/parser/col_arithmetic_operation.sim
+35
-0
未找到文件。
src/client/src/tscSQLParser.c
浏览文件 @
a170da72
...
...
@@ -3385,10 +3385,26 @@ static int32_t validateSQLExpr(SSqlCmd* pCmd, tSQLExpr* pExpr, SQueryInfo* pQuer
tSQLExprItem
item
=
{.
pNode
=
pExpr
,
.
aliasName
=
NULL
};
// sql function in selection clause, append sql function info in pSqlCmd structure sequentially
// sql function list in selection clause.
// Append the sqlExpr into exprList of pQueryInfo structure sequentially
if
(
addExprAndResultField
(
pCmd
,
pQueryInfo
,
outputIndex
,
&
item
,
false
)
!=
TSDB_CODE_SUCCESS
)
{
return
TSDB_CODE_TSC_INVALID_SQL
;
}
// It is invalid in case of more than one sqlExpr, such as first(ts, k) - last(ts, k)
int32_t
inc
=
(
int32_t
)
tscSqlExprNumOfExprs
(
pQueryInfo
)
-
outputIndex
;
if
(
inc
>
1
)
{
return
TSDB_CODE_TSC_INVALID_SQL
;
}
// Not supported data type in arithmetic expression
for
(
int32_t
i
=
0
;
i
<
inc
;
++
i
)
{
SSqlExpr
*
p1
=
tscSqlExprGet
(
pQueryInfo
,
i
+
outputIndex
);
int16_t
t
=
p1
->
resType
;
if
(
t
==
TSDB_DATA_TYPE_BINARY
||
t
==
TSDB_DATA_TYPE_NCHAR
||
t
==
TSDB_DATA_TYPE_BOOL
||
t
==
TSDB_DATA_TYPE_TIMESTAMP
)
{
return
TSDB_CODE_TSC_INVALID_SQL
;
}
}
}
return
TSDB_CODE_SUCCESS
;
...
...
src/query/src/qSyntaxtreefunction.c
浏览文件 @
a170da72
...
...
@@ -1247,7 +1247,10 @@ _bi_consumer_fn_t tGetBiConsumerFn(int32_t leftType, int32_t rightType, int32_t
case
TSDB_BINARY_OP_REMAINDER
:
return
rem_function_arraylist
[
leftType
][
rightType
];
default:
assert
(
0
);
return
NULL
;
}
assert
(
0
);
return
NULL
;
}
tests/script/general/parser/col_arithmetic_operation.sim
浏览文件 @
a170da72
...
...
@@ -109,4 +109,39 @@ if $data02 != 225000 then
return -1
endi
sql select first(speed) - last(speed), first(speed) as b, last(speed) as b, min(speed) - max(speed), spread(speed) from stb interval(1y)", NULL);
if $rows != 1 then
return -1
endi
if $data00 != @20-01-01 00:00:00.000@ then
return -1
endi
if $data01 != -20.000000000 then
return -1
endi
if $data02 != 100.000000000 then
return -1
endi
if $data03 != 120.000000000 then
return -1
endi
if $data04 != -20.000000000 then
return -1
endi
if $data05 != 20.000000000 then
return -1
endi
sql_error select first(speed, mileage) - last(speed, mileage) from stb interval(1y)
sql_error select first(ts) - last(ts) from stb interval(1y)
sql_error select top(speed, 2) - last(speed) from stb;
sql_error select stddev(speed) - last(speed) from stb;
sql_error select diff(speed) - last(speed) from stb;
system sh/exec.sh -n dnode1 -s stop -x SIGINT
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录