| From: | Florian Pflug <fgp(at)phlo(dot)org> |
|---|---|
| To: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
| Cc: | Peter Eisentraut <peter_e(at)gmx(dot)net>, "Valtonen, Hannu" <hannu(dot)valtonen(at)hut(dot)fi>, pgsql-hackers(at)postgresql(dot)org |
| Subject: | Re: Support for negative index values in array fetching |
| Date: | 2011-01-05 16:19:02 |
| Message-ID: | 1EE520A0-7EBE-44F9-8614-BF28E34BF68C@phlo.org |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Jan5, 2011, at 15:17 , Pavel Stehule wrote:
> 2011/1/5 Florian Pflug <fgp(at)phlo(dot)org>:
>> How so? You'd still be able to get the last element by simply writing
>>
>> array_relative(some_array, array[-1]).
>>
>> Or, if we made the function variadic, by writing
>>
>> array_relative(some_array, -1).
>
> Sorry, but It isn't too intuitive. Minimally for me. Why you don't
> thinking about simple functions with only positive arguments. There
> are only four combinations. I don't think we must have only one super
> function.
>
> we need functionality for:
>
> a) get first n items
> b) get items without last n items
> c) get last n items
> d) skip first n items
Now you've moved the goalpost - the OP wanted to access individual
elements, not slices! To support slices, a three-argument version
of array_relative() would be required, with the signature
array_relative(some_array anyarray, first int[], last int[])
Your requirements (a) to (d) are then easily satisfied
a) array_relative(ary, array[0], array[n-1])
b) array_relative(ary, array[0], array[-n-1])
c) array_relative(ary, array[-n], array[-1])
d) array_relative(ary, array[n], array[-1])
The individual function approach might be a tad more readable for
one-dimensional arrays, but they don't scale well to the general
case.
Maybe the OP could comment on whether any of these solutions
would fit his needs?
best regards,
Florian Pflug
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Bruce Momjian | 2011-01-05 16:37:17 | pg_upgrade cleanup for map struct creation |
| Previous Message | Bruce Momjian | 2011-01-05 16:08:29 | Re: pg_upgrade patches applied |