diff options
Diffstat (limited to 'src/backend/optimizer/util/plancat.c')
-rw-r--r-- | src/backend/optimizer/util/plancat.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/backend/optimizer/util/plancat.c b/src/backend/optimizer/util/plancat.c index 2be0793cc0a..f037f90d985 100644 --- a/src/backend/optimizer/util/plancat.c +++ b/src/backend/optimizer/util/plancat.c @@ -1090,7 +1090,13 @@ get_relation_constraints(PlannerInfo *root, att->attcollation, 0); ntest->nulltesttype = IS_NOT_NULL; - ntest->argisrow = type_is_rowtype(att->atttypid); + + /* + * argisrow=false is correct even for a composite column, + * because attnotnull does not represent a SQL-spec IS NOT + * NULL test in such a case, just IS DISTINCT FROM NULL. + */ + ntest->argisrow = false; ntest->location = -1; result = lappend(result, ntest); } |