aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/misc/guc.c
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2011-04-04 16:13:01 -0400
committerRobert Haas <rhaas@postgresql.org>2011-04-04 16:25:52 -0400
commit240067b3b0ff989d2b28f4f917f7958f2ec76b05 (patch)
tree385e0e13abda1024fc6a5cd8a81583a3a86366bd /src/backend/utils/misc/guc.c
parentfc3459d70c5d842fe6519522649c8a47454f25bb (diff)
downloadpostgresql-240067b3b0ff989d2b28f4f917f7958f2ec76b05.tar.gz
postgresql-240067b3b0ff989d2b28f4f917f7958f2ec76b05.zip
Merge synchronous_replication setting into synchronous_commit.
This means one less thing to configure when setting up synchronous replication, and also avoids some ambiguity around what the behavior should be when the settings of these variables conflict. Fujii Masao, with additional hacking by me.
Diffstat (limited to 'src/backend/utils/misc/guc.c')
-rw-r--r--src/backend/utils/misc/guc.c43
1 files changed, 27 insertions, 16 deletions
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index b49bdaea9d0..1f7a7d24f83 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -351,6 +351,23 @@ static const struct config_enum_entry constraint_exclusion_options[] = {
};
/*
+ * Although only "on", "off", and "local" are documented, we
+ * accept all the likely variants of "on" and "off".
+ */
+static const struct config_enum_entry synchronous_commit_options[] = {
+ {"local", SYNCHRONOUS_COMMIT_LOCAL, false},
+ {"on", SYNCHRONOUS_COMMIT_ON, false},
+ {"off", SYNCHRONOUS_COMMIT_OFF, false},
+ {"true", SYNCHRONOUS_COMMIT_ON, true},
+ {"false", SYNCHRONOUS_COMMIT_OFF, true},
+ {"yes", SYNCHRONOUS_COMMIT_ON, true},
+ {"no", SYNCHRONOUS_COMMIT_OFF, true},
+ {"1", SYNCHRONOUS_COMMIT_ON, true},
+ {"0", SYNCHRONOUS_COMMIT_OFF, true},
+ {NULL, 0, false}
+};
+
+/*
* Options for enum values stored in other modules
*/
extern const struct config_enum_entry wal_level_options[];
@@ -747,22 +764,6 @@ static struct config_bool ConfigureNamesBool[] =
true, NULL, NULL
},
{
- {"synchronous_commit", PGC_USERSET, WAL_SETTINGS,
- gettext_noop("Sets immediate fsync at commit."),
- NULL
- },
- &XactSyncCommit,
- true, NULL, NULL
- },
- {
- {"synchronous_replication", PGC_USERSET, WAL_REPLICATION,
- gettext_noop("Requests synchronous replication."),
- NULL
- },
- &synchronous_replication,
- false, NULL, NULL
- },
- {
{"zero_damaged_pages", PGC_SUSET, DEVELOPER_OPTIONS,
gettext_noop("Continues processing past damaged page headers."),
gettext_noop("Detection of a damaged page header normally causes PostgreSQL to "
@@ -2909,6 +2910,16 @@ static struct config_enum ConfigureNamesEnum[] =
},
{
+ {"synchronous_commit", PGC_USERSET, WAL_SETTINGS,
+ gettext_noop("Sets the current transaction's synchronization level."),
+ NULL
+ },
+ &synchronous_commit,
+ SYNCHRONOUS_COMMIT_ON, synchronous_commit_options,
+ NULL, NULL
+ },
+
+ {
{"trace_recovery_messages", PGC_SIGHUP, DEVELOPER_OPTIONS,
gettext_noop("Enables logging of recovery-related debugging information."),
gettext_noop("Each level includes all the levels that follow it. The later"