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

Reply via email to