pgsql: Postpone generating tlists and EC members for inheritance dummy

From: Etsuro Fujita <efujita(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Postpone generating tlists and EC members for inheritance dummy
Date: 2019-01-21 08:15:09
Message-ID: E1glUjd-0003Eb-2V@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Postpone generating tlists and EC members for inheritance dummy children.

Previously, in set_append_rel_size(), we generated tlists and EC members
for dummy children for possible use by partition-wise join, even if
partition-wise join was disabled or the top parent was not a partitioned
table, but adding such EC members causes noticeable planning speed
degradation for queries with certain kinds of join quals like
"(foo.x + bar.y) = constant" where foo and bar are partitioned tables in
cases where there are lots of dummy children, as the EC members lists
grow huge, especially for the ECs derived from such join quals, which
makes the search for the parent EC members in add_child_rel_equivalences()
very time-consuming. Postpone the work until such children are actually
involved in a partition-wise join.

Reported-by: Sanyo Capobiango
Analyzed-by: Justin Pryzby and Alvaro Herrera
Author: Amit Langote, with a few additional changes by me
Reviewed-by: Ashutosh Bapat
Backpatch-through: v11 where partition-wise join was added
Discussion: https://postgr.es/m/CAO698qZnrxoZu7MEtfiJmpmUtz3AVYFVnwzR%2BpqjF%3DrmKBTgpw%40mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/8d8dcead1295a0d718b08e84d62913b587501425

Modified Files
--------------
src/backend/optimizer/path/allpaths.c | 78 +++++++++++++++++------------------
src/backend/optimizer/path/joinrels.c | 47 +++++++++++++++++++++
2 files changed, 86 insertions(+), 39 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Etsuro Fujita 2019-01-21 08:50:41 pgsql: Postpone generating tlists and EC members for inheritance dummy
Previous Message Tomas Vondra 2019-01-19 23:22:26 pgsql: Allow COPY FROM to filter data using WHERE conditions