Alvaro Herrera wrote:
> Cleanup ClusterInfo initialization in pg_upgrade
Global structs are already initialized to zero, so no need to initialize
them. I discussed this with Alvaro, and he suggested that there is no
need to free memory before we exit. The attached, applied patch makes
both changes.
--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ It's impossible for everything to be true. +
diff --git a/contrib/pg_upgrade/info.c b/contrib/pg_upgrade/info.c
index 7a5a050..0c518a2 100644
*** a/contrib/pg_upgrade/info.c
--- b/contrib/pg_upgrade/info.c
*************** static void free_rel_infos(RelInfoArr *r
*** 22,33 ****
static void print_db_infos(DbInfoArr *dbinfo);
static void print_rel_infos(RelInfoArr *arr);
- void
- initialize_cluster_info(ClusterInfo *cluster)
- {
- cluster->dbarr.ndbs = 0;
- cluster->dbarr.dbs = NULL;
- }
/*
* gen_db_file_maps()
--- 22,27 ----
diff --git a/contrib/pg_upgrade/pg_upgrade.c b/contrib/pg_upgrade/pg_upgrade.c
index 319ee79..061544c 100644
*** a/contrib/pg_upgrade/pg_upgrade.c
--- b/contrib/pg_upgrade/pg_upgrade.c
*************** main(int argc, char **argv)
*** 63,71 ****
char *deletion_script_file_name = NULL;
bool live_check = false;
- initialize_cluster_info(&old_cluster);
- initialize_cluster_info(&new_cluster);
-
parseCommandLine(argc, argv);
output_check_banner(&live_check);
--- 63,68 ----
*************** set_frozenxids(void)
*** 428,458 ****
static void
cleanup(void)
{
- int tblnum;
char filename[MAXPGPATH];
! for (tblnum = 0; tblnum < os_info.num_tablespaces; tblnum++)
! pg_free(os_info.tablespaces[tblnum]);
! pg_free(os_info.tablespaces);
!
! free_db_and_rel_infos(&old_cluster.dbarr);
! free_db_and_rel_infos(&new_cluster.dbarr);
! pg_free(log_opts.filename);
! pg_free(os_info.user);
! pg_free(old_cluster.controldata.lc_collate);
! pg_free(new_cluster.controldata.lc_collate);
! pg_free(old_cluster.controldata.lc_ctype);
! pg_free(new_cluster.controldata.lc_ctype);
! pg_free(old_cluster.controldata.encoding);
! pg_free(new_cluster.controldata.encoding);
! pg_free(old_cluster.tablespace_suffix);
! pg_free(new_cluster.tablespace_suffix);
!
! if (log_opts.fd != NULL)
! {
fclose(log_opts.fd);
- log_opts.fd = NULL;
- }
if (log_opts.debug_fd)
fclose(log_opts.debug_fd);
--- 425,434 ----
static void
cleanup(void)
{
char filename[MAXPGPATH];
! if (log_opts.fd)
fclose(log_opts.fd);
if (log_opts.debug_fd)
fclose(log_opts.debug_fd);
diff --git a/contrib/pg_upgrade/pg_upgrade.h b/contrib/pg_upgrade/pg_upgrade.h
index 598625b..4461952 100644
*** a/contrib/pg_upgrade/pg_upgrade.h
--- b/contrib/pg_upgrade/pg_upgrade.h
*************** void check_loadable_libraries(void);
*** 326,332 ****
/* info.c */
- void initialize_cluster_info(ClusterInfo *cluster);
FileNameMap *gen_db_file_maps(DbInfo *old_db,
DbInfo *new_db, int *nmaps, const char *old_pgdata,
const char *new_pgdata);
--- 326,331 ----