On Mon, Jan 24, 2022 at 12:39:30PM -0500, Bruce Momjian wrote: > On Mon, Jan 24, 2022 at 10:59:40AM +0900, Michael Paquier wrote: > > On Thu, Jan 20, 2022 at 07:51:37PM +0900, Michael Paquier wrote: > > > Neat idea. That would work fine for my case. So I am fine to stick > > > with this suggestion. > > > > I have been looking at this idea, and the result is quite nice, being > > simpler than anything that has been proposed on this thread yet. We > > get a simpler removal logic, and there is no need to perform any kind > > of sanity checks with the output path provided as long as we generate > > the paths and the dirs after adjust_data_dir(). > ... > > > > <para> > > <application>pg_upgrade</application> creates various working files, > > such > > - as schema dumps, in the current working directory. For security, be > > sure > > - that that directory is not readable or writable by any other users. > > + as schema dumps, stored within <literal>pg_upgrade_output.d</literal> in > > + the directory of the new cluster. > > </para> > > Uh, how are we instructing people to delete that pg_upgrade output > directory? If pg_upgrade completes cleanly, would it be removed > automatically?
Clearly. @@ -689,28 +751,5 @@ cleanup(void) /* Remove dump and log files? */ if (!log_opts.retain) - { - int dbnum; - char **filename; - - for (filename = output_files; *filename != NULL; filename++) - unlink(*filename); - - /* remove dump files */ - unlink(GLOBALS_DUMP_FILE); - - if (old_cluster.dbarr.dbs) - for (dbnum = 0; dbnum < old_cluster.dbarr.ndbs; dbnum++) - { - char sql_file_name[MAXPGPATH], - log_file_name[MAXPGPATH]; - DbInfo *old_db = &old_cluster.dbarr.dbs[dbnum]; - - snprintf(sql_file_name, sizeof(sql_file_name), DB_DUMP_FILE_MASK, old_db->db_oid); - unlink(sql_file_name); - - snprintf(log_file_name, sizeof(log_file_name), DB_DUMP_LOG_FILE_MASK, old_db->db_oid); - unlink(log_file_name); - } - } + rmtree(log_opts.basedir, true); }