Re: plpgsql array initialization, what's the story?

From: "Karl O(dot) Pinc" <kop(at)meme(dot)com>
To: psql-general(at)postgresql(dot)org
Subject: Re: plpgsql array initialization, what's the story?
Date: 2005-03-31 21:53:20
Message-ID: 1112306000l.15411l.3l@mofo
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general


On 03/31/2005 01:59:02 PM, Michael Fuhr wrote:

> I think this has been fixed for 8.0.2:
>
> http://archives.postgresql.org/pgsql-committers/2005-02/msg00012.php
>
> Here's a test in 8.0.2beta1:
>
> CREATE FUNCTION foo() RETURNS integer[] AS $$
> DECLARE
> y integer[];
> BEGIN
> y[1] := 1;
> y[2] := 2;
> y[3] := 3;
>
> RETURN y;
> END;
> $$ LANGUAGE plpgsql;
>
> SELECT foo();
> foo
> ---------
> {1,2,3}
> (1 row)
>

In the meantime, those who want arrays of non-integer datatypes
must cast to an array of the appropriate datatype (as suggested
by the documentation.)

create or replace function kop.bar()
returns date[]
language plpgsql
as $func$
declare
y date[] := CAST ('{}' AS date[]);

begin
y[1] := '1979-03-01';
y[2] := '1979-03-02';
y[3] := '1979-03-03';

return y;
end;
$func$;

Karl <kop(at)meme(dot)com>
Free Software: "You don't pay back, you pay forward."
-- Robert A. Heinlein

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Nic Ferrier 2005-03-31 22:01:20 Re: Database monitor (again)
Previous Message Philip Hallstrom 2005-03-31 21:31:26 Re: Database monitor (again)