fix(query): fix count/hyperloglog return additional row in group by
when queryPolicy is set to 3.
This commit is contained in:
parent
ec75ddec83
commit
b55af6372c
|
@ -402,6 +402,7 @@ static int32_t logicAggCopy(const SAggLogicNode* pSrc, SAggLogicNode* pDst) {
|
||||||
COPY_BASE_OBJECT_FIELD(node, logicNodeCopy);
|
COPY_BASE_OBJECT_FIELD(node, logicNodeCopy);
|
||||||
CLONE_NODE_LIST_FIELD(pGroupKeys);
|
CLONE_NODE_LIST_FIELD(pGroupKeys);
|
||||||
CLONE_NODE_LIST_FIELD(pAggFuncs);
|
CLONE_NODE_LIST_FIELD(pAggFuncs);
|
||||||
|
COPY_SCALAR_FIELD(hasGroupKeyOptimized);
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1829,6 +1829,7 @@ static const char* jkAggPhysiPlanExprs = "Exprs";
|
||||||
static const char* jkAggPhysiPlanGroupKeys = "GroupKeys";
|
static const char* jkAggPhysiPlanGroupKeys = "GroupKeys";
|
||||||
static const char* jkAggPhysiPlanAggFuncs = "AggFuncs";
|
static const char* jkAggPhysiPlanAggFuncs = "AggFuncs";
|
||||||
static const char* jkAggPhysiPlanMergeDataBlock = "MergeDataBlock";
|
static const char* jkAggPhysiPlanMergeDataBlock = "MergeDataBlock";
|
||||||
|
static const char* jkAggPhysiPlanGroupKeyOptimized = "GroupKeyOptimized";
|
||||||
|
|
||||||
static int32_t physiAggNodeToJson(const void* pObj, SJson* pJson) {
|
static int32_t physiAggNodeToJson(const void* pObj, SJson* pJson) {
|
||||||
const SAggPhysiNode* pNode = (const SAggPhysiNode*)pObj;
|
const SAggPhysiNode* pNode = (const SAggPhysiNode*)pObj;
|
||||||
|
@ -1846,6 +1847,9 @@ static int32_t physiAggNodeToJson(const void* pObj, SJson* pJson) {
|
||||||
if (TSDB_CODE_SUCCESS == code) {
|
if (TSDB_CODE_SUCCESS == code) {
|
||||||
code = tjsonAddBoolToObject(pJson, jkAggPhysiPlanMergeDataBlock, pNode->mergeDataBlock);
|
code = tjsonAddBoolToObject(pJson, jkAggPhysiPlanMergeDataBlock, pNode->mergeDataBlock);
|
||||||
}
|
}
|
||||||
|
if (TSDB_CODE_SUCCESS == code) {
|
||||||
|
code = tjsonAddBoolToObject(pJson, jkAggPhysiPlanGroupKeyOptimized, pNode->groupKeyOptimized);
|
||||||
|
}
|
||||||
|
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
@ -1866,6 +1870,9 @@ static int32_t jsonToPhysiAggNode(const SJson* pJson, void* pObj) {
|
||||||
if (TSDB_CODE_SUCCESS == code) {
|
if (TSDB_CODE_SUCCESS == code) {
|
||||||
code = tjsonGetBoolValue(pJson, jkAggPhysiPlanMergeDataBlock, &pNode->mergeDataBlock);
|
code = tjsonGetBoolValue(pJson, jkAggPhysiPlanMergeDataBlock, &pNode->mergeDataBlock);
|
||||||
}
|
}
|
||||||
|
if (TSDB_CODE_SUCCESS == code) {
|
||||||
|
code = tjsonGetBoolValue(pJson, jkAggPhysiPlanGroupKeyOptimized, &pNode->groupKeyOptimized);
|
||||||
|
}
|
||||||
|
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2370,7 +2370,8 @@ enum {
|
||||||
PHY_AGG_CODE_EXPR,
|
PHY_AGG_CODE_EXPR,
|
||||||
PHY_AGG_CODE_GROUP_KEYS,
|
PHY_AGG_CODE_GROUP_KEYS,
|
||||||
PHY_AGG_CODE_AGG_FUNCS,
|
PHY_AGG_CODE_AGG_FUNCS,
|
||||||
PHY_AGG_CODE_MERGE_DATA_BLOCK
|
PHY_AGG_CODE_MERGE_DATA_BLOCK,
|
||||||
|
PHY_AGG_CODE_GROUP_KEY_OPTIMIZE
|
||||||
};
|
};
|
||||||
|
|
||||||
static int32_t physiAggNodeToMsg(const void* pObj, STlvEncoder* pEncoder) {
|
static int32_t physiAggNodeToMsg(const void* pObj, STlvEncoder* pEncoder) {
|
||||||
|
@ -2389,6 +2390,9 @@ static int32_t physiAggNodeToMsg(const void* pObj, STlvEncoder* pEncoder) {
|
||||||
if (TSDB_CODE_SUCCESS == code) {
|
if (TSDB_CODE_SUCCESS == code) {
|
||||||
code = tlvEncodeBool(pEncoder, PHY_AGG_CODE_MERGE_DATA_BLOCK, pNode->mergeDataBlock);
|
code = tlvEncodeBool(pEncoder, PHY_AGG_CODE_MERGE_DATA_BLOCK, pNode->mergeDataBlock);
|
||||||
}
|
}
|
||||||
|
if (TSDB_CODE_SUCCESS == code) {
|
||||||
|
code = tlvEncodeBool(pEncoder, PHY_AGG_CODE_GROUP_KEY_OPTIMIZE, pNode->groupKeyOptimized);
|
||||||
|
}
|
||||||
|
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
@ -2415,6 +2419,9 @@ static int32_t msgToPhysiAggNode(STlvDecoder* pDecoder, void* pObj) {
|
||||||
case PHY_AGG_CODE_MERGE_DATA_BLOCK:
|
case PHY_AGG_CODE_MERGE_DATA_BLOCK:
|
||||||
code = tlvDecodeBool(pTlv, &pNode->mergeDataBlock);
|
code = tlvDecodeBool(pTlv, &pNode->mergeDataBlock);
|
||||||
break;
|
break;
|
||||||
|
case PHY_AGG_CODE_GROUP_KEY_OPTIMIZE:
|
||||||
|
code = tlvDecodeBool(pTlv, &pNode->groupKeyOptimized);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue