From 525a489915cad1c5b2fc39e43e8005025afe63b2 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Wed, 5 Nov 2014 19:35:23 -0500 Subject: [PATCH] Remove the last vestige of server-side autocommit. Long ago we briefly had an "autocommit" GUC that turned server-side autocommit on and off. That behavior was removed in 7.4 after concluding that it broke far too much client-side logic, and making clients cope with both behaviors was impractical. But the GUC variable was left behind, so as not to break any client code that might be trying to read its value. Enough time has now passed that we should remove the GUC completely. Whatever vestigial backwards-compatibility benefit it had is outweighed by the risk of confusion for newbies who assume it ought to do something, as per a recent complaint from Wolfgang Wilhelm. In passing, adjust what seemed to me a rather confusing documentation reference to libpq's autocommit behavior. libpq as such knows nothing about autocommit, so psql is probably what was meant. --- doc/src/sgml/ecpg.sgml | 2 +- src/backend/utils/misc/check_guc | 2 +- src/backend/utils/misc/guc.c | 25 ------------------------- 3 files changed, 2 insertions(+), 27 deletions(-) diff --git a/doc/src/sgml/ecpg.sgml b/doc/src/sgml/ecpg.sgml index f9536ee1e4..1b34a6f75f 100644 --- a/doc/src/sgml/ecpg.sgml +++ b/doc/src/sgml/ecpg.sgml @@ -476,7 +476,7 @@ EXEC SQL COMMIT; In the default mode, statements are committed only when EXEC SQL COMMIT is issued. The embedded SQL interface also supports autocommit of transactions (similar to - libpq behavior) via the + psql's default behavior) via the command-line option to ecpg (see ) or via the EXEC SQL SET AUTOCOMMIT TO ON statement. In autocommit mode, each command is diff --git a/src/backend/utils/misc/check_guc b/src/backend/utils/misc/check_guc index 293fb0363f..d228bbed68 100755 --- a/src/backend/utils/misc/check_guc +++ b/src/backend/utils/misc/check_guc @@ -16,7 +16,7 @@ ## if an option is valid but shows up in only one file (guc.c but not ## postgresql.conf.sample), it should be listed here so that it ## can be ignored -INTENTIONALLY_NOT_INCLUDED="autocommit debug_deadlocks \ +INTENTIONALLY_NOT_INCLUDED="debug_deadlocks \ is_superuser lc_collate lc_ctype lc_messages lc_monetary lc_numeric lc_time \ pre_auth_delay role seed server_encoding server_version server_version_int \ session_authorization trace_lock_oidmin trace_lock_table trace_locks trace_lwlocks \ diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index d7142d218d..aca42436d3 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -171,7 +171,6 @@ static void assign_syslog_facility(int newval, void *extra); static void assign_syslog_ident(const char *newval, void *extra); static void assign_session_replication_role(int newval, void *extra); static bool check_temp_buffers(int *newval, void **extra, GucSource source); -static bool check_phony_autocommit(bool *newval, void **extra, GucSource source); static bool check_bonjour(bool *newval, void **extra, GucSource source); static bool check_ssl(bool *newval, void **extra, GucSource source); static bool check_stage_log_stats(bool *newval, void **extra, GucSource source); @@ -488,7 +487,6 @@ int huge_pages; * and is kept in sync by assign_hooks. */ static char *syslog_ident_str; -static bool phony_autocommit; static bool session_auth_is_superuser; static double phony_random_seed; static char *client_encoding_string; @@ -1250,17 +1248,6 @@ static struct config_bool ConfigureNamesBool[] = false, NULL, NULL, NULL }, - { - /* only here for backwards compatibility */ - {"autocommit", PGC_USERSET, CLIENT_CONN_STATEMENT, - gettext_noop("This parameter doesn't do anything."), - gettext_noop("It's just here so that we won't choke on SET AUTOCOMMIT TO ON from 7.3-vintage clients."), - GUC_NO_SHOW_ALL | GUC_NOT_IN_SAMPLE - }, - &phony_autocommit, - true, - check_phony_autocommit, NULL, NULL - }, { {"default_transaction_read_only", PGC_USERSET, CLIENT_CONN_STATEMENT, gettext_noop("Sets the default read-only status of new transactions."), @@ -9179,18 +9166,6 @@ check_temp_buffers(int *newval, void **extra, GucSource source) return true; } -static bool -check_phony_autocommit(bool *newval, void **extra, GucSource source) -{ - if (!*newval) - { - GUC_check_errcode(ERRCODE_FEATURE_NOT_SUPPORTED); - GUC_check_errmsg("SET AUTOCOMMIT TO OFF is no longer supported"); - return false; - } - return true; -} - static bool check_bonjour(bool *newval, void **extra, GucSource source) {