aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2012-04-18 10:49:37 -0400
committerRobert Haas <rhaas@postgresql.org>2012-04-18 10:49:37 -0400
commite93c0b820f03e96ae0549cd30805ae734e5d5e2f (patch)
tree0eeb9466474176e6f965ce3864adfa11e3969d16
parentb5eccaef2c05fd0c17f4510001528232b242a88e (diff)
downloadpostgresql-e93c0b820f03e96ae0549cd30805ae734e5d5e2f.tar.gz
postgresql-e93c0b820f03e96ae0549cd30805ae734e5d5e2f.zip
After PageSetAllVisible, use MarkBufferDirty.
Previously, we used SetBufferCommitInfoNeedsSave, but that's really intended for dirty-marks we can theoretically afford to lose, such as hint bits. As for 9.2, the PD_ALL_VISIBLE mustn't be lost in this way, since we could then end up with a heap page that isn't all-visible and a visibility map page that is all visible, causing index-only scans to return wrong answers.
-rw-r--r--src/backend/commands/vacuumlazy.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 0a617e34b63..d2cfcc024c1 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -603,7 +603,7 @@ lazy_scan_heap(Relation onerel, LVRelStats *vacrelstats,
if (!PageIsAllVisible(page))
{
PageSetAllVisible(page);
- SetBufferCommitInfoNeedsSave(buf);
+ MarkBufferDirty(buf);
}
LockBuffer(buf, BUFFER_LOCK_UNLOCK);
@@ -838,7 +838,7 @@ lazy_scan_heap(Relation onerel, LVRelStats *vacrelstats,
if (!PageIsAllVisible(page) && all_visible)
{
PageSetAllVisible(page);
- SetBufferCommitInfoNeedsSave(buf);
+ MarkBufferDirty(buf);
}
/*