]> granicus.if.org Git - postgresql/commitdiff
Remove the last vestige of server-side autocommit.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 6 Nov 2014 00:35:23 +0000 (19:35 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 6 Nov 2014 00:35:23 +0000 (19:35 -0500)
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
src/backend/utils/misc/check_guc
src/backend/utils/misc/guc.c

index f9536ee1e49fefab605e022f290b6a22a8a5a48b..1b34a6f75fb14cb71851afd0cb93aeeefbefbc2e 100644 (file)
@@ -476,7 +476,7 @@ EXEC SQL COMMIT;
    In the default mode, statements are committed only when
    <command>EXEC SQL COMMIT</command> is issued. The embedded SQL
    interface also supports autocommit of transactions (similar to
-   <application>libpq</> behavior) via the <option>-t</option>
+   <application>psql</>'s default behavior) via the <option>-t</option>
    command-line option to <command>ecpg</command> (see <xref
    linkend="app-ecpg">) or via the <literal>EXEC SQL SET AUTOCOMMIT TO
    ON</literal> statement. In autocommit mode, each command is
index 293fb0363f8fbda2acad821490fa86821bd72a59..d228bbed685b2ecd7186095f560d0c22c1478c4d 100755 (executable)
@@ -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 \
index d7142d218dce40e336154f464ac1d775ae148da7..aca42436d34cb225c6f4c2188a86c2308fe0986b 100644 (file)
@@ -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)
 {