The following bug has been logged online:

Bug reference:      4585
Logged by:          robert treat
Email address:      xzi...@users.sourceforge.net
PostgreSQL version: 8.3.x
Operating system:   solaris/linux
Description:        out parameter name cuases disruption in custom
aggregate?
Details: 

using pagila schema{1}, and array_accum from docs{2}, I uncovered the
following odd behavior. 

pagila=# create or replace function wtf(out actorid int) returns setof int
as $$ declare v_wtf int[]; begin v_wtf := array_accum(actor_id) from actor
limit 3; raise notice 'wtf --> %',v_wtf; return; end $$ language plpgsql;
CREATE FUNCTION
pagila=# select * from wtf(); 
NOTICE:  wtf --> {1,2,3,4,5,6,7,8,9,10}
 actorid
---------
(0 rows)

pagila=# create or replace function wtf(out actor_id int) returns setof int
as $$ declare v_wtf int[]; begin v_wtf := array_accum(actor_id) from actor
limit 3; raise notice 'wtf --> %',v_wtf; return; end $$ language plpgsql;
CREATE FUNCTION
pagila=# select * from wtf(); 
NOTICE:  wtf --> {NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}
 actor_id
----------
(0 rows)

Apparently the assignment of the integer value is somehow dependent on the
name of the out parameter; when it matches the column name, you get nulls
back.  Is this a bug? 

{1} http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/dbsamples/pagila/
{2} http://www.postgresql.org/docs/current/interactive/xaggr.html

-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to