diff options
author | Robert Haas <rhaas@postgresql.org> | 2017-08-31 15:50:18 -0400 |
---|---|---|
committer | Robert Haas <rhaas@postgresql.org> | 2017-08-31 15:50:18 -0400 |
commit | 30833ba154e0c1106d61e3270242dc5999a3e4f3 (patch) | |
tree | de005dc4490d7e43a4e49e1fde5369396c6e38fa /src/backend/utils/adt/numeric.c | |
parent | 6708e447efb5046c95bdcf900b6da97f56f97ae8 (diff) | |
download | postgresql-30833ba154e0c1106d61e3270242dc5999a3e4f3.tar.gz postgresql-30833ba154e0c1106d61e3270242dc5999a3e4f3.zip |
Expand partitioned tables in PartDesc order.
Previously, we expanded the inheritance hierarchy in the order in
which find_all_inheritors had locked the tables, but that turns out
to block quite a bit of useful optimization. For example, a
partition-wise join can't count on two tables with matching bounds
to get expanded in the same order.
Where possible, this change results in expanding partitioned tables in
*bound* order. Bound order isn't well-defined for a list-partitioned
table with a null-accepting partition or for a list-partitioned table
where the bounds for a single partition are interleaved with other
partitions. However, when expansion in bound order is possible, it
opens up further opportunities for optimization, such as
strength-reducing MergeAppend to Append when the expansion order
matches the desired sort order.
Patch by me, with cosmetic revisions by Ashutosh Bapat.
Discussion: http://postgr.es/m/CA+TgmoZrKj7kEzcMSum3aXV4eyvvbh9WD=c6m=002WMheDyE3A@mail.gmail.com
Diffstat (limited to 'src/backend/utils/adt/numeric.c')
0 files changed, 0 insertions, 0 deletions