pgsql: Postpone calculating total_table_pages until afterpruning/exclu

Поиск
Список
Период
Сортировка
От Tom Lane
Тема pgsql: Postpone calculating total_table_pages until afterpruning/exclu
Дата
Msg-id E1gKRO3-0000Zf-OD@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Postpone calculating total_table_pages until after pruning/exclusion.

The planner doesn't make any use of root->total_table_pages until it
estimates costs of indexscans, so we don't need to compute it as
early as that's currently done.  By doing the calculation between
set_base_rel_sizes and set_base_rel_pathlists, we can omit relations
that get removed from the query by partition pruning or constraint
exclusion, which seems like a more accurate basis for costing.

(Historical note: I think at the time this code was written, there
was not a separation between the "set sizes" and "set pathlists"
steps, so that this approach would have been impossible at the time.
But now that we have that separation, this is clearly the better way
to do things.)

David Rowley, reviewed by Edmund Horner

Discussion: https://postgr.es/m/CAKJS1f-NG1mRM0VOtkAG7=ZLQWihoqees9R4ki3CKBB0-fRfCA@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/c6e4133fae1fde93769197379ffcc2b379845113

Modified Files
--------------
src/backend/optimizer/path/allpaths.c | 45 +++++++++++++++++++++++++++++++++--
src/backend/optimizer/plan/planmain.c | 30 -----------------------
src/backend/optimizer/util/plancat.c  |  5 ++--
src/include/nodes/relation.h          |  8 +++----
4 files changed, 49 insertions(+), 39 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: pgsql@postgresql.org
Дата:
Сообщение: pgsql: Tag refs/tags/REL_11_1 was created
Следующее
От: Andres Freund
Дата:
Сообщение: pgsql: Use installcheck-parallel in pg_upgrade's testsuite.