Improve performance of partition pruning remapping a little.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 15 Nov 2018 18:34:16 +0000 (13:34 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 15 Nov 2018 18:34:16 +0000 (13:34 -0500)
commit34c9e455d0efcada8821ffaab61741c2e1153458
tree38dbcd91636140f0c29fef8dd446632a51b3fbd6
parent74514bd4a58dcf763d105e60a41a5f1b3eea6865
Improve performance of partition pruning remapping a little.

ExecFindInitialMatchingSubPlans has to update the PartitionPruneState's
subplan mapping data to account for the removal of subplans it prunes.
However, that's only necessary if run-time pruning will also occur,
so we can skip it when that won't happen, which should result in not
needing to do the remapping in many cases.  (We now need it only when
some partitions are potentially startup-time prunable and others are
potentially run-time prunable, which seems like an unusual case.)

Also make some marginal performance improvements in the remapping
itself.  These will mainly win if most partitions got pruned by
the startup-time pruning, which is perhaps a debatable assumption
in this context.

Also fix some bogus comments, and rearrange code to marginally
reduce space consumption in the executor's query-lifespan context.

David Rowley, reviewed by Yoshikazu Imai

Discussion: https://postgr.es/m/CAKJS1f9+m6-di-zyy4B4AGn0y1B9F8UKDRigtBbNviXOkuyOpw@mail.gmail.com
src/backend/executor/execPartition.c
src/test/regress/expected/partition_prune.out
src/test/regress/sql/partition_prune.sql