Is it possible to construct and return an array with plpgsql

like..

CREATE FUNCTION test_array( ) RETURNS VARCHAR[] AS '
DECLARE
    return_array VARCHAR[];
BEGIN
    return_array[0] := ''test'';
    return_array[1] := ''test 1'';
    return_array[2] := ''test 2'';
RETURN (return_array);
END;'
LANGUAGE 'plpgsql';

I get the following error when I try to run it:
ERROR:  parse error at or near "[" on line 4.

If this worked I could clean up a LOT of hacky plpgsql code I have had to write.

On Thu, 2002-09-26 at 18:20, Josh Berkus wrote:
Peter,

> I'm a newbie to PL/SQL and need help badly. I'm trying to pass my array of
> id's to the function and then loop through until the array is empty. I know
> there must be atleast five things I'm doing wrong.

Simplified example:

CREATE FUNCTION test_array (
	INT[] ) 
RETURNS INT AS '
DECLARE id_array ALIAS for $1;
	count_it INT;
BEGIN
count_it := 1;
WHILE id_array[count_it] LOOP
	count_it := count_it + 1;
END LOOP;
RETURN (count_it - 1);
END;'
LANGUAGE 'plpgsql';

returns the number of elements in the supplied array.

-- 
Josh Berkus
[EMAIL PROTECTED]
Aglio Database Solutions
San Francisco

---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
    (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])
--
Greg Johnson <[EMAIL PROTECTED]>

Reply via email to