Skip to content
Snippets Groups Projects
Commit 6a10f0f7 authored by Alvaro Herrera's avatar Alvaro Herrera
Browse files

Release the exclusive lock on the table early after truncating it in lazy

vacuum, instead of waiting till commit.
parent f7379f5c
No related branches found
No related tags found
No related merge requests found
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/commands/vacuumlazy.c,v 1.92 2007/09/10 17:58:45 alvherre Exp $ * $PostgreSQL: pgsql/src/backend/commands/vacuumlazy.c,v 1.93 2007/09/10 21:40:03 alvherre Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -802,6 +802,9 @@ lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats) ...@@ -802,6 +802,9 @@ lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats)
*/ */
RelationTruncate(onerel, new_rel_pages); RelationTruncate(onerel, new_rel_pages);
/* Now we're OK to release the lock. */
UnlockRelation(onerel, AccessExclusiveLock);
/* /*
* Drop free-space info for removed blocks; these must not get entered * Drop free-space info for removed blocks; these must not get entered
* into the FSM! * into the FSM!
...@@ -834,10 +837,6 @@ lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats) ...@@ -834,10 +837,6 @@ lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats)
vacrelstats->rel_pages = new_rel_pages; vacrelstats->rel_pages = new_rel_pages;
vacrelstats->pages_removed = old_rel_pages - new_rel_pages; vacrelstats->pages_removed = old_rel_pages - new_rel_pages;
/*
* We keep the exclusive lock until commit (perhaps not necessary)?
*/
ereport(elevel, ereport(elevel,
(errmsg("\"%s\": truncated %u to %u pages", (errmsg("\"%s\": truncated %u to %u pages",
RelationGetRelationName(onerel), RelationGetRelationName(onerel),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment