Re: array functions - request for opinions (was Re: [PATCHES]

Поиск
Список
Период
Сортировка
От Joe Conway
Тема Re: array functions - request for opinions (was Re: [PATCHES]
Дата
Msg-id 3ED2418C.7070803@joeconway.com
обсуждение исходный текст
Ответ на Re: array functions - request for opinions (was Re: [PATCHES] array  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: array functions - request for opinions (was Re: [PATCHES] array  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Tom Lane wrote:
> You'd have to reference the underlying function.

That's what I thought, but I thought maybe I was missing something.

> I think what Peter is really asking is whether the implementation
> function for || will serve for this purpose, rather than making an
> additional one.

But, as I said in my other post a moment ago, that then implies (at 
least to me) that the underlying function needs to be documented as an 
"end user" function, rather than an "internal" one.

> That particular manifestation is not relevant; I think you mean this 
> one:
> 
> regression=# select '{}'::int4[] || 2; ERROR:  Arrays greater than
> one-dimension are not supported

I just wanted to show that the issue pre-existed the new functions. I 
think they are both caused by the fact that an empty array has *no* 
dimensions (clearly the error message in the new array functions could 
be better).

> In both cases I think it's mostly a matter of defining a defensible 
> behavior, which is probably not that hard, but no one's yet gotten 
> annoyed enough to try to fix it.

It is probably easy enough to work around in the array concatenation 
functions. Would it be defensible to say that ('{}'::int4[] || 2) should 
produce ('{2}'::int4[]), i.e. a one-dimensional integer array with one 
element?

Joe



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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: array functions - request for opinions (was Re: [PATCHES] array
Следующее
От: Tom Lane
Дата:
Сообщение: Re: array functions - request for opinions (was Re: [PATCHES] array