• Tom Lane's avatar
    Postpone calculating total_table_pages until after pruning/exclusion. · c6e4133f
    Tom Lane authored
    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
    c6e4133f
relation.h 101 KB