Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
4cbf6ddb
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1187
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看板
提交
4cbf6ddb
编写于
11月 26, 2021
作者:
S
shenglian zhou
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
clean up TSDB_FUNCSTATE_SCALAR
上级
66af9be4
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
26 addition
and
12 deletion
+26
-12
src/client/src/tscSQLParser.c
src/client/src/tscSQLParser.c
+0
-5
src/query/inc/qAggMain.h
src/query/inc/qAggMain.h
+0
-2
src/query/src/qExecutor.c
src/query/src/qExecutor.c
+1
-5
tests/script/general/parser/scalar_expression.sim
tests/script/general/parser/scalar_expression.sim
+25
-0
未找到文件。
src/client/src/tscSQLParser.c
浏览文件 @
4cbf6ddb
...
...
@@ -7425,8 +7425,6 @@ static int32_t checkUpdateTagPrjFunctions(SQueryInfo* pQueryInfo, char* msg) {
if
((
aAggs
[
functionId
].
status
&
TSDB_FUNCSTATE_SELECTIVITY
)
!=
0
)
{
numOfSelectivity
++
;
}
else
if
((
aAggs
[
functionId
].
status
&
TSDB_FUNCSTATE_SCALAR
)
!=
0
)
{
numOfScalar
++
;
}
else
{
numOfAggregation
++
;
}
...
...
@@ -7692,9 +7690,6 @@ int32_t doFunctionsCompatibleCheck(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, char*
return
invalidOperationMsg
(
msg
,
msg1
);
}
if
(
IS_SCALAR_FUNCTION
(
aAggs
[
f
].
status
))
{
return
invalidOperationMsg
(
msg
,
msg1
);
}
if
(
f
==
TSDB_FUNC_COUNT
&&
pExpr
->
base
.
colInfo
.
colIndex
==
TSDB_TBNAME_COLUMN_INDEX
)
{
return
invalidOperationMsg
(
msg
,
msg1
);
...
...
src/query/inc/qAggMain.h
浏览文件 @
4cbf6ddb
...
...
@@ -90,7 +90,6 @@ extern "C" {
#define TSDB_FUNCSTATE_OF 0x10u // outer forward
#define TSDB_FUNCSTATE_NEED_TS 0x20u // timestamp is required during query processing
#define TSDB_FUNCSTATE_SELECTIVITY 0x40u // selectivity functions, can exists along with tag columns
#define TSDB_FUNCSTATE_SCALAR 0x80u
#define TSDB_BASE_FUNC_SO TSDB_FUNCSTATE_SO | TSDB_FUNCSTATE_STREAM | TSDB_FUNCSTATE_STABLE | TSDB_FUNCSTATE_OF
#define TSDB_BASE_FUNC_MO TSDB_FUNCSTATE_MO | TSDB_FUNCSTATE_STREAM | TSDB_FUNCSTATE_STABLE | TSDB_FUNCSTATE_OF
...
...
@@ -231,7 +230,6 @@ int32_t isValidFunction(const char* name, int32_t len);
#define IS_MULTIOUTPUT(x) (((x)&TSDB_FUNCSTATE_MO) != 0)
#define IS_SINGLEOUTPUT(x) (((x)&TSDB_FUNCSTATE_SO) != 0)
#define IS_OUTER_FORWARD(x) (((x)&TSDB_FUNCSTATE_OF) != 0)
#define IS_SCALAR_FUNCTION(x) (((x)&TSDB_FUNCSTATE_SCALAR) != 0)
// determine the real data need to calculated the result
enum
{
...
...
src/query/src/qExecutor.c
浏览文件 @
4cbf6ddb
...
...
@@ -435,10 +435,6 @@ static bool isScalarWithTagsQuery(SQLFunctionCtx *pCtx, int32_t numOfOutput) {
hasTags
=
true
;
continue
;
}
if
((
aAggs
[
functId
].
status
&
TSDB_FUNCSTATE_SCALAR
)
!=
0
)
{
numOfScalar
++
;
}
}
return
(
numOfScalar
>
0
&&
hasTags
);
...
...
@@ -1869,7 +1865,7 @@ static int32_t setCtxTagColumnInfo(SQLFunctionCtx *pCtx, int32_t numOfOutput) {
if
(
functionId
==
TSDB_FUNC_TAG_DUMMY
||
functionId
==
TSDB_FUNC_TS_DUMMY
)
{
tagLen
+=
pCtx
[
i
].
outputBytes
;
pTagCtx
[
num
++
]
=
&
pCtx
[
i
];
}
else
if
((
aAggs
[
functionId
].
status
&
TSDB_FUNCSTATE_SELECTIVITY
)
!=
0
||
(
aAggs
[
functionId
].
status
&
TSDB_FUNCSTATE_SCALAR
)
!=
0
)
{
}
else
if
((
aAggs
[
functionId
].
status
&
TSDB_FUNCSTATE_SELECTIVITY
)
!=
0
)
{
p
=
&
pCtx
[
i
];
}
else
if
(
functionId
==
TSDB_FUNC_TS
||
functionId
==
TSDB_FUNC_TAG
)
{
// tag function may be the group by tag column
...
...
tests/script/general/parser/scalar_expression.sim
浏览文件 @
4cbf6ddb
...
...
@@ -199,12 +199,37 @@ endi
if $data90 != 0.429470715 then
return -1
endi
print execute sql select asin(c1) from $stb limit 1
sql select asin(c1) from $stb limit 1
if $data00 != 0.000000000 then
return -1
endi
print execute sql select pow(c1,2) from $stb limit 1 offset 2;
sql select pow(c1,2) from $stb limit 1 offset 2;
if $data00 != 4.000000000 then
return -1
endi
print exeucte sql select cos(c1) from db0.ct0, db0.ct1 where ct0.ts==ct1.ts;
sql select cos(c1) from db0.ct0, db0.ct1 where ct0.ts==ct1.ts
if $rows != 50 then
return -1
endi
if $data10 != 0.540302306 then
return -1
endi
print ============== invalid expressions
sql_error select agg(c1)+c2 from $stb
sql_error select agg(c1+2) from $stb
sql_error select agg(ceil(c1))+c2 from $stb
sql_error select agg(ceil(c1)) from $stb
sql_error select asin(c1) from $stb group by tbname
sql_error select asin(c2) from $stb group by tgcol
sql_error select asin(c1) from $stb session_window(ts, 1s)
sql_error select cos(c1) from $stb state_window(f1)
sql_error select pow(c2,2) from $stb interval(1s) sliding(500a)
sql_error select pow(c2,2) from $stb state_window(f1)
sql_error select tan(f1) from $stb from d.st slimit 1
print =============== clear
sql drop database $db
sql show databases
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录