Thread: Bug #952: real type in WHERE
Victor (hvicha@mail.ru) reports a bug with a severity of 2 The lower the number the more severe it is. Short Description real type in WHERE Long Description Strange result for real type in WHERE, see example. Sample Code victest=# CREATE TABLE t (r real); CREATE victest=# INSERT INTO t (r) VALUES (1.0); INSERT 1309087 1 victest=# INSERT INTO t (r) VALUES (1.1); INSERT 1309145 1 victest=# INSERT INTO t (r) VALUES (1.2); INSERT 1309146 1 victest=# SELECT * FROM t WHERE r=1.1; r --- (0 rows) victest=# SELECT * FROM t WHERE r='1.1'; r ----- 1.1 (1 row) No file was uploaded with this report
pgsql-bugs@postgresql.org writes: > victest=# SELECT * FROM t WHERE r=1.1; The 1.1 is taken as a float8 constant. There is no float4 value that is exactly equal to 1.1::float8. regards, tom lane
On Tue, 22 Apr 2003 11:25:34 -0400 Tom Lane <tgl@sss.pgh.pa.us> wrote: > pgsql-bugs@postgresql.org writes: > > victest=# SELECT * FROM t WHERE r=1.1; > > The 1.1 is taken as a float8 constant. There is no float4 value that is > exactly equal to 1.1::float8. > Yes, I see: victest=# select 1.1::float4 = 1.1::float8; ?column? ---------- f (1 row) ;-/ Regards, Vic