aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/nodeHashjoin.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2018-11-07 12:12:56 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2018-11-07 12:12:56 -0500
commitc6e4133fae1fde93769197379ffcc2b379845113 (patch)
tree35303a3434fcfbc281ac731c2f515ed7bbf4a20b /src/backend/executor/nodeHashjoin.c
parent77366d90f44a4e1c15d36e51061ffbc17f0dd12d (diff)
downloadpostgresql-c6e4133fae1fde93769197379ffcc2b379845113.tar.gz
postgresql-c6e4133fae1fde93769197379ffcc2b379845113.zip
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
Diffstat (limited to 'src/backend/executor/nodeHashjoin.c')
0 files changed, 0 insertions, 0 deletions