From: | "Robert Haas" <robertmhaas(at)gmail(dot)com> |
---|---|
To: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | patch: array_ndims |
Date: | 2008-10-11 02:37:20 |
Message-ID: | 603c8f070810101937n776c1e7cvd6a12345b0bbda28@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
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
Attachment | Content-Type | Size |
---|---|---|
array_ndims-v1.patch | text/x-diff | 3.6 KB |
array_to_set.sql | application/octet-stream | 1.2 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Joshua Tolley | 2008-10-11 03:27:22 | Re: \ef should probably append semicolons |
Previous Message | Robert Haas | 2008-10-11 01:26:41 | Re: The Axe list |