fix: fix eliminate project error

This commit is contained in:
shenglian zhou 2022-06-20 17:01:00 +08:00
parent a28a275dff
commit c31ec19885
1 changed files with 2 additions and 5 deletions

View File

@ -1111,8 +1111,8 @@ static bool eliminateProjOptMayBeOptimized(SLogicNode* pNode) {
taosHashPut(pProjColNameHash, projColumnName, strlen(projColumnName), &exist, sizeof(exist)); taosHashPut(pProjColNameHash, projColumnName, strlen(projColumnName), &exist, sizeof(exist));
} }
} }
taosHashCleanup(pProjColNameHash); taosHashCleanup(pProjColNameHash);
return true; return true;
} }
@ -1123,12 +1123,9 @@ static int32_t eliminateProjOptimizeImpl(SOptimizeContext* pCxt, SLogicSubplan*
SNode* pProjection = NULL; SNode* pProjection = NULL;
FOREACH(pProjection, pProjectNode->pProjections) { FOREACH(pProjection, pProjectNode->pProjections) {
SColumnNode* projColumn = (SColumnNode*)pProjection; SColumnNode* projColumn = (SColumnNode*)pProjection;
char* projColumnName = projColumn->colName;
SNode* pChildTarget = NULL; SNode* pChildTarget = NULL;
FOREACH(pChildTarget, pChild->pTargets) { FOREACH(pChildTarget, pChild->pTargets) {
SExprNode* childExpr = (SExprNode*)pChildTarget; if (strcmp(projColumn->colName, ((SColumnNode*)pChildTarget)->colName) == 0) {
if (QUERY_NODE_COLUMN == nodeType(childExpr) && strcmp(projColumnName, ((SColumnNode*)childExpr)->colName) == 0 ||
strcmp(projColumnName, childExpr->aliasName) == 0) {
nodesListAppend(pNewChildTargets, nodesCloneNode(pChildTarget)); nodesListAppend(pNewChildTargets, nodesCloneNode(pChildTarget));
break; break;
} }