Fix run-time partition pruning code to handle NULL values properly.

Tom Lane <tgl@sss.pgh.pa.us>

Commit: be3d90026a3c17c7e6cc23d52430c37df403d869
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2018-06-11T16:08:15Z
Releases: 11.0
Fix run-time partition pruning code to handle NULL values properly.

The previous coding just ignored pruning constraints that compare a
partition key to a null-valued expression.  This is silly, since really
what we can do there is conclude that all partitions are rejected: the
pruning operator is known strict so the comparison must always fail.

This also fixes the logic to not ignore constisnull for a Const comparison
value.  That's probably an unreachable case, since the planner would
normally have simplified away a strict operator with a constant-null input.
But this code has no business assuming that.

David Rowley, per a gripe from me

Discussion: https://postgr.es/m/26279.1528670981@sss.pgh.pa.us

Files

Discussion