Gokulakannan Somasundaram wrote: > OK I think, i can think of a solution to achieve fast full index scan like > oracle. > a) Issue ids to every block that gets created inside the index. we are > already doing that > b) Now before the fast full index scan starts, note down the max id that got > issued. > c) Now do a scan similar to Full Table Scan till that max id. Now, while we > are scanning the blocks, note down the right siblings in a list, if the > right sibling block id is greater than the max id that got issued. These are > the ones, which have got split after the scan started > d) Now after we reach that max block, try to range scan on missing links > till we hit the end / get a right sibling less than the max block id noted. > > Once we do this for all the missing links, we have scanned through the > entire chain. So this will definitely be faster than range scan.
You also need to avoid scanning the same tuple twice. That's not a problem for VACUUM, but it is for full index scans. -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers