| From: | "Donald Fraser" <demolish(at)cwgsy(dot)net> |
|---|---|
| To: | "[BUGS]" <pgsql-bugs(at)postgresql(dot)org> |
| Subject: | Partial Indexes condtions |
| Date: | 2003-08-13 10:40:08 |
| Message-ID: | 001401c36187$47380a00$1664a8c0@DEMOLITION |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-bugs |
PostgreSQL 7.3.3, GCC 2.96 on Redhat 7.2
Not sure whether you classify this as a bug or not?
Anyway here goes:
I have a partial index such as:
CREATE UNIQUE INDEX tbl_test_key
ON tbl_test
USING btree
(s_mnem)
WHERE ((n_status & (~9)) <> 0);
I have a select statement such as:
SELECT s_mnem FROM tbl_test WHERE (n_status & (~9) <> 0);
It doesn't matter what I do (including SET enable_seqscan TO OFF)
Explain shows that the planner always chooses a sequential scan.
Now if I change the partial index to the following:
CREATE UNIQUE INDEX tbl_test_key
ON tbl_test
USING btree
(s_mnem)
WHERE ((n_status & -10) <> 0);
Note: the binary inverse of 9 is -10.
Explain shows that the planner now chooses to use the partial index?
Regards
Donald Fraser.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Christopher Marshall | 2003-08-13 12:02:53 | JDBC Metadata bug |
| Previous Message | systems | 2003-08-13 01:47:03 | Slow Query |