============================================================================ POSTGRESQL BUG REPORT TEMPLATE ============================================================================
Your name : Javier Carlos Rivera Your email address : fjcarlos ( at ) correo ( dot ) insp ( dot ) mx System Configuration ---------------------- Architecture (example: Intel Pentium) : Intel Pentium 4 Operating System (example: Linux 2.0.26 ELF) : Debian GNU/Linux 3.0 2.4.23 RAM : 256 MB PostgreSQL version (example: PostgreSQL-6.3.2) : PostgreSQL-7.4.1 Compiler used (example: gcc 2.7.2) : 2.95.4 Please enter a FULL description of your problem: ------------------------------------------------- When I make a select and in the WHERE section I use the = (EQUAL) operator whith a column of real datatype the results of the query is 0 rows even if there exist rows that match the condition. Please describe a way to repeat the problem. Please try to provide a concise reproducible example, if at all possible: ----------------------------------------------------------------------- bd_temporal=> CREATE TABLE tbl_temp (var real); bd_temporal=> \d tbl_temp Table "public.tbl_temp" Column | Type | Modifiers --------+------+----------- var | real | bd_temporal=> INSERT INTO tbl_temp VALUES(0.1); bd_temporal=> INSERT INTO tbl_temp VALUES(0.11); bd_temporal=> INSERT INTO tbl_temp VALUES(0.20); bd_temporal=> INSERT INTO tbl_temp VALUES(0.25); bd_temporal=> INSERT INTO tbl_temp VALUES(0.26); bd_temporal=> SELECT * FROM tbl_temp WHERE var < 0.20; var ------ 0.1 0.11 (2 rows) bd_temporal=> SELECT * FROM tbl_temp WHERE var = 0.11; var ----- (0 rows) bd_temporal=> SELECT * FROM tbl_temp WHERE var = '0.11'; var ------ 0.11 (1 row) If you know how this problem might be fixed, list the solution below: ---------------------------------------------------------------------- For now I have to put between '' the value as I was working whith CHARs values. The weird thing is that with all the other comparison operator all works well, only the = (EQUAL) operator makes things suchs as this: bd_temporal=> SELECT * FROM tbl_temp WHERE var = 0.25; var ------ 0.25 (1 row) bd_temporal=> SELECT * FROM tbl_temp WHERE var = 0.26; var ----- (0 rows) bd_temporal=> SELECT * FROM tbl_temp WHERE var = '0.25'; var ------ 0.25 (1 row) bd_temporal=> SELECT * FROM tbl_temp WHERE var = '0.26'; var ------ 0.26 (1 row) ------------------------------------------------- ---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faqs/FAQ.html