Re: New thoughts about indexing cross-type comparisons

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
Views: Raw Message | Whole Thread | Download mbox | Resend email
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

In response to


Browse pgsql-hackers by date

  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