pgsql: Postpone generating tlists and EC members for inheritancedummy
От | Etsuro Fujita |
---|---|
Тема | pgsql: Postpone generating tlists and EC members for inheritancedummy |
Дата | |
Msg-id | E1glUjd-0003Eb-2V@gemulon.postgresql.org обсуждение исходный текст |
Список | 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(-)
В списке pgsql-committers по дате отправления: