Re: WITHIN GROUP patch

Поиск
Список
Период
Сортировка
От Andrew Gierth
Тема Re: WITHIN GROUP patch
Дата
Msg-id 87vbz1egz9.fsf@news-spur.riddles.org.uk
обсуждение исходный текст
Ответ на Re: WITHIN GROUP patch  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: WITHIN GROUP patch
Список pgsql-hackers
>>>>> "Tom" == Tom Lane <tgl@sss.pgh.pa.us> writes:
Tom> 2. For an ordered set function, n must equal aggnfixedargs.  WeTom> treat all n fixed arguments as contributing to
theaggregate'sTom> result collation, but ignore the sort arguments.
 
>> That doesn't work for getting a sensible collation out of>> percentile_disc applied to a collatable type. (Which
admittedlyis>> an extension to the spec, which allows only numeric and interval,>> but it seems to me to be worth
having.)
Tom> Meh.  I don't think you can have that and also have the behaviorTom> that multiple ORDER BY items aren't
constrainedto have the sameTom> collation; at least not without some rule that amounts to aTom> special case for
percentile_disc,which I'd resist.
 

What the submitted patch does (as discussed in the comment in
parse_collate) is to treat the sort argument as contributing to the
collation only if there is exactly one sort arg.

Consider a construct like:

select max(common_val) from (select mode() within group (order by textcol) as common_val         from ... group by
othercol)s;
 

(the same arguments for percentile_disc also apply to mode() and to
any other ordered set function that returns a value chosen from its
input sorted set)

Having this sort of thing not preserve the collation of textcol (or
fail) would be, IMO, surprising and undesirable.

-- 
Andrew (irc:RhodiumToad)



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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: WITHIN GROUP patch
Следующее
От: Tomas Vondra
Дата:
Сообщение: Re: writable FDWs / update targets confusion