Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
61b06352
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
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看板
提交
61b06352
编写于
5月 25, 2023
作者:
S
slzhou
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: get time range using new scalar mode range
上级
de1848cb
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
44 addition
and
2 deletion
+44
-2
source/libs/scalar/src/filter.c
source/libs/scalar/src/filter.c
+44
-2
未找到文件。
source/libs/scalar/src/filter.c
浏览文件 @
61b06352
...
...
@@ -3765,8 +3765,8 @@ bool filterRangeExecute(SFilterInfo *info, SColumnDataAgg **pDataStatis, int32_t
SColumnDataAgg
*
pAgg
=
pDataStatis
[
j
];
SArray
*
points
=
taosArrayInit
(
2
,
sizeof
(
SFltSclPoint
));
fltSclBuildRangeFromBlockSma
(
colRange
,
pAgg
,
numOfRows
,
points
);
qDebug
(
"column data agg: nulls %d, rows %d, max %"
PRId64
" min %"
PRId64
,
pAgg
->
numOfNull
,
numOfRows
,
pAgg
->
max
,
pAgg
->
min
);
qDebug
(
"column data agg: nulls %d, rows %d, max %"
PRId64
" min %"
PRId64
,
pAgg
->
numOfNull
,
numOfRows
,
pAgg
->
m
ax
,
pAgg
->
m
in
);
SArray
*
merged
=
taosArrayInit
(
8
,
sizeof
(
SFltSclPoint
));
fltSclIntersect
(
points
,
colRange
->
points
,
merged
);
...
...
@@ -3960,6 +3960,31 @@ _return:
return
code
;
}
static
int32_t
fltSclGetDatumValueFromPoint
(
SFltSclPoint
*
point
,
SFltSclDatum
*
d
)
{
*
d
=
point
->
val
;
if
(
point
->
val
.
kind
==
FLT_SCL_DATUM_KIND_NULL
)
{
return
TSDB_CODE_SUCCESS
;
}
if
(
point
->
val
.
kind
==
FLT_SCL_DATUM_KIND_MAX
)
{
getDataMax
(
d
->
type
.
type
,
&
(
d
->
i
));
}
else
if
(
point
->
val
.
kind
==
FLT_SCL_DATUM_KIND_MIN
)
{
getDataMin
(
d
->
type
.
type
,
&
(
d
->
i
));
}
if
((
point
->
val
.
kind
==
FLT_SCL_DATUM_KIND_INT64
)
||
(
point
->
val
.
kind
=
FLT_SCL_DATUM_KIND_UINT64
))
{
if
(
point
->
excl
)
{
if
(
point
->
start
)
{
++
d
->
i
;
}
else
{
--
d
->
i
;
}
}
}
else
{
qError
(
"not supported kind %d when get datum from point"
,
point
->
val
.
kind
);
}
return
TSDB_CODE_SUCCESS
;
}
int32_t
filterGetTimeRange
(
SNode
*
pNode
,
STimeWindow
*
win
,
bool
*
isStrict
)
{
SFilterInfo
*
info
=
NULL
;
int32_t
code
=
0
;
...
...
@@ -3969,6 +3994,23 @@ int32_t filterGetTimeRange(SNode *pNode, STimeWindow *win, bool *isStrict) {
FLT_ERR_RET
(
filterInitFromNode
(
pNode
,
&
info
,
FLT_OPTION_NO_REWRITE
|
FLT_OPTION_TIMESTAMP
));
if
(
info
->
scalarMode
)
{
SArray
*
colRanges
=
info
->
sclCtx
.
fltSclRange
;
if
(
taosArrayGetSize
(
colRanges
)
==
1
)
{
SFltSclColumnRange
*
colRange
=
taosArrayGet
(
colRanges
,
0
);
SArray
*
points
=
colRange
->
points
;
if
(
taosArrayGetSize
(
points
)
==
2
)
{
SFltSclPoint
*
startPt
=
taosArrayGet
(
points
,
0
);
SFltSclPoint
*
endPt
=
taosArrayGet
(
points
,
1
);
SFltSclDatum
start
;
SFltSclDatum
end
;
fltSclGetDatumValueFromPoint
(
startPt
,
&
start
);
fltSclGetDatumValueFromPoint
(
endPt
,
&
end
);
win
->
skey
=
start
.
i
;
win
->
ekey
=
end
.
i
;
*
isStrict
=
true
;
goto
_return
;
}
}
*
win
=
TSWINDOW_INITIALIZER
;
*
isStrict
=
false
;
goto
_return
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录