]> granicus.if.org Git - postgresql/commit
Fix run-time partition pruning code to handle NULL values properly.
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 11 Jun 2018 16:08:09 +0000 (12:08 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 11 Jun 2018 16:08:15 +0000 (12:08 -0400)
commitbe3d90026a3c17c7e6cc23d52430c37df403d869
treee97e0e1ba3d13e146007934104173c0987327909
parent387543f7bdf0f1ca3dc06e6bb5c9ef7980cf9f44
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
src/backend/partitioning/partprune.c
src/test/regress/expected/partition_prune.out
src/test/regress/sql/partition_prune.sql