mirror of
https://github.com/postgres/postgres.git
synced 2025-06-16 06:01:02 +03:00
Remove unnecessary calls of FlushRelationBuffers: there is no need
to write out data that we are about to tell the filesystem to drop. smgr_internal_unlink already had a DropRelFileNodeBuffers call to get rid of dead buffers without a write after it's no longer possible to roll back the deleting transaction. Adding a similar call in smgrtruncate simplifies callers and makes the overall division of labor clearer. This patch removes the former behavior that VACUUM would write all dirty buffers of a relation unconditionally.
This commit is contained in:
@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.147 2005/03/16 21:38:05 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.148 2005/03/20 22:00:52 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -5628,13 +5628,12 @@ copy_relation_data(Relation rel, SMgrRelation dst)
|
||||
Page page = (Page) buf;
|
||||
|
||||
/*
|
||||
* Since we copy the data directly without looking at the shared
|
||||
* Since we copy the file directly without looking at the shared
|
||||
* buffers, we'd better first flush out any pages of the source
|
||||
* relation that are in shared buffers. We assume no new pages will
|
||||
* get loaded into buffers while we are holding exclusive lock on the
|
||||
* rel.
|
||||
* relation that are in shared buffers. We assume no new changes
|
||||
* will be made while we are holding exclusive lock on the rel.
|
||||
*/
|
||||
FlushRelationBuffers(rel, 0);
|
||||
FlushRelationBuffers(rel);
|
||||
|
||||
/*
|
||||
* We need to log the copied data in WAL iff WAL archiving is enabled
|
||||
|
Reference in New Issue
Block a user