]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
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 7a84dc4f5ed05161b1884b8198cef72520ba1d46..05c46a5ec792ee932007aacf48ddc4881a867f3d 100644 (file)
@@ -432,7 +432,7 @@ create_script_for_old_cluster_deletion(migratorContext *ctx,
 #endif
 
        /* delete old cluster's default tablespace */
-       fprintf(script, RMDIR_CMD " %s\n", fix_path_separator(ctx, ctx->old.pgdata));
+       fprintf(script, RMDIR_CMD " \"%s\"\n", fix_path_separator(ctx, ctx->old.pgdata));
 
        /* delete old cluster's alternate tablespaces */
        for (tblnum = 0; tblnum < ctx->num_tablespaces; tblnum++)
@@ -456,7 +456,7 @@ create_script_for_old_cluster_deletion(migratorContext *ctx,
 
                        for (dbnum = 0; dbnum < ctx->new.dbarr.ndbs; dbnum++)
                        {
-                               fprintf(script, RMDIR_CMD " %s%s%c%d\n",
+                               fprintf(script, RMDIR_CMD " \"%s%s%c%d\"\n",
                                                fix_path_separator(ctx, ctx->tablespaces[tblnum]),
                                                fix_path_separator(ctx, ctx->old.tablespace_suffix),
                                                PATH_SEPARATOR, ctx->old.dbarr.dbs[dbnum].db_oid);
@@ -468,7 +468,7 @@ create_script_for_old_cluster_deletion(migratorContext *ctx,
                         * 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(ctx, ctx->tablespaces[tblnum]),
                                        fix_path_separator(ctx, ctx->old.tablespace_suffix));
        }