Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
73d7caa6
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1192
Star
22018
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看板
提交
73d7caa6
编写于
8月 16, 2023
作者:
D
dapan1121
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: remove uid from scan list
上级
143c6575
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
32 addition
and
24 deletion
+32
-24
source/libs/executor/src/dynqueryctrloperator.c
source/libs/executor/src/dynqueryctrloperator.c
+4
-4
source/libs/executor/src/exchangeoperator.c
source/libs/executor/src/exchangeoperator.c
+1
-1
source/libs/executor/src/scanoperator.c
source/libs/executor/src/scanoperator.c
+21
-15
source/libs/nodes/src/nodesCloneFuncs.c
source/libs/nodes/src/nodesCloneFuncs.c
+1
-0
source/libs/planner/src/planOptimizer.c
source/libs/planner/src/planOptimizer.c
+5
-4
未找到文件。
source/libs/executor/src/dynqueryctrloperator.c
浏览文件 @
73d7caa6
...
...
@@ -264,7 +264,7 @@ static int32_t buildBatchExchangeOperatorParam(SOperatorParam** ppRes, int32_t d
int32_t
iter
=
0
;
void
*
p
=
NULL
;
while
(
p
=
tSimpleHashIterate
(
pVg
,
p
,
&
iter
))
{
while
(
NULL
!=
(
p
=
tSimpleHashIterate
(
pVg
,
p
,
&
iter
)
))
{
int32_t
*
pVgId
=
tSimpleHashGetKey
(
p
,
NULL
);
SArray
*
pUidList
=
*
(
SArray
**
)
p
;
basic
.
vgId
=
*
pVgId
;
...
...
@@ -349,7 +349,7 @@ static int32_t buildBatchTableScanOperatorParam(SOperatorParam** ppRes, int32_t
int32_t
iter
=
0
;
void
*
p
=
NULL
;
while
(
p
=
tSimpleHashIterate
(
pVg
,
p
,
&
iter
))
{
while
(
NULL
!=
(
p
=
tSimpleHashIterate
(
pVg
,
p
,
&
iter
)
))
{
int32_t
*
pVgId
=
tSimpleHashGetKey
(
p
,
NULL
);
SArray
*
pUidList
=
*
(
SArray
**
)
p
;
...
...
@@ -692,7 +692,7 @@ static void postProcessStbJoinTableHash(SOperatorInfo* pOperator) {
uint64_t
*
pUid
=
NULL
;
int32_t
iter
=
0
;
while
(
pUid
=
tSimpleHashIterate
(
pStbJoin
->
ctx
.
prev
.
onceTable
,
pUid
,
&
iter
))
{
while
(
NULL
!=
(
pUid
=
tSimpleHashIterate
(
pStbJoin
->
ctx
.
prev
.
onceTable
,
pUid
,
&
iter
)
))
{
tSimpleHashRemove
(
pStbJoin
->
ctx
.
prev
.
leftCache
,
pUid
,
sizeof
(
*
pUid
));
}
...
...
@@ -702,7 +702,7 @@ static void postProcessStbJoinTableHash(SOperatorInfo* pOperator) {
// debug only
iter
=
0
;
uint32_t
*
num
=
NULL
;
while
(
num
=
tSimpleHashIterate
(
pStbJoin
->
ctx
.
prev
.
leftCache
,
num
,
&
iter
))
{
while
(
NULL
!=
(
num
=
tSimpleHashIterate
(
pStbJoin
->
ctx
.
prev
.
leftCache
,
num
,
&
iter
)
))
{
ASSERT
(
*
num
>
1
);
}
}
...
...
source/libs/executor/src/exchangeoperator.c
浏览文件 @
73d7caa6
...
...
@@ -809,7 +809,7 @@ int32_t addDynamicExchangeSource(SOperatorInfo* pOperator) {
if
(
pParam
->
multiParams
)
{
SExchangeOperatorBatchParam
*
pBatch
=
(
SExchangeOperatorBatchParam
*
)
pOperator
->
pOperatorGetParam
->
value
;
int32_t
iter
=
0
;
while
(
pBasicParam
=
tSimpleHashIterate
(
pBatch
->
pBatchs
,
pBasicParam
,
&
iter
))
{
while
(
NULL
!=
(
pBasicParam
=
tSimpleHashIterate
(
pBatch
->
pBatchs
,
pBasicParam
,
&
iter
)
))
{
code
=
addSingleExchangeSource
(
pOperator
,
pBasicParam
);
if
(
code
)
{
return
code
;
...
...
source/libs/executor/src/scanoperator.c
浏览文件 @
73d7caa6
...
...
@@ -2903,17 +2903,23 @@ static void tagScanFilterByTagCond(SArray* aUidTags, SNode* pTagCond, SArray* aF
}
static
void
tagScanFillOneCellWithTag
(
const
STUidTagInfo
*
pUidTagInfo
,
SExprInfo
*
pExprInfo
,
SColumnInfoData
*
pColInfo
,
int
rowIndex
,
const
SStorageAPI
*
pAPI
,
void
*
pVnode
)
{
if
(
fmIsScanPseudoColumnFunc
(
pExprInfo
->
pExpr
->
_function
.
functionId
))
{
// tbname
char
str
[
TSDB_TABLE_FNAME_LEN
+
VARSTR_HEADER_SIZE
]
=
{
0
};
// if (pUidTagInfo->name != NULL) {
// STR_TO_VARSTR(str, pUidTagInfo->name);
// } else { // name is not retrieved during filter
// pAPI->metaFn.getTableNameByUid(pVnode, pUidTagInfo->uid, str);
// }
STR_TO_VARSTR
(
str
,
"ctbidx"
);
colDataSetVal
(
pColInfo
,
rowIndex
,
str
,
false
);
static
void
tagScanFillOneCellWithTag
(
SOperatorInfo
*
pOperator
,
const
STUidTagInfo
*
pUidTagInfo
,
SExprInfo
*
pExprInfo
,
SColumnInfoData
*
pColInfo
,
int
rowIndex
,
const
SStorageAPI
*
pAPI
,
void
*
pVnode
)
{
if
(
QUERY_NODE_FUNCTION
==
pExprInfo
->
pExpr
->
nodeType
)
{
if
(
FUNCTION_TYPE_TBNAME
==
pExprInfo
->
pExpr
->
_function
.
functionType
)
{
// tbname
char
str
[
TSDB_TABLE_FNAME_LEN
+
VARSTR_HEADER_SIZE
]
=
{
0
};
// if (pUidTagInfo->name != NULL) {
// STR_TO_VARSTR(str, pUidTagInfo->name);
// } else { // name is not retrieved during filter
// pAPI->metaFn.getTableNameByUid(pVnode, pUidTagInfo->uid, str);
// }
STR_TO_VARSTR
(
str
,
"ctbidx"
);
colDataSetVal
(
pColInfo
,
rowIndex
,
str
,
false
);
}
else
if
(
FUNCTION_TYPE_TBUID
==
pExprInfo
->
pExpr
->
_function
.
functionType
)
{
colDataSetVal
(
pColInfo
,
rowIndex
,
(
char
*
)
&
pUidTagInfo
->
uid
,
false
);
}
else
if
(
FUNCTION_TYPE_VGID
==
pExprInfo
->
pExpr
->
_function
.
functionType
)
{
colDataSetVal
(
pColInfo
,
rowIndex
,
(
char
*
)
&
pOperator
->
pTaskInfo
->
id
.
vgId
,
false
);
}
}
else
{
STagVal
tagVal
=
{
0
};
tagVal
.
cid
=
pExprInfo
->
base
.
pParam
[
0
].
pCol
->
colId
;
...
...
@@ -2950,7 +2956,7 @@ static int32_t tagScanFillResultBlock(SOperatorInfo* pOperator, SSDataBlock* pRe
STUidTagInfo
*
pUidTagInfo
=
taosArrayGet
(
aUidTags
,
idx
);
for
(
int32_t
j
=
0
;
j
<
pOperator
->
exprSupp
.
numOfExprs
;
++
j
)
{
SColumnInfoData
*
pDst
=
taosArrayGet
(
pRes
->
pDataBlock
,
pExprInfo
[
j
].
base
.
resSchema
.
slotId
);
tagScanFillOneCellWithTag
(
pUidTagInfo
,
&
pExprInfo
[
j
],
pDst
,
i
,
pAPI
,
pInfo
->
readHandle
.
vnode
);
tagScanFillOneCellWithTag
(
p
Operator
,
p
UidTagInfo
,
&
pExprInfo
[
j
],
pDst
,
i
,
pAPI
,
pInfo
->
readHandle
.
vnode
);
}
}
}
else
{
...
...
@@ -2959,7 +2965,7 @@ static int32_t tagScanFillResultBlock(SOperatorInfo* pOperator, SSDataBlock* pRe
STUidTagInfo
*
pUidTagInfo
=
taosArrayGet
(
aUidTags
,
i
);
for
(
int32_t
j
=
0
;
j
<
pOperator
->
exprSupp
.
numOfExprs
;
++
j
)
{
SColumnInfoData
*
pDst
=
taosArrayGet
(
pRes
->
pDataBlock
,
pExprInfo
[
j
].
base
.
resSchema
.
slotId
);
tagScanFillOneCellWithTag
(
pUidTagInfo
,
&
pExprInfo
[
j
],
pDst
,
i
,
pAPI
,
pInfo
->
readHandle
.
vnode
);
tagScanFillOneCellWithTag
(
p
Operator
,
p
UidTagInfo
,
&
pExprInfo
[
j
],
pDst
,
i
,
pAPI
,
pInfo
->
readHandle
.
vnode
);
}
}
}
...
...
@@ -2978,7 +2984,7 @@ static SSDataBlock* doTagScanFromCtbIdx(SOperatorInfo* pOperator) {
blockDataCleanup
(
pRes
);
if
(
pInfo
->
pCtbCursor
==
NULL
)
{
pInfo
->
pCtbCursor
=
pAPI
->
metaFn
.
openCtbCursor
(
pInfo
->
readHandle
.
vnode
,
pInfo
->
suid
,
1
);
pInfo
->
pCtbCursor
=
pAPI
->
metaFn
.
openCtbCursor
(
pInfo
->
readHandle
.
vnode
,
pInfo
->
suid
,
0
);
}
SArray
*
aUidTags
=
pInfo
->
aUidTags
;
...
...
@@ -3087,7 +3093,7 @@ static SSDataBlock* doTagScanFromMetaEntry(SOperatorInfo* pOperator) {
static
void
destroyTagScanOperatorInfo
(
void
*
param
)
{
STagScanInfo
*
pInfo
=
(
STagScanInfo
*
)
param
;
if
(
pInfo
->
pCtbCursor
!=
NULL
)
{
pInfo
->
pStorageAPI
->
metaFn
.
closeCtbCursor
(
pInfo
->
pCtbCursor
,
1
);
pInfo
->
pStorageAPI
->
metaFn
.
closeCtbCursor
(
pInfo
->
pCtbCursor
,
0
);
}
taosHashCleanup
(
pInfo
->
filterCtx
.
colHash
);
taosArrayDestroy
(
pInfo
->
filterCtx
.
cInfoList
);
...
...
source/libs/nodes/src/nodesCloneFuncs.c
浏览文件 @
73d7caa6
...
...
@@ -419,6 +419,7 @@ static int32_t logicScanCopy(const SScanLogicNode* pSrc, SScanLogicNode* pDst) {
CLONE_NODE_FIELD
(
pSubtable
);
COPY_SCALAR_FIELD
(
igLastNull
);
COPY_SCALAR_FIELD
(
groupOrderScan
);
COPY_SCALAR_FIELD
(
onlyMetaCtbIdx
);
return
TSDB_CODE_SUCCESS
;
}
...
...
source/libs/planner/src/planOptimizer.c
浏览文件 @
73d7caa6
...
...
@@ -3206,6 +3206,7 @@ int32_t stbJoinOptRewriteToTagScan(SLogicNode* pJoin, SNode* pNode) {
NODES_DESTORY_NODE
(
pScan
->
node
.
pConditions
);
pScan
->
node
.
requireDataOrder
=
DATA_ORDER_LEVEL_NONE
;
pScan
->
node
.
resultDataOrder
=
DATA_ORDER_LEVEL_NONE
;
pScan
->
onlyMetaCtbIdx
=
true
;
SNodeList
*
pTags
=
nodesMakeList
();
int32_t
code
=
nodesCollectColumnsFromNode
(
pJoinNode
->
pTagEqCond
,
NULL
,
COLLECT_COL_TYPE_TAG
,
&
pTags
);
...
...
@@ -3328,10 +3329,10 @@ static int32_t stbJoinOptCreateTableScanNodes(SLogicNode* pJoin, SNodeList** ppL
SNode
*
pNode
=
NULL
;
FOREACH
(
pNode
,
pList
)
{
SScanLogicNode
*
pScan
=
(
SScanLogicNode
*
)
pNode
;
code
=
stbJoinOptAddFuncToScanNode
(
"_tbuid"
,
pScan
);
if
(
code
)
{
break
;
}
//
code = stbJoinOptAddFuncToScanNode("_tbuid", pScan);
//
if (code) {
//
break;
//
}
pScan
->
node
.
dynamicOp
=
true
;
*
(
srcScan
+
i
++
)
=
pScan
->
pVgroupList
->
numOfVgroups
<=
1
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录