• Tom Lane's avatar
    Refactor index cost estimation functions in view of IndexClause changes. · e89f14e2
    Tom Lane authored
    Get rid of deconstruct_indexquals() in favor of just iterating over the
    IndexClause list directly.  The extra services that that function used to
    provide, such as hiding clause commutation and associating the right index
    column with each clause, are no longer useful given the new data structure.
    I'd originally thought that it'd provide a useful amount of abstraction
    by freeing callers from paying attention to the exact clause type of each
    indexqual, but that hope proves to have been vain, because few callers can
    ignore the semantic differences between different clause types.  Indeed,
    removing it results in a net code savings, and probably some cycles shaved
    by not having to build an extra list-of-structs data structure.
    
    Also, export a few formerly-static support functions, with the goal
    of allowing extension AMs to write functionality equivalent to
    genericcostestimate() without pointless code duplication.
    
    Discussion: https://postgr.es/m/24586.1550106354@sss.pgh.pa.us
    e89f14e2
selfuncs.c 205 KB