• Tomas Vondra's avatar
    Use CP_SMALL_TLIST for hash aggregate · 4cad2534
    Tomas Vondra authored
    Commit 1f39bce0 added disk-based hash aggregation, which may spill
    incoming tuples to disk. It however did not request projection to make
    the tuples as narrow as possible, which may mean having to spill much
    more data than necessary (increasing I/O, pushing other stuff from page
    cache, etc.).
    
    This adds CP_SMALL_TLIST in places that may use hash aggregation - we do
    that only for AGG_HASHED. It's unnecessary for AGG_SORTED, because that
    either uses explicit Sort (which already does projection) or pre-sorted
    input (which does not need spilling to disk).
    
    Author: Tomas Vondra
    Reviewed-by: Jeff Davis
    Discussion: https://postgr.es/m/20200519151202.u2p2gpiawoaznsv2%40development
    4cad2534
createplan.c 210 KB