From 33a94bae605edf3ceda6751916f0b1af3e88630a Mon Sep 17 00:00:00 2001 From: Fujii Masao Date: Wed, 18 Sep 2019 21:05:33 +0900 Subject: [PATCH] Remove unused smgrdounlinkfork() function. smgrdounlinkfork() became dead code as the result of commit ece01aae47, but it was left in place just in case we want it someday. However no users have appeared in 7 years, so it's time to remove this unused function. Author: Kirk Jamison Discussion: https://www.postgresql.org/message-id/D09B13F772D2274BB348A310EE3027C64E2067@g01jpexmbkw24 --- src/backend/storage/smgr/smgr.c | 55 --------------------------------- src/include/storage/smgr.h | 1 - 2 files changed, 56 deletions(-) diff --git a/src/backend/storage/smgr/smgr.c b/src/backend/storage/smgr/smgr.c index b0d9f21e68..5b5a80e890 100644 --- a/src/backend/storage/smgr/smgr.c +++ b/src/backend/storage/smgr/smgr.c @@ -343,9 +343,6 @@ smgrcreate(SMgrRelation reln, ForkNumber forknum, bool isRedo) * * If isRedo is true, it is okay for the underlying file(s) to be gone * already. - * - * This is equivalent to calling smgrdounlinkfork for each fork, but - * it's significantly quicker so should be preferred when possible. */ void smgrdounlink(SMgrRelation reln, bool isRedo) @@ -472,58 +469,6 @@ smgrdounlinkall(SMgrRelation *rels, int nrels, bool isRedo) pfree(rnodes); } -/* - * smgrdounlinkfork() -- Immediately unlink one fork of a relation. - * - * The specified fork of the relation is removed from the store. This - * should not be used during transactional operations, since it can't be - * undone. - * - * If isRedo is true, it is okay for the underlying file to be gone - * already. - */ -void -smgrdounlinkfork(SMgrRelation reln, ForkNumber forknum, bool isRedo) -{ - RelFileNodeBackend rnode = reln->smgr_rnode; - int which = reln->smgr_which; - - /* Close the fork at smgr level */ - smgrsw[which].smgr_close(reln, forknum); - - /* - * Get rid of any remaining buffers for the fork. bufmgr will just drop - * them without bothering to write the contents. - */ - DropRelFileNodeBuffers(rnode, forknum, 0); - - /* - * It'd be nice to tell the stats collector to forget it immediately, too. - * But we can't because we don't know the OID (and in cases involving - * relfilenode swaps, it's not always clear which table OID to forget, - * anyway). - */ - - /* - * Send a shared-inval message to force other backends to close any - * dangling smgr references they may have for this rel. We should do this - * before starting the actual unlinking, in case we fail partway through - * that step. Note that the sinval message will eventually come back to - * this backend, too, and thereby provide a backstop that we closed our - * own smgr rel. - */ - CacheInvalidateSmgr(rnode); - - /* - * Delete the physical file(s). - * - * Note: smgr_unlink must treat deletion failure as a WARNING, not an - * ERROR, because we've already decided to commit or abort the current - * xact. - */ - smgrsw[which].smgr_unlink(rnode, forknum, isRedo); -} - /* * smgrextend() -- Add a new block to a file. * diff --git a/src/include/storage/smgr.h b/src/include/storage/smgr.h index d286c8c7b1..7393727a4b 100644 --- a/src/include/storage/smgr.h +++ b/src/include/storage/smgr.h @@ -90,7 +90,6 @@ extern void smgrclosenode(RelFileNodeBackend rnode); extern void smgrcreate(SMgrRelation reln, ForkNumber forknum, bool isRedo); extern void smgrdounlink(SMgrRelation reln, bool isRedo); extern void smgrdounlinkall(SMgrRelation *rels, int nrels, bool isRedo); -extern void smgrdounlinkfork(SMgrRelation reln, ForkNumber forknum, bool isRedo); extern void smgrextend(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, char *buffer, bool skipFsync); extern void smgrprefetch(SMgrRelation reln, ForkNumber forknum, -- 2.49.0