mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +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:
		@@ -681,7 +681,7 @@ create_script_for_old_cluster_deletion(char **deletion_script_file_name)
 | 
				
			|||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* delete old cluster's default tablespace */
 | 
						/* 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 */
 | 
						/* delete old cluster's alternate tablespaces */
 | 
				
			||||||
	for (tblnum = 0; tblnum < os_info.num_old_tablespaces; tblnum++)
 | 
						for (tblnum = 0; tblnum < os_info.num_old_tablespaces; tblnum++)
 | 
				
			||||||
@@ -705,7 +705,7 @@ create_script_for_old_cluster_deletion(char **deletion_script_file_name)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
			for (dbnum = 0; dbnum < old_cluster.dbarr.ndbs; dbnum++)
 | 
								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.old_tablespaces[tblnum]),
 | 
											fix_path_separator(os_info.old_tablespaces[tblnum]),
 | 
				
			||||||
						fix_path_separator(old_cluster.tablespace_suffix),
 | 
											fix_path_separator(old_cluster.tablespace_suffix),
 | 
				
			||||||
						PATH_SEPARATOR, old_cluster.dbarr.dbs[dbnum].db_oid);
 | 
											PATH_SEPARATOR, old_cluster.dbarr.dbs[dbnum].db_oid);
 | 
				
			||||||
@@ -717,7 +717,7 @@ create_script_for_old_cluster_deletion(char **deletion_script_file_name)
 | 
				
			|||||||
			 * 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(os_info.old_tablespaces[tblnum]),
 | 
										fix_path_separator(os_info.old_tablespaces[tblnum]),
 | 
				
			||||||
					fix_path_separator(old_cluster.tablespace_suffix));
 | 
										fix_path_separator(old_cluster.tablespace_suffix));
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user