• Andrew Gierth's avatar
    Request small targetlist for input to WindowAgg. · a9056cc6
    Andrew Gierth authored
    WindowAgg will potentially store large numbers of input rows into
    tuplestores to allow access to other rows in the frame. If the input
    is coming via an explicit Sort node, then unneeded columns will
    already have been discarded (since Sort requests a small tlist); but
    there are idioms like COUNT(*) OVER () that result in the input not
    being sorted at all, and cases where the input is being sorted by some
    means other than a Sort; if we don't request a small tlist, then
    WindowAgg's storage requirement is inflated by the unneeded columns.
    
    Backpatch back to 9.6, where the current tlist handling was added.
    (Prior to that, WindowAgg would always use a small tlist.)
    
    Discussion: https://postgr.es/m/87a7ator8n.fsf@news-spur.riddles.org.uk
    a9056cc6
createplan.c 205 KB