Re: Support for negative index values in array fetching
От | Pavel Stehule |
---|---|
Тема | Re: Support for negative index values in array fetching |
Дата | |
Msg-id | AANLkTi=SkzAxjbXJFcU5k0RKqFu9PRtMmxXAFKYHSpym@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Support for negative index values in array fetching (Florian Pflug <fgp@phlo.org>) |
Ответы |
Re: Support for negative index values in array fetching
|
Список | pgsql-hackers |
2011/1/5 Florian Pflug <fgp@phlo.org>: > On Jan5, 2011, at 10:25 , Peter Eisentraut wrote: >> On sön, 2011-01-02 at 12:47 +0100, Florian Pflug wrote: >>> The only way around that would be to introduce magic constants "lower", "upper" that >>> can be used within index expressions and evaluate to the indexed dimension's lower >>> and upper bound. You'd then use >>> >>> my_array[upper], my_array[upper-1], ... >>> >>> to refer to the last, second-to-last, ... element in the array. Actually doing this >>> could get pretty messy, though - not sure if it's really worth the effort... >> >> How about just some functions: >> >> array_first(array, dim) >> array_last(array, dim) > > > You image these to return the actual element, not the first and last index value, right? > Because we already have array_lower() and array_upper() which return the lower and upper > index bound for a certain dimension. > (http://www.postgresql.org/docs/9.0/interactive/functions-array.htm) > > A more general solution would be a function > > array_relative(array anyarray, indices int[]) > I don't think so this design helps. instead maintaining a data array, you should to maintain a indices array. Pavel > which would return the element indexed by <indices>, where positive indices are assumed to > be relative to the respective dimension's lower bound and negative indices to the > upper bound + 1. > > For slices, we could additionally have > > array_relative(array anyarray, indices_start int[], indices_end int[]) > > best regards, > Florian Pflug > > > > > > -- > Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-hackers >
В списке pgsql-hackers по дате отправления: