Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
buyaopa
TDengine
提交
9e1db3f3
T
TDengine
项目概览
buyaopa
/
TDengine
与 Fork 源项目一致
Fork自
taosdata / TDengine
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
9e1db3f3
编写于
12月 18, 2019
作者:
H
hjxilinx
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix bug in issue #941 [tbase-1359]
上级
ef6df509
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
29 addition
and
7 deletion
+29
-7
src/system/detail/src/mgmtSupertableQuery.c
src/system/detail/src/mgmtSupertableQuery.c
+29
-7
未找到文件。
src/system/detail/src/mgmtSupertableQuery.c
浏览文件 @
9e1db3f3
...
...
@@ -100,6 +100,32 @@ static int32_t tabObjResultComparator(const void* p1, const void* p2, void* para
return
0
;
}
/**
* update the tag order index according to the tags column index. The tags column index needs to be checked one-by-one,
* since the normal columns may be passed to server for handling the group by on status column.
*
* @param pMetricMetaMsg
* @param tableIndex
* @param pOrderIndexInfo
* @param numOfTags
*/
static
void
mgmtUpdateOrderTagColIndex
(
SMetricMetaMsg
*
pMetricMetaMsg
,
int32_t
tableIndex
,
tOrderIdx
*
pOrderIndexInfo
,
int32_t
numOfTags
)
{
SMetricMetaElemMsg
*
pElem
=
(
SMetricMetaElemMsg
*
)((
char
*
)
pMetricMetaMsg
+
pMetricMetaMsg
->
metaElem
[
tableIndex
]);
SColIndexEx
*
groupColumnList
=
(
SColIndexEx
*
)((
char
*
)
pMetricMetaMsg
+
pElem
->
groupbyTagColumnList
);
int32_t
numOfGroupbyTags
=
0
;
for
(
int32_t
i
=
0
;
i
<
pElem
->
numOfGroupCols
;
++
i
)
{
if
(
groupColumnList
[
i
].
flag
==
TSDB_COL_TAG
)
{
// ignore this column if it is not a tag column.
pOrderIndexInfo
->
pData
[
numOfGroupbyTags
++
]
=
groupColumnList
[
i
].
colIdx
;
assert
(
groupColumnList
[
i
].
colIdx
<
numOfTags
);
}
}
pOrderIndexInfo
->
numOfOrderedCols
=
numOfGroupbyTags
;
}
// todo merge sort function with losertree used
void
mgmtReorganizeMetersInMetricMeta
(
SMetricMetaMsg
*
pMetricMetaMsg
,
int32_t
tableIndex
,
tQueryResultset
*
pRes
)
{
if
(
pRes
->
num
<=
0
)
{
// no result, no need to pagination
...
...
@@ -123,12 +149,8 @@ void mgmtReorganizeMetersInMetricMeta(SMetricMetaMsg* pMetricMetaMsg, int32_t ta
int32_t
*
startPos
=
NULL
;
int32_t
numOfSubset
=
1
;
if
(
pElem
->
numOfGroupCols
>
0
)
{
SColIndexEx
*
groupColumnList
=
(
SColIndexEx
*
)((
char
*
)
pMetricMetaMsg
+
pElem
->
groupbyTagColumnList
);
for
(
int32_t
i
=
0
;
i
<
pElem
->
numOfGroupCols
;
++
i
)
{
descriptor
->
orderIdx
.
pData
[
i
]
=
groupColumnList
[
i
].
colIdx
;
}
mgmtUpdateOrderTagColIndex
(
pMetricMetaMsg
,
tableIndex
,
&
descriptor
->
orderIdx
,
pMetric
->
numOfTags
);
if
(
descriptor
->
orderIdx
.
numOfOrderedCols
>
0
)
{
tQSortEx
(
pRes
->
pRes
,
POINTER_BYTES
,
0
,
pRes
->
num
-
1
,
descriptor
,
tabObjResultComparator
);
startPos
=
calculateSubGroup
(
pRes
->
pRes
,
pRes
->
num
,
&
numOfSubset
,
descriptor
,
tabObjResultComparator
);
}
else
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录