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.



Tom Lane wrote:
Dave Smith <[EMAIL PROTECTED]> writes:

If this is only dealing with constants, why not just explicitly add a cast to the constant of the column type at the planner level. It would solve this problem as well ...


create table test (f int2);
select * from test where f=cast('1981928928921' as int2);
ERROR: pg_atoi: error reading "1981928928921": Numerical result out of range


 select * from test where f=1981928928921;
 f
---
(0 rows)


Uh, your own example points out why we can't just insert a cast to int2
--- it changes the results.  Or am I missing your point?

(In any case, we aren't necessarily dealing with constants.)

regards, tom lane



---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/docs/faqs/FAQ.html

Reply via email to