• Heikki Linnakangas's avatar
    Share transition state between different aggregates when possible. · 804163bc
    Heikki Linnakangas authored
    If there are two different aggregates in the query with same inputs, and
    the aggregates have the same initial condition and transition function,
    only calculate the state value once, and only call the final functions
    separately. For example, AVG(x) and SUM(x) aggregates have the same
    transition function, which accumulates the sum and number of input tuples.
    For a query like "SELECT AVG(x), SUM(x) FROM x", we can therefore
    accumulate the state function only once, which gives a nice speedup.
    
    David Rowley, reviewed and edited by me.
    804163bc
execnodes.h 71.7 KB