Fix to not allow null treatment to non window functions.

The null treatment clause (RESPECT NULLS/IGNORE NULLS) are only
allowed to window functions per spec. Previously the check was only
applied to aggregates in window clause. Other types of functions were
allowed to use the clause, which was plain wrong.

To fix this, ParseFuncOrColumn() now checks whether other than window
functions are used with the null treatment clause. If so, error out.

Also remove the unnecessary test for "aggregate functions do not
accept RESPECT/IGNORE NULLS" because it is now checked in the
early-stage new check. The window regression test expected file is
changed accordingly.

Reported-by: jian he <[email protected]>
Reviewed-by: jian he <[email protected]>
Author: Tatsuo Ishii <[email protected]>
Discussion: 
https://postgr.es/m/CACJufxFnm%2BAj2Jyhyd58PtW8e1vTZDKimkZE%2BMashCPSDKw56Q%40mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/4e5920e6de87dc1ed761d2a898b7786c50c11db2

Modified Files
--------------
src/backend/parser/parse_func.c      | 16 +++++++++-------
src/test/regress/expected/window.out |  4 ++--
2 files changed, 11 insertions(+), 9 deletions(-)

Reply via email to