Re: patch: array_ndims

From: "Pavel Stehule" <pavel(dot)stehule(at)gmail(dot)com>
To: "Robert Haas" <robertmhaas(at)gmail(dot)com>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: patch: array_ndims
Date: 2008-10-11 17:55:44
Message-ID: 162867790810111055s29b29b5exbf830f89d0bc6e71@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

2008/10/11 Robert Haas <robertmhaas(at)gmail(dot)com>:
> 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).
>

I am sorry, It was noise from me. I don't thing so array_ndims is
dificult parsered, but it's boondoggle. So some variants as
array_ndims should be usefull.

Regards
Pavel Stehule

> ...Robert
>
> On Sat, Oct 11, 2008 at 2:29 AM, Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> 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 <robertmhaas(at)gmail(dot)com>:
>>> 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(at)postgresql(dot)org)
>>> To make changes to your subscription:
>>> http://www.postgresql.org/mailpref/pgsql-hackers
>>>
>>>
>>
>

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Pavel Stehule 2008-10-11 17:58:08 Re: Contrib, schema, and load_module
Previous Message Magnus Hagander 2008-10-11 17:12:43 Re: pg_hba options parsing