IGNORE/RESPECT NULLS can be specified for (prokind == 'f').

jian he <jian.universality@gmail.com>

From: jian he <jian.universality@gmail.com>
To: PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2026-06-16T05:48:29Z
Lists: pgsql-hackers
Hi.

While reviewing the row pattern recognition,
I noticed that the IGNORE NULLS and RESPECT NULLS clauses can be specified for
normal functions (prokind == 'f').

create or replace function dummy2(int) returns bigint AS $$ BEGIN
RETURN $1; END$$ STABLE LANGUAGE plpgsql;
select dummy2(1) IGNORE NULLS;
select dummy2(1) RESPECT NULLS;

This seems unexpected?

Also https://git.postgresql.org/cgit/postgresql.git/commit/?id=25a30bbd4235a49c854036c84fe90f2bc5a87652
Obviously, RESPECT NULLS and IGNORE NULLS can appear in SELECT query,
since they are dedicated keywords, shouldn't they be mentioned in
select.sgml?



--
jian
https://www.enterprisedb.com/



Commits

  1. Remove stray blank line in ParseFuncOrColumn()

  2. Refine error reporting for null treatment on non-window functions

  3. Fix error message typo.

  4. Fix to not allow null treatment to non window functions.

  5. Add IGNORE NULLS/RESPECT NULLS option to Window functions.