On Thu, Jun 18, 2026 at 12:06 PM Chao Li <[email protected]> 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
v2-0001-Refine-error-reporting-for-null-treatment-on-non-.patch
Description: Binary data
