From: | Heikki Linnakangas <hlinnakangas(at)vmware(dot)com> |
---|---|
To: | Jeff Davis <pgsql(at)j-davis(dot)com> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Eliminating PD_ALL_VISIBLE, take 2 |
Date: | 2013-05-30 08:26:46 |
Message-ID: | 51A70D46.8030909@vmware.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
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
From | Date | Subject | |
---|---|---|---|
Next Message | Joshua D. Drake | 2013-05-30 08:28:31 | Re: units in postgresql.conf comments |
Previous Message | Heikki Linnakangas | 2013-05-30 08:14:05 | Re: units in postgresql.conf comments |