aboutsummaryrefslogtreecommitdiff
path: root/src/backend/optimizer/util/clauses.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/optimizer/util/clauses.c')
-rw-r--r--src/backend/optimizer/util/clauses.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/backend/optimizer/util/clauses.c b/src/backend/optimizer/util/clauses.c
index da258968b8c..948c2bf06db 100644
--- a/src/backend/optimizer/util/clauses.c
+++ b/src/backend/optimizer/util/clauses.c
@@ -3296,12 +3296,19 @@ eval_const_expressions_mutator(Node *node,
fselect->resulttype,
fselect->resulttypmod,
fselect->resultcollid))
- return (Node *) makeVar(((Var *) arg)->varno,
- fselect->fieldnum,
- fselect->resulttype,
- fselect->resulttypmod,
- fselect->resultcollid,
- ((Var *) arg)->varlevelsup);
+ {
+ Var *newvar;
+
+ newvar = makeVar(((Var *) arg)->varno,
+ fselect->fieldnum,
+ fselect->resulttype,
+ fselect->resulttypmod,
+ fselect->resultcollid,
+ ((Var *) arg)->varlevelsup);
+ /* New Var is nullable by same rels as the old one */
+ newvar->varnullingrels = ((Var *) arg)->varnullingrels;
+ return (Node *) newvar;
+ }
}
if (arg && IsA(arg, RowExpr))
{