Don't copy PartitionBoundInfo in set_relation_partition_info.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 22 Mar 2019 18:16:50 +0000 (14:16 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 22 Mar 2019 18:16:58 +0000 (14:16 -0400)
commitc8151e642368599dc77c4448e6bdc34cc8810475
treee0c2ddfa987c867997c58ac28473af6182dde2c1
parentb5fd4972a3bc758c0b8e8c9cd4aa32bacdeb6605
Don't copy PartitionBoundInfo in set_relation_partition_info.

I (tgl) remain dubious that it's a good idea for PartitionDirectory
to hold a pin on a relcache entry throughout planning, rather than
copying the data or using some kind of refcount scheme.  However, it's
certainly the responsibility of the PartitionDirectory code to ensure
that what it's handing back is a stable data structure, not that of
its caller.  So this is a pretty clear oversight in commit 898e5e329,
and one that can cost a lot of performance when there are many
partitions.

Amit Langote (extracted from a much larger patch set)

Discussion: https://postgr.es/m/CA+TgmoY3bRmGB6-DUnoVy5fJoreiBJ43rwMrQRCdPXuKt4Ykaw@mail.gmail.com
Discussion: https://postgr.es/m/9d7c5112-cb99-6a47-d3be-cf1ee6862a1d@lab.ntt.co.jp
src/backend/optimizer/util/plancat.c