summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Haas2022-07-28 14:08:10 +0000
committerRobert Haas2022-07-28 14:20:29 +0000
commit851f4cc75cdd8c831f1baa9a7abf8c8248b65890 (patch)
treef0cb2019773365b1b149f3f1d857f75572a9532f
parent9e4f914b5eba3f49ab99bdecdc4f96fac099571f (diff)
Clean up some residual confusion between OIDs and RelFileNumbers.
Commit b0a55e43299c4ea2a9a8c757f9c26352407d0ccc missed a few places where we are referring to the number used as a part of the relation filename as an "OID". We now want to call that a "RelFileNumber". Some of these places actually made it sound like the OID in question is pg_class.oid rather than pg_class.relfilenode, which is especially good to clean up. Dilip Kumar with some editing by me.
-rw-r--r--src/backend/commands/dbcommands.c4
-rw-r--r--src/backend/replication/basebackup.c16
-rw-r--r--src/backend/storage/file/reinit.c44
-rw-r--r--src/include/storage/reinit.h3
4 files changed, 35 insertions, 32 deletions
diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c
index 95844bbb691..7bc53f3a0bb 100644
--- a/src/backend/commands/dbcommands.c
+++ b/src/backend/commands/dbcommands.c
@@ -254,7 +254,7 @@ ScanSourceDatabasePgClass(Oid tbid, Oid dbid, char *srcpath)
BlockNumber nblocks;
BlockNumber blkno;
Buffer buf;
- Oid relfilenumber;
+ RelFileNumber relfilenumber;
Page page;
List *rlocatorlist = NIL;
LockRelId relid;
@@ -401,7 +401,7 @@ ScanSourceDatabasePgClassTuple(HeapTupleData *tuple, Oid tbid, Oid dbid,
{
CreateDBRelInfo *relinfo;
Form_pg_class classForm;
- Oid relfilenumber = InvalidRelFileNumber;
+ RelFileNumber relfilenumber = InvalidRelFileNumber;
classForm = (Form_pg_class) GETSTRUCT(tuple);
diff --git a/src/backend/replication/basebackup.c b/src/backend/replication/basebackup.c
index 637c0ce4597..7f85071229b 100644
--- a/src/backend/replication/basebackup.c
+++ b/src/backend/replication/basebackup.c
@@ -1172,7 +1172,8 @@ sendDir(bbsink *sink, const char *path, int basepathlen, bool sizeonly,
int excludeIdx;
bool excludeFound;
ForkNumber relForkNum; /* Type of fork if file is a relation */
- int relOidChars; /* Chars in filename that are the rel oid */
+ int relnumchars; /* Chars in filename that are the
+ * relnumber */
/* Skip special stuff */
if (strcmp(de->d_name, ".") == 0 || strcmp(de->d_name, "..") == 0)
@@ -1222,23 +1223,24 @@ sendDir(bbsink *sink, const char *path, int basepathlen, bool sizeonly,
/* Exclude all forks for unlogged tables except the init fork */
if (isDbDir &&
- parse_filename_for_nontemp_relation(de->d_name, &relOidChars,
+ parse_filename_for_nontemp_relation(de->d_name, &relnumchars,
&relForkNum))
{
/* Never exclude init forks */
if (relForkNum != INIT_FORKNUM)
{
char initForkFile[MAXPGPATH];
- char relOid[OIDCHARS + 1];
+ char relNumber[OIDCHARS + 1];
/*
* If any other type of fork, check if there is an init fork
- * with the same OID. If so, the file can be excluded.
+ * with the same RelFileNumber. If so, the file can be
+ * excluded.
*/
- memcpy(relOid, de->d_name, relOidChars);
- relOid[relOidChars] = '\0';
+ memcpy(relNumber, de->d_name, relnumchars);
+ relNumber[relnumchars] = '\0';
snprintf(initForkFile, sizeof(initForkFile), "%s/%s_init",
- path, relOid);
+ path, relNumber);
if (lstat(initForkFile, &statbuf) == 0)
{
diff --git a/src/backend/storage/file/reinit.c b/src/backend/storage/file/reinit.c
index f053fe0495f..647c458b52e 100644
--- a/src/backend/storage/file/reinit.c
+++ b/src/backend/storage/file/reinit.c
@@ -195,11 +195,11 @@ ResetUnloggedRelationsInDbspaceDir(const char *dbspacedirname, int op)
while ((de = ReadDir(dbspace_dir, dbspacedirname)) != NULL)
{
ForkNumber forkNum;
- int oidchars;
+ int relnumchars;
unlogged_relation_entry ent;
/* Skip anything that doesn't look like a relation data file. */
- if (!parse_filename_for_nontemp_relation(de->d_name, &oidchars,
+ if (!parse_filename_for_nontemp_relation(de->d_name, &relnumchars,
&forkNum))
continue;
@@ -235,11 +235,11 @@ ResetUnloggedRelationsInDbspaceDir(const char *dbspacedirname, int op)
while ((de = ReadDir(dbspace_dir, dbspacedirname)) != NULL)
{
ForkNumber forkNum;
- int oidchars;
+ int relnumchars;
unlogged_relation_entry ent;
/* Skip anything that doesn't look like a relation data file. */
- if (!parse_filename_for_nontemp_relation(de->d_name, &oidchars,
+ if (!parse_filename_for_nontemp_relation(de->d_name, &relnumchars,
&forkNum))
continue;
@@ -285,13 +285,13 @@ ResetUnloggedRelationsInDbspaceDir(const char *dbspacedirname, int op)
while ((de = ReadDir(dbspace_dir, dbspacedirname)) != NULL)
{
ForkNumber forkNum;
- int oidchars;
- char oidbuf[OIDCHARS + 1];
+ int relnumchars;
+ char relnumbuf[OIDCHARS + 1];
char srcpath[MAXPGPATH * 2];
char dstpath[MAXPGPATH];
/* Skip anything that doesn't look like a relation data file. */
- if (!parse_filename_for_nontemp_relation(de->d_name, &oidchars,
+ if (!parse_filename_for_nontemp_relation(de->d_name, &relnumchars,
&forkNum))
continue;
@@ -304,10 +304,10 @@ ResetUnloggedRelationsInDbspaceDir(const char *dbspacedirname, int op)
dbspacedirname, de->d_name);
/* Construct destination pathname. */
- memcpy(oidbuf, de->d_name, oidchars);
- oidbuf[oidchars] = '\0';
+ memcpy(relnumbuf, de->d_name, relnumchars);
+ relnumbuf[relnumchars] = '\0';
snprintf(dstpath, sizeof(dstpath), "%s/%s%s",
- dbspacedirname, oidbuf, de->d_name + oidchars + 1 +
+ dbspacedirname, relnumbuf, de->d_name + relnumchars + 1 +
strlen(forkNames[INIT_FORKNUM]));
/* OK, we're ready to perform the actual copy. */
@@ -328,12 +328,12 @@ ResetUnloggedRelationsInDbspaceDir(const char *dbspacedirname, int op)
while ((de = ReadDir(dbspace_dir, dbspacedirname)) != NULL)
{
ForkNumber forkNum;
- int oidchars;
- char oidbuf[OIDCHARS + 1];
+ int relnumchars;
+ char relnumbuf[OIDCHARS + 1];
char mainpath[MAXPGPATH];
/* Skip anything that doesn't look like a relation data file. */
- if (!parse_filename_for_nontemp_relation(de->d_name, &oidchars,
+ if (!parse_filename_for_nontemp_relation(de->d_name, &relnumchars,
&forkNum))
continue;
@@ -342,10 +342,10 @@ ResetUnloggedRelationsInDbspaceDir(const char *dbspacedirname, int op)
continue;
/* Construct main fork pathname. */
- memcpy(oidbuf, de->d_name, oidchars);
- oidbuf[oidchars] = '\0';
+ memcpy(relnumbuf, de->d_name, relnumchars);
+ relnumbuf[relnumchars] = '\0';
snprintf(mainpath, sizeof(mainpath), "%s/%s%s",
- dbspacedirname, oidbuf, de->d_name + oidchars + 1 +
+ dbspacedirname, relnumbuf, de->d_name + relnumchars + 1 +
strlen(forkNames[INIT_FORKNUM]));
fsync_fname(mainpath, false);
@@ -372,13 +372,13 @@ ResetUnloggedRelationsInDbspaceDir(const char *dbspacedirname, int op)
* for a non-temporary relation and false otherwise.
*
* NB: If this function returns true, the caller is entitled to assume that
- * *oidchars has been set to the a value no more than OIDCHARS, and thus
- * that a buffer of OIDCHARS+1 characters is sufficient to hold the OID
- * portion of the filename. This is critical to protect against a possible
- * buffer overrun.
+ * *relnumchars has been set to a value no more than OIDCHARS, and thus
+ * that a buffer of OIDCHARS+1 characters is sufficient to hold the
+ * RelFileNumber portion of the filename. This is critical to protect against
+ * a possible buffer overrun.
*/
bool
-parse_filename_for_nontemp_relation(const char *name, int *oidchars,
+parse_filename_for_nontemp_relation(const char *name, int *relnumchars,
ForkNumber *fork)
{
int pos;
@@ -388,7 +388,7 @@ parse_filename_for_nontemp_relation(const char *name, int *oidchars,
;
if (pos == 0 || pos > OIDCHARS)
return false;
- *oidchars = pos;
+ *relnumchars = pos;
/* Check for a fork name. */
if (name[pos] != '_')
diff --git a/src/include/storage/reinit.h b/src/include/storage/reinit.h
index bf2c10d443e..b990d28d385 100644
--- a/src/include/storage/reinit.h
+++ b/src/include/storage/reinit.h
@@ -20,7 +20,8 @@
extern void ResetUnloggedRelations(int op);
extern bool parse_filename_for_nontemp_relation(const char *name,
- int *oidchars, ForkNumber *fork);
+ int *relnumchars,
+ ForkNumber *fork);
#define UNLOGGED_RELATION_CLEANUP 0x0001
#define UNLOGGED_RELATION_INIT 0x0002