diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index c03232264cbb89f07ad85fcaedea9a7c8e26e760..7725ea4ae1d616fc61246f8697392e6aca2fbcfc 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -2131,7 +2131,7 @@ sub mysqld_client_arguments () { sub have_maria_support () { - my $maria_var= $mysqld_variables{'aria-recover'}; + my $maria_var= $mysqld_variables{'aria-recover-options'}; return defined $maria_var; } diff --git a/mysql-test/suite/maria/maria-recover-master.opt b/mysql-test/suite/maria/maria-recover-master.opt index 7582a381a32463d618141d187e2e4d8885f653c2..976c3882d2ea9ec3fd18227716297bec90428697 100644 --- a/mysql-test/suite/maria/maria-recover-master.opt +++ b/mysql-test/suite/maria/maria-recover-master.opt @@ -1 +1 @@ ---loose-aria-recover=backup --loose-aria-log-dir-path=$MYSQLTEST_VARDIR/tmp +--loose-aria-recover-options=backup --loose-aria-log-dir-path=$MYSQLTEST_VARDIR/tmp diff --git a/mysql-test/suite/maria/maria-recover.result b/mysql-test/suite/maria/maria-recover.result index 9b84c47720add8aceaaa5b35ff0c45263019f7b2..472d2351abef62df31a9152d79e1affd6dcac4ed 100644 --- a/mysql-test/suite/maria/maria-recover.result +++ b/mysql-test/suite/maria/maria-recover.result @@ -1,17 +1,17 @@ -select @@global.aria_recover; -@@global.aria_recover +select @@global.aria_recover_options; +@@global.aria_recover_options BACKUP -set global aria_recover=off; -select @@global.aria_recover; -@@global.aria_recover +set global aria_recover_options=off; +select @@global.aria_recover_options; +@@global.aria_recover_options OFF -set global aria_recover=default; -select @@global.aria_recover; -@@global.aria_recover +set global aria_recover_options=default; +select @@global.aria_recover_options; +@@global.aria_recover_options NORMAL -set global aria_recover=normal; -select @@global.aria_recover; -@@global.aria_recover +set global aria_recover_options=normal; +select @@global.aria_recover_options; +@@global.aria_recover_options NORMAL drop database if exists mysqltest; create database mysqltest; @@ -35,5 +35,5 @@ a ThursdayMorningsMarket ThursdayMorningsMarketb drop database mysqltest; -set global aria_recover=backup; +set global aria_recover_options=backup; set global aria_checkpoint_interval=30; diff --git a/mysql-test/suite/maria/maria-recover.test b/mysql-test/suite/maria/maria-recover.test index 56259ad9a311301dd0e9b5a218bfd188b83a2835..0f9f5e9cd26e11ecaaf39b52d02b0c1bb8c21246 100644 --- a/mysql-test/suite/maria/maria-recover.test +++ b/mysql-test/suite/maria/maria-recover.test @@ -1,4 +1,4 @@ -# Test of the --aria-recover option. +# Test of the --aria-recover-options option. --source include/have_maria.inc @@ -18,13 +18,13 @@ let $def_checkinterval=`select @@global.aria_checkpoint_interval`; # so that the perl code below can access it. let MYSQLD_DATADIR= `select @@datadir`; -select @@global.aria_recover; -set global aria_recover=off; -select @@global.aria_recover; -set global aria_recover=default; -select @@global.aria_recover; -set global aria_recover=normal; -select @@global.aria_recover; +select @@global.aria_recover_options; +set global aria_recover_options=off; +select @@global.aria_recover_options; +set global aria_recover_options=default; +select @@global.aria_recover_options; +set global aria_recover_options=normal; +select @@global.aria_recover_options; --disable_warnings drop database if exists mysqltest; @@ -72,5 +72,5 @@ select * from t_corrupted2; # should show corruption and repair messages select * from t_corrupted2; # should show just rows drop database mysqltest; -set global aria_recover=backup; +set global aria_recover_options=backup; eval set global aria_checkpoint_interval=$def_checkinterval; diff --git a/mysql-test/suite/maria/maria3.result b/mysql-test/suite/maria/maria3.result index feb5fa82cd44a22ef6bcd3d26c0d8ba6166528cc..7e0e55ed8c0a4c2cdad9a7236921f17a939256fa 100644 --- a/mysql-test/suite/maria/maria3.result +++ b/mysql-test/suite/maria/maria3.result @@ -317,7 +317,7 @@ aria_pagecache_buffer_size 8388608 aria_pagecache_division_limit 100 aria_pagecache_file_hash_size 512 aria_page_checksum OFF -aria_recover NORMAL +aria_recover_options NORMAL aria_repair_threads 1 aria_sort_buffer_size 268434432 aria_stats_method nulls_unequal diff --git a/mysql-test/suite/maria/suite.pm b/mysql-test/suite/maria/suite.pm index c8ef6d8af727639c7f1508ac092d1853782c73f0..d9af0f2ac43c3af5d1bc1ac657a3da2e9a7a1ba2 100644 --- a/mysql-test/suite/maria/suite.pm +++ b/mysql-test/suite/maria/suite.pm @@ -2,7 +2,7 @@ package My::Suite::Maria; @ISA = qw(My::Suite); -return "Need Aria engine" unless defined $::mysqld_variables{'aria-recover'}; +return "Need Aria engine" unless defined $::mysqld_variables{'aria-recover-options'}; bless { }; diff --git a/mysql-test/suite/sys_vars/r/aria_recover_basic.result b/mysql-test/suite/sys_vars/r/aria_recover_basic.result deleted file mode 100644 index 9cbc6617874147f35230ba86555ae4045991de12..0000000000000000000000000000000000000000 --- a/mysql-test/suite/sys_vars/r/aria_recover_basic.result +++ /dev/null @@ -1,57 +0,0 @@ -SET @start_global_value = @@global.aria_recover; -select @@global.aria_recover; -@@global.aria_recover -NORMAL -select @@session.aria_recover; -ERROR HY000: Variable 'aria_recover' is a GLOBAL variable -show global variables like 'aria_recover'; -Variable_name Value -aria_recover NORMAL -show session variables like 'aria_recover'; -Variable_name Value -aria_recover NORMAL -select * from information_schema.global_variables where variable_name='aria_recover'; -VARIABLE_NAME VARIABLE_VALUE -ARIA_RECOVER NORMAL -select * from information_schema.session_variables where variable_name='aria_recover'; -VARIABLE_NAME VARIABLE_VALUE -ARIA_RECOVER NORMAL -set global aria_recover=1; -select @@global.aria_recover; -@@global.aria_recover -NORMAL -set session aria_recover=1; -ERROR HY000: Variable 'aria_recover' is a GLOBAL variable and should be set with SET GLOBAL -set global aria_recover=normal; -select @@global.aria_recover; -@@global.aria_recover -NORMAL -set global aria_recover=backup; -select @@global.aria_recover; -@@global.aria_recover -BACKUP -set global aria_recover='force'; -select @@global.aria_recover; -@@global.aria_recover -FORCE -set global aria_recover=off; -select @@global.aria_recover; -@@global.aria_recover -OFF -set global aria_recover='quick,force'; -select @@global.aria_recover; -@@global.aria_recover -FORCE,QUICK -set global aria_recover=16; -select @@global.aria_recover; -@@global.aria_recover -OFF -set global aria_recover=1.1; -ERROR 42000: Incorrect argument type to variable 'aria_recover' -set global aria_recover=1e1; -ERROR 42000: Incorrect argument type to variable 'aria_recover' -set global aria_recover="foo"; -ERROR 42000: Variable 'aria_recover' can't be set to the value of 'foo' -set global aria_recover=32; -ERROR 42000: Variable 'aria_recover' can't be set to the value of '32' -SET @@global.aria_recover = @start_global_value; diff --git a/mysql-test/suite/sys_vars/r/aria_recover_options_basic.result b/mysql-test/suite/sys_vars/r/aria_recover_options_basic.result new file mode 100644 index 0000000000000000000000000000000000000000..04c45aa0dbb95e3c354e623f7b653c6aac1ee6bc --- /dev/null +++ b/mysql-test/suite/sys_vars/r/aria_recover_options_basic.result @@ -0,0 +1,57 @@ +SET @start_global_value = @@global.aria_recover_options; +select @@global.aria_recover_options; +@@global.aria_recover_options +NORMAL +select @@session.aria_recover_options; +ERROR HY000: Variable 'aria_recover_options' is a GLOBAL variable +show global variables like 'aria_recover_options'; +Variable_name Value +aria_recover_options NORMAL +show session variables like 'aria_recover_options'; +Variable_name Value +aria_recover_options NORMAL +select * from information_schema.global_variables where variable_name='aria_recover_options'; +VARIABLE_NAME VARIABLE_VALUE +ARIA_RECOVER_OPTIONS NORMAL +select * from information_schema.session_variables where variable_name='aria_recover_options'; +VARIABLE_NAME VARIABLE_VALUE +ARIA_RECOVER_OPTIONS NORMAL +set global aria_recover_options=1; +select @@global.aria_recover_options; +@@global.aria_recover_options +NORMAL +set session aria_recover_options=1; +ERROR HY000: Variable 'aria_recover_options' is a GLOBAL variable and should be set with SET GLOBAL +set global aria_recover_options=normal; +select @@global.aria_recover_options; +@@global.aria_recover_options +NORMAL +set global aria_recover_options=backup; +select @@global.aria_recover_options; +@@global.aria_recover_options +BACKUP +set global aria_recover_options='force'; +select @@global.aria_recover_options; +@@global.aria_recover_options +FORCE +set global aria_recover_options=off; +select @@global.aria_recover_options; +@@global.aria_recover_options +OFF +set global aria_recover_options='quick,force'; +select @@global.aria_recover_options; +@@global.aria_recover_options +FORCE,QUICK +set global aria_recover_options=16; +select @@global.aria_recover_options; +@@global.aria_recover_options +OFF +set global aria_recover_options=1.1; +ERROR 42000: Incorrect argument type to variable 'aria_recover_options' +set global aria_recover_options=1e1; +ERROR 42000: Incorrect argument type to variable 'aria_recover_options' +set global aria_recover_options="foo"; +ERROR 42000: Variable 'aria_recover_options' can't be set to the value of 'foo' +set global aria_recover_options=32; +ERROR 42000: Variable 'aria_recover_options' can't be set to the value of '32' +SET @@global.aria_recover_options = @start_global_value; diff --git a/mysql-test/suite/sys_vars/r/sysvars_aria.result b/mysql-test/suite/sys_vars/r/sysvars_aria.result index 2948b2ad3fcafbe3dab885e371a295d595f8d0af..f2418cf31db1e90662df16efd7068e4a606c33ef 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_aria.result +++ b/mysql-test/suite/sys_vars/r/sysvars_aria.result @@ -211,7 +211,7 @@ NUMERIC_BLOCK_SIZE NULL ENUM_VALUE_LIST NULL READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED -VARIABLE_NAME ARIA_RECOVER +VARIABLE_NAME ARIA_RECOVER_OPTIONS SESSION_VALUE NULL GLOBAL_VALUE NORMAL GLOBAL_VALUE_ORIGIN COMPILE-TIME diff --git a/mysql-test/suite/sys_vars/t/aria_recover_basic.test b/mysql-test/suite/sys_vars/t/aria_recover_basic.test deleted file mode 100644 index 42e280b04993d793a4f721536066ba61d41be425..0000000000000000000000000000000000000000 --- a/mysql-test/suite/sys_vars/t/aria_recover_basic.test +++ /dev/null @@ -1,53 +0,0 @@ -# set global ---source include/have_maria.inc - -SET @start_global_value = @@global.aria_recover; - -# -# exists as global only -# -select @@global.aria_recover; ---error ER_INCORRECT_GLOBAL_LOCAL_VAR -select @@session.aria_recover; -show global variables like 'aria_recover'; -show session variables like 'aria_recover'; -select * from information_schema.global_variables where variable_name='aria_recover'; -select * from information_schema.session_variables where variable_name='aria_recover'; - -# -# show that it's writable -# -set global aria_recover=1; -select @@global.aria_recover; ---error ER_GLOBAL_VARIABLE -set session aria_recover=1; - -# -# valid values -# -set global aria_recover=normal; -select @@global.aria_recover; -set global aria_recover=backup; -select @@global.aria_recover; -set global aria_recover='force'; -select @@global.aria_recover; -set global aria_recover=off; -select @@global.aria_recover; -set global aria_recover='quick,force'; -select @@global.aria_recover; -set global aria_recover=16; -select @@global.aria_recover; - -# -# incorrect types/values -# ---error ER_WRONG_TYPE_FOR_VAR -set global aria_recover=1.1; ---error ER_WRONG_TYPE_FOR_VAR -set global aria_recover=1e1; ---error ER_WRONG_VALUE_FOR_VAR -set global aria_recover="foo"; ---error ER_WRONG_VALUE_FOR_VAR -set global aria_recover=32; - -SET @@global.aria_recover = @start_global_value; diff --git a/mysql-test/suite/sys_vars/t/aria_recover_options_basic.test b/mysql-test/suite/sys_vars/t/aria_recover_options_basic.test new file mode 100644 index 0000000000000000000000000000000000000000..f621998b501f6ed6f4e30bb8129c53c0a7b73ddc --- /dev/null +++ b/mysql-test/suite/sys_vars/t/aria_recover_options_basic.test @@ -0,0 +1,53 @@ +# set global +--source include/have_maria.inc + +SET @start_global_value = @@global.aria_recover_options; + +# +# exists as global only +# +select @@global.aria_recover_options; +--error ER_INCORRECT_GLOBAL_LOCAL_VAR +select @@session.aria_recover_options; +show global variables like 'aria_recover_options'; +show session variables like 'aria_recover_options'; +select * from information_schema.global_variables where variable_name='aria_recover_options'; +select * from information_schema.session_variables where variable_name='aria_recover_options'; + +# +# show that it's writable +# +set global aria_recover_options=1; +select @@global.aria_recover_options; +--error ER_GLOBAL_VARIABLE +set session aria_recover_options=1; + +# +# valid values +# +set global aria_recover_options=normal; +select @@global.aria_recover_options; +set global aria_recover_options=backup; +select @@global.aria_recover_options; +set global aria_recover_options='force'; +select @@global.aria_recover_options; +set global aria_recover_options=off; +select @@global.aria_recover_options; +set global aria_recover_options='quick,force'; +select @@global.aria_recover_options; +set global aria_recover_options=16; +select @@global.aria_recover_options; + +# +# incorrect types/values +# +--error ER_WRONG_TYPE_FOR_VAR +set global aria_recover_options=1.1; +--error ER_WRONG_TYPE_FOR_VAR +set global aria_recover_options=1e1; +--error ER_WRONG_VALUE_FOR_VAR +set global aria_recover_options="foo"; +--error ER_WRONG_VALUE_FOR_VAR +set global aria_recover_options=32; + +SET @@global.aria_recover_options = @start_global_value; diff --git a/storage/maria/ha_maria.cc b/storage/maria/ha_maria.cc index 2e2aa71b744dd027cb8384a08b90052154f15e71..844e862793964bf69850419771e3e5e13aa63e4c 100644 --- a/storage/maria/ha_maria.cc +++ b/storage/maria/ha_maria.cc @@ -255,7 +255,7 @@ static MYSQL_SYSVAR_ULONG(pagecache_file_hash_size, pagecache_file_hash_size, "value is probably 1/10 of number of possible open Aria files.", 0,0, 512, 128, 16384, 1); -static MYSQL_SYSVAR_SET(recover, maria_recover_options, PLUGIN_VAR_OPCMDARG, +static MYSQL_SYSVAR_SET(recover_options, maria_recover_options, PLUGIN_VAR_OPCMDARG, "Specifies how corrupted tables should be automatically repaired", NULL, NULL, HA_RECOVER_DEFAULT, &maria_recover_typelib); @@ -3494,7 +3494,7 @@ static int mark_recovery_start(const char* log_dir) DBUG_ENTER("mark_recovery_start"); if (!(maria_recover_options & HA_RECOVER_ANY)) ma_message_no_user(ME_JUST_WARNING, "Please consider using option" - " --aria-recover[=...] to automatically check and" + " --aria-recover-options[=...] to automatically check and" " repair tables when logs are removed by option" " --aria-force-start-after-recovery-failures=#"); if (recovery_failures >= force_start_after_recovery_failures) @@ -3701,7 +3701,7 @@ struct st_mysql_sys_var* system_variables[]= { MYSQL_SYSVAR(pagecache_buffer_size), MYSQL_SYSVAR(pagecache_division_limit), MYSQL_SYSVAR(pagecache_file_hash_size), - MYSQL_SYSVAR(recover), + MYSQL_SYSVAR(recover_options), MYSQL_SYSVAR(repair_threads), MYSQL_SYSVAR(sort_buffer_size), MYSQL_SYSVAR(stats_method),