Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
8e1f4d1d
T
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1192
Star
22018
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看板
提交
8e1f4d1d
编写于
7月 07, 2023
作者:
D
dapan1121
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: operator param issues
上级
c19c59d5
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
38 addition
and
11 deletion
+38
-11
source/common/src/tmsg.c
source/common/src/tmsg.c
+3
-0
source/libs/executor/src/dynqueryctrloperator.c
source/libs/executor/src/dynqueryctrloperator.c
+16
-4
source/libs/executor/src/exchangeoperator.c
source/libs/executor/src/exchangeoperator.c
+9
-6
source/libs/executor/src/mergejoinoperator.c
source/libs/executor/src/mergejoinoperator.c
+6
-0
source/libs/executor/src/operator.c
source/libs/executor/src/operator.c
+2
-0
source/libs/executor/src/scanoperator.c
source/libs/executor/src/scanoperator.c
+2
-1
未找到文件。
source/common/src/tmsg.c
浏览文件 @
8e1f4d1d
...
...
@@ -5501,6 +5501,7 @@ void tFreeSSubQueryMsg(SSubQueryMsg *pReq) {
int32_t
tSerializeSOperatorParam
(
SEncoder
*
pEncoder
,
SOperatorParam
*
pOpParam
)
{
if
(
tEncodeI32
(
pEncoder
,
pOpParam
->
opType
)
<
0
)
return
-
1
;
if
(
tEncodeI32
(
pEncoder
,
pOpParam
->
downstreamIdx
)
<
0
)
return
-
1
;
switch
(
pOpParam
->
opType
)
{
case
QUERY_NODE_PHYSICAL_PLAN_TABLE_SCAN
:
{
STableScanOperatorParam
*
pScan
=
(
STableScanOperatorParam
*
)
pOpParam
->
value
;
...
...
@@ -5528,6 +5529,7 @@ int32_t tSerializeSOperatorParam(SEncoder* pEncoder, SOperatorParam* pOpParam) {
int32_t
tDeserializeSOperatorParam
(
SDecoder
*
pDecoder
,
SOperatorParam
*
pOpParam
)
{
if
(
tDecodeI32
(
pDecoder
,
&
pOpParam
->
opType
)
<
0
)
return
-
1
;
if
(
tDecodeI32
(
pDecoder
,
&
pOpParam
->
downstreamIdx
)
<
0
)
return
-
1
;
switch
(
pOpParam
->
opType
)
{
case
QUERY_NODE_PHYSICAL_PLAN_TABLE_SCAN
:
{
STableScanOperatorParam
*
pScan
=
taosMemoryMalloc
(
sizeof
(
STableScanOperatorParam
));
...
...
@@ -5545,6 +5547,7 @@ int32_t tDeserializeSOperatorParam(SDecoder *pDecoder, SOperatorParam* pOpParam)
}
else
{
pScan
->
pUidList
=
NULL
;
}
pOpParam
->
value
=
pScan
;
break
;
}
default:
...
...
source/libs/executor/src/dynqueryctrloperator.c
浏览文件 @
8e1f4d1d
...
...
@@ -61,6 +61,7 @@ static FORCE_INLINE int32_t buildGroupCacheOperatorParam(SOperatorParam** ppRes,
pGc
->
groupValueSize
=
grpValSize
;
(
*
ppRes
)
->
opType
=
QUERY_NODE_PHYSICAL_PLAN_GROUP_CACHE
;
(
*
ppRes
)
->
downstreamIdx
=
downstreamIdx
;
(
*
ppRes
)
->
value
=
pGc
;
return
TSDB_CODE_SUCCESS
;
...
...
@@ -132,16 +133,22 @@ static int32_t buildStbJoinOperatorParam(SDynQueryCtrlOperatorInfo* pInfo, SStbJ
SOperatorParam
*
pExcParam1
=
NULL
;
SOperatorParam
*
pGcParam0
=
NULL
;
SOperatorParam
*
pGcParam1
=
NULL
;
int32_t
*
leftVg
=
(
int32_t
*
)(
pVg0
->
pData
+
pVg0
->
info
.
bytes
*
rowIdx
);
int64_t
*
leftUid
=
(
int64_t
*
)(
pUid0
->
pData
+
pUid0
->
info
.
bytes
*
rowIdx
);
int32_t
*
rightVg
=
(
int32_t
*
)(
pVg1
->
pData
+
pVg1
->
info
.
bytes
*
rowIdx
);
int64_t
*
rightUid
=
(
int64_t
*
)(
pUid1
->
pData
+
pUid1
->
info
.
bytes
*
rowIdx
);
qDebug
(
"start stbJoin, left:%d,%"
PRIu64
" - right:%d,%"
PRIu64
,
*
leftVg
,
*
leftUid
,
*
rightVg
,
*
rightUid
);
int32_t
code
=
buildExchangeOperatorParam
(
&
pExcParam0
,
0
,
(
int32_t
*
)(
pVg0
->
pData
+
pVg0
->
info
.
bytes
*
rowIdx
),
(
int64_t
*
)(
pUid0
->
pData
+
pUid0
->
info
.
bytes
*
rowIdx
)
,
NULL
);
int32_t
code
=
buildExchangeOperatorParam
(
&
pExcParam0
,
0
,
leftVg
,
leftUid
,
NULL
);
if
(
TSDB_CODE_SUCCESS
==
code
)
{
code
=
buildExchangeOperatorParam
(
&
pExcParam1
,
1
,
(
int32_t
*
)(
pVg1
->
pData
+
pVg1
->
info
.
bytes
*
rowIdx
),
(
int64_t
*
)(
pUid1
->
pData
+
pUid1
->
info
.
bytes
*
rowIdx
)
,
NULL
);
code
=
buildExchangeOperatorParam
(
&
pExcParam1
,
1
,
rightVg
,
rightUid
,
NULL
);
}
if
(
TSDB_CODE_SUCCESS
==
code
)
{
code
=
buildGroupCacheOperatorParam
(
&
pGcParam0
,
0
,
false
,
pUid0
->
pData
+
pUid0
->
info
.
bytes
*
rowIdx
,
pUid0
->
info
.
bytes
,
pExcParam0
);
code
=
buildGroupCacheOperatorParam
(
&
pGcParam0
,
0
,
false
,
leftUid
,
pUid0
->
info
.
bytes
,
pExcParam0
);
}
if
(
TSDB_CODE_SUCCESS
==
code
)
{
code
=
buildGroupCacheOperatorParam
(
&
pGcParam1
,
1
,
false
,
pUid1
->
pData
+
pUid1
->
info
.
bytes
*
rowIdx
,
pUid1
->
info
.
bytes
,
pExcParam1
);
code
=
buildGroupCacheOperatorParam
(
&
pGcParam1
,
1
,
false
,
rightUid
,
pUid1
->
info
.
bytes
,
pExcParam1
);
}
if
(
TSDB_CODE_SUCCESS
==
code
)
{
code
=
buildMergeJoinOperatorParam
(
ppParam
,
pGcParam0
,
pGcParam1
);
...
...
@@ -165,6 +172,11 @@ static void seqJoinLaunchPostJoin(SOperatorInfo* pOperator, SSDataBlock** ppRes)
*
ppRes
=
pOperator
->
pDownstream
[
1
]
->
fpSet
.
getNextExtFn
(
pOperator
->
pDownstream
[
1
],
pParam
);
if
(
*
ppRes
)
{
pPost
->
isStarted
=
true
;
pInfo
->
execInfo
.
postBlkNum
++
;
pInfo
->
execInfo
.
postBlkRows
+=
(
*
ppRes
)
->
info
.
rows
;
qDebug
(
"join res block retrieved"
);
}
else
{
qDebug
(
"Empty join res block retrieved"
);
}
}
...
...
source/libs/executor/src/exchangeoperator.c
浏览文件 @
8e1f4d1d
...
...
@@ -159,11 +159,6 @@ static SSDataBlock* doLoadRemoteDataImpl(SOperatorInfo* pOperator) {
SExchangeInfo
*
pExchangeInfo
=
pOperator
->
info
;
SExecTaskInfo
*
pTaskInfo
=
pOperator
->
pTaskInfo
;
pTaskInfo
->
code
=
pOperator
->
fpSet
.
_openFn
(
pOperator
);
if
(
pTaskInfo
->
code
!=
TSDB_CODE_SUCCESS
)
{
T_LONG_JMP
(
pTaskInfo
->
env
,
pTaskInfo
->
code
);
}
size_t
totalSources
=
taosArrayGetSize
(
pExchangeInfo
->
pSources
);
SLoadRemoteDataInfo
*
pLoadInfo
=
&
pExchangeInfo
->
loadInfo
;
...
...
@@ -206,6 +201,11 @@ static SSDataBlock* loadRemoteData(SOperatorInfo* pOperator) {
SExchangeInfo
*
pExchangeInfo
=
pOperator
->
info
;
SExecTaskInfo
*
pTaskInfo
=
pOperator
->
pTaskInfo
;
pTaskInfo
->
code
=
pOperator
->
fpSet
.
_openFn
(
pOperator
);
if
(
pTaskInfo
->
code
!=
TSDB_CODE_SUCCESS
)
{
T_LONG_JMP
(
pTaskInfo
->
env
,
pTaskInfo
->
code
);
}
if
(
pOperator
->
status
==
OP_EXEC_DONE
)
{
return
NULL
;
}
...
...
@@ -434,6 +434,7 @@ int32_t buildTableScanOperatorParam(SOperatorParam** ppRes, SArray* pUidList, in
}
(
*
ppRes
)
->
opType
=
srcOpType
;
(
*
ppRes
)
->
downstreamIdx
=
0
;
(
*
ppRes
)
->
value
=
pScan
;
(
*
ppRes
)
->
pChildren
=
NULL
;
...
...
@@ -762,6 +763,8 @@ int32_t addDynamicExchangeSource(SOperatorInfo* pOperator) {
dataInfo
.
srcOpType
=
pParam
->
srcOpType
;
taosArrayPush
(
pExchangeInfo
->
pSourceDataInfo
,
&
dataInfo
);
pOperator
->
pOperatorParam
=
NULL
;
return
TSDB_CODE_SUCCESS
;
}
...
...
@@ -769,7 +772,7 @@ int32_t addDynamicExchangeSource(SOperatorInfo* pOperator) {
int32_t
prepareLoadRemoteData
(
SOperatorInfo
*
pOperator
)
{
SExchangeInfo
*
pExchangeInfo
=
pOperator
->
info
;
int32_t
code
=
TSDB_CODE_SUCCESS
;
if
(
OPTR_IS_OPENED
(
pOperator
)
&&
!
pExchangeInfo
->
dynamicOp
)
{
if
(
(
OPTR_IS_OPENED
(
pOperator
)
&&
!
pExchangeInfo
->
dynamicOp
)
||
(
pExchangeInfo
->
dynamicOp
&&
NULL
==
pOperator
->
pOperatorParam
)
)
{
return
TSDB_CODE_SUCCESS
;
}
...
...
source/libs/executor/src/mergejoinoperator.c
浏览文件 @
8e1f4d1d
...
...
@@ -647,8 +647,11 @@ static bool mergeJoinGetNextTimestamp(SOperatorInfo* pOperator, int64_t* pLeftTs
pJoinInfo
->
leftPos
=
0
;
if
(
pJoinInfo
->
pLeft
==
NULL
)
{
qDebug
(
"merge join left got empty block"
);
setTaskStatus
(
pOperator
->
pTaskInfo
,
TASK_COMPLETED
);
return
false
;
}
else
{
qDebug
(
"merge join left got block"
);
}
}
...
...
@@ -657,8 +660,11 @@ static bool mergeJoinGetNextTimestamp(SOperatorInfo* pOperator, int64_t* pLeftTs
pJoinInfo
->
rightPos
=
0
;
if
(
pJoinInfo
->
pRight
==
NULL
)
{
qDebug
(
"merge join right got empty block"
);
setTaskStatus
(
pOperator
->
pTaskInfo
,
TASK_COMPLETED
);
return
false
;
}
else
{
qDebug
(
"merge join right got block"
);
}
}
// only the timestamp match support for ordinary table
...
...
source/libs/executor/src/operator.c
浏览文件 @
8e1f4d1d
...
...
@@ -640,6 +640,8 @@ int32_t setOperatorParams(struct SOperatorInfo* pOperator, SOperatorParam* pPara
pOperator
->
pDownstreamParams
[
pChild
->
downstreamIdx
]
=
pChild
;
}
taosArrayClear
(
pOperator
->
pOperatorParam
->
pChildren
);
return
TSDB_CODE_SUCCESS
;
}
...
...
source/libs/executor/src/scanoperator.c
浏览文件 @
8e1f4d1d
...
...
@@ -815,7 +815,6 @@ static int32_t createTableListInfoFromParam(SOperatorInfo* pOperator) {
qTrace
(
"add dynamic table scan uid:%"
PRIu64
", %s"
,
info
.
uid
,
GET_TASKID
(
pTaskInfo
));
}
pOperator
->
pOperatorParam
=
NULL
;
return
code
;
}
...
...
@@ -852,12 +851,14 @@ static SSDataBlock* doTableScan(SOperatorInfo* pOperator) {
if
(
pOperator
->
pOperatorParam
)
{
int32_t
code
=
createTableListInfoFromParam
(
pOperator
);
pOperator
->
pOperatorParam
=
NULL
;
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
pTaskInfo
->
code
=
code
;
T_LONG_JMP
(
pTaskInfo
->
env
,
code
);
}
if
(
pInfo
->
currentGroupId
!=
-
1
)
{
pInfo
->
currentGroupId
=
0
;
return
startNextGroupScan
(
pOperator
);
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录