Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
fadc11b6
T
TDengine
项目概览
taosdata
/
TDengine
大约 1 年 前同步成功
通知
1184
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,发现更多精彩内容 >>
提交
fadc11b6
编写于
6月 22, 2022
作者:
S
shenglian zhou
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: add compare parameter that enable/disable group id comparision
上级
aa46624b
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
20 addition
and
1 deletion
+20
-1
source/libs/executor/inc/tsort.h
source/libs/executor/inc/tsort.h
+6
-0
source/libs/executor/src/sortoperator.c
source/libs/executor/src/sortoperator.c
+2
-1
source/libs/executor/src/tsort.c
source/libs/executor/src/tsort.c
+12
-0
未找到文件。
source/libs/executor/inc/tsort.h
浏览文件 @
fadc11b6
...
...
@@ -50,6 +50,7 @@ typedef struct SMsortComparParam {
void
**
pSources
;
int32_t
numOfSources
;
SArray
*
orderInfo
;
// SArray<SBlockOrderInfo>
bool
cmpGroupId
;
}
SMsortComparParam
;
typedef
struct
SSortHandle
SSortHandle
;
...
...
@@ -99,6 +100,11 @@ int32_t tsortSetFetchRawDataFp(SSortHandle* pHandle, _sort_fetch_block_fn_t fetc
*/
int32_t
tsortSetComparFp
(
SSortHandle
*
pHandle
,
_sort_merge_compar_fn_t
fp
);
/**
*
*/
int32_t
tsortSetCompareGroupId
(
SSortHandle
*
pHandle
,
bool
compareGroupId
);
/**
*
* @param pHandle
...
...
source/libs/executor/src/sortoperator.c
浏览文件 @
fadc11b6
...
...
@@ -523,6 +523,7 @@ int32_t doOpenMultiwaySortMergeOperator(SOperatorInfo* pOperator) {
pInfo
->
pInputBlock
,
pTaskInfo
->
id
.
str
);
tsortSetFetchRawDataFp
(
pInfo
->
pSortHandle
,
loadNextDataBlock
,
NULL
,
NULL
);
tsortSetCompareGroupId
(
pInfo
->
pSortHandle
,
true
);
for
(
int32_t
i
=
0
;
i
<
pOperator
->
numOfDownstream
;
++
i
)
{
SSortSource
*
ps
=
taosMemoryCalloc
(
1
,
sizeof
(
SSortSource
));
...
...
source/libs/executor/src/tsort.c
浏览文件 @
fadc11b6
...
...
@@ -86,6 +86,7 @@ SSortHandle* tsortCreateSortHandle(SArray* pSortInfo, int32_t type, int32_t page
pSortHandle
->
pOrderedSource
=
taosArrayInit
(
4
,
POINTER_BYTES
);
pSortHandle
->
cmpParam
.
orderInfo
=
pSortInfo
;
pSortHandle
->
cmpParam
.
cmpGroupId
=
false
;
tsortSetComparFp
(
pSortHandle
,
msortComparFn
);
...
...
@@ -374,6 +375,12 @@ int32_t msortComparFn(const void *pLeft, const void *pRight, void *param) {
SSDataBlock
*
pLeftBlock
=
pLeftSource
->
src
.
pBlock
;
SSDataBlock
*
pRightBlock
=
pRightSource
->
src
.
pBlock
;
if
(
pParam
->
cmpGroupId
)
{
if
(
pLeftBlock
->
info
.
groupId
!=
pRightBlock
->
info
.
groupId
)
{
return
pLeftBlock
->
info
.
groupId
<
pRightBlock
->
info
.
groupId
?
-
1
:
1
;
}
}
for
(
int32_t
i
=
0
;
i
<
pInfo
->
size
;
++
i
)
{
SBlockOrderInfo
*
pOrder
=
TARRAY_GET_ELEM
(
pInfo
,
i
);
SColumnInfoData
*
pLeftColInfoData
=
TARRAY_GET_ELEM
(
pLeftBlock
->
pDataBlock
,
pOrder
->
slotId
);
...
...
@@ -680,6 +687,11 @@ int32_t tsortSetComparFp(SSortHandle* pHandle, _sort_merge_compar_fn_t fp) {
return
TSDB_CODE_SUCCESS
;
}
int32_t
tsortSetCompareGroupId
(
SSortHandle
*
pHandle
,
bool
compareGroupId
)
{
pHandle
->
cmpParam
.
cmpGroupId
=
compareGroupId
;
return
TSDB_CODE_SUCCESS
;
}
STupleHandle
*
tsortNextTuple
(
SSortHandle
*
pHandle
)
{
if
(
pHandle
->
cmpParam
.
numOfSources
==
pHandle
->
numOfCompletedSources
)
{
return
NULL
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录