diff options
Diffstat (limited to 'contrib/pg_upgrade/tablespace.c')
-rw-r--r-- | contrib/pg_upgrade/tablespace.c | 53 |
1 files changed, 27 insertions, 26 deletions
diff --git a/contrib/pg_upgrade/tablespace.c b/contrib/pg_upgrade/tablespace.c index 045ef7effac..6dc274a1afd 100644 --- a/contrib/pg_upgrade/tablespace.c +++ b/contrib/pg_upgrade/tablespace.c @@ -9,22 +9,22 @@ #include "pg_upgrade.h" -static void get_tablespace_paths(migratorContext *ctx); -static void set_tablespace_directory_suffix(migratorContext *ctx, +static void get_tablespace_paths(void); +static void set_tablespace_directory_suffix( Cluster whichCluster); void -init_tablespaces(migratorContext *ctx) +init_tablespaces(void) { - get_tablespace_paths(ctx); + get_tablespace_paths(); - set_tablespace_directory_suffix(ctx, CLUSTER_OLD); - set_tablespace_directory_suffix(ctx, CLUSTER_NEW); + set_tablespace_directory_suffix(CLUSTER_OLD); + set_tablespace_directory_suffix(CLUSTER_NEW); - if (ctx->num_tablespaces > 0 && - strcmp(ctx->old.tablespace_suffix, ctx->new.tablespace_suffix) == 0) - pg_log(ctx, PG_FATAL, + if (os_info.num_tablespaces > 0 && + strcmp(old_cluster.tablespace_suffix, new_cluster.tablespace_suffix) == 0) + pg_log(PG_FATAL, "Cannot migrate to/from the same system catalog version when\n" "using tablespaces.\n"); } @@ -37,29 +37,29 @@ init_tablespaces(migratorContext *ctx) * paths. Its the caller's responsibility to free the array. */ static void -get_tablespace_paths(migratorContext *ctx) +get_tablespace_paths(void) { - PGconn *conn = connectToServer(ctx, "template1", CLUSTER_OLD); + PGconn *conn = connectToServer("template1", CLUSTER_OLD); PGresult *res; int tblnum; int i_spclocation; - res = executeQueryOrDie(ctx, conn, + res = executeQueryOrDie(conn, "SELECT spclocation " "FROM pg_catalog.pg_tablespace " "WHERE spcname != 'pg_default' AND " " spcname != 'pg_global'"); - if ((ctx->num_tablespaces = PQntuples(res)) != 0) - ctx->tablespaces = (char **) pg_malloc(ctx, - ctx->num_tablespaces * sizeof(char *)); + if ((os_info.num_tablespaces = PQntuples(res)) != 0) + os_info.tablespaces = (char **) pg_malloc( + os_info.num_tablespaces * sizeof(char *)); else - ctx->tablespaces = NULL; + os_info.tablespaces = NULL; i_spclocation = PQfnumber(res, "spclocation"); - for (tblnum = 0; tblnum < ctx->num_tablespaces; tblnum++) - ctx->tablespaces[tblnum] = pg_strdup(ctx, + for (tblnum = 0; tblnum < os_info.num_tablespaces; tblnum++) + os_info.tablespaces[tblnum] = pg_strdup( PQgetvalue(res, tblnum, i_spclocation)); PQclear(res); @@ -71,20 +71,21 @@ get_tablespace_paths(migratorContext *ctx) static void -set_tablespace_directory_suffix(migratorContext *ctx, Cluster whichCluster) +set_tablespace_directory_suffix(Cluster whichCluster) { - ClusterInfo *cluster = (whichCluster == CLUSTER_OLD) ? &ctx->old : &ctx->new; + ClusterInfo *active_cluster = ACTIVE_CLUSTER(whichCluster); - if (GET_MAJOR_VERSION(cluster->major_version) <= 804) - cluster->tablespace_suffix = pg_strdup(ctx, ""); + if (GET_MAJOR_VERSION(active_cluster->major_version) <= 804) + active_cluster->tablespace_suffix = pg_strdup(""); else { /* This cluster has a version-specific subdirectory */ - cluster->tablespace_suffix = pg_malloc(ctx, 4 + strlen(cluster->major_version_str) + - 10 /* OIDCHARS */ + 1); + active_cluster->tablespace_suffix = pg_malloc(4 + + strlen(active_cluster->major_version_str) + + 10 /* OIDCHARS */ + 1); /* The leading slash is needed to start a new directory. */ - sprintf(cluster->tablespace_suffix, "/PG_%s_%d", cluster->major_version_str, - cluster->controldata.cat_ver); + sprintf(active_cluster->tablespace_suffix, "/PG_%s_%d", active_cluster->major_version_str, + active_cluster->controldata.cat_ver); } } |