With the following definition: create table t1 (a int, b int, c int); create index on t1 (a,b,c);
I get the following plan for the following query: postgres=# explain select sum(c) from t1 where a > 0; QUERY PLAN ------------------------------------------------------------ ----------------------- Aggregate (cost=29.62..29.63 rows=1 width=8) -> Bitmap Heap Scan on t1 (cost=9.42..27.92 rows=680 width=4) Recheck Cond: (a > 0) -> Bitmap Index Scan on t1_a_b_c_idx (cost=0.00..9.25 rows=680 width=0) Index Cond: (a > 0) (5 rows) I am wondering why is it not using index-only-scan (which would use the cache better) and instead it does a bitmap scan? Thanks, Hadi