未验证 提交 a3966580 编写于 作者: H Haojun Liao 提交者: GitHub

Merge pull request #19868 from taosdata/fix/liaohj

fix(query): set correct group table size.
...@@ -1818,28 +1818,30 @@ int32_t tableListAddTableInfo(STableListInfo* pTableList, uint64_t uid, uint64_t ...@@ -1818,28 +1818,30 @@ int32_t tableListAddTableInfo(STableListInfo* pTableList, uint64_t uid, uint64_t
int32_t tableListGetGroupList(const STableListInfo* pTableList, int32_t ordinalGroupIndex, STableKeyInfo** pKeyInfo, int32_t tableListGetGroupList(const STableListInfo* pTableList, int32_t ordinalGroupIndex, STableKeyInfo** pKeyInfo,
int32_t* size) { int32_t* size) {
int32_t total = tableListGetOutputGroups(pTableList); int32_t totalGroups = tableListGetOutputGroups(pTableList);
if (ordinalGroupIndex < 0 || ordinalGroupIndex >= total) { int32_t numOfTables = tableListGetSize(pTableList);
if (ordinalGroupIndex < 0 || ordinalGroupIndex >= totalGroups) {
return TSDB_CODE_INVALID_PARA; return TSDB_CODE_INVALID_PARA;
} }
// here handle two special cases: // here handle two special cases:
// 1. only one group exists, and 2. one table exists for each group. // 1. only one group exists, and 2. one table exists for each group.
if (total == 1) { if (totalGroups == 1) {
*size = tableListGetSize(pTableList); *size = numOfTables;
*pKeyInfo = (*size == 0) ? NULL : taosArrayGet(pTableList->pTableList, 0); *pKeyInfo = (*size == 0) ? NULL : taosArrayGet(pTableList->pTableList, 0);
return TSDB_CODE_SUCCESS; return TSDB_CODE_SUCCESS;
} else if (total == tableListGetSize(pTableList)) { } else if (totalGroups == numOfTables) {
*size = 1; *size = 1;
*pKeyInfo = taosArrayGet(pTableList->pTableList, ordinalGroupIndex); *pKeyInfo = taosArrayGet(pTableList->pTableList, ordinalGroupIndex);
return TSDB_CODE_SUCCESS; return TSDB_CODE_SUCCESS;
} }
int32_t offset = pTableList->groupOffset[ordinalGroupIndex]; int32_t offset = pTableList->groupOffset[ordinalGroupIndex];
if (ordinalGroupIndex < total - 1) { if (ordinalGroupIndex < totalGroups - 1) {
*size = pTableList->groupOffset[offset + 1] - pTableList->groupOffset[offset]; *size = pTableList->groupOffset[ordinalGroupIndex + 1] - offset;
} else { } else {
*size = total - pTableList->groupOffset[offset] - 1; *size = numOfTables - offset;
} }
*pKeyInfo = taosArrayGet(pTableList->pTableList, offset); *pKeyInfo = taosArrayGet(pTableList->pTableList, offset);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册