Re: Domain casting still doesn't work right
От | Tom Lane |
---|---|
Тема | Re: Domain casting still doesn't work right |
Дата | |
Msg-id | 18176.1056816120@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Domain casting still doesn't work right (Peter Eisentraut <peter_e@gmx.net>) |
Список | pgsql-hackers |
Peter Eisentraut <peter_e@gmx.net> writes: > Here's another example of domain casting not working right: > create domain foo as varchar; > select cast(x.y as foo) from (select 'foo') as x(y); > ERROR: coerce_type: no conversion function from "unknown" to foo Not the domain's fault. You get the same error without it: regression=# select cast(x.y as varchar) from (select 'foo') as x(y); ERROR: coerce_type: no conversion function from "unknown" to character varying The problem, if it is one, is that the subselect's output column is irrevocably assigned the datatype "unknown" when we form the subselect result list. We could make this particular problem go away by coercing the subselect result to text, but that would create problems in other areas, notably UNIONs. In a UNION you need to leave the individual subselect's outputs typed as unknown as long as possible, so that they don't screw up a type assignment derived from another subselect where the column isn't an untyped literal. regards, tom lane
В списке pgsql-hackers по дате отправления: