diff options
author | unknown <acurtis@pcgem.rdg.cyberkinetica.com> | 2005-02-01 19:48:05 +0000 |
---|---|---|
committer | unknown <acurtis@pcgem.rdg.cyberkinetica.com> | 2005-02-01 19:48:05 +0000 |
commit | 0e50e32480920c29f2efacfcbfa35c9c93838840 (patch) | |
tree | bbf0adb98417062aa825a294e28389e8eed0ec43 /sql/set_var.cc | |
parent | f7606a335e44841e2cac79cc7256b6eb489c7b82 (diff) | |
download | mariadb-git-0e50e32480920c29f2efacfcbfa35c9c93838840.tar.gz |
WL#1967
Support for COMMIT/ROLLBACK optional arguments
innobase/include/trx0roll.h:
WL#1967
trx_release_savepoint_for_mysql()
innobase/trx/trx0roll.c:
WL#1967
trx_release_savepoint_for_mysql()
mysql-test/r/innodb.result:
WL#1967
Test for savepoint release
mysql-test/t/innodb.test:
WL#1967
Test for savepoint release
sql/ha_innodb.cc:
WL#1967
innobase_release_savepoint_name()
sql/ha_innodb.h:
WL#1967
innobase_release_savepoint_name()
sql/handler.cc:
WL#1967
ha_release_savepoint_name()
sql/handler.h:
WL#1967
ha_release_savepoint_name()
sql/lex.h:
WL#1967
New tokens: CHAIN, RELEASE
sql/mysqld.cc:
WL#1967
new option: completion-type
sql/set_var.cc:
WL#1967
new option: completion-type
sql/sql_class.h:
WL#1967
new option: completion-type
sql/sql_lex.h:
WL#1967
Support RELEASE SAVEPOINT
additional flags to support COMMIT/ROLLBACK options
sql/sql_parse.cc:
WL#1967
Transaction operations in mysql_endtrans(), begin_trans()
sql/sql_yacc.yy:
WL#1967
Support COMMIT/ROLLBACK optional args
Diffstat (limited to 'sql/set_var.cc')
-rw-r--r-- | sql/set_var.cc | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/sql/set_var.cc b/sql/set_var.cc index 7a528467e24..541bcf0ff7d 100644 --- a/sql/set_var.cc +++ b/sql/set_var.cc @@ -100,6 +100,8 @@ static int check_pseudo_thread_id(THD *thd, set_var *var); static bool set_log_bin(THD *thd, set_var *var); static void fix_low_priority_updates(THD *thd, enum_var_type type); static void fix_tx_isolation(THD *thd, enum_var_type type); +static int check_completion_type(THD *thd, set_var *var); +static void fix_completion_type(THD *thd, enum_var_type type); static void fix_net_read_timeout(THD *thd, enum_var_type type); static void fix_net_write_timeout(THD *thd, enum_var_type type); static void fix_net_retry_count(THD *thd, enum_var_type type); @@ -149,6 +151,10 @@ sys_var_character_set_database sys_character_set_database("character_set_databas sys_var_character_set_client sys_character_set_client("character_set_client"); sys_var_character_set_connection sys_character_set_connection("character_set_connection"); sys_var_character_set_results sys_character_set_results("character_set_results"); +sys_var_thd_ulong sys_completion_type("completion_type", + &SV::completion_type, + check_completion_type, + fix_completion_type); sys_var_collation_connection sys_collation_connection("collation_connection"); sys_var_collation_database sys_collation_database("collation_database"); sys_var_collation_server sys_collation_server("collation_server"); @@ -532,6 +538,7 @@ sys_var *sys_variables[]= &sys_collation_connection, &sys_collation_database, &sys_collation_server, + &sys_completion_type, &sys_concurrent_insert, &sys_connect_timeout, &sys_date_format, @@ -708,6 +715,7 @@ struct show_var_st init_vars[]= { {sys_collation_connection.name,(char*) &sys_collation_connection, SHOW_SYS}, {sys_collation_database.name,(char*) &sys_collation_database, SHOW_SYS}, {sys_collation_server.name,(char*) &sys_collation_server, SHOW_SYS}, + {sys_completion_type.name, (char*) &sys_completion_type, SHOW_SYS}, {sys_concurrent_insert.name,(char*) &sys_concurrent_insert, SHOW_SYS}, {sys_connect_timeout.name, (char*) &sys_connect_timeout, SHOW_SYS}, {"datadir", mysql_real_data_home, SHOW_CHAR}, @@ -1122,6 +1130,21 @@ static void fix_tx_isolation(THD *thd, enum_var_type type) thd->variables.tx_isolation); } +static void fix_completion_type(THD *thd __attribute__(unused), + enum_var_type type __attribute__(unused)) {} + +static int check_completion_type(THD *thd, set_var *var) +{ + longlong val= var->value->val_int(); + if (val < 0 || val > 2) + { + char buf[64]; + my_error(ER_WRONG_VALUE_FOR_VAR, MYF(0), var->var->name, llstr(val, buf)); + return 1; + } + return 0; +} + /* If we are changing the thread variable, we have to copy it to NET too |