summaryrefslogtreecommitdiff
path: root/sql/mysqld.cc
diff options
context:
space:
mode:
authorGuilhem Bichot <guilhem@mysql.com>2010-11-05 14:16:27 +0100
committerGuilhem Bichot <guilhem@mysql.com>2010-11-05 14:16:27 +0100
commitf80d13e5303c80e149d82701d97bb5f57a18c4f2 (patch)
treef404754be54b6d7ec395be8cade2484f79a24e02 /sql/mysqld.cc
parent373be0d5fae0aa9a68a15d4c7237868f79917843 (diff)
downloadmariadb-git-f80d13e5303c80e149d82701d97bb5f57a18c4f2.tar.gz
Fix for BUG#57316 "It is not clear how to disable autocommit"
add boolean command-line option --autocommit.
Diffstat (limited to 'sql/mysqld.cc')
-rw-r--r--sql/mysqld.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index df4f0f95b8c..21754b23940 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -5662,6 +5662,12 @@ struct my_option my_long_options[]=
{"ansi", 'a', "Use ANSI SQL syntax instead of MySQL syntax. This mode "
"will also set transaction isolation level 'serializable'.", 0, 0, 0,
GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ /*
+ Because Sys_var_bit does not support command-line options, we need to
+ explicitely add one for --autocommit
+ */
+ {"autocommit", OPT_AUTOCOMMIT, "Set default value for autocommit (0 or 1)",
+ NULL, NULL, 0, GET_BOOL, OPT_ARG, 0, 0, 0, 0, 0, NULL},
{"bind-address", OPT_BIND_ADDRESS, "IP address to bind to.",
&my_bind_addr_str, &my_bind_addr_str, 0, GET_STR,
REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
@@ -7114,6 +7120,13 @@ mysqld_get_one_option(int optid,
if (argument == NULL) /* no argument */
log_error_file_ptr= const_cast<char*>("");
break;
+ case OPT_AUTOCOMMIT:
+ const ulonglong turn_bit_on= (argument && (atoi(argument) == 0)) ?
+ OPTION_NOT_AUTOCOMMIT : OPTION_AUTOCOMMIT;
+ global_system_variables.option_bits=
+ (global_system_variables.option_bits &
+ ~(OPTION_NOT_AUTOCOMMIT | OPTION_AUTOCOMMIT)) | turn_bit_on;
+ break;
}
return 0;
}