From: | "Merlin Moncure" <merlin(dot)moncure(at)rcsonline(dot)com> |
---|---|
To: | "Bruce Momjian" <pgman(at)candle(dot)pha(dot)pa(dot)us> |
Cc: | <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: possible wierd boolean bug? |
Date: | 2004-12-14 19:29:43 |
Message-ID: | 6EE64EF3AB31D5448D0007DD34EEB3412A756C@Herge.rcsinc.local |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
I confirmed the problem on a linux server running beta3...so this
problem is quite reproducible by running the attached scripts on a
freshly loaded database.
To reproduce the problem [adjust host,etc as necessary]:
1. type/cat test_boolean.sql | psql template1 (this will create a
database called 'test', connect to it, and load a few things.)
2. bzip -cd < poline.bzip | psql test (this will load a table into test
that was dumped via pg_dump)
3. try the following query:
select 1::int4, * from data1.po_line_file
where pol_po_no = '00000002' and
(pol_po_no = '00000002' and pol_po_rel_no = 0) and
(pol_po_no = '00000002' and pol_po_rel_no = 0 and
pol_item_no = '1570');
it should return 0 rows.
Try it with explain/analyze which reports 4 rows.
Try it a third time as:
select 1::int4, * from data1.po_line_file
where -- pol_po_no = '00000002' and
-- (pol_po_no = '00000002' and pol_po_rel_no = 0) and
(pol_po_no = '00000002' and pol_po_rel_no = 0 and
pol_item_no = '1570');
which is logically equivalent to the first form (isn't it?) and this
returns 1 row (the correct answer).
Merlin
Attachment | Content-Type | Size |
---|---|---|
test_boolean.sql | application/octet-stream | 2.5 KB |
poline.bzip | application/octet-stream | 5.4 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2004-12-14 19:40:19 | Re: bgwriter changes |
Previous Message | Michael Fuhr | 2004-12-14 19:02:38 | Re: cant write to file within call handler interface |