Clean up some residual confusion between OIDs and RelFileNumbers.
authorRobert Haas <rhaas@postgresql.org>
Thu, 28 Jul 2022 14:08:10 +0000 (10:08 -0400)
committerRobert Haas <rhaas@postgresql.org>
Thu, 28 Jul 2022 14:20:29 +0000 (10:20 -0400)
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.

src/backend/commands/dbcommands.c
src/backend/replication/basebackup.c
src/backend/storage/file/reinit.c
src/include/storage/reinit.h

index 95844bbb6916d009fb0df43addf0c09e1aff3f74..7bc53f3a0bb5cb72fb6f70a6981fe63e5c5c6791 100644 (file)
@@ -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);
 
index 637c0ce459766a3aaa24a9b0fd9468a60cb7244c..7f85071229b65c1293ad53548fe5070061ceb295 100644 (file)
@@ -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)
                {
index f053fe0495f5a81b49e17371b1137ee1dda0234c..647c458b52e3e797bd0fa1063b3e727f0e5c9f8e 100644 (file)
@@ -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] != '_')
index bf2c10d443ec5dbbff482922563db628b8773394..b990d28d3850df1b706463efee68605ba3acbf6b 100644 (file)
@@ -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