2008/12/25 Greg Stark <greg.stark@enterprisedb.com>:
> Yeah, it seems like adding a flag like iswindowable to aggregate functions
> is the safest option.
>
> It would be nice if it represented an abstract property of the state
> function or final function rather than just "works with the implementation
> of window functions". I'm not sure what that property is though -
> isidempotent? isreentrant? Maybe just a vague isrepeatable?
No, I meant wrinting such like:
Datum
some_trans_fn(PG_FUNCTION_ARGS)
{ if (fcinfo->context && IsA(fcinfo->context, WindowAggState)) elog(ERROR, "some_agg does not support window
aggregate");
...
}
rather than adding column to catalog. To add flag you must add new
syntax for CREATE AGGREGATE, which is slightly more painful.
Regards,
--
Hitoshi Harada