On 30.05.2013 06:54, Jeff Davis wrote:
Continuation of:

http://www.postgresql.org/message-id/1353551097.11440.128.camel@sussancws0025

Rebased patch attached; no other changes.

@@ -675,6 +675,16 @@ lazy_scan_heap(Relation onerel, LVRelStats *vacrelstats,
                }

                /*
+                * If this page is left over from an upgraded system, it may 
have a
+                * PD_ALL_VISIBLE bit set (which is deprecated). If so, clear 
it.
+                */
+               if (PageIsAllVisible(page))
+               {
+                       PageClearAllVisible(page);
+                       MarkBufferDirty(buf);
+               }
+
+               /*
                 * Prune all HOT-update chains in this page.
                 *
                 * We count tuples removed by the pruning step as removed by 
VACUUM.

That could cause a torn page and checksum failure if checksums are enabled. Actually, I think the later PageClearAllVisible() call later in the function has the same problem, even without this patch.

Instead of adding a new vmbuffer argument to heap_insert() and friends, could we put that into BulkInsertStateData? The new argument is similar to the current bulk-insert state in spirit. That would simplify the callers and make the heapam API cleaner.

- Heikki


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to