Re: PL/pgSQL multidimension (matrix) array in function

Поиск
Список
Период
Сортировка
От Joe Conway
Тема Re: PL/pgSQL multidimension (matrix) array in function
Дата
Msg-id 414FB192.5060100@joeconway.com
обсуждение исходный текст
Ответ на PL/pgSQL multidimension (matrix) array in function  (Sergio Fantinel <sergio.fantinel@lnl.infn.it>)
Список pgsql-sql
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;
returnnext 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


В списке pgsql-sql по дате отправления:

Предыдущее
От: "Dean Gibson (DB Administrator)"
Дата:
Сообщение: Re: JOIN performance
Следующее
От: Tom Lane
Дата:
Сообщение: Re: JOIN performance