diff options
Diffstat (limited to 'src/backend/optimizer')
-rw-r--r-- | src/backend/optimizer/plan/planagg.c | 1 | ||||
-rw-r--r-- | src/backend/optimizer/prep/prepqual.c | 2 | ||||
-rw-r--r-- | src/backend/optimizer/util/clauses.c | 3 | ||||
-rw-r--r-- | src/backend/optimizer/util/plancat.c | 1 |
4 files changed, 7 insertions, 0 deletions
diff --git a/src/backend/optimizer/plan/planagg.c b/src/backend/optimizer/plan/planagg.c index b90c2ef48cb..af772a2c993 100644 --- a/src/backend/optimizer/plan/planagg.c +++ b/src/backend/optimizer/plan/planagg.c @@ -449,6 +449,7 @@ build_minmax_path(PlannerInfo *root, MinMaxAggInfo *mminfo, ntest->arg = copyObject(mminfo->target); /* we checked it wasn't a rowtype in find_minmax_aggs_walker */ ntest->argisrow = false; + ntest->location = -1; /* User might have had that in WHERE already */ if (!list_member((List *) parse->jointree->quals, ntest)) diff --git a/src/backend/optimizer/prep/prepqual.c b/src/backend/optimizer/prep/prepqual.c index bd50926b13d..1176e819dd0 100644 --- a/src/backend/optimizer/prep/prepqual.c +++ b/src/backend/optimizer/prep/prepqual.c @@ -212,6 +212,7 @@ negate_clause(Node *node) newexpr->nulltesttype = (expr->nulltesttype == IS_NULL ? IS_NOT_NULL : IS_NULL); newexpr->argisrow = expr->argisrow; + newexpr->location = expr->location; return (Node *) newexpr; } } @@ -247,6 +248,7 @@ negate_clause(Node *node) (int) expr->booltesttype); break; } + newexpr->location = expr->location; return (Node *) newexpr; } break; diff --git a/src/backend/optimizer/util/clauses.c b/src/backend/optimizer/util/clauses.c index b340b017154..84d58ae595e 100644 --- a/src/backend/optimizer/util/clauses.c +++ b/src/backend/optimizer/util/clauses.c @@ -3305,6 +3305,7 @@ eval_const_expressions_mutator(Node *node, newntest->arg = (Expr *) relem; newntest->nulltesttype = ntest->nulltesttype; newntest->argisrow = type_is_rowtype(exprType(relem)); + newntest->location = ntest->location; newargs = lappend(newargs, newntest); } /* If all the inputs were constants, result is TRUE */ @@ -3343,6 +3344,7 @@ eval_const_expressions_mutator(Node *node, newntest->arg = (Expr *) arg; newntest->nulltesttype = ntest->nulltesttype; newntest->argisrow = ntest->argisrow; + newntest->location = ntest->location; return (Node *) newntest; } case T_BooleanTest: @@ -3395,6 +3397,7 @@ eval_const_expressions_mutator(Node *node, newbtest = makeNode(BooleanTest); newbtest->arg = (Expr *) arg; newbtest->booltesttype = btest->booltesttype; + newbtest->location = btest->location; return (Node *) newbtest; } case T_PlaceHolderVar: diff --git a/src/backend/optimizer/util/plancat.c b/src/backend/optimizer/util/plancat.c index 5cbd6a98f20..313a5c1ab2b 100644 --- a/src/backend/optimizer/util/plancat.c +++ b/src/backend/optimizer/util/plancat.c @@ -720,6 +720,7 @@ get_relation_constraints(PlannerInfo *root, 0); ntest->nulltesttype = IS_NOT_NULL; ntest->argisrow = type_is_rowtype(att->atttypid); + ntest->location = -1; result = lappend(result, ntest); } } |