Dave Smith <[EMAIL PROTECTED]> writes: > My point was that it was inconstant behavour. What exactly are you > comparing with int2? To me the case without the cast should should throw > the same error as the statement with the cast.
> select * from test where f=1981928928921; I contend not. The above is perfectly well defined. It will always return false if f is int2, but that does not mean it should throw an error instead. In any standard programming language, you'd resolve the operator by up-converting f to the type of the constant, not by trying to down-convert the wider value. PG happens to have implementation reasons to wish to use the variable's datatype instead of the constant's, but that doesn't excuse us from obeying the ordinary laws of arithmetic. regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives? http://archives.postgresql.org