Many thanks for clearing that one up.
I have avoided using arrays for the mean time and gone for the more elegant
solution of using an additional table. More flexible and powerful but, in the
simple case that I needed, meant more work... Roll on 7.4 !
Regards
Donald Fraser.
----- Original Message -----
From: "Joe Conway" <mail@joeconway.com>
To: "Donald Fraser" <demolish@cwgsy.net>
Cc: "[ADMIN]" <pgsql-admin@postgresql.org>
Sent: Thursday, July 17, 2003 6:50 PM
Subject: Re: [ADMIN] Arrays in pl/pgsql functions
> Donald Fraser wrote:
> > Could someone be please inform me what the correct syntax for accessing
arrays
> > is or tell me if its not possible with pl/pgSQL functions.
> >
>
> It won't work in 7.3.x or before, as you've noted. In 7.4 this will work:
>
> CREATE OR REPLACE FUNCTION test_arrays() RETURNS int4[] AS '
> DECLARE
> test int4[] := ''{}'';
> BEGIN
> test[1] := 1;
> RETURN test;
> END ' LANGUAGE 'plpgsql';
>
> regression=# select test_arrays();
> test_arrays
> -------------
> {1}
> (1 row)
>
> Note that you have to initialize "test" to an empty array, because
> otherwise you are trying to add an element to a NULL::int4[], the result
> of which is still NULL.
>
> Joe
>
>