Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
慢慢CG
TDengine
提交
8ac63bb2
T
TDengine
项目概览
慢慢CG
/
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看板
提交
8ac63bb2
编写于
3月 15, 2021
作者:
H
Haojun Liao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[td-225]fix bugs found by regression test.
上级
08aa04f1
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
55 addition
and
14 deletion
+55
-14
src/query/src/qExecutor.c
src/query/src/qExecutor.c
+30
-11
tests/script/general/parser/sliding.sim
tests/script/general/parser/sliding.sim
+25
-3
未找到文件。
src/query/src/qExecutor.c
浏览文件 @
8ac63bb2
...
...
@@ -476,22 +476,41 @@ static SResultRow *doPrepareResultRowFromKey(SQueryRuntimeEnv *pRuntimeEnv, SRes
return
getResultRow
(
pResultRowInfo
,
pResultRowInfo
->
curIndex
);
}
static
void
getInitialStartTimeWindow
(
SQuery
*
pQuery
,
TSKEY
ts
,
STimeWindow
*
w
)
{
if
(
QUERY_IS_ASC_QUERY
(
pQuery
))
{
getAlignQueryTimeWindow
(
pQuery
,
ts
,
ts
,
pQuery
->
window
.
ekey
,
w
);
}
else
{
// the start position of the first time window in the endpoint that spreads beyond the queried last timestamp
getAlignQueryTimeWindow
(
pQuery
,
ts
,
pQuery
->
window
.
ekey
,
ts
,
w
);
int64_t
key
=
w
->
skey
;
while
(
key
<
ts
)
{
// moving towards end
if
(
pQuery
->
interval
.
intervalUnit
==
'n'
||
pQuery
->
interval
.
intervalUnit
==
'y'
)
{
key
=
taosTimeAdd
(
key
,
pQuery
->
interval
.
sliding
,
pQuery
->
interval
.
slidingUnit
,
pQuery
->
precision
);
}
else
{
key
+=
pQuery
->
interval
.
sliding
;
}
if
(
key
>=
ts
)
{
break
;
}
w
->
skey
=
key
;
}
}
}
// get the correct time window according to the handled timestamp
static
STimeWindow
getActiveTimeWindow
(
SResultRowInfo
*
pResultRowInfo
,
int64_t
ts
,
SQuery
*
pQuery
)
{
STimeWindow
w
=
{
0
};
if
(
pResultRowInfo
->
curIndex
==
-
1
)
{
// the first window, from the previous stored value
if
(
pResultRowInfo
->
prevSKey
==
TSKEY_INITIAL_VAL
)
{
if
(
QUERY_IS_ASC_QUERY
(
pQuery
))
{
getAlignQueryTimeWindow
(
pQuery
,
ts
,
ts
,
pQuery
->
window
.
ekey
,
&
w
);
}
else
{
// the start position of the first time window in the endpoint that spreads beyond the queried last timestamp
getAlignQueryTimeWindow
(
pQuery
,
ts
,
pQuery
->
window
.
ekey
,
ts
,
&
w
);
}
pResultRowInfo
->
prevSKey
=
w
.
skey
;
}
else
{
w
.
skey
=
pResultRowInfo
->
prevSKey
;
}
if
(
pResultRowInfo
->
prevSKey
==
TSKEY_INITIAL_VAL
)
{
getInitialStartTimeWindow
(
pQuery
,
ts
,
&
w
);
pResultRowInfo
->
prevSKey
=
w
.
skey
;
}
else
{
w
.
skey
=
pResultRowInfo
->
prevSKey
;
}
if
(
pQuery
->
interval
.
intervalUnit
==
'n'
||
pQuery
->
interval
.
intervalUnit
==
'y'
)
{
w
.
ekey
=
taosTimeAdd
(
w
.
skey
,
pQuery
->
interval
.
interval
,
pQuery
->
interval
.
intervalUnit
,
pQuery
->
precision
)
-
1
;
...
...
tests/script/general/parser/sliding.sim
浏览文件 @
8ac63bb2
...
...
@@ -469,11 +469,12 @@ if $data25 != 33 then
endi
sql select count(*),stddev(c1),count(c1),first(c2),last(c3) from sliding_tb0 where ts>'2000-1-1 00:00:00' and ts<'2000-1-1 00:00:01.002' and c2 >= 0 interval(30s) sliding(10s) order by ts desc limit 1000;
if $row !=
1
then
if $row !=
3
then
return -1
endi
if $data00 != @99-12-31 23:59:40.000@ then
if $data00 != @00-01-01 00:00:00.000@ then
print expect 00-01-01 00:00:00.000, actual: $data00
return -1
endi
...
...
@@ -489,7 +490,28 @@ if $data03 != 33 then
return -1
endi
print check boundary check crash at client side
if $data10 != @99-12-31 23:59:50.000@ then
return -1
endi
if $data11 != 33 then
return -1
endi
if $data12 != 9.521904571 then
return -1
endi
if $data20 != @99-12-31 23:59:40.000@ then
return -1
endi
if $data21 != 33 then
return -1
endi
if $data22 != 9.521904571 then
return -1
endi
print ====================>check boundary check crash at client side
sql select count(*) from sliding_mt0 where ts>now and ts < now-1h;
print ========================query on super table
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录