On 12/18/2013 04:19 PM, Marko Tiikkaja wrote:
> On 2013-12-18 22:13, Andrew Dunstan wrote:
>> On 12/18/2013 03:27 PM, Marko Tiikkaja wrote:
>>> Attached is a patch to add support for array_length(anyarray), which
>>> only works for one-dimensional arrays, returns 0 for empty arrays and
>>> complains if the array's lower bound isn't 1. In other words, does
>>> the right thing when used with the arrays people use 99% of the time.
>>
>> Why the heck would it complain if the lower bound isn't 1?
>
> Because then you're free to assume that the first element is [1] and
> the last one is [array_length()]. Which is what 99% of the code using
> array_length(anyarray, int) does anyway.
>
>
>
You're not really free to assume it - you'll need an exception handler
for the other-than-1 case, or your code might blow up.
This seems to be codifying a bad pattern, which should be using
array_lower() and array_upper() instead.
cheers
andrew