pgsql: Fix incorrect handling of polymorphic aggregates used as window

Поиск
Список
Период
Сортировка
От Tom Lane
Тема pgsql: Fix incorrect handling of polymorphic aggregates used as window
Дата
Msg-id E1btHIJ-0002Zx-E7@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Fix incorrect handling of polymorphic aggregates used as window functions.

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 804163bc2, looks like).

Report: <87int2qkat.fsf@gmail.com>

Branch
------
REL9_6_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/dca25c2562199ce1e7e26367613912a8eadbbde8

Modified Files
--------------
src/backend/executor/nodeWindowAgg.c       |  2 +-
src/test/regress/expected/polymorphism.out | 55 ++++++++++++++++++++++++++++++
src/test/regress/sql/polymorphism.sql      | 22 ++++++++++++
3 files changed, 78 insertions(+), 1 deletion(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: pgsql: Fix incorrect handling of polymorphic aggregates used as window
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: Use unnamed POSIX semaphores, if available, on Linux and FreeBSD