From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Dave Smith <dave(dot)smith(at)candata(dot)com> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: New thoughts about indexing cross-type comparisons |
Date: | 2003-09-16 18:19:23 |
Message-ID: | 24602.1063736363@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Dave Smith <dave(dot)smith(at)candata(dot)com> 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
From | Date | Subject | |
---|---|---|---|
Next Message | Mendola Gaetano | 2003-09-16 18:24:21 | FOR$X not work anymore with 7.4beta |
Previous Message | Dave Smith | 2003-09-16 18:06:45 | Re: New thoughts about indexing cross-type comparisons |