Re: proposal: variadic argument support for least, greatest function

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: proposal: variadic argument support for least, greatest function
Дата
Msg-id CAFj8pRBn2mKtwj+=WpHCBW7fpy9tpeOq9YHC4qtee6jkbaazGA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: proposal: variadic argument support for least, greatest function  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: proposal: variadic argument support for least, greatest function  (Chapman Flack <chap@anastigmatix.net>)
Список pgsql-hackers


st 9. 1. 2019 v 1:07 odesílatel Tom Lane <tgl@sss.pgh.pa.us> napsal:
Pavel Stehule <pavel.stehule@gmail.com> writes:
> We cannot to write
> SELECT least(VARIADIC ARRAY[1,2,3]);
> Attached patch add this possibility to least, greatest functions.

TBH, I don't find that natural at all.  If I were looking for the
functionality "smallest element of an array", I think I'd expect to find
that exposed as "array_smallest(anyarray) returns anyelement", not as
some weird syntax option for LEAST.

The target of this patch is a consistency LEAST, GREATEST variadic functions (implementet) with generic variadic functions.

Sure it is possible to implement array_smallest(anyarray), but it different. This patch try to eliminate unpleasing surprising about different behave LEAST, GREATEST from other variadic functions.


It also seems rather inconsistent that this behaves so differently
from, eg,

=# select least(array[1,2], array[3,4]);
 least
-------
 {1,2}
(1 row)

Normally, if you have a variadic function, it doesn't also take arrays,
so that there's less possibility for confusion.

This is different case - the keyword VARIADIC was not used here.


The implementation seems mighty ugly too, in that it has to treat this
as entirely disjoint from MinMaxExpr's normal argument interpretation.
But that seems like a symptom of the fact that the definition is
disjointed itself.

I don't think so there is any other possibility - I have not a possibility to unpack a array to elements inside analyze stage.


In short, I'd rather see this done with a couple of array functions,
independently of MinMaxExpr.

It doesn't help to user, when they try to use VARIADIC keyword on LEAST, GREATEST functions.

Regards

Pavel
 

                        regards, tom lane

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

Предыдущее
От: Dilip Kumar
Дата:
Сообщение: Re: Undo logs
Следующее
От: Pavan Deolasee
Дата:
Сообщение: Re: monitoring CREATE INDEX [CONCURRENTLY]