Get rid of useless global variable in pg_upgrade.
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 18 Jul 2012 05:23:12 +0000 (01:23 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 18 Jul 2012 05:23:12 +0000 (01:23 -0400)
Since the scandir() emulation was taken out of pg_upgrade, there's
no longer any need for scandir_file_pattern to exist as a global
variable.  Replace it with a local in the one remaining function
that was making use of it.

contrib/pg_upgrade/pg_upgrade.h
contrib/pg_upgrade/relfilenode.c

index 4f74c217eed1a9688552cb9719f9e9e75b11febb..f0d84a09e291c7d3ba4ed3a05b1e4f2ee67dcaf2 100644 (file)
@@ -283,7 +283,6 @@ extern UserOpts user_opts;
 extern ClusterInfo old_cluster,
            new_cluster;
 extern OSInfo os_info;
-extern char scandir_file_pattern[];
 
 
 /* check.c */
index 3509585de7b568af921d09443d077d7ed3b3bf47..659b61480d8f467961cb8416f6d2ece73896a9a2 100644 (file)
@@ -21,8 +21,6 @@ static void transfer_relfile(pageCnvCtx *pageConverter,
                 const char *fromfile, const char *tofile,
                 const char *nspname, const char *relname);
 
-/* used by scandir(), must be global */
-char       scandir_file_pattern[MAXPGPATH];
 
 /*
  * transfer_all_new_dbs()
@@ -134,6 +132,7 @@ transfer_single_new_db(pageCnvCtx *pageConverter,
                       FileNameMap *maps, int size)
 {
    char        old_dir[MAXPGPATH];
+   char        file_pattern[MAXPGPATH];
    struct dirent **namelist = NULL;
    int         numFiles = 0;
    int         mapnum;
@@ -175,7 +174,8 @@ transfer_single_new_db(pageCnvCtx *pageConverter,
        pg_log(PG_REPORT, OVERWRITE_MESSAGE, old_file);
 
        /*
-        * Copy/link the relation file to the new cluster
+        * Copy/link the relation's primary file (segment 0 of main fork)
+        * to the new cluster
         */
        unlink(new_file);
        transfer_relfile(pageConverter, old_file, new_file,
@@ -187,7 +187,7 @@ transfer_single_new_db(pageCnvCtx *pageConverter,
            /*
             * Copy/link any fsm and vm files, if they exist
             */
-           snprintf(scandir_file_pattern, sizeof(scandir_file_pattern), "%u_",
+           snprintf(file_pattern, sizeof(file_pattern), "%u_",
                     maps[mapnum].old_relfilenode);
 
            for (fileno = 0; fileno < numFiles; fileno++)
@@ -199,8 +199,8 @@ transfer_single_new_db(pageCnvCtx *pageConverter,
                if (vm_offset && strlen(vm_offset) == strlen("_vm"))
                    is_vm_file = true;
 
-               if (strncmp(namelist[fileno]->d_name, scandir_file_pattern,
-                           strlen(scandir_file_pattern)) == 0 &&
+               if (strncmp(namelist[fileno]->d_name, file_pattern,
+                           strlen(file_pattern)) == 0 &&
                    (!is_vm_file || !vm_crashsafe_change))
                {
                    snprintf(old_file, sizeof(old_file), "%s/%s", maps[mapnum].old_dir,
@@ -222,13 +222,13 @@ transfer_single_new_db(pageCnvCtx *pageConverter,
         * relfilenode.3, ...  'fsm' and 'vm' files use underscores so are not
         * copied.
         */
-       snprintf(scandir_file_pattern, sizeof(scandir_file_pattern), "%u.",
+       snprintf(file_pattern, sizeof(file_pattern), "%u.",
                 maps[mapnum].old_relfilenode);
 
        for (fileno = 0; fileno < numFiles; fileno++)
        {
-           if (strncmp(namelist[fileno]->d_name, scandir_file_pattern,
-                       strlen(scandir_file_pattern)) == 0)
+           if (strncmp(namelist[fileno]->d_name, file_pattern,
+                       strlen(file_pattern)) == 0)
            {
                snprintf(old_file, sizeof(old_file), "%s/%s", maps[mapnum].old_dir,
                         namelist[fileno]->d_name);
@@ -242,7 +242,6 @@ transfer_single_new_db(pageCnvCtx *pageConverter,
        }
    }
 
-
    if (numFiles > 0)
    {
        for (fileno = 0; fileno < numFiles; fileno++)