Peter Eisentraut <peter_e@gmx.net> writes:
> Thomas Lockhart writes:
>> select int '1' = '01';
>> which, btw, returns 'true'.
> Uh, how can an integer be equal to a character value? Where did the type
> system go?
Nowhere. This is the same behavior as that statement had in 7.0 (and
many versions before, I believe): given "int4-constant operator
unknown-constant", the unknown constant is preferentially resolved to
int4.
Now if you say
select int '1' = text '01';
you should and do get
ERROR: Unable to identify an operator '=' for types 'int4' and 'text' You will have to retype this query using
anexplicit cast
But this change is *not* to rip out the concept of unknown-type
constants entirely, only to fall back to treating them as text
*after* all else fails.
regards, tom lane