On Fri, Oct 27, 2017 at 1:36 AM, Tom Lane <t...@sss.pgh.pa.us> wrote: > David Rowley <david.row...@2ndquadrant.com> writes: >> On 27 October 2017 at 01:44, Ashutosh Bapat >> <ashutosh.ba...@enterprisedb.com> wrote: >>> I think Antonin has a point. The join processing may deem some base >>> relations dummy (See populate_joinrel_with_paths()). So an Append >>> relation which had multiple child alive at the end of >>> set_append_rel_size() might ultimately have only one child after >>> partition-wise join has worked on it. > > TBH, that means partition-wise join planning is broken and needs to be > redesigned. It's impossible that we're going to make sane planning > choices if the sizes of relations change after we've already done some > planning work.
The mark_dummy_rel() call that marks a joining relation dummy was added by 719012e013f10f72938520c46889c52df40fa329. The joining relations are planned before the joins they participate in are planned. Further some of the joins in which it participates might have been planned before the joining pair, which causes it to be marked dummy, is processed by populate_joinrel_with_paths(). So we already have places where the sizes of relation changes during planning. -- Best Wishes, Ashutosh Bapat EnterpriseDB Corporation The Postgres Database Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers