fix: bypass projection pruning if union set op and subquery
This commit is contained in:
parent
cc0a01aae7
commit
e58fda2bdd
|
@ -388,6 +388,9 @@ static bool isSetUselessCol(SSetOperator* pSetOp, int32_t index, SExprNode* pPro
|
||||||
}
|
}
|
||||||
|
|
||||||
static int32_t calcConstSetOpProjections(SCalcConstContext* pCxt, SSetOperator* pSetOp, bool subquery) {
|
static int32_t calcConstSetOpProjections(SCalcConstContext* pCxt, SSetOperator* pSetOp, bool subquery) {
|
||||||
|
if (subquery && pSetOp->opType == SET_OP_TYPE_UNION) {
|
||||||
|
return TSDB_CODE_SUCCESS;
|
||||||
|
}
|
||||||
int32_t index = 0;
|
int32_t index = 0;
|
||||||
SNode* pProj = NULL;
|
SNode* pProj = NULL;
|
||||||
WHERE_EACH(pProj, pSetOp->pProjectionList) {
|
WHERE_EACH(pProj, pSetOp->pProjectionList) {
|
||||||
|
|
|
@ -19,6 +19,14 @@
|
||||||
#include "scalar.h"
|
#include "scalar.h"
|
||||||
#include "tglobal.h"
|
#include "tglobal.h"
|
||||||
|
|
||||||
|
static void debugPrintNode(SNode* pNode) {
|
||||||
|
char* pStr = NULL;
|
||||||
|
nodesNodeToString(pNode, false, &pStr, NULL);
|
||||||
|
printf("%s\n", pStr);
|
||||||
|
taosMemoryFree(pStr);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
static void dumpQueryPlan(SQueryPlan* pPlan) {
|
static void dumpQueryPlan(SQueryPlan* pPlan) {
|
||||||
if (!tsQueryPlannerTrace) {
|
if (!tsQueryPlannerTrace) {
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in New Issue