The docs are misleading for this feature, since they say: "This option disables all page-skipping behavior, and is intended to be used only when the contents of the visibility map are suspect, which should happen only if there is a hardware or software issue causing database corruption."
The docs do correctly say "Pages where all tuples are known to be frozen can always be skipped". Checking the code, lazy_scan_heap() comments say "we can still skip pages that are all-frozen, since such pages do not need freezing". The code is quite clear: DISABLE_PAGE_SKIPPING makes the vacuum into an aggressive vacuum. Line 487, heap_vacuum_rel(). Aggressive vacuums can still skip a page that is frozen, and rely on the visibility map for that information. So the docs are wrong - we don't disable *all* page-skipping and it is not appropriate to warn users away from this feature by saying "is intended to be used only when the contents of the visibility map are suspect". Reworded docs patch attached. -- Simon Riggs http://www.EnterpriseDB.com/
aggressive_rewording.v1.patch
Description: Binary data