• Tom Lane's avatar
    Fix incorrect handling of polymorphic aggregates used as window functions. · ac4a9d92
    Tom Lane authored
    The transfunction was told that its first argument and result were
    of the window function output type, not the aggregate state type.
    This'd only matter if the transfunction consults get_fn_expr_argtype,
    which typically only polymorphic functions would do.
    
    Although we have several regression tests around polymorphic aggs,
    none of them detected this mistake --- in fact, they still didn't
    fail when I injected the same mistake into nodeAgg.c.  So add some
    more tests covering both plain agg and window-function-agg cases.
    
    Per report from Sebastian Luque.  Back-patch to 9.6 where the error
    was introduced (by sloppy refactoring in commit 804163bc, looks like).
    
    Report: <87int2qkat.fsf@gmail.com>
    ac4a9d92
polymorphism.sql 26.7 KB