diff options
| author | Robert Haas <rhaas@postgresql.org> | 2022-07-06 11:39:09 -0400 |
|---|---|---|
| committer | Robert Haas <rhaas@postgresql.org> | 2022-07-06 11:39:09 -0400 |
| commit | b0a55e43299c4ea2a9a8c757f9c26352407d0ccc (patch) | |
| tree | 2c22c2965f9976ae4469595cd28df13db6b943c2 /src/backend/storage/smgr | |
| parent | 7775c748db1257523ecbed1060dadb608bdff6de (diff) | |
| download | postgresql-b0a55e43299c4ea2a9a8c757f9c26352407d0ccc.tar.gz | |
Change internal RelFileNode references to RelFileNumber or RelFileLocator.
We have been using the term RelFileNode to refer to either (1) the
integer that is used to name the sequence of files for a certain relation
within the directory set aside for that tablespace/database combination;
or (2) that value plus the OIDs of the tablespace and database; or
occasionally (3) the whole series of files created for a relation
based on those values. Using the same name for more than one thing is
confusing.
Replace RelFileNode with RelFileNumber when we're talking about just the
single number, i.e. (1) from above, and with RelFileLocator when we're
talking about all the things that are needed to locate a relation's files
on disk, i.e. (2) from above. In the places where we refer to (3) as
a relfilenode, instead refer to "relation storage".
Since there is a ton of SQL code in the world that knows about
pg_class.relfilenode, don't change the name of that column, or of other
SQL-facing things that derive their name from it.
On the other hand, do adjust closely-related internal terminology. For
example, the structure member names dbNode and spcNode appear to be
derived from the fact that the structure itself was called RelFileNode,
so change those to dbOid and spcOid. Likewise, various variables with
names like rnode and relnode get renamed appropriately, according to
how they're being used in context.
Hopefully, this is clearer than before. It is also preparation for
future patches that intend to widen the relfilenumber fields from its
current width of 32 bits. Variables that store a relfilenumber are now
declared as type RelFileNumber rather than type Oid; right now, these
are the same, but that can now more easily be changed.
Dilip Kumar, per an idea from me. Reviewed also by Andres Freund.
I fixed some whitespace issues, changed a couple of words in a
comment, and made one other minor correction.
Discussion: http://postgr.es/m/CA+TgmoamOtXbVAQf9hWFzonUo6bhhjS6toZQd7HZ-pmojtAmag@mail.gmail.com
Discussion: http://postgr.es/m/CA+Tgmobp7+7kmi4gkq7Y+4AM9fTvL+O1oQ4-5gFTT+6Ng-dQ=g@mail.gmail.com
Discussion: http://postgr.es/m/CAFiTN-vTe79M8uDH1yprOU64MNFE+R3ODRuA+JWf27JbhY4hJw@mail.gmail.com
Diffstat (limited to 'src/backend/storage/smgr')
| -rw-r--r-- | src/backend/storage/smgr/README | 2 | ||||
| -rw-r--r-- | src/backend/storage/smgr/md.c | 126 | ||||
| -rw-r--r-- | src/backend/storage/smgr/smgr.c | 44 |
3 files changed, 86 insertions, 86 deletions
diff --git a/src/backend/storage/smgr/README b/src/backend/storage/smgr/README index e1cfc6cd26..cf3aa5632b 100644 --- a/src/backend/storage/smgr/README +++ b/src/backend/storage/smgr/README @@ -46,7 +46,7 @@ physical relation in system catalogs. It is assumed that the main fork, fork number 0 or MAIN_FORKNUM, always exists. Fork numbers are assigned in src/include/common/relpath.h. Functions in smgr.c and md.c take an extra fork number argument, in addition -to relfilenode and block number, to identify which relation fork you want to +to relfilelocator and block number, to identify which relation fork you want to access. Since most code wants to access the main fork, a shortcut version of ReadBuffer that accesses MAIN_FORKNUM is provided in the buffer manager for convenience. diff --git a/src/backend/storage/smgr/md.c b/src/backend/storage/smgr/md.c index 43edaf5d87..3998296a62 100644 --- a/src/backend/storage/smgr/md.c +++ b/src/backend/storage/smgr/md.c @@ -35,7 +35,7 @@ #include "storage/bufmgr.h" #include "storage/fd.h" #include "storage/md.h" -#include "storage/relfilenode.h" +#include "storage/relfilelocator.h" #include "storage/smgr.h" #include "storage/sync.h" #include "utils/hsearch.h" @@ -89,11 +89,11 @@ static MemoryContext MdCxt; /* context for all MdfdVec objects */ /* Populate a file tag describing an md.c segment file. */ -#define INIT_MD_FILETAG(a,xx_rnode,xx_forknum,xx_segno) \ +#define INIT_MD_FILETAG(a,xx_rlocator,xx_forknum,xx_segno) \ ( \ memset(&(a), 0, sizeof(FileTag)), \ (a).handler = SYNC_HANDLER_MD, \ - (a).rnode = (xx_rnode), \ + (a).rlocator = (xx_rlocator), \ (a).forknum = (xx_forknum), \ (a).segno = (xx_segno) \ ) @@ -121,14 +121,14 @@ static MemoryContext MdCxt; /* context for all MdfdVec objects */ /* local routines */ -static void mdunlinkfork(RelFileNodeBackend rnode, ForkNumber forkNum, +static void mdunlinkfork(RelFileLocatorBackend rlocator, ForkNumber forkNum, bool isRedo); static MdfdVec *mdopenfork(SMgrRelation reln, ForkNumber forknum, int behavior); static void register_dirty_segment(SMgrRelation reln, ForkNumber forknum, MdfdVec *seg); -static void register_unlink_segment(RelFileNodeBackend rnode, ForkNumber forknum, +static void register_unlink_segment(RelFileLocatorBackend rlocator, ForkNumber forknum, BlockNumber segno); -static void register_forget_request(RelFileNodeBackend rnode, ForkNumber forknum, +static void register_forget_request(RelFileLocatorBackend rlocator, ForkNumber forknum, BlockNumber segno); static void _fdvec_resize(SMgrRelation reln, ForkNumber forknum, @@ -199,11 +199,11 @@ mdcreate(SMgrRelation reln, ForkNumber forkNum, bool isRedo) * should be here and not in commands/tablespace.c? But that would imply * importing a lot of stuff that smgr.c oughtn't know, either. */ - TablespaceCreateDbspace(reln->smgr_rnode.node.spcNode, - reln->smgr_rnode.node.dbNode, + TablespaceCreateDbspace(reln->smgr_rlocator.locator.spcOid, + reln->smgr_rlocator.locator.dbOid, isRedo); - path = relpath(reln->smgr_rnode, forkNum); + path = relpath(reln->smgr_rlocator, forkNum); fd = PathNameOpenFile(path, O_RDWR | O_CREAT | O_EXCL | PG_BINARY); @@ -234,7 +234,7 @@ mdcreate(SMgrRelation reln, ForkNumber forkNum, bool isRedo) /* * mdunlink() -- Unlink a relation. * - * Note that we're passed a RelFileNodeBackend --- by the time this is called, + * Note that we're passed a RelFileLocatorBackend --- by the time this is called, * there won't be an SMgrRelation hashtable entry anymore. * * forkNum can be a fork number to delete a specific fork, or InvalidForkNumber @@ -243,10 +243,10 @@ mdcreate(SMgrRelation reln, ForkNumber forkNum, bool isRedo) * For regular relations, we don't unlink the first segment file of the rel, * but just truncate it to zero length, and record a request to unlink it after * the next checkpoint. Additional segments can be unlinked immediately, - * however. Leaving the empty file in place prevents that relfilenode - * number from being reused. The scenario this protects us from is: + * however. Leaving the empty file in place prevents that relfilenumber + * from being reused. The scenario this protects us from is: * 1. We delete a relation (and commit, and actually remove its file). - * 2. We create a new relation, which by chance gets the same relfilenode as + * 2. We create a new relation, which by chance gets the same relfilenumber as * the just-deleted one (OIDs must've wrapped around for that to happen). * 3. We crash before another checkpoint occurs. * During replay, we would delete the file and then recreate it, which is fine @@ -254,18 +254,18 @@ mdcreate(SMgrRelation reln, ForkNumber forkNum, bool isRedo) * But if we didn't WAL-log insertions, but instead relied on fsyncing the * file after populating it (as we do at wal_level=minimal), the contents of * the file would be lost forever. By leaving the empty file until after the - * next checkpoint, we prevent reassignment of the relfilenode number until - * it's safe, because relfilenode assignment skips over any existing file. + * next checkpoint, we prevent reassignment of the relfilenumber until it's + * safe, because relfilenumber assignment skips over any existing file. * * We do not need to go through this dance for temp relations, though, because * we never make WAL entries for temp rels, and so a temp rel poses no threat - * to the health of a regular rel that has taken over its relfilenode number. + * to the health of a regular rel that has taken over its relfilenumber. * The fact that temp rels and regular rels have different file naming * patterns provides additional safety. * * All the above applies only to the relation's main fork; other forks can * just be removed immediately, since they are not needed to prevent the - * relfilenode number from being recycled. Also, we do not carefully + * relfilenumber from being recycled. Also, we do not carefully * track whether other forks have been created or not, but just attempt to * unlink them unconditionally; so we should never complain about ENOENT. * @@ -278,16 +278,16 @@ mdcreate(SMgrRelation reln, ForkNumber forkNum, bool isRedo) * we are usually not in a transaction anymore when this is called. */ void -mdunlink(RelFileNodeBackend rnode, ForkNumber forkNum, bool isRedo) +mdunlink(RelFileLocatorBackend rlocator, ForkNumber forkNum, bool isRedo) { /* Now do the per-fork work */ if (forkNum == InvalidForkNumber) { for (forkNum = 0; forkNum <= MAX_FORKNUM; forkNum++) - mdunlinkfork(rnode, forkNum, isRedo); + mdunlinkfork(rlocator, forkNum, isRedo); } else - mdunlinkfork(rnode, forkNum, isRedo); + mdunlinkfork(rlocator, forkNum, isRedo); } /* @@ -315,25 +315,25 @@ do_truncate(const char *path) } static void -mdunlinkfork(RelFileNodeBackend rnode, ForkNumber forkNum, bool isRedo) +mdunlinkfork(RelFileLocatorBackend rlocator, ForkNumber forkNum, bool isRedo) { char *path; int ret; - path = relpath(rnode, forkNum); + path = relpath(rlocator, forkNum); /* * Delete or truncate the first segment. */ - if (isRedo || forkNum != MAIN_FORKNUM || RelFileNodeBackendIsTemp(rnode)) + if (isRedo || forkNum != MAIN_FORKNUM || RelFileLocatorBackendIsTemp(rlocator)) { - if (!RelFileNodeBackendIsTemp(rnode)) + if (!RelFileLocatorBackendIsTemp(rlocator)) { /* Prevent other backends' fds from holding on to the disk space */ ret = do_truncate(path); /* Forget any pending sync requests for the first segment */ - register_forget_request(rnode, forkNum, 0 /* first seg */ ); + register_forget_request(rlocator, forkNum, 0 /* first seg */ ); } else ret = 0; @@ -354,7 +354,7 @@ mdunlinkfork(RelFileNodeBackend rnode, ForkNumber forkNum, bool isRedo) ret = do_truncate(path); /* Register request to unlink first segment later */ - register_unlink_segment(rnode, forkNum, 0 /* first seg */ ); + register_unlink_segment(rlocator, forkNum, 0 /* first seg */ ); } /* @@ -373,7 +373,7 @@ mdunlinkfork(RelFileNodeBackend rnode, ForkNumber forkNum, bool isRedo) { sprintf(segpath, "%s.%u", path, segno); - if (!RelFileNodeBackendIsTemp(rnode)) + if (!RelFileLocatorBackendIsTemp(rlocator)) { /* * Prevent other backends' fds from holding on to the disk @@ -386,7 +386,7 @@ mdunlinkfork(RelFileNodeBackend rnode, ForkNumber forkNum, bool isRedo) * Forget any pending sync requests for this segment before we * try to unlink. */ - register_forget_request(rnode, forkNum, segno); + register_forget_request(rlocator, forkNum, segno); } if (unlink(segpath) < 0) @@ -437,7 +437,7 @@ mdextend(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, ereport(ERROR, (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), errmsg("cannot extend file \"%s\" beyond %u blocks", - relpath(reln->smgr_rnode, forknum), + relpath(reln->smgr_rlocator, forknum), InvalidBlockNumber))); v = _mdfd_getseg(reln, forknum, blocknum, skipFsync, EXTENSION_CREATE); @@ -490,7 +490,7 @@ mdopenfork(SMgrRelation reln, ForkNumber forknum, int behavior) if (reln->md_num_open_segs[forknum] > 0) return &reln->md_seg_fds[forknum][0]; - path = relpath(reln->smgr_rnode, forknum); + path = relpath(reln->smgr_rlocator, forknum); fd = PathNameOpenFile(path, O_RDWR | PG_BINARY); @@ -645,10 +645,10 @@ mdread(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, MdfdVec *v; TRACE_POSTGRESQL_SMGR_MD_READ_START(forknum, blocknum, - reln->smgr_rnode.node.spcNode, - reln->smgr_rnode.node.dbNode, - reln->smgr_rnode.node.relNode, - reln->smgr_rnode.backend); + reln->smgr_rlocator.locator.spcOid, + reln->smgr_rlocator.locator.dbOid, + reln->smgr_rlocator.locator.relNumber, + reln->smgr_rlocator.backend); v = _mdfd_getseg(reln, forknum, blocknum, false, EXTENSION_FAIL | EXTENSION_CREATE_RECOVERY); @@ -660,10 +660,10 @@ mdread(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, nbytes = FileRead(v->mdfd_vfd, buffer, BLCKSZ, seekpos, WAIT_EVENT_DATA_FILE_READ); TRACE_POSTGRESQL_SMGR_MD_READ_DONE(forknum, blocknum, - reln->smgr_rnode.node.spcNode, - reln->smgr_rnode.node.dbNode, - reln->smgr_rnode.node.relNode, - reln->smgr_rnode.backend, + reln->smgr_rlocator.locator.spcOid, + reln->smgr_rlocator.locator.dbOid, + reln->smgr_rlocator.locator.relNumber, + reln->smgr_rlocator.backend, nbytes, BLCKSZ); @@ -715,10 +715,10 @@ mdwrite(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, #endif TRACE_POSTGRESQL_SMGR_MD_WRITE_START(forknum, blocknum, - reln->smgr_rnode.node.spcNode, - reln->smgr_rnode.node.dbNode, - reln->smgr_rnode.node.relNode, - reln->smgr_rnode.backend); + reln->smgr_rlocator.locator.spcOid, + reln->smgr_rlocator.locator.dbOid, + reln->smgr_rlocator.locator.relNumber, + reln->smgr_rlocator.backend); v = _mdfd_getseg(reln, forknum, blocknum, skipFsync, EXTENSION_FAIL | EXTENSION_CREATE_RECOVERY); @@ -730,10 +730,10 @@ mdwrite(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, nbytes = FileWrite(v->mdfd_vfd, buffer, BLCKSZ, seekpos, WAIT_EVENT_DATA_FILE_WRITE); TRACE_POSTGRESQL_SMGR_MD_WRITE_DONE(forknum, blocknum, - reln->smgr_rnode.node.spcNode, - reln->smgr_rnode.node.dbNode, - reln->smgr_rnode.node.relNode, - reln->smgr_rnode.backend, + reln->smgr_rlocator.locator.spcOid, + reln->smgr_rlocator.locator.dbOid, + reln->smgr_rlocator.locator.relNumber, + reln->smgr_rlocator.backend, nbytes, BLCKSZ); @@ -842,7 +842,7 @@ mdtruncate(SMgrRelation reln, ForkNumber forknum, BlockNumber nblocks) return; ereport(ERROR, (errmsg("could not truncate file \"%s\" to %u blocks: it's only %u blocks now", - relpath(reln->smgr_rnode, forknum), + relpath(reln->smgr_rlocator, forknum), nblocks, curnblk))); } if (nblocks == curnblk) @@ -983,7 +983,7 @@ register_dirty_segment(SMgrRelation reln, ForkNumber forknum, MdfdVec *seg) { FileTag tag; - INIT_MD_FILETAG(tag, reln->smgr_rnode.node, forknum, seg->mdfd_segno); + INIT_MD_FILETAG(tag, reln->smgr_rlocator.locator, forknum, seg->mdfd_segno); /* Temp relations should never be fsync'd */ Assert(!SmgrIsTemp(reln)); @@ -1005,15 +1005,15 @@ register_dirty_segment(SMgrRelation reln, ForkNumber forknum, MdfdVec *seg) * register_unlink_segment() -- Schedule a file to be deleted after next checkpoint */ static void -register_unlink_segment(RelFileNodeBackend rnode, ForkNumber forknum, +register_unlink_segment(RelFileLocatorBackend rlocator, ForkNumber forknum, BlockNumber segno) { FileTag tag; - INIT_MD_FILETAG(tag, rnode.node, forknum, segno); + INIT_MD_FILETAG(tag, rlocator.locator, forknum, segno); /* Should never be used with temp relations */ - Assert(!RelFileNodeBackendIsTemp(rnode)); + Assert(!RelFileLocatorBackendIsTemp(rlocator)); RegisterSyncRequest(&tag, SYNC_UNLINK_REQUEST, true /* retryOnError */ ); } @@ -1022,12 +1022,12 @@ register_unlink_segment(RelFileNodeBackend rnode, ForkNumber forknum, * register_forget_request() -- forget any fsyncs for a relation fork's segment */ static void -register_forget_request(RelFileNodeBackend rnode, ForkNumber forknum, +register_forget_request(RelFileLocatorBackend rlocator, ForkNumber forknum, BlockNumber segno) { FileTag tag; - INIT_MD_FILETAG(tag, rnode.node, forknum, segno); + INIT_MD_FILETAG(tag, rlocator.locator, forknum, segno); RegisterSyncRequest(&tag, SYNC_FORGET_REQUEST, true /* retryOnError */ ); } @@ -1039,13 +1039,13 @@ void ForgetDatabaseSyncRequests(Oid dbid) { FileTag tag; - RelFileNode rnode; + RelFileLocator rlocator; - rnode.dbNode = dbid; - rnode.spcNode = 0; - rnode.relNode = 0; + rlocator.dbOid = dbid; + rlocator.spcOid = 0; + rlocator.relNumber = 0; - INIT_MD_FILETAG(tag, rnode, InvalidForkNumber, InvalidBlockNumber); + INIT_MD_FILETAG(tag, rlocator, InvalidForkNumber, InvalidBlockNumber); RegisterSyncRequest(&tag, SYNC_FILTER_REQUEST, true /* retryOnError */ ); } @@ -1054,7 +1054,7 @@ ForgetDatabaseSyncRequests(Oid dbid) * DropRelationFiles -- drop files of all given relations */ void -DropRelationFiles(RelFileNode *delrels, int ndelrels, bool isRedo) +DropRelationFiles(RelFileLocator *delrels, int ndelrels, bool isRedo) { SMgrRelation *srels; int i; @@ -1129,7 +1129,7 @@ _mdfd_segpath(SMgrRelation reln, ForkNumber forknum, BlockNumber segno) char *path, *fullpath; - path = relpath(reln->smgr_rnode, forknum); + path = relpath(reln->smgr_rlocator, forknum); if (segno > 0) { @@ -1345,7 +1345,7 @@ _mdnblocks(SMgrRelation reln, ForkNumber forknum, MdfdVec *seg) int mdsyncfiletag(const FileTag *ftag, char *path) { - SMgrRelation reln = smgropen(ftag->rnode, InvalidBackendId); + SMgrRelation reln = smgropen(ftag->rlocator, InvalidBackendId); File file; bool need_to_close; int result, @@ -1395,7 +1395,7 @@ mdunlinkfiletag(const FileTag *ftag, char *path) char *p; /* Compute the path. */ - p = relpathperm(ftag->rnode, MAIN_FORKNUM); + p = relpathperm(ftag->rlocator, MAIN_FORKNUM); strlcpy(path, p, MAXPGPATH); pfree(p); @@ -1417,5 +1417,5 @@ mdfiletagmatches(const FileTag *ftag, const FileTag *candidate) * We'll return true for all candidates that have the same database OID as * the ftag from the SYNC_FILTER_REQUEST request, so they're forgotten. */ - return ftag->rnode.dbNode == candidate->rnode.dbNode; + return ftag->rlocator.dbOid == candidate->rlocator.dbOid; } diff --git a/src/backend/storage/smgr/smgr.c b/src/backend/storage/smgr/smgr.c index a477f70f0e..b21d8c3822 100644 --- a/src/backend/storage/smgr/smgr.c +++ b/src/backend/storage/smgr/smgr.c @@ -46,7 +46,7 @@ typedef struct f_smgr void (*smgr_create) (SMgrRelation reln, ForkNumber forknum, bool isRedo); bool (*smgr_exists) (SMgrRelation reln, ForkNumber forknum); - void (*smgr_unlink) (RelFileNodeBackend rnode, ForkNumber forknum, + void (*smgr_unlink) (RelFileLocatorBackend rlocator, ForkNumber forknum, bool isRedo); void (*smgr_extend) (SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, char *buffer, bool skipFsync); @@ -143,9 +143,9 @@ smgrshutdown(int code, Datum arg) * This does not attempt to actually open the underlying file. */ SMgrRelation -smgropen(RelFileNode rnode, BackendId backend) +smgropen(RelFileLocator rlocator, BackendId backend) { - RelFileNodeBackend brnode; + RelFileLocatorBackend brlocator; SMgrRelation reln; bool found; @@ -154,7 +154,7 @@ smgropen(RelFileNode rnode, BackendId backend) /* First time through: initialize the hash table */ HASHCTL ctl; - ctl.keysize = sizeof(RelFileNodeBackend); + ctl.keysize = sizeof(RelFileLocatorBackend); ctl.entrysize = sizeof(SMgrRelationData); SMgrRelationHash = hash_create("smgr relation table", 400, &ctl, HASH_ELEM | HASH_BLOBS); @@ -162,10 +162,10 @@ smgropen(RelFileNode rnode, BackendId backend) } /* Look up or create an entry */ - brnode.node = rnode; - brnode.backend = backend; + brlocator.locator = rlocator; + brlocator.backend = backend; reln = (SMgrRelation) hash_search(SMgrRelationHash, - (void *) &brnode, + (void *) &brlocator, HASH_ENTER, &found); /* Initialize it if not present before */ @@ -267,7 +267,7 @@ smgrclose(SMgrRelation reln) dlist_delete(&reln->node); if (hash_search(SMgrRelationHash, - (void *) &(reln->smgr_rnode), + (void *) &(reln->smgr_rlocator), HASH_REMOVE, NULL) == NULL) elog(ERROR, "SMgrRelation hashtable corrupted"); @@ -335,15 +335,15 @@ smgrcloseall(void) } /* - * smgrclosenode() -- Close SMgrRelation object for given RelFileNode, + * smgrcloserellocator() -- Close SMgrRelation object for given RelFileLocator, * if one exists. * - * This has the same effects as smgrclose(smgropen(rnode)), but it avoids + * This has the same effects as smgrclose(smgropen(rlocator)), but it avoids * uselessly creating a hashtable entry only to drop it again when no * such entry exists already. */ void -smgrclosenode(RelFileNodeBackend rnode) +smgrcloserellocator(RelFileLocatorBackend rlocator) { SMgrRelation reln; @@ -352,7 +352,7 @@ smgrclosenode(RelFileNodeBackend rnode) return; reln = (SMgrRelation) hash_search(SMgrRelationHash, - (void *) &rnode, + (void *) &rlocator, HASH_FIND, NULL); if (reln != NULL) smgrclose(reln); @@ -420,7 +420,7 @@ void smgrdounlinkall(SMgrRelation *rels, int nrels, bool isRedo) { int i = 0; - RelFileNodeBackend *rnodes; + RelFileLocatorBackend *rlocators; ForkNumber forknum; if (nrels == 0) @@ -430,19 +430,19 @@ smgrdounlinkall(SMgrRelation *rels, int nrels, bool isRedo) * Get rid of any remaining buffers for the relations. bufmgr will just * drop them without bothering to write the contents. */ - DropRelFileNodesAllBuffers(rels, nrels); + DropRelFileLocatorsAllBuffers(rels, nrels); /* * create an array which contains all relations to be dropped, and close * each relation's forks at the smgr level while at it */ - rnodes = palloc(sizeof(RelFileNodeBackend) * nrels); + rlocators = palloc(sizeof(RelFileLocatorBackend) * nrels); for (i = 0; i < nrels; i++) { - RelFileNodeBackend rnode = rels[i]->smgr_rnode; + RelFileLocatorBackend rlocator = rels[i]->smgr_rlocator; int which = rels[i]->smgr_which; - rnodes[i] = rnode; + rlocators[i] = rlocator; /* Close the forks at smgr level */ for (forknum = 0; forknum <= MAX_FORKNUM; forknum++) @@ -458,7 +458,7 @@ smgrdounlinkall(SMgrRelation *rels, int nrels, bool isRedo) * closed our own smgr rel. */ for (i = 0; i < nrels; i++) - CacheInvalidateSmgr(rnodes[i]); + CacheInvalidateSmgr(rlocators[i]); /* * Delete the physical file(s). @@ -473,10 +473,10 @@ smgrdounlinkall(SMgrRelation *rels, int nrels, bool isRedo) int which = rels[i]->smgr_which; for (forknum = 0; forknum <= MAX_FORKNUM; forknum++) - smgrsw[which].smgr_unlink(rnodes[i], forknum, isRedo); + smgrsw[which].smgr_unlink(rlocators[i], forknum, isRedo); } - pfree(rnodes); + pfree(rlocators); } @@ -631,7 +631,7 @@ smgrtruncate(SMgrRelation reln, ForkNumber *forknum, int nforks, BlockNumber *nb * Get rid of any buffers for the about-to-be-deleted blocks. bufmgr will * just drop them without bothering to write the contents. */ - DropRelFileNodeBuffers(reln, forknum, nforks, nblocks); + DropRelFileLocatorBuffers(reln, forknum, nforks, nblocks); /* * Send a shared-inval message to force other backends to close any smgr @@ -643,7 +643,7 @@ smgrtruncate(SMgrRelation reln, ForkNumber *forknum, int nforks, BlockNumber *nb * is a performance-critical path.) As in the unlink code, we want to be * sure the message is sent before we start changing things on-disk. */ - CacheInvalidateSmgr(reln->smgr_rnode); + CacheInvalidateSmgr(reln->smgr_rlocator); /* Do the truncation */ for (i = 0; i < nforks; i++) |
