• Tom Lane's avatar
    Clean up messy clause-selectivity code in clausesel.c; repair bug · ac4913a0
    Tom Lane authored
    identified by Hiroshi (incorrect cost attributed to OR clauses
    after multiple passes through set_rest_selec()).  I think the code
    was trying to allow selectivities of OR subclauses to be passed in
    from outside, but noplace was actually passing any useful data, and
    set_rest_selec() was passing wrong data.
    
    Restructure representation of "indexqual" in IndexPath nodes so that
    it is the same as for indxqual in completed IndexScan nodes: namely,
    a toplevel list with an entry for each pass of the index scan, having
    sublists that are implicitly-ANDed index qual conditions for that pass.
    You don't want to know what the old representation was :-(
    
    Improve documentation of OR-clause indexscan functions.
    
    Remove useless 'notclause' field from RestrictInfo nodes.  (This might
    force an initdb for anyone who has stored rules containing RestrictInfos,
    but I do not think that RestrictInfo ever appears in completed plans.)
    ac4913a0
restrictinfo.h 839 Bytes