mirror of
https://github.com/postgres/postgres.git
synced 2025-04-27 22:56:53 +03:00
Release the exclusive lock on the table early after truncating it in lazy
vacuum, instead of waiting till commit.
This commit is contained in:
parent
f7379f5c88
commit
6a10f0f749
@ -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)
|
|||||||
*/
|
*/
|
||||||
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)
|
|||||||
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),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user