The following bug has been logged on the website: Bug reference: 8495 Logged by: Miguel A. Manso Callejo Email address: m.ma...@upm.es PostgreSQL version: 9.1.9 Operating system: Ubuntu 12.04LTS Description:
I'm trying to random access to a 2-dimensional array of double precision numbers. When range of the array increase, the performance decrease quickly. A simple function as: CREATE OR REPLACE FUNCTION fill_2d_array( rows integer, cols integer) RETURNS integer AS $BODY$ DECLARE img double precision[][]; i integer; j integer; cont integer; BEGIN img := ARRAY( SELECT 0 FROM generate_series(1, rows * cols) ) ; cont:= 0; For i IN 1..rows LOOP For j IN 1..cols LOOP img[i * cols + j] := (i * cols + j)::double precision; cont := cont + 1; END LOOP; END LOOP; return cont; END; $BODY$ LANGUAGE plpgsql; ALTER FUNCTION fill_2d_array( integer, integer) OWNER TO postgres; when call the function with 700 rows & 1200 cols (explain (analyze,buffers) select fill_2d_array(700,1200); ) the time consumed is about 50minutes. What is bad? what i'm doing bad? Thank you very much. -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs