Re: index-only scans - Mailing list pgsql-hackers

From Heikki Linnakangas
Subject Re: index-only scans
Date
Msg-id 4E4586FC.6050107@enterprisedb.com
Whole thread Raw
In response to index-only scans  (Robert Haas <robertmhaas@gmail.com>)
Responses Re: index-only scans
Re: index-only scans
List pgsql-hackers
On 11.08.2011 23:06, Robert Haas wrote:
> Comments, testing, review appreciated...

I would've expected this to use an index-only scan:

postgres=# CREATE TABLE foo AS SELECT generate_series(1,100000) AS id;
SELECT 100000
postgres=# CREATE INDEX i_foo ON foo (id) WHERE id = 10;
CREATE INDEX
postgres=# VACUUM ANALYZE foo;
VACUUM
postgres=# EXPLAIN SELECT id FROM foo WHERE id = 10;                           QUERY PLAN
----------------------------------------------------------------- Index Scan using i_foo on foo  (cost=0.00..8.27
rows=1width=4)   Index Cond: (id = 10)
 
(2 rows)

If it's not a predicate index, then it works:

postgres=# DROP INDEX i_foo;
DROP INDEX
postgres=# EXPLAIN SELECT id FROM foo WHERE id = 10;                              QUERY PLAN
----------------------------------------------------------------------- Index Only Scan using i_foo2 on foo
(cost=0.00..8.28rows=1 width=4)   Index Cond: (id = 10)
 
(2 rows)

--   Heikki Linnakangas  EnterpriseDB   http://www.enterprisedb.com


pgsql-hackers by date:

Previous
From: Florian Pflug
Date:
Subject: Re: Inserting heap tuples in bulk in COPY
Next
From: Robert Haas
Date:
Subject: Re: VACUUM FULL versus system catalog cache invalidation