From 66f5217f52aa131fc812bb40a99a772a1ab6c575 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Wed, 11 Feb 2015 22:06:04 -0500
Subject: [PATCH] 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
---
 contrib/pg_upgrade/check.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/contrib/pg_upgrade/check.c b/contrib/pg_upgrade/check.c
index 40449843563..74ad12364ef 100644
--- a/contrib/pg_upgrade/check.c
+++ b/contrib/pg_upgrade/check.c
@@ -656,7 +656,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_tablespaces; tblnum++)
@@ -680,7 +680,7 @@ create_script_for_old_cluster_deletion(char **deletion_script_file_name)
 
 			for (dbnum = 0; dbnum < old_cluster.dbarr.ndbs; dbnum++)
 			{
-				fprintf(script, RMDIR_CMD " %s%s%c%d\n",
+				fprintf(script, RMDIR_CMD " \"%s%s%c%d\"\n",
 						fix_path_separator(os_info.tablespaces[tblnum]),
 						fix_path_separator(old_cluster.tablespace_suffix),
 						PATH_SEPARATOR, old_cluster.dbarr.dbs[dbnum].db_oid);
@@ -692,7 +692,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.tablespaces[tblnum]), 
 					fix_path_separator(old_cluster.tablespace_suffix));
 	}
-- 
GitLab