Teach predtest.c that "foo" implies "foo IS NOT NULL".
authorTom Lane
Sat, 1 Aug 2015 18:31:46 +0000 (14:31 -0400)
committerTom Lane
Sat, 1 Aug 2015 18:31:59 +0000 (14:31 -0400)
commit8dccf030e884ea8c723275a070acf8a8ed1eebe1
tree80ec64b4a380655ddcac88629966d0ab0190a94f
parentedf26ed033f18bddc9bfe5c239388330150766a1
Teach predtest.c that "foo" implies "foo IS NOT NULL".

Per complaint from Peter Holzer.  It's useful to cover this special case,
since for a boolean variable "foo", earlier parts of the planner will have
reduced variants like "foo = true" to just "foo", and thus we may fail
to recognize the applicability of a partial index with predicate
"foo IS NOT NULL".

Back-patch to 9.5, but not further; given the lack of previous complaints
this doesn't seem like behavior to change in stable branches.
src/backend/optimizer/util/predtest.c