diff options
Diffstat (limited to 'src/backend/parser/parse_expr.c')
-rw-r--r-- | src/backend/parser/parse_expr.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/backend/parser/parse_expr.c b/src/backend/parser/parse_expr.c index 53e904ca6d4..7ff41acb846 100644 --- a/src/backend/parser/parse_expr.c +++ b/src/backend/parser/parse_expr.c @@ -2478,6 +2478,9 @@ transformWholeRowRef(ParseState *pstate, ParseNamespaceItem *nsitem, /* location is not filled in by makeWholeRowVar */ result->location = location; + /* mark Var if it's nulled by any outer joins */ + markNullableIfNeeded(pstate, result); + /* mark relation as requiring whole-row SELECT access */ markVarForSelectPriv(pstate, result); @@ -2505,6 +2508,8 @@ transformWholeRowRef(ParseState *pstate, ParseNamespaceItem *nsitem, rowexpr->colnames = copyObject(nsitem->p_names->colnames); rowexpr->location = location; + /* XXX we ought to mark the row as possibly nullable */ + return (Node *) rowexpr; } } |