Re: datatype of constant is not propagated into aggregate query
От | Tom Lane |
---|---|
Тема | Re: datatype of constant is not propagated into aggregate query |
Дата | |
Msg-id | 24254.1331479715@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | datatype of constant is not propagated into aggregate query (Pavel Stehule <pavel.stehule@gmail.com>) |
Ответы |
Re: datatype of constant is not propagated into aggregate query
|
Список | pgsql-hackers |
Pavel Stehule <pavel.stehule@gmail.com> writes: > postgres=# insert into t1 select distinct '2001-01-01', 1 from > generate_series(1,3); > ERROR: column "d" is of type date but expression is of type text > LINE 1: insert into t1 select distinct '2001-01-01', 1 from generate... > ^ > HINT: You will need to rewrite or cast the expression. The DISTINCT forces the sub-SELECT to decide on a type for the constant (so that it can pick a semantics for DISTINCT-ing). And it chooses text by default. This is maybe not terribly convenient, but I'm not sure it would be a good idea at all for a surrounding INSERT to change the semantics of a SELECT. Even discounting the implementation difficulties, I don't think that'd satisfy the POLA. (We do have a hack for adjusting the type if what the sub-select returns is still of type UNKNOWN; that's safe because it implies that the sub-select does not care about the type of the result column.) regards, tom lane
В списке pgsql-hackers по дате отправления: