BUG #4585: out parameter name cuases disruption in custom aggregate?

From: "robert treat" <xzilla(at)users(dot)sourceforge(dot)net>
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #4585: out parameter name cuases disruption in custom aggregate?
Date: 2008-12-16 20:40:17
Message-ID: 200812162040.mBGKeHiV051282@wwwmaster.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs


The following bug has been logged online:

Bug reference: 4585
Logged by: robert treat
Email address: xzilla(at)users(dot)sourceforge(dot)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

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Dave Page 2008-12-16 20:49:23 Re: BUG #4584: PostgreSQL service doesn't start
Previous Message Mark Muzenhardt 2008-12-16 20:39:49 BUG #4584: PostgreSQL service doesn't start