Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
957b1fb6
TDengine
项目概览
taosdata
/
TDengine
大约 1 年 前同步成功
通知
1184
Star
22015
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
957b1fb6
编写于
11月 15, 2022
作者:
D
dapan1121
提交者:
GitHub
11月 15, 2022
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #18151 from taosdata/fix/TD-20412
fix: fix asan issues
上级
665e2400
21e62f12
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
16 addition
and
8 deletion
+16
-8
source/libs/scalar/src/filter.c
source/libs/scalar/src/filter.c
+4
-0
source/libs/scalar/src/scalar.c
source/libs/scalar/src/scalar.c
+12
-8
未找到文件。
source/libs/scalar/src/filter.c
浏览文件 @
957b1fb6
...
...
@@ -336,6 +336,10 @@ int8_t filterGetCompFuncIdx(int32_t type, int32_t optr) {
__compar_fn_t
filterGetCompFunc
(
int32_t
type
,
int32_t
optr
)
{
return
gDataCompare
[
filterGetCompFuncIdx
(
type
,
optr
)];
}
__compar_fn_t
filterGetCompFuncEx
(
int32_t
lType
,
int32_t
rType
,
int32_t
optr
)
{
if
(
TSDB_DATA_TYPE_NULL
==
rType
)
{
return
NULL
;
}
switch
(
lType
)
{
case
TSDB_DATA_TYPE_TINYINT
:
{
if
(
IS_SIGNED_NUMERIC_TYPE
(
rType
)
||
IS_FLOAT_TYPE
(
rType
))
{
...
...
source/libs/scalar/src/scalar.c
浏览文件 @
957b1fb6
...
...
@@ -603,8 +603,9 @@ int32_t sclWalkCaseWhenList(SScalarCtx *ctx, SNodeList *pList, struct SListCell
bool
*
equal
=
(
bool
*
)
colDataGetData
(
pComp
->
columnData
,
rowIdx
);
if
(
*
equal
)
{
colDataAppend
(
output
->
columnData
,
rowIdx
,
colDataGetData
(
pThen
->
columnData
,
(
pThen
->
numOfRows
>
1
?
rowIdx
:
0
)),
colDataIsNull_s
(
pThen
->
columnData
,
(
pThen
->
numOfRows
>
1
?
rowIdx
:
0
)));
bool
isNull
=
colDataIsNull_s
(
pThen
->
columnData
,
(
pThen
->
numOfRows
>
1
?
rowIdx
:
0
));
char
*
pData
=
isNull
?
NULL
:
colDataGetData
(
pThen
->
columnData
,
(
pThen
->
numOfRows
>
1
?
rowIdx
:
0
));
colDataAppend
(
output
->
columnData
,
rowIdx
,
pData
,
isNull
);
if
(
0
==
rowIdx
&&
1
==
pCase
->
numOfRows
&&
1
==
pWhen
->
numOfRows
&&
1
==
pThen
->
numOfRows
&&
totalRows
>
1
)
{
SCL_ERR_JRET
(
sclExtendResRows
(
output
,
output
,
ctx
->
pBlockList
));
...
...
@@ -616,8 +617,9 @@ int32_t sclWalkCaseWhenList(SScalarCtx *ctx, SNodeList *pList, struct SListCell
}
if
(
pElse
)
{
colDataAppend
(
output
->
columnData
,
rowIdx
,
colDataGetData
(
pElse
->
columnData
,
(
pElse
->
numOfRows
>
1
?
rowIdx
:
0
)),
colDataIsNull_s
(
pElse
->
columnData
,
(
pElse
->
numOfRows
>
1
?
rowIdx
:
0
)));
bool
isNull
=
colDataIsNull_s
(
pElse
->
columnData
,
(
pElse
->
numOfRows
>
1
?
rowIdx
:
0
));
char
*
pData
=
isNull
?
NULL
:
colDataGetData
(
pElse
->
columnData
,
(
pElse
->
numOfRows
>
1
?
rowIdx
:
0
));
colDataAppend
(
output
->
columnData
,
rowIdx
,
pData
,
isNull
);
if
(
0
==
rowIdx
&&
1
==
pCase
->
numOfRows
&&
1
==
pElse
->
numOfRows
&&
totalRows
>
1
)
{
SCL_ERR_JRET
(
sclExtendResRows
(
output
,
output
,
ctx
->
pBlockList
));
...
...
@@ -664,8 +666,9 @@ int32_t sclWalkWhenList(SScalarCtx *ctx, SNodeList *pList, struct SListCell *pCe
bool
*
whenValue
=
(
bool
*
)
colDataGetData
(
pWhen
->
columnData
,
(
pWhen
->
numOfRows
>
1
?
rowIdx
:
0
));
if
(
*
whenValue
)
{
colDataAppend
(
output
->
columnData
,
rowIdx
,
colDataGetData
(
pThen
->
columnData
,
(
pThen
->
numOfRows
>
1
?
rowIdx
:
0
)),
colDataIsNull_s
(
pThen
->
columnData
,
(
pThen
->
numOfRows
>
1
?
rowIdx
:
0
)));
bool
isNull
=
colDataIsNull_s
(
pThen
->
columnData
,
(
pThen
->
numOfRows
>
1
?
rowIdx
:
0
));
char
*
pData
=
isNull
?
NULL
:
colDataGetData
(
pThen
->
columnData
,
(
pThen
->
numOfRows
>
1
?
rowIdx
:
0
));
colDataAppend
(
output
->
columnData
,
rowIdx
,
pData
,
isNull
);
if
(
preSingle
&&
0
==
rowIdx
&&
1
==
pWhen
->
numOfRows
&&
1
==
pThen
->
numOfRows
&&
totalRows
>
1
)
{
SCL_ERR_JRET
(
sclExtendResRows
(
output
,
output
,
ctx
->
pBlockList
));
...
...
@@ -682,8 +685,9 @@ int32_t sclWalkWhenList(SScalarCtx *ctx, SNodeList *pList, struct SListCell *pCe
}
if
(
pElse
)
{
colDataAppend
(
output
->
columnData
,
rowIdx
,
colDataGetData
(
pElse
->
columnData
,
(
pElse
->
numOfRows
>
1
?
rowIdx
:
0
)),
colDataIsNull_s
(
pElse
->
columnData
,
(
pElse
->
numOfRows
>
1
?
rowIdx
:
0
)));
bool
isNull
=
colDataIsNull_s
(
pElse
->
columnData
,
(
pElse
->
numOfRows
>
1
?
rowIdx
:
0
));
char
*
pData
=
isNull
?
NULL
:
colDataGetData
(
pElse
->
columnData
,
(
pElse
->
numOfRows
>
1
?
rowIdx
:
0
));
colDataAppend
(
output
->
columnData
,
rowIdx
,
pData
,
isNull
);
if
(
preSingle
&&
0
==
rowIdx
&&
1
==
pElse
->
numOfRows
&&
totalRows
>
1
)
{
SCL_ERR_JRET
(
sclExtendResRows
(
output
,
output
,
ctx
->
pBlockList
));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录