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: | Raw Message | Whole Thread | 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 |