Sergio Fantinel wrote:
I found how to use, inside a PL/pgSQL function, a two-dimensions array (matrix).
There is a limitation: the number of the 'columns' of the matrix is fixed at declaration time (in DECLARE section) and you need to manually initialize all the elements in the first 'row' of the matrix.

You should use '{}' to initialize the array to empty. See below for an example:


CREATE OR REPLACE FUNCTION testarray (integer, integer) RETURNS SETOF integer[] AS'
DECLARE
n alias for $1; -- number of rows is passed as argument
i INTEGER;
j integer;
k alias for $2; -- matrix columns number
a integer[];
begin
for i in 1..n loop
a := ''{}''; -- create empty array
for j in 1..k loop
a := a || i;
return next a;
end loop;
end loop;
return;
end;
'LANGUAGE 'plpgsql';


regression=# select * from testarray(2,3);
 testarray
-----------
 {1}
 {1,1}
 {1,1,1}
 {2}
 {2,2}
 {2,2,2}
(6 rows)

HTH,

Joe

---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]

Reply via email to