Re: Conflict of implicit collations doesn't propagate out of subqueries
| От | Tom Lane |
|---|---|
| Тема | Re: Conflict of implicit collations doesn't propagate out of subqueries |
| Дата | |
| Msg-id | 8137.1590702224@sss.pgh.pa.us обсуждение исходный текст |
| Ответ на | Conflict of implicit collations doesn't propagate out of subqueries (Markus Winand <markus.winand@winand.at>) |
| Ответы |
Re: Conflict of implicit collations doesn't propagate out ofsubqueries
|
| Список | pgsql-hackers |
Markus Winand <markus.winand@winand.at> writes:
> However, if the conflict happens in a subquery, it doesn’t anymore:
> WITH data (c, posix) AS (
> values ('a' COLLATE "C", 'b' COLLATE "POSIX")
> )
> SELECT *
> FROM (SELECT *, c || posix AS none FROM data) data
> ORDER BY none || posix;
> c | posix | none
> ---+-------+------
> a | b | ab
> (1 row)
I'm not exactly convinced this is a bug. Can you cite chapter and verse
in the spec to justify throwing an error?
AIUI, collation conflicts can only occur within a single expression, and
this is not that. Moreover, even if data.none arguably has no collation,
treating it from outside the sub-query as having collation strength "none"
seems to me to be similar to our policy of promoting unknown-type subquery
outputs to type "text" rather than leaving them to cause trouble later.
It's not pedantically correct, but nobody liked the old behavior.
regards, tom lane
В списке pgsql-hackers по дате отправления: