• Tom Lane's avatar
    Fix type checking for support functions of parallel VARIADIC aggregates. · 05ca21b8
    Tom Lane authored
    The impact of VARIADIC on the combine/serialize/deserialize support
    functions of an aggregate wasn't thought through carefully.  There is
    actually no impact, because variadicity isn't passed through to these
    functions (and it doesn't seem like it would need to be).  However,
    lookup_agg_function was mistakenly told to check things as though it were
    passed through.  The net result was that it was impossible to declare an
    aggregate that had both VARIADIC input and parallelism support functions.
    
    In passing, fix a runtime check in nodeAgg.c for the combine function's
    strictness to make its error message agree with the creation-time check.
    The previous message was actually backwards, and it doesn't seem like
    there's a good reason to have two versions of this message text anyway.
    
    Back-patch to 9.6 where parallel aggregation was introduced.
    
    Alexey Bashtanov; message fix by me
    
    Discussion: https://postgr.es/m/f86dde87-fef4-71eb-0480-62754aaca01b@imap.cc
    05ca21b8
nodeAgg.c 114 KB