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

Fujii Masao <masao.fujii@gmail.com>

From: Fujii Masao <masao.fujii@gmail.com>
To: Chao Li <li.evan.chao@gmail.com>
Cc: Tatsuo Ishii <ishii@postgresql.org>, jian.universality@gmail.com, pgsql-hackers@postgresql.org
Date: 2026-06-18T07:54:04Z
Lists: pgsql-hackers

Attachments

On Thu, Jun 18, 2026 at 12:06 PM Chao Li <li.evan.chao@gmail.com> wrote:
> > Agreed.  BTW, if the check is moved there, it might be better to
> > change the error message according to the surroundings. The pattern is
> > "... specified, but %s is not a ..."
> >
> > errmsg("OVER specified, but %s is not a window function nor an aggregate function",
> >
> > So the message could be changed to something like:
> >
> > errmsg("RESPECT/IGNORE NULLS is specified, but %s is not a window function"),

Thanks for the review!

I've updated the patch accordingly.

I removed "is" from "RESPECT/IGNORE NULLS is specified" to match other
similar error messages, which use the form "XXX specified, ...".

+ if (ignore_nulls != NO_NULLTREATMENT)
+ ereport(ERROR,
+ (errcode(ERRCODE_WRONG_OBJECT_TYPE),
+ errmsg("aggregate functions do not accept RESPECT/IGNORE NULLS"),
+ parser_errposition(pstate, location)));

I also moved this check to the end of the
"else if (fdresult == FUNCDETAIL_AGGREGATE)" block. That seems like
a better place, since the ordered-set aggregate checks should happen
before this check.

Regards,

-- 
Fujii Masao

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.