Обсуждение: unnest with generate_subscripts and same array

Поиск
Список
Период
Сортировка

unnest with generate_subscripts and same array

От
Carlos Fuentes
Дата:
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 :)

Thanks,
-Carlos Fuentes

Re: unnest with generate_subscripts and same array

От
"David Johnston"
Дата:

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 :)

 

Thanks,

-Carlos Fuentes

Re: unnest with generate_subscripts and same array

От
David Fetter
Дата:
On Thu, May 26, 2011 at 05:17:06PM -0700, Carlos Fuentes wrote:
> 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 :)

That would be more of the SQL standard UNNEST, with the WITH
ORDINALITY clause.  We don't have it yet :/

Cheers,
David.
--
David Fetter <david@fetter.org> http://fetter.org/
Phone: +1 415 235 3778  AIM: dfetter666  Yahoo!: dfetter
Skype: davidfetter      XMPP: david.fetter@gmail.com
iCal: webcal://www.tripit.com/feed/ical/people/david74/tripit.ics

Remember to vote!
Consider donating to Postgres: http://www.postgresql.org/about/donate