1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-28 23:42:10 +03:00

pg_upgrade: quote directory names in delete_old_cluster script

This allows the delete script to properly function when special
characters appear in directory paths, e.g. spaces.

Backpatch through 9.0
This commit is contained in:
Bruce Momjian
2015-02-11 22:06:04 -05:00
parent 85dac37eef
commit 4ae178f607

View File

@ -432,7 +432,7 @@ create_script_for_old_cluster_deletion(migratorContext *ctx,
#endif #endif
/* delete old cluster's default tablespace */ /* 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 */ /* delete old cluster's alternate tablespaces */
for (tblnum = 0; tblnum < ctx->num_tablespaces; tblnum++) 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++) 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->tablespaces[tblnum]),
fix_path_separator(ctx, ctx->old.tablespace_suffix), fix_path_separator(ctx, ctx->old.tablespace_suffix),
PATH_SEPARATOR, ctx->old.dbarr.dbs[dbnum].db_oid); 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" * Simply delete the tablespace directory, which might be ".old"
* or a version-specific subdirectory. * 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->tablespaces[tblnum]),
fix_path_separator(ctx, ctx->old.tablespace_suffix)); fix_path_separator(ctx, ctx->old.tablespace_suffix));
} }