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 по дате отправления: