aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2013-11-30 16:50:33 -0500
committerBruce Momjian <bruce@momjian.us>2013-11-30 16:50:33 -0500
commite7d56aee2d1805cd9d280c0e6f8c8af80a13aa3e (patch)
tree7a3c848fa6634ab103283a254c67ae01a5ada147
parent4bd371f6f886446b6c0886f088992e6f3d4ab4a2 (diff)
downloadpostgresql-e7d56aee2d1805cd9d280c0e6f8c8af80a13aa3e.tar.gz
postgresql-e7d56aee2d1805cd9d280c0e6f8c8af80a13aa3e.zip
pg_upgrade: Handle default_transaction_read_only settings
Setting default_transaction_read_only=true could prevent pg_upgrade from completing, so prepend default_transaction_read_only=false to PGOPTIONS.
-rw-r--r--contrib/pg_upgrade/option.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/contrib/pg_upgrade/option.c b/contrib/pg_upgrade/option.c
index 250aeb8e1a1..6bd91c52301 100644
--- a/contrib/pg_upgrade/option.c
+++ b/contrib/pg_upgrade/option.c
@@ -25,6 +25,7 @@
static void usage(void);
static void check_required_directory(char **dirpath, char **configpath,
char *envVarName, char *cmdLineOption, char *description);
+#define FIX_DEFAULT_READ_ONLY "-c default_transaction_read_only=false"
UserOpts user_opts;
@@ -208,6 +209,17 @@ parseCommandLine(int argc, char *argv[])
fclose(fp);
}
+ /* Turn off read-only mode; add prefix to PGOPTIONS? */
+ if (getenv("PGOPTIONS"))
+ {
+ char *pgoptions = psprintf("%s %s", FIX_DEFAULT_READ_ONLY,
+ getenv("PGOPTIONS"));
+ pg_putenv("PGOPTIONS", pgoptions);
+ pfree(pgoptions);
+ }
+ else
+ pg_putenv("PGOPTIONS", FIX_DEFAULT_READ_ONLY);
+
/* Get values from env if not already set */
check_required_directory(&old_cluster.bindir, NULL, "PGBINOLD", "-b",
"old cluster binaries reside");