Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
52a89129
T
TDengine
项目概览
taosdata
/
TDengine
大约 1 年 前同步成功
通知
1185
Star
22015
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看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
52a89129
编写于
2月 28, 2023
作者:
H
Haojun Liao
提交者:
GitHub
2月 28, 2023
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #20183 from taosdata/fix/TD-22797
fix: avoid filter slow when not exist target value
上级
ca42ae6f
d9f8a84a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
55 addition
and
5 deletion
+55
-5
source/dnode/vnode/src/meta/metaQuery.c
source/dnode/vnode/src/meta/metaQuery.c
+4
-1
tests/script/tsim/tagindex/add_index.sim
tests/script/tsim/tagindex/add_index.sim
+51
-4
未找到文件。
source/dnode/vnode/src/meta/metaQuery.c
浏览文件 @
52a89129
...
@@ -1301,6 +1301,7 @@ int32_t metaFilterTableIds(SMeta *pMeta, SMetaFltParam *param, SArray *pUids) {
...
@@ -1301,6 +1301,7 @@ int32_t metaFilterTableIds(SMeta *pMeta, SMetaFltParam *param, SArray *pUids) {
/// src: [[suid, cid1, type1]....[suid, cid2, type2]....[suid, cid3, type3]...]
/// src: [[suid, cid1, type1]....[suid, cid2, type2]....[suid, cid3, type3]...]
/// target: [suid, cid2, type2]
/// target: [suid, cid2, type2]
int
diffCidCount
=
0
;
do
{
do
{
void
*
entryKey
=
NULL
,
*
entryVal
=
NULL
;
void
*
entryKey
=
NULL
,
*
entryVal
=
NULL
;
int32_t
nEntryKey
,
nEntryVal
;
int32_t
nEntryKey
,
nEntryVal
;
...
@@ -1317,7 +1318,9 @@ int32_t metaFilterTableIds(SMeta *pMeta, SMetaFltParam *param, SArray *pUids) {
...
@@ -1317,7 +1318,9 @@ int32_t metaFilterTableIds(SMeta *pMeta, SMetaFltParam *param, SArray *pUids) {
if
(
p
==
NULL
)
break
;
if
(
p
==
NULL
)
break
;
if
(
p
->
type
!=
pCursor
->
type
||
p
->
suid
!=
pCursor
->
suid
||
p
->
cid
!=
pCursor
->
cid
)
{
if
(
p
->
type
!=
pCursor
->
type
||
p
->
suid
!=
pCursor
->
suid
||
p
->
cid
!=
pCursor
->
cid
)
{
if
(
found
==
true
)
break
;
if
(
found
==
true
)
break
;
//
if
(
diffCidCount
>
TRY_ERROR_LIMIT
)
break
;
diffCidCount
++
;
count
++
;
count
++
;
valid
=
param
->
reverse
?
tdbTbcMoveToPrev
(
pCursor
->
pCur
)
:
tdbTbcMoveToNext
(
pCursor
->
pCur
);
valid
=
param
->
reverse
?
tdbTbcMoveToPrev
(
pCursor
->
pCur
)
:
tdbTbcMoveToNext
(
pCursor
->
pCur
);
if
(
valid
<
0
)
{
if
(
valid
<
0
)
{
...
...
tests/script/tsim/tagindex/add_index.sim
浏览文件 @
52a89129
...
@@ -7,7 +7,7 @@ print ======== step0
...
@@ -7,7 +7,7 @@ print ======== step0
$dbPrefix = ta_3_db
$dbPrefix = ta_3_db
$tbPrefix = ta_3_tb
$tbPrefix = ta_3_tb
$mtPrefix = ta_3_mt
$mtPrefix = ta_3_mt
$tbNum =
1
00
$tbNum =
5
00
$rowNum = 20
$rowNum = 20
$totalNum = 200
$totalNum = 200
...
@@ -26,9 +26,10 @@ endi
...
@@ -26,9 +26,10 @@ endi
print =============== create child table
print =============== create child table
$i = 0
$i = 0
$val = 1
while $i < $tbNum
while $i < $tbNum
$tb = $tbPrefix . $i
$tb = $tbPrefix . $i
sql create table $tb using $mtPrefix tags( $i , $i , $i , $i , $
i
);
sql create table $tb using $mtPrefix tags( $i , $i , $i , $i , $
val
);
$i = $i + 1
$i = $i + 1
endw
endw
...
@@ -49,6 +50,7 @@ endw
...
@@ -49,6 +50,7 @@ endw
sql create index ti2 on $mtPrefix (t2)
sql create index ti2 on $mtPrefix (t2)
sql create index ti5 on $mtPrefix (t5)
print ==== test name conflict
print ==== test name conflict
#
#
...
@@ -120,6 +122,53 @@ while $i < $tbNum
...
@@ -120,6 +122,53 @@ while $i < $tbNum
$i = $i + 1
$i = $i + 1
endw
endw
# test special boundary condtion
print ===== test operator low on ti5
# great equal than
sql select * from $mtPrefix where t5 < 0 ;
if $rows != 0 then
return -1
endi
print ===== test operator lower equal on ti5
# great equal than
sql select * from $mtPrefix where t5 <= $val ;
if $rows != $tbNum then
return -1
endi
print ===== test operator equal on ti5
# great equal than
sql select * from $mtPrefix where t5 = $val ;
if $rows != $tbNum then
return -1
endi
print ===== test operator great equal on ti5
# great equal than
sql select * from $mtPrefix where t5 >= $val ;
if $rows != $tbNum then
return -1
endi
print ===== test operator great than on ti5
# great equal than
sql select * from $mtPrefix where t5 > $val ;
if $rows != 0 then
return -1
endi
print ===== test operator great on ti5
# great equal than
sql select * from $mtPrefix where t5 > $val + 1 ;
if $rows != 0 then
return -1
endi
sql drop index ti5
print ===== add table after index created
print ===== add table after index created
$interval = $tbNum + $tbNum
$interval = $tbNum + $tbNum
$i = $interval
$i = $interval
...
@@ -130,8 +179,6 @@ while $i < $limit
...
@@ -130,8 +179,6 @@ while $i < $limit
$i = $i + 1
$i = $i + 1
endw
endw
print ===== add table after index created (opeator great equal than)
print ===== add table after index created (opeator great equal than)
# great equal than
# great equal than
$i = $interval
$i = $interval
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录