remainGroups
This commit is contained in:
parent
85ba9a4a5f
commit
b818faaa5e
|
@ -2164,7 +2164,7 @@ int32_t buildGroupIdMapForAllTables(STableListInfo* pTableListInfo, SReadHandle*
|
||||||
bool initRemainGroups = false;
|
bool initRemainGroups = false;
|
||||||
if (QUERY_NODE_PHYSICAL_PLAN_TABLE_SCAN == nodeType(pScanNode)) {
|
if (QUERY_NODE_PHYSICAL_PLAN_TABLE_SCAN == nodeType(pScanNode)) {
|
||||||
STableScanPhysiNode* pTableScanNode = (STableScanPhysiNode*)pScanNode;
|
STableScanPhysiNode* pTableScanNode = (STableScanPhysiNode*)pScanNode;
|
||||||
if (pTableScanNode->needCountEmptyTable) {
|
if (pTableScanNode->needCountEmptyTable && !(groupSort || pScanNode->groupOrderScan)) {
|
||||||
initRemainGroups = true;
|
initRemainGroups = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -690,7 +690,7 @@ void markGroupProcessed(STableScanInfo* pInfo, uint64_t groupId) {
|
||||||
if (pInfo->countState == TABLE_COUNT_STATE_END) {
|
if (pInfo->countState == TABLE_COUNT_STATE_END) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (pInfo->base.pTableListInfo->oneTableForEachGroup) {
|
if (pInfo->base.pTableListInfo->oneTableForEachGroup || pInfo->base.pTableListInfo->groupOffset) {
|
||||||
pInfo->countState = TABLE_COUNT_STATE_PROCESSED;
|
pInfo->countState = TABLE_COUNT_STATE_PROCESSED;
|
||||||
} else {
|
} else {
|
||||||
taosHashRemove(pInfo->base.pTableListInfo->remainGroups, &groupId, sizeof(groupId));
|
taosHashRemove(pInfo->base.pTableListInfo->remainGroups, &groupId, sizeof(groupId));
|
||||||
|
@ -854,14 +854,14 @@ static SSDataBlock* doGroupedTableScan(SOperatorInfo* pOperator) {
|
||||||
|
|
||||||
if (pTableScanInfo->countState < TABLE_COUNT_STATE_END) {
|
if (pTableScanInfo->countState < TABLE_COUNT_STATE_END) {
|
||||||
STableListInfo* pTableListInfo = pTableScanInfo->base.pTableListInfo;
|
STableListInfo* pTableListInfo = pTableScanInfo->base.pTableListInfo;
|
||||||
if (pTableListInfo->oneTableForEachGroup) { // group by tbname
|
if (pTableListInfo->oneTableForEachGroup || pTableListInfo->groupOffset) { // group by tbname, group by tag + sort
|
||||||
if (pTableScanInfo->countState < TABLE_COUNT_STATE_PROCESSED) {
|
if (pTableScanInfo->countState < TABLE_COUNT_STATE_PROCESSED) {
|
||||||
pTableScanInfo->countState = TABLE_COUNT_STATE_PROCESSED;
|
pTableScanInfo->countState = TABLE_COUNT_STATE_PROCESSED;
|
||||||
STableKeyInfo* pStart =
|
STableKeyInfo* pStart =
|
||||||
(STableKeyInfo*)tableListGetInfo(pTableScanInfo->base.pTableListInfo, pTableScanInfo->tableStartIndex);
|
(STableKeyInfo*)tableListGetInfo(pTableScanInfo->base.pTableListInfo, pTableScanInfo->tableStartIndex);
|
||||||
return getBlockForEmptyTable(pOperator, pStart);
|
return getBlockForEmptyTable(pOperator, pStart);
|
||||||
}
|
}
|
||||||
} else { // group by tag
|
} else { // group by tag + no sort
|
||||||
int32_t numOfTables = tableListGetSize(pTableListInfo);
|
int32_t numOfTables = tableListGetSize(pTableListInfo);
|
||||||
if (pTableScanInfo->tableEndIndex + 1 >= numOfTables) {
|
if (pTableScanInfo->tableEndIndex + 1 >= numOfTables) {
|
||||||
// get empty group, mark processed & rm from hash
|
// get empty group, mark processed & rm from hash
|
||||||
|
|
Loading…
Reference in New Issue