diff --git a/source/libs/planner/src/planOptimizer.c b/source/libs/planner/src/planOptimizer.c index 9cb67dc968..40e1d12a13 100644 --- a/source/libs/planner/src/planOptimizer.c +++ b/source/libs/planner/src/planOptimizer.c @@ -2048,6 +2048,13 @@ static bool eliminateProjOptMayBeOptimized(SLogicNode* pNode) { TSDB_SUPER_TABLE == ((SScanLogicNode*)nodesListGetNode(pNode->pChildren, 0))->tableType)) { return false; } + + if (QUERY_NODE_LOGIC_PLAN_DYN_QUERY_CTRL == nodeType(nodesListGetNode(pNode->pChildren, 0))) { + SLogicNode* pChild = (SLogicNode*)nodesListGetNode(pNode->pChildren, 0); + if(LIST_LENGTH(pChild->pTargets) != LIST_LENGTH(pNode->pTargets)) { + return false; + } + } SProjectLogicNode* pProjectNode = (SProjectLogicNode*)pNode; if (NULL != pProjectNode->node.pLimit || NULL != pProjectNode->node.pSlimit ||