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);                                 
                                                                    
 }                                                                              
                                                                    


Reply via email to