"Bruce Momjian" <bruce@momjian.us> writes:
> I have added another idea for index-only scans to the TODO list:
>
>> A third idea would be for a heap scan to check if all rows are visible
>> and if so set a per-table flag which can be checked by index scans.
>> Any change to the table would have to clear the flag. To detect
>> changes during the heap scan a counter could be set at the start and
>> checked at the end --- if it is the same, the table has not been
>> modified --- any table change would increment the counter.
I think I would prefer to address this in the same infrastructure as the
dead-space-map. That way you're not dependent on having no updates happening
on the table at all. Any tuples on pages which contain no in-doubt tuples
could have their visibility check skipped but when you come across a tuple on
a page which has been modified since the last vacuum then you have to check
the visibility.
-- Gregory Stark EnterpriseDB http://www.enterprisedb.com