Re: Support for negative index values in array fetching
От | Florian Pflug |
---|---|
Тема | Re: Support for negative index values in array fetching |
Дата | |
Msg-id | 1EE520A0-7EBE-44F9-8614-BF28E34BF68C@phlo.org обсуждение исходный текст |
Ответ на | Re: Support for negative index values in array fetching (Pavel Stehule <pavel.stehule@gmail.com>) |
Ответы |
Re: Support for negative index values in array fetching
|
Список | pgsql-hackers |
On Jan5, 2011, at 15:17 , Pavel Stehule wrote: > 2011/1/5 Florian Pflug <fgp@phlo.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
В списке pgsql-hackers по дате отправления: