Pavel Stehule wrote: > 2015-03-20 17:49 GMT+01:00 Dean Rasheed <dean.a.rasheed@gmail.com>: > > > There's an issue when the array's lower bound isn't 1: > > > > select array_offset('[2:4]={1,2,3}'::int[], 1); > > array_offset > > -------------- > > 1 > > (1 row) > > > > whereas I would expect this to return 2. Similarly for > > array_offsets(), so the offsets can be used as indexes into the > > original array. > > > > I am thinking, so it is ok - it returns a offset, not position.
So you can't use it as a subscript? That sounds unfriendly. Almost every function using this will be subtly broken.
depends what you want. It means - it is on Nth position from start. So it is useful when iterate over array, because it is safe against different array start dimensions. it works, if you use it as "offset". It is named "array_offset"
It can be changed and renamed to array_position - it is simple fix. But I am not sure, if it is better.