Thanks Tom,
Forgive me if I'm being dense, but could you explain why
int4_sum(bigint,int) must not be strict, but
int4_avg_accum(bytea, int) can be strict?
It seems that both of them have transition datatypes that are different from
the input.
-Caleb
On 1/28/08 7:31 PM, "Tom Lane" <[EMAIL PR
Caleb Welton <[EMAIL PROTECTED]> writes:
> Forgive me if I'm being dense, but could you explain why
> int4_sum(bigint,int) must not be strict, but
> int4_avg_accum(bytea, int) can be strict?
The former is used with a NULL initial value, the latter isn't.
Read the fine print in the CREATE AGGREGAT
Caleb Welton <[EMAIL PROTECTED]> writes:
> Is there any reason that int2_sum, int4_sum, and int8_sum are not marked as
> being strict?
They wouldn't work otherwise, because the transition datatypes aren't
the same as the inputs.
regards, tom lane
-
Is there any reason that int2_sum, int4_sum, and int8_sum are not marked as
being strict? All the other transition functions for sum, and every other
built in aggregation function is marked as strict, as demonstrated with:
select x.proname, t.proname, t.proisstrict
from ((pg_aggregate a left join