Are those two syntaxes eqivalent ?
select * from users where monitored;
select * from users where monitored=true;
If the answer is yes, the optimimer probably doesn't agree with you :)
Tested on RC1:
template1=# create table a (a boolean, b text);
CREATE TABLE
.... inserted ~18000 rows with just one true (just to make an index scan meaningful)....
template1=# vacuum analyze a;
VACUUM
template1=# explain select * from a where a;
QUERY PLAN
----------------------------------------------------
Seq Scan on a (cost=0.00..802.64 rows=1 width=11)
Filter: a
(2 rows)
template1=# explain select * from a where a=true;
QUERY PLAN
--------------------------------------------------------------
Index Scan using a_a on a (cost=0.00..2.01 rows=1 width=11)
Index Cond: (a = true)
(2 rows)
Bye!
--
Daniele Orlandi
Planet Srl
---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?
http://www.postgresql.org/users-lounge/docs/faq.html
- Re: [HACKERS] Optimizer & boolean syntax Daniele Orlandi
- Re: [HACKERS] Optimizer & boolean syntax Robert Treat
- Re: [HACKERS] Optimizer & boolean syntax Stephan Szabo
- Re: [HACKERS] Optimizer & boolean syn... Christopher Kings-Lynne
- Re: [HACKERS] Optimizer & boolean... Stephan Szabo
- Re: [HACKERS] Optimizer & boo... Christopher Kings-Lynne
- Re: [HACKERS] Optimizer &... Alvaro Herrera
- Re: [HACKERS] Optimizer ... Christopher Kings-Lynne
- Re: [HACKERS] Optimizer &... scott.marlowe
- Re: [HACKERS] Optimizer &... scott.marlowe
- Re: [HACKERS] Optimizer ... Christopher Kings-Lynne