Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
04fea1e3
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看板
提交
04fea1e3
编写于
7月 18, 2023
作者:
D
dapan1121
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
enh: add batch fetch process
上级
07fca212
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
78 addition
and
51 deletion
+78
-51
source/libs/executor/inc/groupcache.h
source/libs/executor/inc/groupcache.h
+2
-0
source/libs/executor/src/dynqueryctrloperator.c
source/libs/executor/src/dynqueryctrloperator.c
+18
-12
source/libs/executor/src/groupcacheoperator.c
source/libs/executor/src/groupcacheoperator.c
+58
-39
未找到文件。
source/libs/executor/inc/groupcache.h
浏览文件 @
04fea1e3
...
@@ -131,6 +131,8 @@ typedef struct SGroupCacheOperatorInfo {
...
@@ -131,6 +131,8 @@ typedef struct SGroupCacheOperatorInfo {
SGroupColsInfo
groupColsInfo
;
SGroupColsInfo
groupColsInfo
;
bool
globalGrp
;
bool
globalGrp
;
bool
grpByUid
;
bool
grpByUid
;
bool
batchFetch
;
bool
fetchDone
;
SGcDownstreamCtx
*
pDownstreams
;
SGcDownstreamCtx
*
pDownstreams
;
SGcBlkCacheInfo
blkCache
;
SGcBlkCacheInfo
blkCache
;
SHashObj
*
pGrpHash
;
SHashObj
*
pGrpHash
;
...
...
source/libs/executor/src/dynqueryctrloperator.c
浏览文件 @
04fea1e3
...
@@ -29,15 +29,24 @@
...
@@ -29,15 +29,24 @@
int64_t
gSessionId
=
0
;
int64_t
gSessionId
=
0
;
void
freeVgTableList
(
void
*
ptr
)
{
taosArrayDestroy
(
*
(
SArray
**
)
ptr
);
}
static
void
destroyDynQueryCtrlOperator
(
void
*
param
)
{
static
void
destroyDynQueryCtrlOperator
(
void
*
param
)
{
SDynQueryCtrlOperatorInfo
*
pDyn
=
(
SDynQueryCtrlOperatorInfo
*
)
param
;
SDynQueryCtrlOperatorInfo
*
pDyn
=
(
SDynQueryCtrlOperatorInfo
*
)
param
;
qDebug
(
"dynQueryCtrl exec info, prevBlk:%"
PRId64
", prevRows:%"
PRId64
", postBlk:%"
PRId64
", postRows:%"
PRId64
,
qDebug
(
"dynQueryCtrl exec info, prevBlk:%"
PRId64
", prevRows:%"
PRId64
", postBlk:%"
PRId64
", postRows:%"
PRId64
,
pDyn
->
execInfo
.
prevBlkNum
,
pDyn
->
execInfo
.
prevBlkRows
,
pDyn
->
execInfo
.
postBlkNum
,
pDyn
->
execInfo
.
postBlkRows
);
pDyn
->
execInfo
.
prevBlkNum
,
pDyn
->
execInfo
.
prevBlkRows
,
pDyn
->
execInfo
.
postBlkNum
,
pDyn
->
execInfo
.
postBlkRows
);
tSimpleHashClear
(
pDyn
->
stbJoin
.
ctx
.
prev
.
leftVg
);
if
(
pDyn
->
stbJoin
.
ctx
.
prev
.
leftVg
)
{
tSimpleHashClear
(
pDyn
->
stbJoin
.
ctx
.
prev
.
rightVg
);
tSimpleHashSetFreeFp
(
pDyn
->
stbJoin
.
ctx
.
prev
.
leftVg
,
freeVgTableList
);
tSimpleHashCleanup
(
pDyn
->
stbJoin
.
ctx
.
prev
.
leftVg
);
tSimpleHashCleanup
(
pDyn
->
stbJoin
.
ctx
.
prev
.
leftVg
);
tSimpleHashCleanup
(
pDyn
->
stbJoin
.
ctx
.
prev
.
rightVg
);
}
if
(
pDyn
->
stbJoin
.
ctx
.
prev
.
rightVg
)
{
tSimpleHashSetFreeFp
(
pDyn
->
stbJoin
.
ctx
.
prev
.
rightVg
,
freeVgTableList
);
tSimpleHashCleanup
(
pDyn
->
stbJoin
.
ctx
.
prev
.
rightVg
);
}
taosMemoryFreeClear
(
param
);
taosMemoryFreeClear
(
param
);
}
}
...
@@ -55,6 +64,8 @@ static FORCE_INLINE int32_t buildGroupCacheOperatorParam(SOperatorParam** ppRes,
...
@@ -55,6 +64,8 @@ static FORCE_INLINE int32_t buildGroupCacheOperatorParam(SOperatorParam** ppRes,
if
(
NULL
==
taosArrayPush
((
*
ppRes
)
->
pChildren
,
&
pChild
))
{
if
(
NULL
==
taosArrayPush
((
*
ppRes
)
->
pChildren
,
&
pChild
))
{
return
TSDB_CODE_OUT_OF_MEMORY
;
return
TSDB_CODE_OUT_OF_MEMORY
;
}
}
}
else
{
(
*
ppRes
)
->
pChildren
=
NULL
;
}
}
SGcOperatorParam
*
pGc
=
taosMemoryMalloc
(
sizeof
(
SGcOperatorParam
));
SGcOperatorParam
*
pGc
=
taosMemoryMalloc
(
sizeof
(
SGcOperatorParam
));
...
@@ -497,6 +508,8 @@ static void seqBatchJoinLaunchRetrieve(SOperatorInfo* pOperator, SSDataBlock** p
...
@@ -497,6 +508,8 @@ static void seqBatchJoinLaunchRetrieve(SOperatorInfo* pOperator, SSDataBlock** p
}
}
seqJoinLaunchPostJoin
(
pOperator
,
ppRes
);
seqJoinLaunchPostJoin
(
pOperator
,
ppRes
);
pPrev
->
pListHead
->
readIdx
++
;
if
(
*
ppRes
)
{
if
(
*
ppRes
)
{
return
;
return
;
}
}
...
@@ -533,23 +546,16 @@ SSDataBlock* seqBatchStableJoin(SOperatorInfo* pOperator) {
...
@@ -533,23 +546,16 @@ SSDataBlock* seqBatchStableJoin(SOperatorInfo* pOperator) {
return
pRes
;
return
pRes
;
}
}
void
freeVgTableList
(
void
*
ptr
)
{
taosArrayDestroy
(
*
(
SArray
**
)
ptr
);
}
int32_t
initBatchStbJoinVgHash
(
SStbJoinPrevJoinCtx
*
pPrev
)
{
int32_t
initBatchStbJoinVgHash
(
SStbJoinPrevJoinCtx
*
pPrev
)
{
pPrev
->
leftVg
=
tSimpleHashInit
(
20
,
taosGetDefaultHashFunction
(
TSDB_DATA_TYPE_INT
));
pPrev
->
leftVg
=
tSimpleHashInit
(
20
,
taosGetDefaultHashFunction
(
TSDB_DATA_TYPE_INT
));
if
(
NULL
==
pPrev
->
leftVg
)
{
if
(
NULL
==
pPrev
->
leftVg
)
{
return
TSDB_CODE_OUT_OF_MEMORY
;
return
TSDB_CODE_OUT_OF_MEMORY
;
}
}
tSimpleHashSetFreeFp
(
pPrev
->
leftVg
,
freeVgTableList
);
pPrev
->
rightVg
=
tSimpleHashInit
(
20
,
taosGetDefaultHashFunction
(
TSDB_DATA_TYPE_INT
));
pPrev
->
rightVg
=
tSimpleHashInit
(
20
,
taosGetDefaultHashFunction
(
TSDB_DATA_TYPE_INT
));
if
(
NULL
==
pPrev
->
rightVg
)
{
if
(
NULL
==
pPrev
->
rightVg
)
{
return
TSDB_CODE_OUT_OF_MEMORY
;
return
TSDB_CODE_OUT_OF_MEMORY
;
}
}
tSimpleHashSetFreeFp
(
pPrev
->
rightVg
,
freeVgTableList
);
return
TSDB_CODE_SUCCESS
;
return
TSDB_CODE_SUCCESS
;
}
}
...
@@ -576,7 +582,7 @@ SOperatorInfo* createDynQueryCtrlOperatorInfo(SOperatorInfo** pDownstream, int32
...
@@ -576,7 +582,7 @@ SOperatorInfo* createDynQueryCtrlOperatorInfo(SOperatorInfo** pDownstream, int32
switch
(
pInfo
->
qType
)
{
switch
(
pInfo
->
qType
)
{
case
DYN_QTYPE_STB_HASH
:
case
DYN_QTYPE_STB_HASH
:
memcpy
(
&
pInfo
->
stbJoin
.
basic
,
&
pPhyciNode
->
stbJoin
,
sizeof
(
pPhyciNode
->
stbJoin
));
memcpy
(
&
pInfo
->
stbJoin
.
basic
,
&
pPhyciNode
->
stbJoin
,
sizeof
(
pPhyciNode
->
stbJoin
));
pInfo
->
stbJoin
.
basic
.
batchJoin
=
fals
e
;
pInfo
->
stbJoin
.
basic
.
batchJoin
=
tru
e
;
if
(
pInfo
->
stbJoin
.
basic
.
batchJoin
)
{
if
(
pInfo
->
stbJoin
.
basic
.
batchJoin
)
{
code
=
initBatchStbJoinVgHash
(
&
pInfo
->
stbJoin
.
ctx
.
prev
);
code
=
initBatchStbJoinVgHash
(
&
pInfo
->
stbJoin
.
ctx
.
prev
);
if
(
TSDB_CODE_SUCCESS
!=
code
)
{
if
(
TSDB_CODE_SUCCESS
!=
code
)
{
...
...
source/libs/executor/src/groupcacheoperator.c
浏览文件 @
04fea1e3
...
@@ -236,22 +236,20 @@ static FORCE_INLINE int32_t appendNewGroupToDownstream(struct SOperatorInfo* pOp
...
@@ -236,22 +236,20 @@ static FORCE_INLINE int32_t appendNewGroupToDownstream(struct SOperatorInfo* pOp
for
(
int32_t
i
=
0
;
i
<
num
;
++
i
)
{
for
(
int32_t
i
=
0
;
i
<
num
;
++
i
)
{
SGcNewGroupInfo
*
pNew
=
taosArrayGet
(
pCtx
->
pNewGrpList
,
i
);
SGcNewGroupInfo
*
pNew
=
taosArrayGet
(
pCtx
->
pNewGrpList
,
i
);
code
=
addNewGroupToVgHash
(
pCtx
->
pVgTbHash
,
pNew
);
if
(
!
pGCache
->
batchFetch
)
{
if
(
code
)
{
code
=
addNewGroupToVgHash
(
pCtx
->
pVgTbHash
,
pNew
);
goto
_return
;
if
(
code
)
{
goto
_return
;
}
}
}
if
(
num
>
1
)
{
if
(
NULL
==
pDst
)
{
if
(
0
==
i
)
{
pDst
=
pNew
->
pParam
;
}
else
{
code
=
mergeOperatorParams
(
pDst
,
pNew
->
pParam
);
if
(
code
)
{
goto
_return
;
}
}
}
else
{
pDst
=
pNew
->
pParam
;
pDst
=
pNew
->
pParam
;
}
else
if
(
pNew
->
pParam
)
{
code
=
mergeOperatorParams
(
pDst
,
pNew
->
pParam
);
if
(
code
)
{
goto
_return
;
}
}
}
}
}
...
@@ -352,12 +350,23 @@ static int32_t handleGroupCacheRetrievedBlk(struct SOperatorInfo* pOperator, SSD
...
@@ -352,12 +350,23 @@ static int32_t handleGroupCacheRetrievedBlk(struct SOperatorInfo* pOperator, SSD
SGroupCacheData
*
pGroup
=
taosHashGet
(
pGrpHash
,
&
pBlock
->
info
.
id
.
groupId
,
sizeof
(
pBlock
->
info
.
id
.
groupId
));
SGroupCacheData
*
pGroup
=
taosHashGet
(
pGrpHash
,
&
pBlock
->
info
.
id
.
groupId
,
sizeof
(
pBlock
->
info
.
id
.
groupId
));
if
(
NULL
==
pGroup
)
{
if
(
NULL
==
pGroup
)
{
qError
(
"table uid:%"
PRIu64
" not found in group hash"
,
pBlock
->
info
.
id
.
groupId
);
if
(
pGCache
->
batchFetch
)
{
return
TSDB_CODE_INVALID_PARA
;
SOperatorParam
fakeParam
=
{
0
};
fakeParam
.
downstreamIdx
=
pSession
->
downstreamIdx
;
code
=
addNewGroupData
(
pOperator
,
&
fakeParam
,
&
pGroup
,
-
1
,
pBlock
->
info
.
id
.
groupId
);
if
(
TSDB_CODE_SUCCESS
!=
code
)
{
return
code
;
}
}
else
{
qError
(
"table uid:%"
PRIu64
" not found in group hash"
,
pBlock
->
info
.
id
.
groupId
);
return
TSDB_CODE_INVALID_PARA
;
}
}
}
handleVgroupTableFetchDone
(
pCtx
,
pGroup
,
pBlock
->
info
.
id
.
groupId
);
if
(
!
pGCache
->
batchFetch
)
{
handleVgroupTableFetchDone
(
pCtx
,
pGroup
,
pBlock
->
info
.
id
.
groupId
);
}
SGcBlkBufInfo
newBlkBuf
;
SGcBlkBufInfo
newBlkBuf
;
code
=
addBlkToBufCache
(
pOperator
,
pBlock
,
pCtx
,
pGroup
,
&
newBlkBuf
);
code
=
addBlkToBufCache
(
pOperator
,
pBlock
,
pCtx
,
pGroup
,
&
newBlkBuf
);
if
(
code
)
{
if
(
code
)
{
...
@@ -386,16 +395,26 @@ static int32_t handleDownstreamFetchDone(struct SOperatorInfo* pOperator, SGcSes
...
@@ -386,16 +395,26 @@ static int32_t handleDownstreamFetchDone(struct SOperatorInfo* pOperator, SGcSes
int32_t
code
=
TSDB_CODE_SUCCESS
;
int32_t
code
=
TSDB_CODE_SUCCESS
;
SGroupCacheOperatorInfo
*
pGCache
=
pOperator
->
info
;
SGroupCacheOperatorInfo
*
pGCache
=
pOperator
->
info
;
SGcDownstreamCtx
*
pCtx
=
&
pGCache
->
pDownstreams
[
pSession
->
downstreamIdx
];
SGcDownstreamCtx
*
pCtx
=
&
pGCache
->
pDownstreams
[
pSession
->
downstreamIdx
];
int32_t
uidNum
=
0
;
if
(
pGCache
->
batchFetch
)
{
SGcVgroupCtx
*
pVgCtx
=
NULL
;
atomic_store_8
((
int8_t
*
)
&
pGCache
->
fetchDone
,
true
);
int32_t
iter
=
0
;
while
(
pVgCtx
=
tSimpleHashIterate
(
pCtx
->
pVgTbHash
,
pVgCtx
,
&
iter
))
{
SHashObj
*
pGrpHash
=
pGCache
->
globalGrp
?
pGCache
->
pGrpHash
:
pCtx
->
pGrpHash
;
uidNum
=
taosArrayGetSize
(
pVgCtx
->
pTbList
);
SGroupCacheData
*
pGroup
=
NULL
;
for
(
int32_t
i
=
0
;
i
<
uidNum
;
++
i
)
{
while
(
pGroup
=
taosHashIterate
(
pGrpHash
,
pGroup
))
{
SGcNewGroupInfo
*
pNew
=
taosArrayGet
(
pVgCtx
->
pTbList
,
i
);
handleGroupFetchDone
(
pGroup
);
handleGroupFetchDone
(
pNew
->
pGroup
);
}
}
else
{
int32_t
uidNum
=
0
;
SGcVgroupCtx
*
pVgCtx
=
NULL
;
int32_t
iter
=
0
;
while
(
pVgCtx
=
tSimpleHashIterate
(
pCtx
->
pVgTbHash
,
pVgCtx
,
&
iter
))
{
uidNum
=
taosArrayGetSize
(
pVgCtx
->
pTbList
);
for
(
int32_t
i
=
0
;
i
<
uidNum
;
++
i
)
{
SGcNewGroupInfo
*
pNew
=
taosArrayGet
(
pVgCtx
->
pTbList
,
i
);
handleGroupFetchDone
(
pNew
->
pGroup
);
}
taosArrayClear
(
pVgCtx
->
pTbList
);
}
}
taosArrayClear
(
pVgCtx
->
pTbList
);
}
}
taosHashClear
(
pCtx
->
pWaitSessions
);
taosHashClear
(
pCtx
->
pWaitSessions
);
...
@@ -575,10 +594,10 @@ static int32_t initGroupCacheBlockCache(SGroupCacheOperatorInfo* pInfo) {
...
@@ -575,10 +594,10 @@ static int32_t initGroupCacheBlockCache(SGroupCacheOperatorInfo* pInfo) {
return
TSDB_CODE_SUCCESS
;
return
TSDB_CODE_SUCCESS
;
}
}
static
FORCE_INLINE
void
initNewGroupData
(
SGcDownstreamCtx
*
pCtx
,
SGroupCacheData
*
pGroup
,
SGcOperatorParam
*
pGcParam
)
{
static
FORCE_INLINE
void
initNewGroupData
(
SGcDownstreamCtx
*
pCtx
,
SGroupCacheData
*
pGroup
,
int32_t
downstreamIdx
,
int32_t
vgId
)
{
taosThreadMutexInit
(
&
pGroup
->
mutex
,
NULL
);
taosThreadMutexInit
(
&
pGroup
->
mutex
,
NULL
);
pGroup
->
downstreamIdx
=
pGcParam
->
downstreamIdx
;
pGroup
->
downstreamIdx
=
downstreamIdx
;
pGroup
->
vgId
=
pGcParam
->
vgId
;
pGroup
->
vgId
=
vgId
;
pGroup
->
fileId
=
-
1
;
pGroup
->
fileId
=
-
1
;
pGroup
->
startBlkId
=
-
1
;
pGroup
->
startBlkId
=
-
1
;
pGroup
->
endBlkId
=
-
1
;
pGroup
->
endBlkId
=
-
1
;
...
@@ -586,18 +605,17 @@ static FORCE_INLINE void initNewGroupData(SGcDownstreamCtx* pCtx, SGroupCacheDat
...
@@ -586,18 +605,17 @@ static FORCE_INLINE void initNewGroupData(SGcDownstreamCtx* pCtx, SGroupCacheDat
pGroup
->
pVgCtx
=
tSimpleHashGet
(
pCtx
->
pVgTbHash
,
&
pGroup
->
vgId
,
sizeof
(
pGroup
->
vgId
));
pGroup
->
pVgCtx
=
tSimpleHashGet
(
pCtx
->
pVgTbHash
,
&
pGroup
->
vgId
,
sizeof
(
pGroup
->
vgId
));
}
}
static
int32_t
addNewGroupData
(
struct
SOperatorInfo
*
pOperator
,
SOperatorParam
*
pParam
,
SGroupCacheData
**
ppGrp
)
{
static
int32_t
addNewGroupData
(
struct
SOperatorInfo
*
pOperator
,
SOperatorParam
*
pParam
,
SGroupCacheData
**
ppGrp
,
int32_t
vgId
,
int64_t
uid
)
{
SGroupCacheOperatorInfo
*
pGCache
=
pOperator
->
info
;
SGroupCacheOperatorInfo
*
pGCache
=
pOperator
->
info
;
SGcOperatorParam
*
pGcParam
=
pParam
->
value
;
SGcDownstreamCtx
*
pCtx
=
&
pGCache
->
pDownstreams
[
pParam
->
downstreamIdx
];
SGcDownstreamCtx
*
pCtx
=
&
pGCache
->
pDownstreams
[
pParam
->
downstreamIdx
];
SHashObj
*
pGrpHash
=
pGCache
->
globalGrp
?
pGCache
->
pGrpHash
:
pCtx
->
pGrpHash
;
SHashObj
*
pGrpHash
=
pGCache
->
globalGrp
?
pGCache
->
pGrpHash
:
pCtx
->
pGrpHash
;
SGroupCacheData
grpData
=
{
0
};
SGroupCacheData
grpData
=
{
0
};
initNewGroupData
(
pCtx
,
&
grpData
,
p
GcParam
);
initNewGroupData
(
pCtx
,
&
grpData
,
p
Param
->
downstreamIdx
,
vgId
);
while
(
true
)
{
while
(
true
)
{
if
(
0
!=
taosHashPut
(
pGrpHash
,
&
pGcParam
->
tbUid
,
sizeof
(
pGcParam
->
tbU
id
),
&
grpData
,
sizeof
(
grpData
)))
{
if
(
0
!=
taosHashPut
(
pGrpHash
,
&
uid
,
sizeof
(
u
id
),
&
grpData
,
sizeof
(
grpData
)))
{
if
(
terrno
==
TSDB_CODE_DUP_KEY
)
{
if
(
terrno
==
TSDB_CODE_DUP_KEY
)
{
*
ppGrp
=
taosHashAcquire
(
pGrpHash
,
&
pGcParam
->
tbUid
,
sizeof
(
pGcParam
->
tbU
id
));
*
ppGrp
=
taosHashAcquire
(
pGrpHash
,
&
uid
,
sizeof
(
u
id
));
if
(
*
ppGrp
)
{
if
(
*
ppGrp
)
{
break
;
break
;
}
}
...
@@ -606,12 +624,12 @@ static int32_t addNewGroupData(struct SOperatorInfo* pOperator, SOperatorParam*
...
@@ -606,12 +624,12 @@ static int32_t addNewGroupData(struct SOperatorInfo* pOperator, SOperatorParam*
}
}
}
}
*
ppGrp
=
taosHashAcquire
(
pGrpHash
,
&
pGcParam
->
tbUid
,
sizeof
(
pGcParam
->
tbU
id
));
*
ppGrp
=
taosHashAcquire
(
pGrpHash
,
&
uid
,
sizeof
(
u
id
));
if
(
*
ppGrp
)
{
if
(
*
ppGrp
&&
pParam
->
pChildren
)
{
SGcNewGroupInfo
newGroup
;
SGcNewGroupInfo
newGroup
;
newGroup
.
pGroup
=
*
ppGrp
;
newGroup
.
pGroup
=
*
ppGrp
;
newGroup
.
vgId
=
pGcParam
->
vgId
;
newGroup
.
vgId
=
vgId
;
newGroup
.
uid
=
pGcParam
->
tbU
id
;
newGroup
.
uid
=
u
id
;
newGroup
.
pParam
=
taosArrayGetP
(
pParam
->
pChildren
,
0
);
newGroup
.
pParam
=
taosArrayGetP
(
pParam
->
pChildren
,
0
);
taosWLockLatch
(
&
pCtx
->
grpLock
);
taosWLockLatch
(
&
pCtx
->
grpLock
);
...
@@ -646,7 +664,7 @@ static int32_t initGroupCacheSession(struct SOperatorInfo* pOperator, SOperatorP
...
@@ -646,7 +664,7 @@ static int32_t initGroupCacheSession(struct SOperatorInfo* pOperator, SOperatorP
SGroupCacheData
*
pGroup
=
taosHashAcquire
(
pGrpHash
,
&
pGcParam
->
tbUid
,
sizeof
(
pGcParam
->
tbUid
));
SGroupCacheData
*
pGroup
=
taosHashAcquire
(
pGrpHash
,
&
pGcParam
->
tbUid
,
sizeof
(
pGcParam
->
tbUid
));
if
(
NULL
==
pGroup
)
{
if
(
NULL
==
pGroup
)
{
code
=
addNewGroupData
(
pOperator
,
pParam
,
&
pGroup
);
code
=
addNewGroupData
(
pOperator
,
pParam
,
&
pGroup
,
pGcParam
->
vgId
,
pGcParam
->
tbUid
);
if
(
TSDB_CODE_SUCCESS
!=
code
)
{
if
(
TSDB_CODE_SUCCESS
!=
code
)
{
return
code
;
return
code
;
}
}
...
@@ -777,6 +795,7 @@ SOperatorInfo* createGroupCacheOperatorInfo(SOperatorInfo** pDownstream, int32_t
...
@@ -777,6 +795,7 @@ SOperatorInfo* createGroupCacheOperatorInfo(SOperatorInfo** pDownstream, int32_t
pInfo
->
maxCacheSize
=
-
1
;
pInfo
->
maxCacheSize
=
-
1
;
pInfo
->
grpByUid
=
pPhyciNode
->
grpByUid
;
pInfo
->
grpByUid
=
pPhyciNode
->
grpByUid
;
pInfo
->
globalGrp
=
pPhyciNode
->
globalGrp
;
pInfo
->
globalGrp
=
pPhyciNode
->
globalGrp
;
pInfo
->
batchFetch
=
false
;
if
(
!
pInfo
->
grpByUid
)
{
if
(
!
pInfo
->
grpByUid
)
{
qError
(
"only group cache by uid is supported now"
);
qError
(
"only group cache by uid is supported now"
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录