There's nothing in that functionality that contemplates multi-dimensional arrays. Since we have multi-dimensional arrays, oughtn't we provide the basic functions to deal with them? array_ndims has got to be at least as useful as array_dims (which returns an difficult-to-parse chunk of text).
...Robert On Sat, Oct 11, 2008 at 2:29 AM, Pavel Stehule <[EMAIL PROTECTED]> wrote: > Hello > > we talked about these features, but these functionality is solved with > UNNEST operator > http://farrago.sourceforge.net/design/CollectionTypes.html - so if you > like this functionality (I believe, so want it), please implement > UNNEST operator. > > Regards > Pavel Stehule > > http://www.ibm.com/developerworks/db2/library/techarticle/dm-0710arocena/index.html > > > 2008/10/11 Robert Haas <[EMAIL PROTECTED]>: >> After reading Josh Berkus's email suggesting that the intagg module be >> dropped, I was wondering what would be required to create a array >> enumerator (variously called unnest, unroll, array_enum, and, as >> contemplated by the TODO list, array_to_set). Pavel Stehule's >> generate_subscripts function provides most of what is needed - >> however, you need to know the number of dimensions in the array, and >> it appears we don't have a function to provide that information, at >> least not in a straightforward fashion. That seems like a pretty >> useful thing to have anyway, so here's a patch to add it. >> >> If you apply it, you can then used the attached PL/pgsql >> implementation of array_to_set(). I am sure that it would be better >> and more efficient to implement this directly in C, but as no one has >> gotten around to that yet this might be kind of handy. It might even >> be worth adding to the docs, though I'm not sure exactly where. >> >> rhaas=# SELECT * FROM array_to_set(ARRAY[1,2,3,4]); >> array_to_set >> -------------- >> 1 >> 2 >> 3 >> 4 >> (4 rows) >> >> rhaas=# SELECT * FROM array_to_set(ARRAY[[1,2,3,4]]); >> array_to_set >> -------------- >> 1 >> 2 >> 3 >> 4 >> (4 rows) >> >> rhaas=# SELECT * FROM array_to_set(ARRAY[[[1,2,3,4]]]); >> array_to_set >> -------------- >> 1 >> 2 >> 3 >> 4 >> (4 rows) >> >> rhaas=# SELECT * FROM array_to_set(ARRAY[[[[1,2,3,4]]]]); >> array_to_set >> -------------- >> 1 >> 2 >> 3 >> 4 >> (4 rows) >> >> rhaas=# SELECT * FROM array_to_set(ARRAY[[[[[1,2,3,4]]]]]); >> array_to_set >> -------------- >> 1 >> 2 >> 3 >> 4 >> (4 rows) >> >> rhaas=# SELECT * FROM array_to_set(ARRAY[[[[[[1,2,3,4]]]]]]); >> array_to_set >> -------------- >> 1 >> 2 >> 3 >> 4 >> (4 rows) >> >> ...Robert >> >> >> -- >> Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) >> To make changes to your subscription: >> http://www.postgresql.org/mailpref/pgsql-hackers >> >> > -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers