Dan Black <fireworker@xxxxxxxxx> writes: > 1) > select * from my_table where active and deleted > -------------- > Seq Scan on my_table (cost=100000000.00..100000180.00 rows=2500 width=56) > Filter: (active AND deleted) > 2) > select * from my_table where active = true and deleted = true > ------------- > Index Scan using my_table_index on my_table (cost=0.00..369.00 rows=2500 > width=56) > Index Cond: ((deleted = true) AND (active = true)) This is expected: Postgres' internal index API is based around operators, therefore anything that doesn't look something like "indexcol operator value" isn't a candidate for an index restriction. There is a hack in CVS tip that special-cases indexes on boolean columns so that the above case works, but it's not in any released version. regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 1: subscribe and unsubscribe commands go to majordomo@xxxxxxxxxxxxxx