no se si entendi bien tu consulta, pero puede que tu duda sea algo como esto:
Código:
CREATE FUNCTION nn()
RETURNS char(35)[][] AS $$
DECLARE auno char(35)[];
ados char(35)[][];
cursor1 cursor FOR SELECT ARRAY[uno.codigo,uno.detalle] FROM (SELECT codigo,detalle FROM tabla) AS uno;
BEGIN
OPEN cursor1;
fetch cursor1 into auno;
while found loop
ados:=array_cat(ados,auno);
fetch cursor1 into auno;
end loop;
close cursor1;
RETURN ados;
END;
$$ LANGUAGE plpgsql;