Rearrange make_partitionedrel_pruneinfo to avoid work when we can't prune.

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

Commit: 734308a220729e4ececa3758bdcae39a335d55ea
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2019-03-22T18:56:12Z
Releases: 12.0
Rearrange make_partitionedrel_pruneinfo to avoid work when we can't prune.

Postpone most of the effort of constructing PartitionedRelPruneInfos
until after we have found out whether run-time pruning is needed at all.
This costs very little duplicated effort (basically just an extra
find_base_rel() call per partition) and saves quite a bit when we
can't do run-time pruning.

Also, merge the first loop (for building relid_subpart_map) into
the second loop, since we don't need the map to be valid during
that loop.

Amit Langote

Discussion: https://postgr.es/m/9d7c5112-cb99-6a47-d3be-cf1ee6862a1d@lab.ntt.co.jp

Files

PathChange+/−
src/backend/partitioning/partprune.c modified +68 −40

Discussion