pg_upgrade: quote directory names in delete_old_cluster script
authorBruce Momjian <bruce@momjian.us>
Thu, 12 Feb 2015 03:06:04 +0000 (22:06 -0500)
committerBruce Momjian <bruce@momjian.us>
Thu, 12 Feb 2015 03:06:04 +0000 (22:06 -0500)
This allows the delete script to properly function when special
characters appear in directory paths, e.g. spaces.

Backpatch through 9.0

contrib/pg_upgrade/check.c

index 87e9031ab4ca7630ccc2609354a9bd195d3fbd56..6a498c3bd5c46641e2c78998ea4e411590423410 100644 (file)
@@ -528,7 +528,7 @@ create_script_for_old_cluster_deletion(char **deletion_script_file_name)
 #endif
 
    /* delete old cluster's default tablespace */
-   fprintf(script, RMDIR_CMD " %s\n", fix_path_separator(old_cluster.pgdata));
+   fprintf(script, RMDIR_CMD " \"%s\"\n", fix_path_separator(old_cluster.pgdata));
 
    /* delete old cluster's alternate tablespaces */
    for (tblnum = 0; tblnum < os_info.num_old_tablespaces; tblnum++)
@@ -550,7 +550,7 @@ create_script_for_old_cluster_deletion(char **deletion_script_file_name)
                        PATH_SEPARATOR);
 
            for (dbnum = 0; dbnum < old_cluster.dbarr.ndbs; dbnum++)
-               fprintf(script, RMDIR_CMD " %s%c%d\n",
+               fprintf(script, RMDIR_CMD " \"%s%c%d\"\n",
                        fix_path_separator(os_info.old_tablespaces[tblnum]),
                        PATH_SEPARATOR, old_cluster.dbarr.dbs[dbnum].db_oid);
        }
@@ -562,7 +562,7 @@ create_script_for_old_cluster_deletion(char **deletion_script_file_name)
             * Simply delete the tablespace directory, which might be ".old"
             * or a version-specific subdirectory.
             */
-           fprintf(script, RMDIR_CMD " %s%s\n",
+           fprintf(script, RMDIR_CMD " \"%s%s\"\n",
                    fix_path_separator(os_info.old_tablespaces[tblnum]),
                    fix_path_separator(suffix_path));
            pfree(suffix_path);