Re: [PATCH] Exorcise "zero-dimensional" arrays (Was: Re: Should array_length() Return NULL)

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: [PATCH] Exorcise "zero-dimensional" arrays (Was: Re: Should array_length() Return NULL)
Дата
Msg-id 21882.1365134722@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: [PATCH] Exorcise "zero-dimensional" arrays (Was: Re: Should array_length() Return NULL)  (Brendan Jurd <direvus@gmail.com>)
Ответы Re: [PATCH] Exorcise "zero-dimensional" arrays (Was: Re: Should array_length() Return NULL)  (Brendan Jurd <direvus@gmail.com>)
Список pgsql-hackers
Brendan Jurd <direvus@gmail.com> writes:
> On 5 April 2013 13:04, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> (There's been a remarkable lack of attention to the question
>> of spec compliance in this thread, btw.  Surely the standard has
>> something to say on the matter of zero-length arrays?)

> The language specifically allows for zero elements, and does not
> contemplate multiple dimensions.  The specification for the array
> constructor syntax (6.36) and array element reference by subscript
> (6.23) also make it fairly clear that only 1-D arrays were being
> considered.

> I'd say we've already gone way off-menu by having multidims.

Yeah, we knew that.  I don't have a problem with seeing multidim arrays
as an extension to the standard though.  The point is that the behavior
for the 1-D, default-lower-bound case ought to match the standard.

> While I was in there I noticed CARDINALITY, which would be pretty easy
> to add and would at least provide a more productive way to get the
> "real" length of an array without disrupting existing functionality:

Yeah, that would at least fix the null-result-for-empty-array problem
for that particular functionality.  Still, this is ammunition for the
position that null results for empty arrays are just broken.

BTW ... if you check the archives you will find that we had
cardinality() for a short while, and removed it before 8.4 release,
because we couldn't agree on what it ought to return when given a
multi-dimensional array.  I'm afraid that issue is still unresolved.
        regards, tom lane



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Brendan Jurd
Дата:
Сообщение: Re: [PATCH] Exorcise "zero-dimensional" arrays (Was: Re: Should array_length() Return NULL)
Следующее
От: Amit Kapila
Дата:
Сообщение: Re: Why there is a PG_GETARG_UINT32 and PG_RETURN_UINT32?