Re: array_length(anyarray)

Поиск
Список
Период
Сортировка
От Jim Nasby
Тема Re: array_length(anyarray)
Дата
Msg-id 52CF2228.6030001@nasby.net
обсуждение исходный текст
Ответ на Re: array_length(anyarray)  (Marko Tiikkaja <marko@joh.to>)
Ответы Re: array_length(anyarray)  (Florian Pflug <fgp@phlo.org>)
Список 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 по дате отправления:

Предыдущее
От: Jim Nasby
Дата:
Сообщение: Re: Add CREATE support to event triggers
Следующее
От: Jim Nasby
Дата:
Сообщение: Disallow arrays with non-standard lower bounds