Re: array_length(anyarray) - Mailing list pgsql-hackers

From Jim Nasby
Subject Re: array_length(anyarray)
Date
Msg-id 52CF2228.6030001@nasby.net
Whole thread Raw
In response to Re: array_length(anyarray)  (Marko Tiikkaja <marko@joh.to>)
Responses Re: array_length(anyarray)  (Florian Pflug <fgp@phlo.org>)
List pgsql-hackers
On 1/9/14, 11:08 AM, Marko Tiikkaja wrote:
> On 1/9/14 5:44 PM, Florian Pflug wrote:
>> On Jan9, 2014, at 14:57 , Dean Rasheed <dean.a.rasheed@gmail.com> wrote:
>>> On 19 December 2013 08:05, Pavel Stehule <pavel.stehule@gmail.com> wrote:
>>>> length should be irrelevant to fact so array starts from 1, 0 or anything
>>>> else
>>>
>>> Yes, this should just return the number of elements, and 0 for an empty array.
>>
>> +1. Anything that complains about arrays whose lower bound isn't 1 really
>> needs a *way* less generic name than array_length().
>
> Problem is, if you're operating on an array which could have a lower bound that isn't 1, why would you look at the
lengthin the first place?  You can't access any elements by index, you'd need to look at array_lower().  You can't
iterateover the array by index, you'd need to do  array_lower() .. array_lower() + array_length(), which doesn't make
sense. And then there's the myriad of stuff you can do with unnest() without actually having to look at the length.
Samegoes for multi-dimensional arrays: you have even less things you can do there with only a length.
 
>
> So if we give up these constraints, we also make this function completely useless.

I'm generally opposed to creating code that doesn't support the full featureset of something (in this case,
array_lower()<>1).But in this case I hope we can all agree that allowing the user to set an arbitrary array lower bound
wasan enormous mistake. While we might not be able to ever completely remove that behavior, I find the idea of throwing
anerror to be highly enticing.
 

Plus, as Marko said, this function is pretty useless for non-1-based arrays.

I do agree that the name is probably too generic for this though.
-- 
Jim C. Nasby, Data Architect                       jim@nasby.net
512.569.9461 (cell)                         http://jim.nasby.net



pgsql-hackers by date:

Previous
From: Jim Nasby
Date:
Subject: Re: Add CREATE support to event triggers
Next
From: Jim Nasby
Date:
Subject: Disallow arrays with non-standard lower bounds