Thread: BUG #7831: user defined-aggregated don't set initcond to null when unspecified, instead uses its first argument

The following bug has been logged on the website:

Bug reference:      7831
Logged by:          Abel Abraham Camarillo Ojeda
Email address:      acamari@verlet.org
PostgreSQL version: 9.1.2
Operating system:   OpenBSD-5.1/amd64.MP
Description:        =


user defined-aggregated don't set initcond to null when unspecified, instead
uses its first argument.

To reproduce:

$ =

$ cat > /tmp/sql
create or replace function
_foo (state double precision, i double precision)
returns double precision language sql immutable strict as
$$
        select 999::double precision;
$$;

create aggregate foo (double precision) (
    sfunc =3D _foo,
    stype =3D double precision
);

select foo(0);
$ =

$ psql -U postgres template1 < /tmp/sql
CREATE FUNCTION
CREATE AGGREGATE
 foo =

-----
   0
(1 row)

$
$ psql -U postgres template1
psql (9.1.2)
Type "help" for help.

template1=3D# =
acamari@verlet.org writes:
> user defined-aggregated don't set initcond to null when unspecified, instead
> uses its first argument.

And your point is?

AFAICS this is the documented behavior when the transition function
is strict.  See
http://www.postgresql.org/docs/9.1/static/sql-createaggregate.html
6th paragraph under "Description".

            regards, tom lane
On Sun, Jan 27, 2013 at 10:53 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> acamari@verlet.org writes:
>> user defined-aggregated don't set initcond to null when unspecified, instead
>> uses its first argument.
>
> And your point is?
>
> AFAICS this is the documented behavior when the transition function
> is strict.  See
> http://www.postgresql.org/docs/9.1/static/sql-createaggregate.html
> 6th paragraph under "Description".
>
>                         regards, tom lane

Oh sorry...

I think that I didn't read that reference enough times, I was mistaken.

Thank you, sorry for the noise...