Can’t speak to guarantees but arrays, unlike tuples / rows, are inherently ordered and so any operation that decomposes/iterates them will do so in the internal order.
So, yes.
(without looking at code)
But, since you do not have an “ORDER BY on table_with_array_col” so the order in which rows are returned from table_with_array_col is undefined. Better to write:
SELECT unnest(array_col), generate_subscripts(array_col)
FROM (
SELECT array_col FROM table_with_array_col ORDER BY somefield
) sub
David J.
From: pgsql-general-owner@postgresql.org [mailto:pgsql-general-owner@postgresql.org] On Behalf Of Carlos Fuentes
Sent: Thursday, May 26, 2011 8:17 PM
To: pgsql-general@postgresql.org
Subject: [GENERAL] unnest with generate_subscripts and same array
Hello,
Given that these are the only one array_col in play, is
select unnest(array_col), generate_subscripts(array_col) from table_with_array_col ;
guaranteed to gave the subscripts match the array element? In all the testing I've done it's worked, but I don't know if I was just lucky :)