>>>>> "Tom" == Tom Lane <t...@sss.pgh.pa.us> writes:
Tom> 2. For an ordered set function, n must equal aggnfixedargs. We Tom> treat all n fixed arguments as contributing to the aggregate's Tom> 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 admittedly is >> 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 behavior Tom> that multiple ORDER BY items aren't constrained to have the same Tom> collation; at least not without some rule that amounts to a Tom> 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) -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers