25.08.2015 20:19, Jeff Janes пишет:
 In this example it doesn't use IndexOnlyScan correctly. If I understand partial indexes right, if index predicate and search clause are not equal, index scan must recheck values when it's fetching them. 
 'tidx_partial' in example above has no information about 'a' attribute, beside the index->indpred, so it is impossible to recheck qual without referencing to table.
 In example: 
 create index tidx_partial on t(a) where a > 1000 and a < 2000;
 explain analyze select sum(a) from t where a > 1000 and a < 1999;
 it can use IndexOnlyScan.
-- 
Anastasia Lubennikova
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company