Re: Support for negative index values in array fetching - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: Support for negative index values in array fetching
Date
Msg-id AANLkTin9ADoaWxbx9mgDXzkS_AUM_kYY-uDaMQ5QQMfD@mail.gmail.com
Whole thread Raw
In response to Re: Support for negative index values in array fetching  (Florian Pflug <fgp@phlo.org>)
List pgsql-hackers
2011/1/5 Florian Pflug <fgp@phlo.org>:
> 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
>

I am not sure. Usually need both

when I play with  a stack I need

a) FIFO - first element from array and all others without first element
b) LIFO - last element from array and all others without last element

The game with queues is only one use case that I know where I need
access to relative indexed items in array.

Maybe is other, but I don't know it. ??? I don't know why I need a
access to relative indexed items?

Pavel

>  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])
>

what is n?? it's not implementable.

> 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 by date:

Previous
From: Magnus Hagander
Date:
Subject: Re: Visual Studio 2010/Windows SDK 7.1 support
Next
From: Andrew Dunstan
Date:
Subject: Re: Visual Studio 2010/Windows SDK 7.1 support