diff options
Diffstat (limited to 'mysql-test')
143 files changed, 3025 insertions, 63 deletions
diff --git a/mysql-test/extra/binlog_tests/binlog.test b/mysql-test/extra/binlog_tests/binlog.test index ce5dde97894..831c6c886d5 100644 --- a/mysql-test/extra/binlog_tests/binlog.test +++ b/mysql-test/extra/binlog_tests/binlog.test @@ -372,7 +372,8 @@ dfLtTBcBAAAAIgAAAPkAAAAAABcAAAAAAAcAAf/+AQAAAA== SELECT * FROM t1; --echo # Their values should be ON -SHOW SESSION VARIABLES LIKE "%_checks"; +SHOW SESSION VARIABLES LIKE "foreign_key_checks"; +SHOW SESSION VARIABLES LIKE "unique_checks"; --echo SET @@SESSION.foreign_key_checks= OFF; @@ -387,7 +388,8 @@ dfLtTBcBAAAAIgAAAM0BAAAAABcAAAAAAAEAAf/+AgAAAA== SELECT * FROM t1; --echo # Their values should be OFF -SHOW SESSION VARIABLES LIKE "%_checks"; +SHOW SESSION VARIABLES LIKE "foreign_key_checks"; +SHOW SESSION VARIABLES LIKE "unique_checks"; --echo # INSERT INTO t1 VALUES(2) --echo # foreign_key_checks=1 and unique_checks=1 @@ -401,7 +403,8 @@ dfLtTBcBAAAAIgAAAM0BAAAAABcAAAAAAAEAAf/+AgAAAA== SELECT * FROM t1; --echo # Their values should be OFF -SHOW SESSION VARIABLES LIKE "%_checks"; +SHOW SESSION VARIABLES LIKE "foreign_key_checks"; +SHOW SESSION VARIABLES LIKE "unique_checks"; DROP TABLE t1; diff --git a/mysql-test/include/galera_cluster.inc b/mysql-test/include/galera_cluster.inc new file mode 100644 index 00000000000..bc652225722 --- /dev/null +++ b/mysql-test/include/galera_cluster.inc @@ -0,0 +1,10 @@ +# galera_cluster.inc +# ================== +# +# Description +# ----------- +# Configure galera cluster with 2 nodes. +# + +--let $galera_cluster_size = 2 +--source include/galera_init.inc diff --git a/mysql-test/include/galera_connect.inc b/mysql-test/include/galera_connect.inc new file mode 100644 index 00000000000..bfd9b188667 --- /dev/null +++ b/mysql-test/include/galera_connect.inc @@ -0,0 +1,45 @@ +# galera_connect.inc +# ================== +# +# Description +# ----------- +# Open a connection to the specified server number ($galera_server_number). +# The connection itself would be identified by $galera_connection_name. +# +# Parameters +# ---------- +# $galera_connection_name +# Name of the resulting connection. +# +# $galera_server_number +# Sequence number of the node in the galera cluster. +# +# $galera_debug +# Print debug information. +# + +if (!$galera_connection_name) +{ + --die ERROR IN TEST: $galera_connection_name must be set before sourcing include/galera_connect.inc +} + +if (!$galera_server_number) +{ + --die ERROR IN TEST: $galera_server_number must be set before sourcing include/galera_connect.inc +} + +--let $_galera_port= \$NODE_MYPORT_$galera_server_number +if (!$_galera_port) +{ + --echo Bug in test case: '\$NODE_MYPORT_$galera_server_number' not initialized. Check the test's .cfg file. + --die Not all NODE_MYPORT_* environment variables are setup correctly. +} + +if ($galera_debug) +{ + --echo connect($galera_connection_name,127.0.0.1,root,,test,$_galera_port,) +} + +# Open a connection +--connect($galera_connection_name,127.0.0.1,root,,test,$_galera_port,) + diff --git a/mysql-test/include/galera_diff.inc b/mysql-test/include/galera_diff.inc new file mode 100644 index 00000000000..6043b582647 --- /dev/null +++ b/mysql-test/include/galera_diff.inc @@ -0,0 +1,100 @@ +# galera_diff.inc +# =============== +# +# Description +# ----------- +# Compare the output of the given statement on all the nodes of the cluster. +# +# Parameters +# ---------- +# $galera_diff_statement +# Statement for which the output would be compared. +# +# $galera_diff_database +# Database against which the above statement would be executed. +# (Default : test) +# +# $galera_diff_servers +# Comma separated list of servers to executed the diff statement on. If not +# set, a list of servers will be generated based on $galera_cluster_size. +# +# $galerra_debug +# Print debug information. +# + +if (!$galera_diff_statement) +{ + --die ERROR IN TEST: $galera_diff_statement must be set before sourcing include/galera_diff.inc +} + +--let $_galera_diff_database = $galera_diff_database +if (!$_galera_diff_database) +{ + --let $_galera_diff_database = test +} + +--let $_galera_diff_servers= $galera_diff_servers +if (!$_galera_diff_servers) +{ + --let $_i= $galera_cluster_size + --let $_galera_diff_servers= + while ($_i) + { + --let $_galera_diff_servers= $_i,$_galera_diff_servers + --dec $_i + } +} +if ($galera_debug) +{ + --echo \$galera_diff_servers= '$_galera_diff_servers' +} + +if (!$galera_debug) +{ + --disable_query_log +} + +# Generate file containing $galera_diff_statement. We don't pass the +# statement on the command line, because it would be subject to shell +# substitutions. +--let $write_to_file= GENERATE +--let $write_var= $galera_diff_statement +--source include/write_var_to_file.inc +--let $_galera_diff_statement_file= $write_to_file + +if (!$galera_debug) +{ + --enable_query_log +} + +# Compare all servers. +--let $_galera_diff_first= 1 +while ($_galera_diff_servers) +{ + # Set $_galera_diff_server_i to the first number in the list + --let $_galera_diff_server_i= `SELECT SUBSTRING_INDEX('$_galera_diff_servers', ',', 1)` + # Remove $_galera_diff_server_i from the list + --let $_galera_diff_servers= `SELECT SUBSTRING('$_galera_diff_servers', LENGTH('$_galera_diff_server_i') + 2)` + + # Execute statement + --let $_galera_diff_file= $MYSQLTEST_VARDIR/tmp/_galera_diff_server-$_galera_diff_server_i.tmp + --exec $MYSQL --defaults-group-suffix=.$_galera_diff_server_i $_galera_diff_database < $_galera_diff_statement_file > $_galera_diff_file + + # Compare + if (!$_galera_diff_first) + { + if ($galera_debug) + { + --echo diffing $_galera_diff_file and $_galera_diff_prev_file + } + --diff_files $_galera_diff_file $_galera_diff_prev_file + --remove_file $_galera_diff_prev_file + } + --let $_galera_diff_prev_file= $_galera_diff_file + --let $_galera_diff_first= 0 +} + +# Cleanup +--remove_file $_galera_diff_prev_file +--remove_file $_galera_diff_statement_file + diff --git a/mysql-test/include/galera_end.inc b/mysql-test/include/galera_end.inc new file mode 100644 index 00000000000..0fb5479844e --- /dev/null +++ b/mysql-test/include/galera_end.inc @@ -0,0 +1,25 @@ +# galera_end.inc +# ============== +# +# Description +# ----------- +# Closes the connections opened via include/galera_init.inc +# +# Parameters +# ---------- +# $galera_cluster_size +# Number of nodes in the cluster. +# + +--let $_galera_node= $galera_cluster_size + +while ($_galera_node) +{ + if ($galera_debug) + { + --echo Disconnecting node_$_galera_node + } + --disconnect node_$_galera_node + --dec $_galera_node +} + diff --git a/mysql-test/include/galera_init.inc b/mysql-test/include/galera_init.inc new file mode 100644 index 00000000000..79591973862 --- /dev/null +++ b/mysql-test/include/galera_init.inc @@ -0,0 +1,26 @@ +# galera_init.inc +# =============== +# +# Description +# ----------- +# Set up a Galera cluster with $wsrep_cluster_size nodes. +# +# Parameters +# ---------- +# $galera_cluster_size +# Number of nodes in the cluster. +# + +--source include/have_wsrep_enabled.inc + +--let $_galera_node= $galera_cluster_size + +while ($_galera_node) +{ + --let $galera_connection_name= node_$_galera_node + --let $galera_server_number= $_galera_node + --source include/galera_connect.inc + + --dec $_galera_node +} + diff --git a/mysql-test/include/have_innodb_disallow_writes.inc b/mysql-test/include/have_innodb_disallow_writes.inc new file mode 100644 index 00000000000..83b516b7a34 --- /dev/null +++ b/mysql-test/include/have_innodb_disallow_writes.inc @@ -0,0 +1,6 @@ +--source include/have_innodb.inc + +if (`SELECT COUNT(*) = 0 from INFORMATION_SCHEMA.GLOBAL_VARIABLES + WHERE VARIABLE_NAME = 'INNODB_DISALLOW_WRITES'`) { + --skip Test requires 'innodb_disallow_writes' +} diff --git a/mysql-test/include/have_wsrep.inc b/mysql-test/include/have_wsrep.inc new file mode 100644 index 00000000000..52220edf481 --- /dev/null +++ b/mysql-test/include/have_wsrep.inc @@ -0,0 +1,8 @@ +# To be used in a test which requires server to be compiled with wsrep support +# (-DWITH_WSREP=ON) and wsrep plugin is ACTIVE. + +if (`SELECT COUNT(*)=0 FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME = 'wsrep' AND PLUGIN_STATUS='ACTIVE'`) +{ + --skip Test requires wsrep plugin. +} + diff --git a/mysql-test/include/have_wsrep_enabled.inc b/mysql-test/include/have_wsrep_enabled.inc new file mode 100644 index 00000000000..edb919fd852 --- /dev/null +++ b/mysql-test/include/have_wsrep_enabled.inc @@ -0,0 +1,9 @@ +# To be used in a test which requires wsrep plugin to be ACTIVE and enabled +# (i.e. wsrep_on=ON). It includes have_wsrep.inc. + +--source include/have_wsrep.inc + +--require r/have_wsrep.require +disable_query_log; +SHOW VARIABLES LIKE 'wsrep_on'; +enable_query_log; diff --git a/mysql-test/include/mtr_check.sql b/mysql-test/include/mtr_check.sql index e34e32ad1a6..edc15850d97 100644 --- a/mysql-test/include/mtr_check.sql +++ b/mysql-test/include/mtr_check.sql @@ -34,6 +34,7 @@ BEGIN AND variable_name != 'INNODB_USE_NATIVE_AIO' AND variable_name not like 'GTID%POS' AND variable_name != 'GTID_BINLOG_STATE' + AND variable_name != 'WSREP_DATA_HOME_DIR' ORDER BY variable_name; -- Dump all databases, there should be none diff --git a/mysql-test/include/mtr_warnings.sql b/mysql-test/include/mtr_warnings.sql index 0ad1079cd92..06a7b49e979 100644 --- a/mysql-test/include/mtr_warnings.sql +++ b/mysql-test/include/mtr_warnings.sql @@ -226,6 +226,14 @@ INSERT INTO global_suppressions VALUES ("Slave I/O: Notifying master by SET @master_binlog_checksum= @@global.binlog_checksum failed with error.*"), ("Slave I/O: Setting master-side filtering of @@skip_replication failed with error:.*"), ("Slave I/O: Setting @mariadb_slave_capability failed with error:.*"), + + /* + Galera-related warnings. + */ + ("WSREP: Could not open saved state file for reading: .*"), + ("WSREP: last inactive check more than .* skipping check"), + ("WSREP: Gap in state sequence. Need state transfer."), + ("WSREP: Failed to prepare for incremental state transfer: .*"), ("THE_LAST_SUPPRESSION")|| diff --git a/mysql-test/include/not_wsrep.inc b/mysql-test/include/not_wsrep.inc new file mode 100644 index 00000000000..3314b5c8717 --- /dev/null +++ b/mysql-test/include/not_wsrep.inc @@ -0,0 +1,7 @@ +# To be used in a test which should be skipped if server is compiled with wsrep +# support (-DWITH_WSREP=ON) and wsrep plugin is ACTIVE. + +-- require r/not_wsrep.require +disable_query_log; +SELECT VERSION() LIKE '%wsrep%' AS 'HAVE_WSREP'; +enable_query_log; diff --git a/mysql-test/include/write_result_to_file.inc b/mysql-test/include/write_result_to_file.inc index 3e2ddf48957..db5d546750c 100644 --- a/mysql-test/include/write_result_to_file.inc +++ b/mysql-test/include/write_result_to_file.inc @@ -33,7 +33,8 @@ --let _WRTF_SERVER_NUMBER= $server_number if (!$server_number) { - --let _WRTF_SERVER_NUMBER= `SELECT 1 + @@PORT - $MASTER_MYPORT` + # Note: 2 extra ports are reserved per server for galera use. + --let _WRTF_SERVER_NUMBER= `SELECT 1 + FLOOR((@@PORT - $MASTER_MYPORT) / 3)` } --let $_write_result_msg= [server=$_WRTF_SERVER_NUMBER] diff --git a/mysql-test/lib/My/ConfigFactory.pm b/mysql-test/lib/My/ConfigFactory.pm index 4e8507a5c4a..488b0823763 100644 --- a/mysql-test/lib/My/ConfigFactory.pm +++ b/mysql-test/lib/My/ConfigFactory.pm @@ -238,6 +238,9 @@ my @mysqld_rules= { 'pid-file' => \&fix_pidfile }, { '#host' => \&fix_host }, { 'port' => \&fix_port }, + # galera base_port and port used during SST + { '#galera_port' => \&fix_port }, + { '#sst_port' => \&fix_port }, { 'socket' => \&fix_socket }, { '#log-error' => \&fix_log_error }, { 'general-log' => 1 }, diff --git a/mysql-test/lib/mtr_cases.pm b/mysql-test/lib/mtr_cases.pm index 441fd6e6559..7415b229862 100644 --- a/mysql-test/lib/mtr_cases.pm +++ b/mysql-test/lib/mtr_cases.pm @@ -861,6 +861,8 @@ sub collect_one_test_case { # Suite has no config, autodetect which one to use if ($tinfo->{rpl_test}) { $config= "suite/rpl/my.cnf"; + } elsif ($tinfo->{galera_test}) { + $config= "suite/galera/my.cnf"; } else { $config= "include/default_my.cnf"; } @@ -981,6 +983,7 @@ my $tags_map= {'big_test' => ['big_test', 1], 'master-slave' => ['rpl_test', 1], 'ndb_master-slave' => ['rpl_test', 1, 'ndb_test', 1], 'long_test' => ['long_test', 1], + 'galera_init' => ['galera_test', 1], }; my $tags_regex_string= join('|', keys %$tags_map); my $tags_regex= qr:include/($tags_regex_string)\.inc:o; diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index c2d44bf4db1..61f9538c1b4 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -135,6 +135,7 @@ my $opt_start; my $opt_start_dirty; my $opt_start_exit; my $start_only; +my $file_wsrep_provider; END { if ( defined $opt_tmpdir_pid and $opt_tmpdir_pid == $$ ) @@ -412,6 +413,7 @@ sub main { check_ndbcluster_support(); check_ssl_support(); check_debug_support(); + check_wsrep_support(); if (!$opt_suites) { $opt_suites= join ',', collect_default_suites(@DEFAULT_SUITES); @@ -2398,6 +2400,24 @@ sub environment_setup { } # ---------------------------------------------------- + # Setup env for wsrep + # ---------------------------------------------------- + if (have_wsrep()) { + if (defined $ENV{'WSREP_PROVIDER'} ) { + # Nothing needs to be done! WSREP_PROVIDER env is already set & checked; + # will be used. + } else { + $ENV{'WSREP_PROVIDER'}= $file_wsrep_provider; + } + + if ($ENV{'WSREP_PROVIDER'} ne "") { + mtr_verbose("WSREP_PROVIDER set to $ENV{'WSREP_PROVIDER'}"); + } else { + mtr_verbose("WSREP_PROVIDER isn't available"); + } + } + + # ---------------------------------------------------- # mysql clients # ---------------------------------------------------- $ENV{'MYSQL_CHECK'}= client_arguments("mysqlcheck"); @@ -3174,6 +3194,40 @@ sub ndbcluster_start ($) { return 0; } +sub have_wsrep() { + my $wsrep_on= $mysqld_variables{'wsrep-on'}; + return defined $wsrep_on +} + +sub check_wsrep_provider_env { + if (defined $ENV{'WSREP_PROVIDER'}) { + if (mtr_file_exists($ENV{'WSREP_PROVIDER'}) eq "") { + mtr_error("WSREP_PROVIDER env set to an invalid path"); + return 0; # error + } + # Ok, WSREP_PROVIDER set to a valid path. + return 1; + } + # Ok, WSREP_PROVIDER not defined. + return 2; +} + +sub check_wsrep_support() { + if (have_wsrep()) + { + mtr_report(" - binaries built with wsrep patch"); + + $file_wsrep_provider= + mtr_file_exists("/usr/lib/galera/libgalera_smm.so", + "/usr/lib64/galera/libgalera_smm.so"); + + if ((check_wsrep_provider_env() == 1) || ($file_wsrep_provider ne "")) { + # Add galera test suites + mtr_report(" - adding wsrep, galera to default test suites"); + push @DEFAULT_SUITES, qw(wsrep galera); + } + } +} sub mysql_server_start($) { my ($mysqld, $tinfo) = @_; @@ -4837,6 +4891,10 @@ sub extract_warning_lines ($$) { qr|Plugin 'FEEDBACK' registration as a INFORMATION SCHEMA failed|, qr|'log-bin-use-v1-row-events' is MySQL 5.6 compatible option|, qr|InnoDB: Setting thread \d+ nice to \d+ failed, current nice \d+, errno 13|, # setpriority() fails under valgrind + # Galera-related warnings. + qr|WSREP:.*down context.*|, + qr|WSREP: Failed to send state UUID:.*|, + qr|WSREP: wsrep_sst_receive_address.*|, ); my $matched_lines= []; diff --git a/mysql-test/r/have_wsrep.require b/mysql-test/r/have_wsrep.require new file mode 100644 index 00000000000..af32ac7dca7 --- /dev/null +++ b/mysql-test/r/have_wsrep.require @@ -0,0 +1,2 @@ +Variable_name Value +wsrep_on ON diff --git a/mysql-test/r/mysql_tzinfo_to_sql_symlink.result b/mysql-test/r/mysql_tzinfo_to_sql_symlink.result index dda732937ee..484f71a4c2e 100644 --- a/mysql-test/r/mysql_tzinfo_to_sql_symlink.result +++ b/mysql-test/r/mysql_tzinfo_to_sql_symlink.result @@ -1,6 +1,7 @@ # # MDEV-5226 mysql_tzinfo_to_sql errors with tzdata 2013f and above # +SET SESSION wsrep_replicate_myisam=ON; # Verbose run TRUNCATE TABLE time_zone; TRUNCATE TABLE time_zone_name; diff --git a/mysql-test/r/mysqld--help.result b/mysql-test/r/mysqld--help.result index 5a2142c402c..6953a05fd5c 100644 --- a/mysql-test/r/mysqld--help.result +++ b/mysql-test/r/mysqld--help.result @@ -1065,6 +1065,93 @@ The following options may be given as the first argument: -V, --version Output version information and exit. --wait-timeout=# The number of seconds the server waits for activity on a connection before closing it + --wsrep-OSU-method[=name] + Method for Online Schema Upgrade + --wsrep-auto-increment-control + To automatically control the assignment of autoincrement + variables + (Defaults to on; use --skip-wsrep-auto-increment-control to disable.) + --wsrep-causal-reads + (DEPRECATED) Setting this variable is equivalent to + setting wsrep_sync_wait READ flag + --wsrep-certify-nonPK + Certify tables with no primary key + (Defaults to on; use --skip-wsrep-certify-nonPK to disable.) + --wsrep-cluster-address=name + Address to initially connect to cluster + --wsrep-cluster-name=name + Name for the cluster + --wsrep-convert-LOCK-to-trx + To convert locking sessions into transactions + --wsrep-data-home-dir=name + home directory for wsrep provider + --wsrep-dbug-option=name + DBUG options to provider library + --wsrep-debug To enable debug level logging + --wsrep-desync To desynchronize the node from the cluster + --wsrep-drupal-282555-workaround + To use a workaround forbad autoincrement value + --wsrep-forced-binlog-format=name + binlog format to take effect over user's choice + --wsrep-load-data-splitting + To commit LOAD DATA transaction after every 10K rows + inserted + (Defaults to on; use --skip-wsrep-load-data-splitting to disable.) + --wsrep-log-conflicts + To log multi-master conflicts + --wsrep-max-ws-rows=# + Max number of rows in write set + --wsrep-max-ws-size=# + Max write set size (bytes) + --wsrep-mysql-replication-bundle=# + mysql replication group commit + --wsrep-node-address=name + Node address + --wsrep-node-incoming-address=name + Client connection address + --wsrep-node-name=name + Node name + --wsrep-notify-cmd=name + --wsrep-on To enable wsrep replication + (Defaults to on; use --skip-wsrep-on to disable.) + --wsrep-provider=name + Path to replication provider library + --wsrep-provider-options=name + provider specific options + --wsrep-recover Recover database state after crash and exit + --wsrep-replicate-myisam + To enable myisam replication + --wsrep-restart-slave + Should MySQL slave be restarted automatically, when node + joins back to cluster + --wsrep-retry-autocommit=# + Max number of times to retry a failed autocommit + statement + --wsrep-slave-FK-checks + Should slave thread do foreign key constraint checks + (Defaults to on; use --skip-wsrep-slave-FK-checks to disable.) + --wsrep-slave-UK-checks + Should slave thread do secondary index uniqueness checks + --wsrep-slave-threads=# + Number of slave appliers to launch + --wsrep-sst-auth=name + Authentication for SST connection + --wsrep-sst-donor=name + preferred donor node for the SST + --wsrep-sst-donor-rejects-queries + Reject client queries when donating state snapshot + transfer + --wsrep-sst-method=name + State snapshot transfer method + --wsrep-sst-receive-address=name + Address where node is waiting for SST contact + --wsrep-start-position=name + global transaction position to start from + --wsrep-sync-wait[=#] + Ensure "synchronous" read view before executing an + operation of the type specified by bitmask: 1 - + READ(includes SELECT, SHOW and BEGIN/START TRANSACTION); + 2 - UPDATE and DELETE; 4 - INSERT and REPLACE Variables (--variable-name=value) allow-suspicious-udfs FALSE @@ -1364,6 +1451,44 @@ use-stat-tables NEVER userstat FALSE verbose TRUE wait-timeout 28800 +wsrep-OSU-method TOI +wsrep-auto-increment-control TRUE +wsrep-causal-reads FALSE +wsrep-certify-nonPK TRUE +wsrep-cluster-address +wsrep-cluster-name my_wsrep_cluster +wsrep-convert-LOCK-to-trx FALSE +wsrep-data-home-dir +wsrep-dbug-option +wsrep-debug FALSE +wsrep-desync FALSE +wsrep-drupal-282555-workaround FALSE +wsrep-forced-binlog-format NONE +wsrep-load-data-splitting TRUE +wsrep-log-conflicts FALSE +wsrep-max-ws-rows 131072 +wsrep-max-ws-size 1073741824 +wsrep-mysql-replication-bundle 0 +wsrep-node-address +wsrep-node-incoming-address AUTO +wsrep-notify-cmd +wsrep-on FALSE +wsrep-provider none +wsrep-provider-options +wsrep-recover FALSE +wsrep-replicate-myisam FALSE +wsrep-restart-slave FALSE +wsrep-retry-autocommit 1 +wsrep-slave-FK-checks TRUE +wsrep-slave-UK-checks FALSE +wsrep-slave-threads 1 +wsrep-sst-auth (No default value) +wsrep-sst-donor +wsrep-sst-donor-rejects-queries FALSE +wsrep-sst-method rsync +wsrep-sst-receive-address AUTO +wsrep-start-position 00000000-0000-0000-0000-000000000000:-1 +wsrep-sync-wait 0 To see what values a running MySQL server is using, type 'mysqladmin variables' instead of 'mysqld --verbose --help'. diff --git a/mysql-test/r/not_wsrep.require b/mysql-test/r/not_wsrep.require new file mode 100644 index 00000000000..7c8e74af144 --- /dev/null +++ b/mysql-test/r/not_wsrep.require @@ -0,0 +1,2 @@ +HAVE_WSREP +0 diff --git a/mysql-test/suite/binlog/r/binlog_row_binlog.result b/mysql-test/suite/binlog/r/binlog_row_binlog.result index 20a4b52f1a7..05009c5a570 100644 --- a/mysql-test/suite/binlog/r/binlog_row_binlog.result +++ b/mysql-test/suite/binlog/r/binlog_row_binlog.result @@ -806,9 +806,11 @@ SELECT * FROM t1; c1 1 # Their values should be ON -SHOW SESSION VARIABLES LIKE "%_checks"; +SHOW SESSION VARIABLES LIKE "foreign_key_checks"; Variable_name Value foreign_key_checks ON +SHOW SESSION VARIABLES LIKE "unique_checks"; +Variable_name Value unique_checks ON SET @@SESSION.foreign_key_checks= OFF; @@ -824,9 +826,11 @@ c1 1 2 # Their values should be OFF -SHOW SESSION VARIABLES LIKE "%_checks"; +SHOW SESSION VARIABLES LIKE "foreign_key_checks"; Variable_name Value foreign_key_checks OFF +SHOW SESSION VARIABLES LIKE "unique_checks"; +Variable_name Value unique_checks OFF # INSERT INTO t1 VALUES(2) # foreign_key_checks=1 and unique_checks=1 @@ -842,8 +846,10 @@ c1 1 2 # Their values should be OFF -SHOW SESSION VARIABLES LIKE "%_checks"; +SHOW SESSION VARIABLES LIKE "foreign_key_checks"; Variable_name Value foreign_key_checks OFF +SHOW SESSION VARIABLES LIKE "unique_checks"; +Variable_name Value unique_checks OFF DROP TABLE t1; diff --git a/mysql-test/suite/binlog/r/binlog_stm_binlog.result b/mysql-test/suite/binlog/r/binlog_stm_binlog.result index 824bf3ed2a0..3a6af15e88a 100644 --- a/mysql-test/suite/binlog/r/binlog_stm_binlog.result +++ b/mysql-test/suite/binlog/r/binlog_stm_binlog.result @@ -618,9 +618,11 @@ SELECT * FROM t1; c1 1 # Their values should be ON -SHOW SESSION VARIABLES LIKE "%_checks"; +SHOW SESSION VARIABLES LIKE "foreign_key_checks"; Variable_name Value foreign_key_checks ON +SHOW SESSION VARIABLES LIKE "unique_checks"; +Variable_name Value unique_checks ON SET @@SESSION.foreign_key_checks= OFF; @@ -636,9 +638,11 @@ c1 1 2 # Their values should be OFF -SHOW SESSION VARIABLES LIKE "%_checks"; +SHOW SESSION VARIABLES LIKE "foreign_key_checks"; Variable_name Value foreign_key_checks OFF +SHOW SESSION VARIABLES LIKE "unique_checks"; +Variable_name Value unique_checks OFF # INSERT INTO t1 VALUES(2) # foreign_key_checks=1 and unique_checks=1 @@ -654,8 +658,10 @@ c1 1 2 # Their values should be OFF -SHOW SESSION VARIABLES LIKE "%_checks"; +SHOW SESSION VARIABLES LIKE "foreign_key_checks"; Variable_name Value foreign_key_checks OFF +SHOW SESSION VARIABLES LIKE "unique_checks"; +Variable_name Value unique_checks OFF DROP TABLE t1; diff --git a/mysql-test/suite/galera/galera_2nodes.cnf b/mysql-test/suite/galera/galera_2nodes.cnf new file mode 100644 index 00000000000..5a08125089a --- /dev/null +++ b/mysql-test/suite/galera/galera_2nodes.cnf @@ -0,0 +1,24 @@ +# Use default setting for mysqld processes +!include include/default_mysqld.cnf + +[mysqld.1] +binlog-format=row +wsrep_provider=@ENV.WSREP_PROVIDER +wsrep_cluster_address='gcomm://' +wsrep_provider_options='base_port=@mysqld.1.#galera_port' +wsrep_sst_receive_address='127.0.0.1:@mysqld.1.#sst_port' + +[mysqld.2] +binlog-format=row +wsrep_provider=@ENV.WSREP_PROVIDER +wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port' +wsrep_provider_options='base_port=@mysqld.2.#galera_port' +wsrep_sst_receive_address='127.0.0.1:@mysqld.2.#sst_port' + +[ENV] +NODE_MYPORT_1= @mysqld.1.port +NODE_MYSOCK_1= @mysqld.1.socket + +NODE_MYPORT_2= @mysqld.2.port +NODE_MYSOCK_2= @mysqld.2.socket + diff --git a/mysql-test/suite/galera/my.cnf b/mysql-test/suite/galera/my.cnf new file mode 100644 index 00000000000..ca163a540d9 --- /dev/null +++ b/mysql-test/suite/galera/my.cnf @@ -0,0 +1 @@ +!include galera_2nodes.cnf diff --git a/mysql-test/suite/galera/r/basic.result b/mysql-test/suite/galera/r/basic.result new file mode 100644 index 00000000000..d4efe348b61 --- /dev/null +++ b/mysql-test/suite/galera/r/basic.result @@ -0,0 +1,30 @@ +USE test; +CREATE TABLE t1(c1 INT PRIMARY KEY) ENGINE=INNODB; +INSERT INTO t1 VALUES (1), (2), (3), (4), (5); +SELECT * FROM t1; +c1 +1 +2 +3 +4 +5 + +# On node_1 +SELECT * FROM test.t1; +c1 +1 +2 +3 +4 +5 + +# On node_2 +SELECT * FROM test.t1; +c1 +1 +2 +3 +4 +5 +DROP TABLE t1; +# End of test diff --git a/mysql-test/suite/galera/r/galera_sst_mode.result b/mysql-test/suite/galera/r/galera_sst_mode.result new file mode 100644 index 00000000000..ea25b322449 --- /dev/null +++ b/mysql-test/suite/galera/r/galera_sst_mode.result @@ -0,0 +1,24 @@ +# +# Test for mysqldump's galera-sst-mode option +# +# +# MDEV-6490: mysqldump unknown option --galera-sst-mode +# +CREATE DATABASE bug6490; +USE bug6490; +CREATE TABLE t1(c1 INT); +INSERT INTO t1 values (1); +INSERT INTO t1 values (2); +# Save the current gtid_binlog_state. +# Take a dump of bug6490 database +DROP TABLE t1; +# Load the dump +RESET MASTER; +SELECT * from t1; +c1 +1 +2 +# Compare the two gtid_binlog_state's +# Cleanup +DROP DATABASE bug6490; +# End of test diff --git a/mysql-test/suite/galera/r/grant.result b/mysql-test/suite/galera/r/grant.result new file mode 100644 index 00000000000..8d257e7e8e2 --- /dev/null +++ b/mysql-test/suite/galera/r/grant.result @@ -0,0 +1,17 @@ +# +# MDEV#6266: Changing password fails on galera cluster +# + +# On node_1 +GRANT SELECT ON *.* TO 'user_6266'@'localhost' IDENTIFIED BY 'pass'; + +# Now, try changing password for 'user_6266'. This command should also +# execute successfully on the other node. +SET PASSWORD FOR 'user_6266'@'localhost' = PASSWORD('newpass'); + +# On node_2 +SELECT user FROM mysql.user WHERE user='user_6266'; +user +user_6266 +DROP USER 'user_6266'@'localhost'; +# End of test diff --git a/mysql-test/suite/galera/r/partition.result b/mysql-test/suite/galera/r/partition.result new file mode 100644 index 00000000000..60fb2ed298d --- /dev/null +++ b/mysql-test/suite/galera/r/partition.result @@ -0,0 +1,23 @@ +# +# MDEV#4953 Galera: DELETE from a partitioned table is not replicated +# +USE test; +CREATE TABLE t1 (pk INT PRIMARY KEY, i INT) ENGINE=INNODB PARTITION BY HASH(pk) PARTITIONS 2; +INSERT INTO t1 VALUES (1,100), (2,200); +SELECT * FROM t1; +pk i +2 200 +1 100 +DELETE FROM t1; +SELECT * FROM t1; +pk i + +# On node_1 +SELECT * FROM t1; +pk i + +# On node_2 +SELECT * FROM t1; +pk i +DROP TABLE t1; +# End of test diff --git a/mysql-test/suite/galera/r/unique_key.result b/mysql-test/suite/galera/r/unique_key.result new file mode 100644 index 00000000000..ffb4f01c1f8 --- /dev/null +++ b/mysql-test/suite/galera/r/unique_key.result @@ -0,0 +1,47 @@ +# +# MDEV#5552 Deadlock when inserting NULL column value in column with +# UNIQUE index +# +USE test; + +# On node_1 +CREATE TABLE t1(c1 INT DEFAULT NULL, UNIQUE KEY c1(c1)) ENGINE=INNODB; +INSERT INTO t1 VALUES (NULL); +INSERT INTO t1 VALUES (NULL); +SELECT * FROM test.t1; +c1 +NULL +NULL + +# On node_2 +SELECT * FROM test.t1; +c1 +NULL +NULL + +# On node_1 +INSERT INTO t1 VALUES (1); +UPDATE t1 SET c1=NULL WHERE c1=1; +SELECT * FROM test.t1; +c1 +NULL +NULL +NULL + +# On node_2 +SELECT * FROM test.t1; +c1 +NULL +NULL +NULL + +# On node_1 +DELETE FROM t1 WHERE c1<=>NULL; +SELECT * FROM test.t1; +c1 + +# On node_2 +SELECT * FROM test.t1; +c1 +DROP TABLE t1; +# End of test diff --git a/mysql-test/suite/galera/t/basic.test b/mysql-test/suite/galera/t/basic.test new file mode 100644 index 00000000000..8fc6eee3b3b --- /dev/null +++ b/mysql-test/suite/galera/t/basic.test @@ -0,0 +1,26 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +USE test; +CREATE TABLE t1(c1 INT PRIMARY KEY) ENGINE=INNODB; +INSERT INTO t1 VALUES (1), (2), (3), (4), (5); +SELECT * FROM t1; + +--echo +--echo # On node_1 +--connection node_1 +SELECT * FROM test.t1; + +--echo +--echo # On node_2 +--connection node_2 +SELECT * FROM test.t1; + +--let $galera_diff_statement = SELECT * FROM t1 +--source include/galera_diff.inc + +# Cleanup +DROP TABLE t1; + +--source include/galera_end.inc +--echo # End of test diff --git a/mysql-test/suite/galera/t/galera_sst_mode.test b/mysql-test/suite/galera/t/galera_sst_mode.test new file mode 100644 index 00000000000..dd8f9531c9d --- /dev/null +++ b/mysql-test/suite/galera/t/galera_sst_mode.test @@ -0,0 +1,43 @@ +# Embedded server doesn't support external clients +--source include/not_embedded.inc +# Binlog is required +--source include/have_log_bin.inc + +--echo # +--echo # Test for mysqldump's galera-sst-mode option +--echo # + +--echo # +--echo # MDEV-6490: mysqldump unknown option --galera-sst-mode +--echo # +CREATE DATABASE bug6490; +USE bug6490; +CREATE TABLE t1(c1 INT); +INSERT INTO t1 values (1); +INSERT INTO t1 values (2); + +--echo # Save the current gtid_binlog_state. +--let $before= `SELECT @@global.gtid_binlog_state` + +--echo # Take a dump of bug6490 database +--exec $MYSQL_DUMP --galera-sst-mode bug6490 > $MYSQLTEST_VARDIR/tmp/bug6490.sql +DROP TABLE t1; + +--echo # Load the dump +RESET MASTER; +--exec $MYSQL -uroot bug6490 < $MYSQLTEST_VARDIR/tmp/bug6490.sql + +SELECT * from t1; + +--echo # Compare the two gtid_binlog_state's +--let $after= `SELECT @@global.gtid_binlog_state` +if (`SELECT STRCMP($before, $after)`) +{ + --die ERROR: The two gtid_binlog_state's did not match. +} + +--echo # Cleanup +--remove_file $MYSQLTEST_VARDIR/tmp/bug6490.sql +DROP DATABASE bug6490; + +--echo # End of test diff --git a/mysql-test/suite/galera/t/grant.test b/mysql-test/suite/galera/t/grant.test new file mode 100644 index 00000000000..de1c202cfbb --- /dev/null +++ b/mysql-test/suite/galera/t/grant.test @@ -0,0 +1,25 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +--echo # +--echo # MDEV#6266: Changing password fails on galera cluster +--echo # + +--echo +--echo # On node_1 +--connection node_1 +GRANT SELECT ON *.* TO 'user_6266'@'localhost' IDENTIFIED BY 'pass'; +--echo +--echo # Now, try changing password for 'user_6266'. This command should also +--echo # execute successfully on the other node. +SET PASSWORD FOR 'user_6266'@'localhost' = PASSWORD('newpass'); + +--echo +--echo # On node_2 +--connection node_2 +SELECT user FROM mysql.user WHERE user='user_6266'; +# cleanup +DROP USER 'user_6266'@'localhost'; + +--source include/galera_end.inc +--echo # End of test diff --git a/mysql-test/suite/galera/t/partition.test b/mysql-test/suite/galera/t/partition.test new file mode 100644 index 00000000000..048f35a9282 --- /dev/null +++ b/mysql-test/suite/galera/t/partition.test @@ -0,0 +1,31 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc +--source include/have_partition.inc + +--echo # +--echo # MDEV#4953 Galera: DELETE from a partitioned table is not replicated +--echo # + +USE test; +CREATE TABLE t1 (pk INT PRIMARY KEY, i INT) ENGINE=INNODB PARTITION BY HASH(pk) PARTITIONS 2; +INSERT INTO t1 VALUES (1,100), (2,200); +SELECT * FROM t1; + +DELETE FROM t1; +SELECT * FROM t1; + +--echo +--echo # On node_1 +--connection node_1 +SELECT * FROM t1; + +--echo +--echo # On node_2 +--connection node_2 +SELECT * FROM t1; + +# Cleanup +DROP TABLE t1; + +--source include/galera_end.inc +--echo # End of test diff --git a/mysql-test/suite/galera/t/unique_key.test b/mysql-test/suite/galera/t/unique_key.test new file mode 100644 index 00000000000..00b85d57165 --- /dev/null +++ b/mysql-test/suite/galera/t/unique_key.test @@ -0,0 +1,54 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +--echo # +--echo # MDEV#5552 Deadlock when inserting NULL column value in column with +--echo # UNIQUE index +--echo # + +USE test; +--echo +--echo # On node_1 +--connection node_1 +CREATE TABLE t1(c1 INT DEFAULT NULL, UNIQUE KEY c1(c1)) ENGINE=INNODB; +INSERT INTO t1 VALUES (NULL); +INSERT INTO t1 VALUES (NULL); +SELECT * FROM test.t1; + +--echo +--echo # On node_2 +--connection node_2 +SELECT * FROM test.t1; + + +--echo +--echo # On node_1 +--connection node_1 +INSERT INTO t1 VALUES (1); +UPDATE t1 SET c1=NULL WHERE c1=1; +SELECT * FROM test.t1; + +--echo +--echo # On node_2 +--connection node_2 +SELECT * FROM test.t1; + +--echo +--echo # On node_1 +--connection node_1 +DELETE FROM t1 WHERE c1<=>NULL; +SELECT * FROM test.t1; + +--echo +--echo # On node_2 +--connection node_2 +SELECT * FROM test.t1; + +--let $galera_diff_statement = SELECT * FROM t1 +--source include/galera_diff.inc + +# Cleanup +DROP TABLE t1; + +--source include/galera_end.inc +--echo # End of test diff --git a/mysql-test/suite/innodb/r/innodb-autoinc.result b/mysql-test/suite/innodb/r/innodb-autoinc.result index d5ad06e861f..6ecb6055f26 100644 --- a/mysql-test/suite/innodb/r/innodb-autoinc.result +++ b/mysql-test/suite/innodb/r/innodb-autoinc.result @@ -197,7 +197,7 @@ c1 c2 5 9 DROP TABLE t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=100, @@SESSION.AUTO_INCREMENT_OFFSET=10; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 100 auto_increment_offset 10 @@ -230,7 +230,7 @@ c1 DROP TABLE t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 1 auto_increment_offset 1 @@ -269,7 +269,7 @@ c1 DROP TABLE t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 1 auto_increment_offset 1 @@ -282,7 +282,7 @@ SELECT * FROM t1; c1 -1 SET @@SESSION.AUTO_INCREMENT_INCREMENT=100, @@SESSION.AUTO_INCREMENT_OFFSET=10; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 100 auto_increment_offset 10 @@ -315,7 +315,7 @@ c1 DROP TABLE t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 1 auto_increment_offset 1 @@ -330,7 +330,7 @@ SELECT * FROM t1; c1 1 SET @@SESSION.AUTO_INCREMENT_INCREMENT=100, @@SESSION.AUTO_INCREMENT_OFFSET=10; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 100 auto_increment_offset 10 @@ -370,7 +370,7 @@ c1 DROP TABLE t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 1 auto_increment_offset 1 @@ -385,7 +385,7 @@ SELECT * FROM t1; c1 1 SET @@SESSION.AUTO_INCREMENT_INCREMENT=100, @@SESSION.AUTO_INCREMENT_OFFSET=10; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 100 auto_increment_offset 10 @@ -419,7 +419,7 @@ c1 DROP TABLE t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 1 auto_increment_offset 1 @@ -434,7 +434,7 @@ c1 1 9223372036854775794 SET @@SESSION.AUTO_INCREMENT_INCREMENT=2, @@SESSION.AUTO_INCREMENT_OFFSET=10; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 2 auto_increment_offset 10 @@ -452,7 +452,7 @@ c1 DROP TABLE t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 1 auto_increment_offset 1 @@ -467,7 +467,7 @@ c1 1 18446744073709551603 SET @@SESSION.AUTO_INCREMENT_INCREMENT=2, @@SESSION.AUTO_INCREMENT_OFFSET=10; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 2 auto_increment_offset 10 @@ -480,7 +480,7 @@ c1 DROP TABLE t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 1 auto_increment_offset 1 @@ -495,7 +495,7 @@ c1 1 18446744073709551603 SET @@SESSION.AUTO_INCREMENT_INCREMENT=5, @@SESSION.AUTO_INCREMENT_OFFSET=7; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 5 auto_increment_offset 7 @@ -508,7 +508,7 @@ c1 DROP TABLE t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 1 auto_increment_offset 1 @@ -527,7 +527,7 @@ c1 -9223372036854775806 1 SET @@SESSION.AUTO_INCREMENT_INCREMENT=3, @@SESSION.AUTO_INCREMENT_OFFSET=3; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 3 auto_increment_offset 3 @@ -544,7 +544,7 @@ c1 DROP TABLE t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 1 auto_increment_offset 1 @@ -562,7 +562,7 @@ SET @@SESSION.AUTO_INCREMENT_INCREMENT=1152921504606846976, @@SESSION.AUTO_INCRE Warnings: Warning 1292 Truncated incorrect auto_increment_increment value: '1152921504606846976' Warning 1292 Truncated incorrect auto_increment_offset value: '1152921504606846976' -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 65535 auto_increment_offset 65535 @@ -575,7 +575,7 @@ c1 DROP TABLE t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 1 auto_increment_offset 1 @@ -862,7 +862,7 @@ ERROR 22003: Out of range value for column 'c1' at row 1 DROP TABLE t1; DROP TABLE t2; SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 1 auto_increment_offset 1 @@ -1252,7 +1252,7 @@ t1 CREATE TABLE `t1` ( ) ENGINE=InnoDB AUTO_INCREMENT=18446744073709551615 DEFAULT CHARSET=latin1 DROP TABLE t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=256; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 1 auto_increment_offset 256 @@ -1270,7 +1270,7 @@ c1 c2 1 NULL DROP TABLE t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 1 auto_increment_offset 1 diff --git a/mysql-test/suite/innodb/t/innodb-autoinc.test b/mysql-test/suite/innodb/t/innodb-autoinc.test index fd40b50ebbc..415ada2939a 100644 --- a/mysql-test/suite/innodb/t/innodb-autoinc.test +++ b/mysql-test/suite/innodb/t/innodb-autoinc.test @@ -161,7 +161,7 @@ DROP TABLE t1; # # Test changes to AUTOINC next value calculation SET @@SESSION.AUTO_INCREMENT_INCREMENT=100, @@SESSION.AUTO_INCREMENT_OFFSET=10; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; DROP TABLE IF EXISTS t1; CREATE TABLE t1 (c1 INT AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB; INSERT INTO t1 VALUES (NULL),(5),(NULL); @@ -178,7 +178,7 @@ DROP TABLE t1; # Reset the AUTOINC session variables SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; DROP TABLE IF EXISTS t1; CREATE TABLE t1 (c1 INT AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB; INSERT INTO t1 VALUES(0); @@ -198,13 +198,13 @@ DROP TABLE t1; # Reset the AUTOINC session variables SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; DROP TABLE IF EXISTS t1; CREATE TABLE t1 (c1 INT AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB; INSERT INTO t1 VALUES(-1); SELECT * FROM t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=100, @@SESSION.AUTO_INCREMENT_OFFSET=10; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; INSERT INTO t1 VALUES (-2), (NULL),(2),(NULL); INSERT INTO t1 VALUES (250),(NULL); SELECT * FROM t1; @@ -219,13 +219,13 @@ DROP TABLE t1; # Reset the AUTOINC session variables SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; DROP TABLE IF EXISTS t1; CREATE TABLE t1 (c1 INT UNSIGNED AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB; INSERT INTO t1 VALUES(-1); SELECT * FROM t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=100, @@SESSION.AUTO_INCREMENT_OFFSET=10; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; INSERT INTO t1 VALUES (-2); INSERT INTO t1 VALUES (NULL); INSERT INTO t1 VALUES (2); @@ -245,13 +245,13 @@ DROP TABLE t1; # Reset the AUTOINC session variables SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; DROP TABLE IF EXISTS t1; CREATE TABLE t1 (c1 INT UNSIGNED AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB; INSERT INTO t1 VALUES(-1); SELECT * FROM t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=100, @@SESSION.AUTO_INCREMENT_OFFSET=10; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; INSERT INTO t1 VALUES (-2),(NULL),(2),(NULL); INSERT INTO t1 VALUES (250),(NULL); SELECT * FROM t1; @@ -267,7 +267,7 @@ DROP TABLE t1; # Check for overflow handling when increment is > 1 SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; DROP TABLE IF EXISTS t1; CREATE TABLE t1 (c1 BIGINT AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB; # TODO: Fix the autoinc init code @@ -276,7 +276,7 @@ INSERT INTO t1 VALUES(NULL); INSERT INTO t1 VALUES (9223372036854775794); #-- 2^63 - 14 SELECT * FROM t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=2, @@SESSION.AUTO_INCREMENT_OFFSET=10; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; # This should just fit INSERT INTO t1 VALUES (NULL),(NULL),(NULL),(NULL),(NULL),(NULL); SELECT * FROM t1; @@ -286,7 +286,7 @@ DROP TABLE t1; # Check for overflow handling when increment and offser are > 1 SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; DROP TABLE IF EXISTS t1; CREATE TABLE t1 (c1 BIGINT UNSIGNED AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB; # TODO: Fix the autoinc init code @@ -295,7 +295,7 @@ INSERT INTO t1 VALUES(NULL); INSERT INTO t1 VALUES (18446744073709551603); #-- 2^64 - 13 SELECT * FROM t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=2, @@SESSION.AUTO_INCREMENT_OFFSET=10; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; --error ER_AUTOINC_READ_FAILED INSERT INTO t1 VALUES (NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL); SELECT * FROM t1; @@ -305,7 +305,7 @@ DROP TABLE t1; # Check for overflow handling when increment and offset are odd numbers SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; DROP TABLE IF EXISTS t1; CREATE TABLE t1 (c1 BIGINT UNSIGNED AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB; # TODO: Fix the autoinc init code @@ -314,7 +314,7 @@ INSERT INTO t1 VALUES(NULL); INSERT INTO t1 VALUES (18446744073709551603); #-- 2^64 - 13 SELECT * FROM t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=5, @@SESSION.AUTO_INCREMENT_OFFSET=7; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; --error ER_AUTOINC_READ_FAILED INSERT INTO t1 VALUES (NULL),(NULL), (NULL); SELECT * FROM t1; @@ -324,7 +324,7 @@ DROP TABLE t1; # and check for large -ve numbers SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; DROP TABLE IF EXISTS t1; CREATE TABLE t1 (c1 BIGINT AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB; # TODO: Fix the autoinc init code @@ -335,7 +335,7 @@ INSERT INTO t1 VALUES(-9223372036854775807); #-- -2^63 + 1 INSERT INTO t1 VALUES(-9223372036854775808); #-- -2^63 SELECT * FROM t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=3, @@SESSION.AUTO_INCREMENT_OFFSET=3; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; INSERT INTO t1 VALUES (NULL),(NULL), (NULL); SELECT * FROM t1; DROP TABLE t1; @@ -344,7 +344,7 @@ DROP TABLE t1; # large numbers 2^60 SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; DROP TABLE IF EXISTS t1; CREATE TABLE t1 (c1 BIGINT UNSIGNED AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB; # TODO: Fix the autoinc init code @@ -353,7 +353,7 @@ INSERT INTO t1 VALUES(NULL); INSERT INTO t1 VALUES (18446744073709551610); #-- 2^64 - 2 SELECT * FROM t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=1152921504606846976, @@SESSION.AUTO_INCREMENT_OFFSET=1152921504606846976; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; --error 167 INSERT INTO t1 VALUES (NULL),(NULL); SELECT * FROM t1; @@ -364,7 +364,7 @@ DROP TABLE t1; # SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; CREATE TABLE t1 (c1 DOUBLE NOT NULL AUTO_INCREMENT, c2 INT, PRIMARY KEY (c1)) ENGINE=InnoDB; INSERT INTO t1 VALUES(NULL, 1); INSERT INTO t1 VALUES(NULL, 2); @@ -450,7 +450,7 @@ DROP TABLE t2; # If the user has specified negative values for an AUTOINC column then # InnoDB should ignore those values when setting the table's max value. SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; # TINYINT CREATE TABLE t1 (c1 TINYINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; INSERT INTO t1 VALUES (1, NULL); @@ -646,7 +646,7 @@ DROP TABLE t1; # Check if we handle offset > column max value properly SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=256; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; # TINYINT CREATE TABLE t1 (c1 TINYINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; INSERT INTO t1 VALUES (1, NULL); @@ -658,7 +658,7 @@ DROP TABLE t1; # of the column. IMO, this should not be allowed and the assertion that fails # is actually an invariant. SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; # TINYINT CREATE TABLE t1 (c1 INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; INSERT INTO t1 VALUES (2147483648, 'a'); diff --git a/mysql-test/suite/parts/r/partition_exch_qa_10.result b/mysql-test/suite/parts/r/partition_exch_qa_10.result index 77b91f19e8f..7193a6c99a1 100755..100644 --- a/mysql-test/suite/parts/r/partition_exch_qa_10.result +++ b/mysql-test/suite/parts/r/partition_exch_qa_10.result @@ -23,7 +23,7 @@ a b DROP PROCEDURE test_p1; SET @save_autocommit= @@autocommit; SET @@autocommit= OFF; -SHOW VARIABLES LIKE '%autocommit%'; +SHOW VARIABLES LIKE 'autocommit%'; Variable_name Value autocommit OFF CREATE TRIGGER test_trg_1 BEFORE UPDATE ON tp FOR EACH ROW diff --git a/mysql-test/suite/parts/t/partition_exch_qa_10.test b/mysql-test/suite/parts/t/partition_exch_qa_10.test index 4f569605f5f..a87d658cfb6 100644 --- a/mysql-test/suite/parts/t/partition_exch_qa_10.test +++ b/mysql-test/suite/parts/t/partition_exch_qa_10.test @@ -37,7 +37,7 @@ DROP PROCEDURE test_p1; SET @save_autocommit= @@autocommit; SET @@autocommit= OFF; -SHOW VARIABLES LIKE '%autocommit%'; +SHOW VARIABLES LIKE 'autocommit%'; DELIMITER |; --error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG CREATE TRIGGER test_trg_1 BEFORE UPDATE ON tp FOR EACH ROW diff --git a/mysql-test/suite/percona/innodb_sys_index.result b/mysql-test/suite/percona/innodb_sys_index.result index 67604236366..1c4cc63c467 100644 --- a/mysql-test/suite/percona/innodb_sys_index.result +++ b/mysql-test/suite/percona/innodb_sys_index.result @@ -3,7 +3,7 @@ Warnings: Note 1051 Unknown table 'test.t1' select @@version_comment limit 1 ; @@version_comment -Source distribution +Source distribution, wsrep_25.10.r3991 SELECT COUNT(*) FROM `information_schema`.`INNODB_SYS_INDEXES` ; CREATE TABLE test.t1 ( `a` SERIAL NOT NULL , `b` VARCHAR( 255 ) NOT NULL , INDEX ( `b` ) ) ENGINE = InnoDB ; SHOW TABLE STATUS FROM `information_schema` LIKE 'INNODB\_SYS\_INDEXES%' ; diff --git a/mysql-test/suite/percona/innodb_sys_index.test b/mysql-test/suite/percona/innodb_sys_index.test index 212baeda663..a5a79611815 100644 --- a/mysql-test/suite/percona/innodb_sys_index.test +++ b/mysql-test/suite/percona/innodb_sys_index.test @@ -5,7 +5,8 @@ drop table if exists t1; # # test for bug LP#875797 "Using 'innodb_sys_indexes' causes core dump" # -select @@version_comment limit 1 ; +# disable version_commit as it could contain wsrep +#select @@version_comment limit 1 ; --disable_result_log SELECT COUNT(*) FROM `information_schema`.`INNODB_SYS_INDEXES` ; CREATE TABLE test.t1 ( `a` SERIAL NOT NULL , `b` VARCHAR( 255 ) NOT NULL , INDEX ( `b` ) ) ENGINE = InnoDB ; diff --git a/mysql-test/suite/perfschema/r/rpl_statements.result b/mysql-test/suite/perfschema/r/rpl_statements.result index e271cd2a7fa..211a7d3398d 100644 --- a/mysql-test/suite/perfschema/r/rpl_statements.result +++ b/mysql-test/suite/perfschema/r/rpl_statements.result @@ -11,9 +11,10 @@ include/master-slave.inc *** Create test tables -show variables like '%binlog_format%'; +show variables like 'binlog_format%'; Variable_name Value binlog_format MIXED +wsrep_forced_binlog_format NONE drop table if exists test.marker; select thread_id into @my_thread_id from performance_schema.threads @@ -55,9 +56,10 @@ Expect 1 *** MASTER *** ************** -show variables like '%binlog_format%'; +show variables like 'binlog_format%'; Variable_name Value binlog_format MIXED +wsrep_forced_binlog_format NONE *** Clear statement events *** Create/drop table, create/drop database diff --git a/mysql-test/suite/perfschema/t/rpl_statements.test b/mysql-test/suite/perfschema/t/rpl_statements.test index fa429cd2aa3..479805edccc 100644 --- a/mysql-test/suite/perfschema/t/rpl_statements.test +++ b/mysql-test/suite/perfschema/t/rpl_statements.test @@ -64,7 +64,7 @@ connection master; --echo *** Create test tables --echo -show variables like '%binlog_format%'; +show variables like 'binlog_format%'; --disable_warnings drop table if exists test.marker; @@ -129,7 +129,7 @@ connection master; --echo *** MASTER *** --echo ************** --echo -show variables like '%binlog_format%'; +show variables like 'binlog_format%'; --echo *** Clear statement events --source ../include/rpl_statements_truncate.inc diff --git a/mysql-test/suite/sys_vars/r/innodb_disallow_writes_basic.result b/mysql-test/suite/sys_vars/r/innodb_disallow_writes_basic.result new file mode 100644 index 00000000000..bfb6b67b5d8 --- /dev/null +++ b/mysql-test/suite/sys_vars/r/innodb_disallow_writes_basic.result @@ -0,0 +1,45 @@ +# +# innodb_disallow_writes +# +# save the initial value +SET @innodb_disallow_writes_global_saved = @@global.innodb_disallow_writes; +# default +SELECT @@global.innodb_disallow_writes; +@@global.innodb_disallow_writes +0 + +# scope +SELECT @@session.innodb_disallow_writes; +ERROR HY000: Variable 'innodb_disallow_writes' is a GLOBAL variable +SET @@global.innodb_disallow_writes=OFF; +SELECT @@global.innodb_disallow_writes; +@@global.innodb_disallow_writes +0 +SET @@global.innodb_disallow_writes=ON; +SELECT @@global.innodb_disallow_writes; +@@global.innodb_disallow_writes +1 + +# valid values +SET @@global.innodb_disallow_writes='OFF'; +SELECT @@global.innodb_disallow_writes; +@@global.innodb_disallow_writes +0 +SET @@global.innodb_disallow_writes=ON; +SELECT @@global.innodb_disallow_writes; +@@global.innodb_disallow_writes +1 +SET @@global.innodb_disallow_writes=default; +SELECT @@global.innodb_disallow_writes; +@@global.innodb_disallow_writes +0 + +# invalid values +SET @@global.innodb_disallow_writes=NULL; +ERROR 42000: Variable 'innodb_disallow_writes' can't be set to the value of 'NULL' +SET @@global.innodb_disallow_writes='junk'; +ERROR 42000: Variable 'innodb_disallow_writes' can't be set to the value of 'junk' + +# restore the initial value +SET @@global.innodb_disallow_writes = @innodb_disallow_writes_global_saved; +# End of test diff --git a/mysql-test/suite/sys_vars/r/wsrep_auto_increment_control_basic.result b/mysql-test/suite/sys_vars/r/wsrep_auto_increment_control_basic.result new file mode 100644 index 00000000000..d5affeaf5e4 --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_auto_increment_control_basic.result @@ -0,0 +1,8 @@ +set @start_value = @@wsrep_auto_increment_control; +set @@global.wsrep_auto_increment_control=ON; +set @@global.wsrep_auto_increment_control=OFF; +set @@global.wsrep_auto_increment_control=1; +set @@global.wsrep_auto_increment_control=0; +SET @@global.wsrep_auto_increment_control = -1; +ERROR 42000: Variable 'wsrep_auto_increment_control' can't be set to the value of '-1' +set @@global.wsrep_auto_increment_control = @start_value; diff --git a/mysql-test/suite/sys_vars/r/wsrep_causal_reads_basic.result b/mysql-test/suite/sys_vars/r/wsrep_causal_reads_basic.result new file mode 100644 index 00000000000..3b96654f8c7 --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_causal_reads_basic.result @@ -0,0 +1,8 @@ +set @start_value = @@wsrep_causal_reads; +set @@global.wsrep_causal_reads=ON; +set @@global.wsrep_causal_reads=OFF; +set @@global.wsrep_causal_reads=1; +set @@global.wsrep_causal_reads=0; +SET @@global.wsrep_causal_reads = -1; +ERROR 42000: Variable 'wsrep_causal_reads' can't be set to the value of '-1' +set @@global.wsrep_causal_reads = @start_value; diff --git a/mysql-test/suite/sys_vars/r/wsrep_certify_nonpk_basic.result b/mysql-test/suite/sys_vars/r/wsrep_certify_nonpk_basic.result new file mode 100644 index 00000000000..4b02f9fb61e --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_certify_nonpk_basic.result @@ -0,0 +1,8 @@ +set @start_value = @@wsrep_certify_nonpk; +set @@global.wsrep_certify_nonpk=ON; +set @@global.wsrep_certify_nonpk=OFF; +set @@global.wsrep_certify_nonpk=1; +set @@global.wsrep_certify_nonpk=0; +SET @@global.wsrep_certify_nonpk = -1; +ERROR 42000: Variable 'wsrep_certify_nonPK' can't be set to the value of '-1' +set @@global.wsrep_certify_nonpk = @start_value; diff --git a/mysql-test/suite/sys_vars/r/wsrep_cluster_address_basic.result b/mysql-test/suite/sys_vars/r/wsrep_cluster_address_basic.result new file mode 100644 index 00000000000..734908d42e5 --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_cluster_address_basic.result @@ -0,0 +1,45 @@ +SELECT COUNT(@@GLOBAL.wsrep_cluster_address); +COUNT(@@GLOBAL.wsrep_cluster_address) +1 +1 Expected +SELECT COUNT(@@GLOBAL.wsrep_cluster_address); +COUNT(@@GLOBAL.wsrep_cluster_address) +1 +1 Expected +SELECT @@GLOBAL.wsrep_cluster_address = VARIABLE_VALUE +FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES +WHERE VARIABLE_NAME='wsrep_cluster_address'; +@@GLOBAL.wsrep_cluster_address = VARIABLE_VALUE +1 +1 Expected +SELECT COUNT(@@GLOBAL.wsrep_cluster_address); +COUNT(@@GLOBAL.wsrep_cluster_address) +1 +1 Expected +SELECT COUNT(VARIABLE_VALUE) +FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES +WHERE VARIABLE_NAME='wsrep_cluster_address'; +COUNT(VARIABLE_VALUE) +1 +1 Expected +SELECT @@wsrep_cluster_address = @@GLOBAL.wsrep_cluster_address; +@@wsrep_cluster_address = @@GLOBAL.wsrep_cluster_address +1 +1 Expected +SELECT COUNT(@@wsrep_cluster_address); +COUNT(@@wsrep_cluster_address) +1 +1 Expected +SELECT COUNT(@@local.wsrep_cluster_address); +ERROR HY000: Variable 'wsrep_cluster_address' is a GLOBAL variable +Expected error 'Variable is a GLOBAL variable' +SELECT COUNT(@@SESSION.wsrep_cluster_address); +ERROR HY000: Variable 'wsrep_cluster_address' is a GLOBAL variable +Expected error 'Variable is a GLOBAL variable' +SELECT COUNT(@@GLOBAL.wsrep_cluster_address); +COUNT(@@GLOBAL.wsrep_cluster_address) +1 +1 Expected +SELECT wsrep_cluster_address = @@SESSION.wsrep_cluster_address; +ERROR 42S22: Unknown column 'wsrep_cluster_address' in 'field list' +Expected error 'Readonly variable' diff --git a/mysql-test/suite/sys_vars/r/wsrep_cluster_name_basic.result b/mysql-test/suite/sys_vars/r/wsrep_cluster_name_basic.result new file mode 100644 index 00000000000..59c3b9381d1 --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_cluster_name_basic.result @@ -0,0 +1,7 @@ +set @start_value = @@wsrep_cluster_name; +set @@global.wsrep_cluster_name='test'; +set @@global.wsrep_cluster_name=NULL; +ERROR 42000: Variable 'wsrep_cluster_name' can't be set to the value of 'NULL' +SET @@global.wsrep_cluster_name = 1; +ERROR 42000: Incorrect argument type to variable 'wsrep_cluster_name' +set @@global.wsrep_cluster_name = @start_value; diff --git a/mysql-test/suite/sys_vars/r/wsrep_convert_lock_to_trx_basic.result b/mysql-test/suite/sys_vars/r/wsrep_convert_lock_to_trx_basic.result new file mode 100644 index 00000000000..10043812289 --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_convert_lock_to_trx_basic.result @@ -0,0 +1,8 @@ +set @start_value = @@wsrep_convert_lock_to_trx; +set @@global.wsrep_convert_lock_to_trx=ON; +set @@global.wsrep_convert_lock_to_trx=OFF; +set @@global.wsrep_convert_lock_to_trx=1; +set @@global.wsrep_convert_lock_to_trx=0; +SET @@global.wsrep_convert_lock_to_trx = -1; +ERROR 42000: Variable 'wsrep_convert_LOCK_to_trx' can't be set to the value of '-1' +set @@global.wsrep_convert_lock_to_trx = @start_value; diff --git a/mysql-test/suite/sys_vars/r/wsrep_data_home_dir_basic.result b/mysql-test/suite/sys_vars/r/wsrep_data_home_dir_basic.result new file mode 100644 index 00000000000..668aebe30f1 --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_data_home_dir_basic.result @@ -0,0 +1,48 @@ +SELECT COUNT(@@GLOBAL.wsrep_data_home_dir); +COUNT(@@GLOBAL.wsrep_data_home_dir) +1 +1 Expected +SET @@GLOBAL.wsrep_data_home_dir=1; +ERROR HY000: Variable 'wsrep_data_home_dir' is a read only variable +Expected error 'Read only variable' +SELECT COUNT(@@GLOBAL.wsrep_data_home_dir); +COUNT(@@GLOBAL.wsrep_data_home_dir) +1 +1 Expected +SELECT @@GLOBAL.wsrep_data_home_dir = VARIABLE_VALUE +FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES +WHERE VARIABLE_NAME='wsrep_data_home_dir'; +@@GLOBAL.wsrep_data_home_dir = VARIABLE_VALUE +1 +1 Expected +SELECT COUNT(@@GLOBAL.wsrep_data_home_dir); +COUNT(@@GLOBAL.wsrep_data_home_dir) +1 +1 Expected +SELECT COUNT(VARIABLE_VALUE) +FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES +WHERE VARIABLE_NAME='wsrep_data_home_dir'; +COUNT(VARIABLE_VALUE) +1 +1 Expected +SELECT @@wsrep_data_home_dir = @@GLOBAL.wsrep_data_home_dir; +@@wsrep_data_home_dir = @@GLOBAL.wsrep_data_home_dir +1 +1 Expected +SELECT COUNT(@@wsrep_data_home_dir); +COUNT(@@wsrep_data_home_dir) +1 +1 Expected +SELECT COUNT(@@local.wsrep_data_home_dir); +ERROR HY000: Variable 'wsrep_data_home_dir' is a GLOBAL variable +Expected error 'Variable is a GLOBAL variable' +SELECT COUNT(@@SESSION.wsrep_data_home_dir); +ERROR HY000: Variable 'wsrep_data_home_dir' is a GLOBAL variable +Expected error 'Variable is a GLOBAL variable' +SELECT COUNT(@@GLOBAL.wsrep_data_home_dir); +COUNT(@@GLOBAL.wsrep_data_home_dir) +1 +1 Expected +SELECT wsrep_data_home_dir = @@SESSION.wsrep_data_home_dir; +ERROR 42S22: Unknown column 'wsrep_data_home_dir' in 'field list' +Expected error 'Readonly variable' diff --git a/mysql-test/suite/sys_vars/r/wsrep_dbug_option_basic.result b/mysql-test/suite/sys_vars/r/wsrep_dbug_option_basic.result new file mode 100644 index 00000000000..36ebcb17002 --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_dbug_option_basic.result @@ -0,0 +1,6 @@ +set @start_value = @@wsrep_dbug_option; +set @@global.wsrep_dbug_option='foo:bar'; +set @@global.wsrep_dbug_option=NULL; +SET @@global.wsrep_dbug_option = -1; +ERROR 42000: Incorrect argument type to variable 'wsrep_dbug_option' +set @@global.wsrep_dbug_option = @start_value; diff --git a/mysql-test/suite/sys_vars/r/wsrep_debug_basic.result b/mysql-test/suite/sys_vars/r/wsrep_debug_basic.result new file mode 100644 index 00000000000..6bbe780316b --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_debug_basic.result @@ -0,0 +1,8 @@ +set @start_value = @@wsrep_debug; +set @@global.wsrep_debug=ON; +set @@global.wsrep_debug=OFF; +set @@global.wsrep_debug=1; +set @@global.wsrep_debug=0; +SET @@global.wsrep_debug = -1; +ERROR 42000: Variable 'wsrep_debug' can't be set to the value of '-1' +set @@global.wsrep_debug = @start_value; diff --git a/mysql-test/suite/sys_vars/r/wsrep_desync_basic.result b/mysql-test/suite/sys_vars/r/wsrep_desync_basic.result new file mode 100644 index 00000000000..a61367ca200 --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_desync_basic.result @@ -0,0 +1,3 @@ +select @@global.wsrep_desync; +@@global.wsrep_desync +0 diff --git a/mysql-test/suite/sys_vars/r/wsrep_drupal_282555_workaround_basic.result b/mysql-test/suite/sys_vars/r/wsrep_drupal_282555_workaround_basic.result new file mode 100644 index 00000000000..5a8d5a8abee --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_drupal_282555_workaround_basic.result @@ -0,0 +1,8 @@ +set @start_value = @@wsrep_drupal_282555_workaround; +set @@global.wsrep_drupal_282555_workaround=ON; +set @@global.wsrep_drupal_282555_workaround=OFF; +set @@global.wsrep_drupal_282555_workaround=1; +set @@global.wsrep_drupal_282555_workaround=0; +SET @@global.wsrep_drupal_282555_workaround = -1; +ERROR 42000: Variable 'wsrep_drupal_282555_workaround' can't be set to the value of '-1' +set @@global.wsrep_drupal_282555_workaround = @start_value; diff --git a/mysql-test/suite/sys_vars/r/wsrep_forced_binlog_format_basic.result b/mysql-test/suite/sys_vars/r/wsrep_forced_binlog_format_basic.result new file mode 100644 index 00000000000..58bdb45c8de --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_forced_binlog_format_basic.result @@ -0,0 +1,8 @@ +set @start_value = @@wsrep_forced_binlog_format; +set @@global.wsrep_forced_binlog_format = ROW; +set @@global.wsrep_forced_binlog_format = MIXED; +set @@global.wsrep_forced_binlog_format = STATEMENT; +set @@global.wsrep_forced_binlog_format = NONE; +set @@global.wsrep_forced_binlog_format = FOO; +ERROR 42000: Variable 'wsrep_forced_binlog_format' can't be set to the value of 'FOO' +set @@global.wsrep_forced_binlog_format = @start_value; diff --git a/mysql-test/suite/sys_vars/r/wsrep_load_data_splitting_basic.result b/mysql-test/suite/sys_vars/r/wsrep_load_data_splitting_basic.result new file mode 100644 index 00000000000..be73397f35e --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_load_data_splitting_basic.result @@ -0,0 +1,8 @@ +set @start_value = @@wsrep_load_data_splitting; +set @@global.wsrep_load_data_splitting=ON; +set @@global.wsrep_load_data_splitting=OFF; +set @@global.wsrep_load_data_splitting=1; +set @@global.wsrep_load_data_splitting=0; +SET @@global.wsrep_load_data_splitting = -1; +ERROR 42000: Variable 'wsrep_load_data_splitting' can't be set to the value of '-1' +set @@global.wsrep_load_data_splitting = @start_value; diff --git a/mysql-test/suite/sys_vars/r/wsrep_log_conflicts_basic.result b/mysql-test/suite/sys_vars/r/wsrep_log_conflicts_basic.result new file mode 100644 index 00000000000..22d8cbb568a --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_log_conflicts_basic.result @@ -0,0 +1,8 @@ +set @start_value = @@wsrep_log_conflicts; +set @@global.wsrep_log_conflicts=ON; +set @@global.wsrep_log_conflicts=OFF; +set @@global.wsrep_log_conflicts=1; +set @@global.wsrep_log_conflicts=0; +SET @@global.wsrep_log_conflicts = -1; +ERROR 42000: Variable 'wsrep_log_conflicts' can't be set to the value of '-1' +set @@global.wsrep_log_conflicts = @start_value; diff --git a/mysql-test/suite/sys_vars/r/wsrep_max_ws_rows_basic.result b/mysql-test/suite/sys_vars/r/wsrep_max_ws_rows_basic.result new file mode 100644 index 00000000000..fc4dd38ade3 --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_max_ws_rows_basic.result @@ -0,0 +1,17 @@ +set @start_value = @@wsrep_max_ws_rows; +set @@global.wsrep_max_ws_rows=256000; +set @@global.wsrep_max_ws_rows=0; +Warnings: +Warning 1292 Truncated incorrect wsrep_max_ws_rows value: '0' +show warnings; +Level Code Message +Warning 1292 Truncated incorrect wsrep_max_ws_rows value: '0' +set @@global.wsrep_max_ws_rows=-1; +Warnings: +Warning 1292 Truncated incorrect wsrep_max_ws_rows value: '-1' +show warnings; +Level Code Message +Warning 1292 Truncated incorrect wsrep_max_ws_rows value: '-1' +SET @@global.wsrep_max_ws_rows = r; +ERROR 42000: Incorrect argument type to variable 'wsrep_max_ws_rows' +set @@global.wsrep_max_ws_rows = @start_value; diff --git a/mysql-test/suite/sys_vars/r/wsrep_max_ws_size_basic.result b/mysql-test/suite/sys_vars/r/wsrep_max_ws_size_basic.result new file mode 100644 index 00000000000..292fd4e02d8 --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_max_ws_size_basic.result @@ -0,0 +1,17 @@ +set @start_value = @@wsrep_max_ws_size; +set @@global.wsrep_max_ws_size=256000; +set @@global.wsrep_max_ws_size=0; +Warnings: +Warning 1292 Truncated incorrect wsrep_max_ws_size value: '0' +show warnings; +Level Code Message +Warning 1292 Truncated incorrect wsrep_max_ws_size value: '0' +set @@global.wsrep_max_ws_size=-1; +Warnings: +Warning 1292 Truncated incorrect wsrep_max_ws_size value: '-1' +show warnings; +Level Code Message +Warning 1292 Truncated incorrect wsrep_max_ws_size value: '-1' +SET @@global.wsrep_max_ws_size = r; +ERROR 42000: Incorrect argument type to variable 'wsrep_max_ws_size' +set @@global.wsrep_max_ws_size = @start_value; diff --git a/mysql-test/suite/sys_vars/r/wsrep_mysql_replication_bundle_basic.result b/mysql-test/suite/sys_vars/r/wsrep_mysql_replication_bundle_basic.result new file mode 100644 index 00000000000..ad435a2c05f --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_mysql_replication_bundle_basic.result @@ -0,0 +1,18 @@ +set @start_value = @@wsrep_mysql_replication_bundle; +set @@global.wsrep_mysql_replication_bundle=0; +set @@global.wsrep_mysql_replication_bundle=1000; +set @@global.wsrep_mysql_replication_bundle=-1; +Warnings: +Warning 1292 Truncated incorrect wsrep_mysql_replication_bundle value: '-1' +show warnings; +Level Code Message +Warning 1292 Truncated incorrect wsrep_mysql_replication_bundle value: '-1' +set @@global.wsrep_mysql_replication_bundle=1001; +Warnings: +Warning 1292 Truncated incorrect wsrep_mysql_replication_bundle value: '1001' +show warnings; +Level Code Message +Warning 1292 Truncated incorrect wsrep_mysql_replication_bundle value: '1001' +SET @@global.wsrep_mysql_replication_bundle = r; +ERROR 42000: Incorrect argument type to variable 'wsrep_mysql_replication_bundle' +set @@global.wsrep_mysql_replication_bundle = @start_value; diff --git a/mysql-test/suite/sys_vars/r/wsrep_node_address_basic.result b/mysql-test/suite/sys_vars/r/wsrep_node_address_basic.result new file mode 100644 index 00000000000..96ae51cc70f --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_node_address_basic.result @@ -0,0 +1,45 @@ +SELECT COUNT(@@GLOBAL.wsrep_node_address); +COUNT(@@GLOBAL.wsrep_node_address) +1 +1 Expected +SET @@GLOBAL.wsrep_node_address=1; +ERROR 42000: Incorrect argument type to variable 'wsrep_node_address' +Expected error 'Read only variable' +SELECT COUNT(@@GLOBAL.wsrep_node_address); +COUNT(@@GLOBAL.wsrep_node_address) +1 +1 Expected +SELECT @@GLOBAL.wsrep_node_address = VARIABLE_VALUE +FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES +WHERE VARIABLE_NAME='wsrep_node_address'; +@@GLOBAL.wsrep_node_address = VARIABLE_VALUE +1 +1 Expected +SELECT COUNT(@@GLOBAL.wsrep_node_address); +COUNT(@@GLOBAL.wsrep_node_address) +1 +1 Expected +SELECT COUNT(VARIABLE_VALUE) +FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES +WHERE VARIABLE_NAME='wsrep_node_address'; +COUNT(VARIABLE_VALUE) +1 +1 Expected +SELECT @@wsrep_node_address = @@GLOBAL.wsrep_node_address; +@@wsrep_node_address = @@GLOBAL.wsrep_node_address +1 +1 Expected +SELECT COUNT(@@wsrep_node_address); +COUNT(@@wsrep_node_address) +1 +1 Expected +SELECT COUNT(@@local.wsrep_node_address); +ERROR HY000: Variable 'wsrep_node_address' is a GLOBAL variable +Expected error 'Variable is a GLOBAL variable' +SELECT COUNT(@@SESSION.wsrep_node_address); +ERROR HY000: Variable 'wsrep_node_address' is a GLOBAL variable +Expected error 'Variable is a GLOBAL variable' +SELECT COUNT(@@GLOBAL.wsrep_node_address); +COUNT(@@GLOBAL.wsrep_node_address) +1 +1 Expected diff --git a/mysql-test/suite/sys_vars/r/wsrep_node_incoming_address_basic.result b/mysql-test/suite/sys_vars/r/wsrep_node_incoming_address_basic.result new file mode 100644 index 00000000000..9ccf9706484 --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_node_incoming_address_basic.result @@ -0,0 +1,45 @@ +SELECT COUNT(@@GLOBAL.wsrep_node_incoming_address); +COUNT(@@GLOBAL.wsrep_node_incoming_address) +1 +1 Expected +SET @@GLOBAL.wsrep_node_incoming_address=1; +ERROR 42000: Incorrect argument type to variable 'wsrep_node_incoming_address' +Expected error 'Read only variable' +SELECT COUNT(@@GLOBAL.wsrep_node_incoming_address); +COUNT(@@GLOBAL.wsrep_node_incoming_address) +1 +1 Expected +SELECT @@GLOBAL.wsrep_node_incoming_address = VARIABLE_VALUE +FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES +WHERE VARIABLE_NAME='wsrep_node_incoming_address'; +@@GLOBAL.wsrep_node_incoming_address = VARIABLE_VALUE +1 +1 Expected +SELECT COUNT(@@GLOBAL.wsrep_node_incoming_address); +COUNT(@@GLOBAL.wsrep_node_incoming_address) +1 +1 Expected +SELECT COUNT(VARIABLE_VALUE) +FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES +WHERE VARIABLE_NAME='wsrep_node_incoming_address'; +COUNT(VARIABLE_VALUE) +1 +1 Expected +SELECT @@wsrep_node_incoming_address = @@GLOBAL.wsrep_node_incoming_address; +@@wsrep_node_incoming_address = @@GLOBAL.wsrep_node_incoming_address +1 +1 Expected +SELECT COUNT(@@wsrep_node_incoming_address); +COUNT(@@wsrep_node_incoming_address) +1 +1 Expected +SELECT COUNT(@@local.wsrep_node_incoming_address); +ERROR HY000: Variable 'wsrep_node_incoming_address' is a GLOBAL variable +Expected error 'Variable is a GLOBAL variable' +SELECT COUNT(@@SESSION.wsrep_node_incoming_address); +ERROR HY000: Variable 'wsrep_node_incoming_address' is a GLOBAL variable +Expected error 'Variable is a GLOBAL variable' +SELECT COUNT(@@GLOBAL.wsrep_node_incoming_address); +COUNT(@@GLOBAL.wsrep_node_incoming_address) +1 +1 Expected diff --git a/mysql-test/suite/sys_vars/r/wsrep_node_name_basic.result b/mysql-test/suite/sys_vars/r/wsrep_node_name_basic.result new file mode 100644 index 00000000000..f3c03570b7b --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_node_name_basic.result @@ -0,0 +1,6 @@ +set @start_value = @@wsrep_node_name; +set @@global.wsrep_node_name='test'; +set @@global.wsrep_node_name=NULL; +SET @@global.wsrep_node_name = 1; +ERROR 42000: Incorrect argument type to variable 'wsrep_node_name' +set @@global.wsrep_node_name = @start_value; diff --git a/mysql-test/suite/sys_vars/r/wsrep_notify_cmd_basic.result b/mysql-test/suite/sys_vars/r/wsrep_notify_cmd_basic.result new file mode 100644 index 00000000000..d1d68ea036b --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_notify_cmd_basic.result @@ -0,0 +1,6 @@ +set @start_value = @@wsrep_notify_cmd; +set @@global.wsrep_notify_cmd='test'; +set @@global.wsrep_notify_cmd=NULL; +SET @@global.wsrep_notify_cmd = 1; +ERROR 42000: Incorrect argument type to variable 'wsrep_notify_cmd' +set @@global.wsrep_notify_cmd = @start_value; diff --git a/mysql-test/suite/sys_vars/r/wsrep_on_basic.result b/mysql-test/suite/sys_vars/r/wsrep_on_basic.result new file mode 100644 index 00000000000..629c0e866cb --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_on_basic.result @@ -0,0 +1,8 @@ +set @start_value = @@wsrep_on; +set @@global.wsrep_on=ON; +set @@global.wsrep_on=OFF; +set @@global.wsrep_on=1; +set @@global.wsrep_on=0; +SET @@global.wsrep_on = -1; +ERROR 42000: Variable 'wsrep_on' can't be set to the value of '-1' +set @@global.wsrep_on = @start_value; diff --git a/mysql-test/suite/sys_vars/r/wsrep_osu_method_basic.result b/mysql-test/suite/sys_vars/r/wsrep_osu_method_basic.result new file mode 100644 index 00000000000..84c828e5965 --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_osu_method_basic.result @@ -0,0 +1,12 @@ +set @start_value = @@wsrep_osu_method; +set @@global.wsrep_osu_method='TOI'; +set @@global.wsrep_osu_method='RSU'; +set @@global.wsrep_osu_method=TOI; +set @@global.wsrep_osu_method=RSU; +set @@global.wsrep_osu_method=TSU; +ERROR 42000: Variable 'wsrep_OSU_method' can't be set to the value of 'TSU' +set @@global.wsrep_osu_method='TSU'; +ERROR 42000: Variable 'wsrep_OSU_method' can't be set to the value of 'TSU' +SET @@global.wsrep_on = -1; +ERROR 42000: Variable 'wsrep_on' can't be set to the value of '-1' +set @@global.wsrep_osu_method = @start_value; diff --git a/mysql-test/suite/sys_vars/r/wsrep_provider_basic.result b/mysql-test/suite/sys_vars/r/wsrep_provider_basic.result new file mode 100644 index 00000000000..2de1e84e6c0 --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_provider_basic.result @@ -0,0 +1,4 @@ +SELECT COUNT(@@GLOBAL.wsrep_provider); +COUNT(@@GLOBAL.wsrep_provider) +1 +1 Expected diff --git a/mysql-test/suite/sys_vars/r/wsrep_provider_options_basic.result b/mysql-test/suite/sys_vars/r/wsrep_provider_options_basic.result new file mode 100644 index 00000000000..28b55e782bc --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_provider_options_basic.result @@ -0,0 +1,4 @@ +SELECT COUNT(@@GLOBAL.wsrep_provider_options); +COUNT(@@GLOBAL.wsrep_provider_options) +1 +1 Expected diff --git a/mysql-test/suite/sys_vars/r/wsrep_recover_basic.result b/mysql-test/suite/sys_vars/r/wsrep_recover_basic.result new file mode 100644 index 00000000000..b9f7e41047e --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_recover_basic.result @@ -0,0 +1,49 @@ +SELECT COUNT(@@GLOBAL.wsrep_recover); +COUNT(@@GLOBAL.wsrep_recover) +1 +1 Expected +set @@global.wsrep_recover=ON; +ERROR HY000: Variable 'wsrep_recover' is a read only variable +Expected error 'Readonly variable' +set @@global.wsrep_recover=OFF; +ERROR HY000: Variable 'wsrep_recover' is a read only variable +Expected error 'Readonly variable' +SELECT @@GLOBAL.wsrep_recover = VARIABLE_VALUE +FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES +WHERE VARIABLE_NAME='wsrep_recover'; +@@GLOBAL.wsrep_recover = VARIABLE_VALUE +1 +Warnings: +Warning 1292 Truncated incorrect DOUBLE value: 'OFF' +1 Expected +SELECT COUNT(@@GLOBAL.wsrep_recover); +COUNT(@@GLOBAL.wsrep_recover) +1 +1 Expected +SELECT COUNT(VARIABLE_VALUE) +FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES +WHERE VARIABLE_NAME='wsrep_recover'; +COUNT(VARIABLE_VALUE) +1 +1 Expected +SELECT @@wsrep_recover = @@GLOBAL.wsrep_recover; +@@wsrep_recover = @@GLOBAL.wsrep_recover +1 +1 Expected +SELECT COUNT(@@wsrep_recover); +COUNT(@@wsrep_recover) +1 +1 Expected +SELECT COUNT(@@local.wsrep_recover); +ERROR HY000: Variable 'wsrep_recover' is a GLOBAL variable +Expected error 'Variable is a GLOBAL variable' +SELECT COUNT(@@SESSION.wsrep_recover); +ERROR HY000: Variable 'wsrep_recover' is a GLOBAL variable +Expected error 'Variable is a GLOBAL variable' +SELECT COUNT(@@GLOBAL.wsrep_recover); +COUNT(@@GLOBAL.wsrep_recover) +1 +1 Expected +SELECT wsrep_recover = @@SESSION.wsrep_recover; +ERROR 42S22: Unknown column 'wsrep_recover' in 'field list' +Expected error 'Readonly variable' diff --git a/mysql-test/suite/sys_vars/r/wsrep_replicate_myisam_basic.result b/mysql-test/suite/sys_vars/r/wsrep_replicate_myisam_basic.result new file mode 100644 index 00000000000..644258206a5 --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_replicate_myisam_basic.result @@ -0,0 +1,8 @@ +set @start_value = @@wsrep_replicate_myisam; +set @@global.wsrep_replicate_myisam=ON; +set @@global.wsrep_replicate_myisam=OFF; +set @@global.wsrep_replicate_myisam=1; +set @@global.wsrep_replicate_myisam=0; +SET @@global.wsrep_replicate_myisam = -1; +ERROR 42000: Variable 'wsrep_replicate_myisam' can't be set to the value of '-1' +set @@global.wsrep_replicate_myisam = @start_value; diff --git a/mysql-test/suite/sys_vars/r/wsrep_restart_slave_basic.result b/mysql-test/suite/sys_vars/r/wsrep_restart_slave_basic.result new file mode 100644 index 00000000000..811981b6a37 --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_restart_slave_basic.result @@ -0,0 +1,8 @@ +set @start_value = @@wsrep_restart_slave; +set @@global.wsrep_restart_slave=ON; +set @@global.wsrep_restart_slave=OFF; +set @@global.wsrep_restart_slave=1; +set @@global.wsrep_restart_slave=0; +SET @@global.wsrep_restart_slave = -1; +ERROR 42000: Variable 'wsrep_restart_slave' can't be set to the value of '-1' +set @@global.wsrep_restart_slave = @start_value; diff --git a/mysql-test/suite/sys_vars/r/wsrep_retry_autocommit_basic.result b/mysql-test/suite/sys_vars/r/wsrep_retry_autocommit_basic.result new file mode 100644 index 00000000000..811981b6a37 --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_retry_autocommit_basic.result @@ -0,0 +1,8 @@ +set @start_value = @@wsrep_restart_slave; +set @@global.wsrep_restart_slave=ON; +set @@global.wsrep_restart_slave=OFF; +set @@global.wsrep_restart_slave=1; +set @@global.wsrep_restart_slave=0; +SET @@global.wsrep_restart_slave = -1; +ERROR 42000: Variable 'wsrep_restart_slave' can't be set to the value of '-1' +set @@global.wsrep_restart_slave = @start_value; diff --git a/mysql-test/suite/sys_vars/r/wsrep_slave_fk_checks_basic.result b/mysql-test/suite/sys_vars/r/wsrep_slave_fk_checks_basic.result new file mode 100644 index 00000000000..40b3270e221 --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_slave_fk_checks_basic.result @@ -0,0 +1,45 @@ +# +# wsrep_slave_fk_checks +# +# save the initial value +SET @wsrep_slave_fk_checks_global_saved = @@global.wsrep_slave_fk_checks; +# default +SELECT @@global.wsrep_slave_fk_checks; +@@global.wsrep_slave_fk_checks +1 + +# scope +SELECT @@session.wsrep_slave_fk_checks; +ERROR HY000: Variable 'wsrep_slave_FK_checks' is a GLOBAL variable +SET @@global.wsrep_slave_fk_checks=OFF; +SELECT @@global.wsrep_slave_fk_checks; +@@global.wsrep_slave_fk_checks +0 +SET @@global.wsrep_slave_fk_checks=ON; +SELECT @@global.wsrep_slave_fk_checks; +@@global.wsrep_slave_fk_checks +1 + +# valid values +SET @@global.wsrep_slave_fk_checks='OFF'; +SELECT @@global.wsrep_slave_fk_checks; +@@global.wsrep_slave_fk_checks +0 +SET @@global.wsrep_slave_fk_checks=ON; +SELECT @@global.wsrep_slave_fk_checks; +@@global.wsrep_slave_fk_checks +1 +SET @@global.wsrep_slave_fk_checks=default; +SELECT @@global.wsrep_slave_fk_checks; +@@global.wsrep_slave_fk_checks +1 + +# invalid values +SET @@global.wsrep_slave_fk_checks=NULL; +ERROR 42000: Variable 'wsrep_slave_FK_checks' can't be set to the value of 'NULL' +SET @@global.wsrep_slave_fk_checks='junk'; +ERROR 42000: Variable 'wsrep_slave_FK_checks' can't be set to the value of 'junk' + +# restore the initial value +SET @@global.wsrep_slave_fk_checks = @wsrep_slave_fk_checks_global_saved; +# End of test diff --git a/mysql-test/suite/sys_vars/r/wsrep_slave_threads_basic.result b/mysql-test/suite/sys_vars/r/wsrep_slave_threads_basic.result new file mode 100644 index 00000000000..f8105660c6e --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_slave_threads_basic.result @@ -0,0 +1,20 @@ +set @start_value = @@wsrep_slave_threads; +set @@global.wsrep_slave_threads=1; +set @@global.wsrep_slave_threads=4; +show warnings; +Level Code Message +set @@global.wsrep_slave_threads=0; +Warnings: +Warning 1292 Truncated incorrect wsrep_slave_threads value: '0' +show warnings; +Level Code Message +Warning 1292 Truncated incorrect wsrep_slave_threads value: '0' +set @@global.wsrep_slave_threads=-1; +Warnings: +Warning 1292 Truncated incorrect wsrep_slave_threads value: '-1' +show warnings; +Level Code Message +Warning 1292 Truncated incorrect wsrep_slave_threads value: '-1' +SET @@global.wsrep_slave_threads = r; +ERROR 42000: Incorrect argument type to variable 'wsrep_slave_threads' +set @@global.wsrep_slave_threads = @start_value; diff --git a/mysql-test/suite/sys_vars/r/wsrep_slave_uk_checks_basic.result b/mysql-test/suite/sys_vars/r/wsrep_slave_uk_checks_basic.result new file mode 100644 index 00000000000..b78a83b547d --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_slave_uk_checks_basic.result @@ -0,0 +1,45 @@ +# +# wsrep_slave_uk_checks +# +# save the initial value +SET @wsrep_slave_uk_checks_global_saved = @@global.wsrep_slave_uk_checks; +# default +SELECT @@global.wsrep_slave_uk_checks; +@@global.wsrep_slave_uk_checks +0 + +# scope +SELECT @@session.wsrep_slave_uk_checks; +ERROR HY000: Variable 'wsrep_slave_UK_checks' is a GLOBAL variable +SET @@global.wsrep_slave_uk_checks=OFF; +SELECT @@global.wsrep_slave_uk_checks; +@@global.wsrep_slave_uk_checks +0 +SET @@global.wsrep_slave_uk_checks=ON; +SELECT @@global.wsrep_slave_uk_checks; +@@global.wsrep_slave_uk_checks +1 + +# valid values +SET @@global.wsrep_slave_uk_checks='OFF'; +SELECT @@global.wsrep_slave_uk_checks; +@@global.wsrep_slave_uk_checks +0 +SET @@global.wsrep_slave_uk_checks=ON; +SELECT @@global.wsrep_slave_uk_checks; +@@global.wsrep_slave_uk_checks +1 +SET @@global.wsrep_slave_uk_checks=default; +SELECT @@global.wsrep_slave_uk_checks; +@@global.wsrep_slave_uk_checks +0 + +# invalid values +SET @@global.wsrep_slave_uk_checks=NULL; +ERROR 42000: Variable 'wsrep_slave_UK_checks' can't be set to the value of 'NULL' +SET @@global.wsrep_slave_uk_checks='junk'; +ERROR 42000: Variable 'wsrep_slave_UK_checks' can't be set to the value of 'junk' + +# restore the initial value +SET @@global.wsrep_slave_uk_checks = @wsrep_slave_uk_checks_global_saved; +# End of test diff --git a/mysql-test/suite/sys_vars/r/wsrep_sst_auth_basic.result b/mysql-test/suite/sys_vars/r/wsrep_sst_auth_basic.result new file mode 100644 index 00000000000..a8a31dbea61 --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_sst_auth_basic.result @@ -0,0 +1,3 @@ +SELECT COUNT(@@wsrep_sst_auth); +COUNT(@@wsrep_sst_auth) +0 diff --git a/mysql-test/suite/sys_vars/r/wsrep_sst_donor_basic.result b/mysql-test/suite/sys_vars/r/wsrep_sst_donor_basic.result new file mode 100644 index 00000000000..fc359690275 --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_sst_donor_basic.result @@ -0,0 +1,10 @@ +SELECT COUNT(@@wsrep_sst_donor); +COUNT(@@wsrep_sst_donor) +1 +set @start_value = @@wsrep_sst_donor; +set @@global.wsrep_sst_donor='foo'; +set @@global.wsrep_sst_donor=NULL; +set @@global.wsrep_sst_donor=r; +set @@global.wsrep_sst_donor=1; +ERROR 42000: Incorrect argument type to variable 'wsrep_sst_donor' +set @@global.wsrep_sst_donor = @start_value; diff --git a/mysql-test/suite/sys_vars/r/wsrep_sst_donor_rejects_queries_basic.result b/mysql-test/suite/sys_vars/r/wsrep_sst_donor_rejects_queries_basic.result new file mode 100644 index 00000000000..55aa56f27ed --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_sst_donor_rejects_queries_basic.result @@ -0,0 +1,8 @@ +set @start_value = @@wsrep_sst_donor_rejects_queries; +set @@global.wsrep_sst_donor_rejects_queries=ON; +set @@global.wsrep_sst_donor_rejects_queries=OFF; +set @@global.wsrep_sst_donor_rejects_queries=1; +set @@global.wsrep_sst_donor_rejects_queries=0; +SET @@global.wsrep_sst_donor_rejects_queries = -1; +ERROR 42000: Variable 'wsrep_sst_donor_rejects_queries' can't be set to the value of '-1' +set @@global.wsrep_sst_donor_rejects_queries = @start_value; diff --git a/mysql-test/suite/sys_vars/r/wsrep_sst_method_basic.result b/mysql-test/suite/sys_vars/r/wsrep_sst_method_basic.result new file mode 100644 index 00000000000..682a5683026 --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_sst_method_basic.result @@ -0,0 +1,12 @@ +set @start_value = @@wsrep_sst_method; +set @@global.wsrep_sst_method='xtrabackup'; +set @@global.wsrep_sst_method='xtrabackup-v2'; +set @@global.wsrep_sst_method='rsync'; +set @@global.wsrep_sst_method='mysqldump'; +set @@global.wsrep_sst_method='myscript'; +set @@global.wsrep_sst_method='skip'; +set @@global.wsrep_sst_method=NULL; +ERROR 42000: Variable 'wsrep_sst_method' can't be set to the value of 'NULL' +SET @@global.wsrep_sst_method = -1; +ERROR 42000: Incorrect argument type to variable 'wsrep_sst_method' +set @@global.wsrep_sst_method = @start_value; diff --git a/mysql-test/suite/sys_vars/r/wsrep_sst_receive_address_basic.result b/mysql-test/suite/sys_vars/r/wsrep_sst_receive_address_basic.result new file mode 100644 index 00000000000..a23b7efafa8 --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_sst_receive_address_basic.result @@ -0,0 +1,8 @@ +set @start_value = @@wsrep_sst_receive_address; +set @@global.wsrep_sst_receive_address='128.0.2.1'; +set @@global.wsrep_sst_receive_address=AUTO; +set @@global.wsrep_sst_receive_address='AUTO'; +set @@global.wsrep_sst_receive_address=NULL; +SET @@global.wsrep_sst_receive_address = -1; +ERROR 42000: Incorrect argument type to variable 'wsrep_sst_receive_address' +set @@global.wsrep_sst_receive_address = @start_value; diff --git a/mysql-test/suite/sys_vars/r/wsrep_start_position_basic.result b/mysql-test/suite/sys_vars/r/wsrep_start_position_basic.result new file mode 100644 index 00000000000..ad3606d6d55 --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_start_position_basic.result @@ -0,0 +1,8 @@ +set @start_value = @@wsrep_start_position; +set @@global.wsrep_start_position='foo:bar'; +ERROR 42000: Variable 'wsrep_start_position' can't be set to the value of 'foo:bar' +set @@global.wsrep_start_position=NULL; +ERROR 42000: Variable 'wsrep_start_position' can't be set to the value of 'NULL' +SET @@global.wsrep_start_position = -1; +ERROR 42000: Incorrect argument type to variable 'wsrep_start_position' +set @@global.wsrep_start_position = @start_value; diff --git a/mysql-test/suite/sys_vars/r/wsrep_sync_wait_basic.result b/mysql-test/suite/sys_vars/r/wsrep_sync_wait_basic.result new file mode 100644 index 00000000000..1e7b9364570 --- /dev/null +++ b/mysql-test/suite/sys_vars/r/wsrep_sync_wait_basic.result @@ -0,0 +1,56 @@ +# +# wsrep_sync_wait +# +# save the initial values +SET @wsrep_sync_wait_global_saved = @@global.wsrep_sync_wait; +SET @wsrep_sync_wait_session_saved = @@session.wsrep_sync_wait; +# default +SELECT @@global.wsrep_sync_wait; +@@global.wsrep_sync_wait +0 +SELECT @@session.wsrep_sync_wait; +@@session.wsrep_sync_wait +0 + +# scope and valid values +SET @@global.wsrep_sync_wait=0; +SELECT @@global.wsrep_sync_wait; +@@global.wsrep_sync_wait +0 +SET @@global.wsrep_sync_wait=7; +SELECT @@global.wsrep_sync_wait; +@@global.wsrep_sync_wait +7 +SET @@session.wsrep_sync_wait=0; +SELECT @@session.wsrep_sync_wait; +@@session.wsrep_sync_wait +0 +SET @@session.wsrep_sync_wait=7; +SELECT @@session.wsrep_sync_wait; +@@session.wsrep_sync_wait +7 +SET @@session.wsrep_sync_wait=default; +SELECT @@session.wsrep_sync_wait; +@@session.wsrep_sync_wait +7 +SET @@session.wsrep_sync_wait=8; +Warnings: +Warning 1292 Truncated incorrect wsrep_sync_wait value: '8' +SELECT @@session.wsrep_sync_wait; +@@session.wsrep_sync_wait +7 + +# invalid values +SET @@global.wsrep_sync_wait=NULL; +ERROR 42000: Incorrect argument type to variable 'wsrep_sync_wait' +SET @@global.wsrep_sync_wait='junk'; +ERROR 42000: Incorrect argument type to variable 'wsrep_sync_wait' +SET @@session.wsrep_sync_wait=NULL; +ERROR 42000: Incorrect argument type to variable 'wsrep_sync_wait' +SET @@session.wsrep_sync_wait='junk'; +ERROR 42000: Incorrect argument type to variable 'wsrep_sync_wait' + +# restore the initial values +SET @@global.wsrep_sync_wait = @wsrep_sync_wait_global_saved; +SET @@session.wsrep_sync_wait = @wsrep_sync_wait_session_saved; +# End of test diff --git a/mysql-test/suite/sys_vars/t/innodb_disallow_writes_basic.test b/mysql-test/suite/sys_vars/t/innodb_disallow_writes_basic.test new file mode 100644 index 00000000000..b8e5c127377 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/innodb_disallow_writes_basic.test @@ -0,0 +1,42 @@ +--source include/have_innodb_disallow_writes.inc + +--echo # +--echo # innodb_disallow_writes +--echo # + +--echo # save the initial value +SET @innodb_disallow_writes_global_saved = @@global.innodb_disallow_writes; + +--echo # default +SELECT @@global.innodb_disallow_writes; + +--echo +--echo # scope +--error ER_INCORRECT_GLOBAL_LOCAL_VAR +SELECT @@session.innodb_disallow_writes; +SET @@global.innodb_disallow_writes=OFF; +SELECT @@global.innodb_disallow_writes; +SET @@global.innodb_disallow_writes=ON; +SELECT @@global.innodb_disallow_writes; + +--echo +--echo # valid values +SET @@global.innodb_disallow_writes='OFF'; +SELECT @@global.innodb_disallow_writes; +SET @@global.innodb_disallow_writes=ON; +SELECT @@global.innodb_disallow_writes; +SET @@global.innodb_disallow_writes=default; +SELECT @@global.innodb_disallow_writes; + +--echo +--echo # invalid values +--error ER_WRONG_VALUE_FOR_VAR +SET @@global.innodb_disallow_writes=NULL; +--error ER_WRONG_VALUE_FOR_VAR +SET @@global.innodb_disallow_writes='junk'; + +--echo +--echo # restore the initial value +SET @@global.innodb_disallow_writes = @innodb_disallow_writes_global_saved; + +--echo # End of test diff --git a/mysql-test/suite/sys_vars/t/wsrep_auto_increment_control_basic.test b/mysql-test/suite/sys_vars/t/wsrep_auto_increment_control_basic.test new file mode 100644 index 00000000000..91d3c578a2c --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_auto_increment_control_basic.test @@ -0,0 +1,13 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +set @start_value = @@wsrep_auto_increment_control; + +set @@global.wsrep_auto_increment_control=ON; +set @@global.wsrep_auto_increment_control=OFF; +set @@global.wsrep_auto_increment_control=1; +set @@global.wsrep_auto_increment_control=0; +--Error 1231 +SET @@global.wsrep_auto_increment_control = -1; + +set @@global.wsrep_auto_increment_control = @start_value; diff --git a/mysql-test/suite/sys_vars/t/wsrep_causal_reads_basic.test b/mysql-test/suite/sys_vars/t/wsrep_causal_reads_basic.test new file mode 100644 index 00000000000..2fb597e842e --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_causal_reads_basic.test @@ -0,0 +1,13 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +set @start_value = @@wsrep_causal_reads; + +set @@global.wsrep_causal_reads=ON; +set @@global.wsrep_causal_reads=OFF; +set @@global.wsrep_causal_reads=1; +set @@global.wsrep_causal_reads=0; +--Error 1231 +SET @@global.wsrep_causal_reads = -1; + +set @@global.wsrep_causal_reads = @start_value; diff --git a/mysql-test/suite/sys_vars/t/wsrep_certify_nonpk b/mysql-test/suite/sys_vars/t/wsrep_certify_nonpk new file mode 100644 index 00000000000..f4512aeb5da --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_certify_nonpk @@ -0,0 +1,13 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +set @start_value = @@wsrep_certify_nonpk; + +set @@global.wsrep_certify_nonpk=ON; +set @@global.wsrep_certify_nonpk=OFF; +set @@global.wsrep_certify_nonpk=1; +set @@global.wsrep_certify_nonpk=0; +--Error ER_WRONG_TYPE_FOR_VAR +SET @@global.wsrep_certify_nonpk = -1; + +set @@global.wsrep_certify_nonpk = @start_value; diff --git a/mysql-test/suite/sys_vars/t/wsrep_certify_nonpk_basic.test b/mysql-test/suite/sys_vars/t/wsrep_certify_nonpk_basic.test new file mode 100644 index 00000000000..b623d8eb073 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_certify_nonpk_basic.test @@ -0,0 +1,13 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +set @start_value = @@wsrep_certify_nonpk; + +set @@global.wsrep_certify_nonpk=ON; +set @@global.wsrep_certify_nonpk=OFF; +set @@global.wsrep_certify_nonpk=1; +set @@global.wsrep_certify_nonpk=0; +--Error 1231 +SET @@global.wsrep_certify_nonpk = -1; + +set @@global.wsrep_certify_nonpk = @start_value; diff --git a/mysql-test/suite/sys_vars/t/wsrep_cluster_address_basic.test b/mysql-test/suite/sys_vars/t/wsrep_cluster_address_basic.test new file mode 100644 index 00000000000..b61d5ea60c3 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_cluster_address_basic.test @@ -0,0 +1,44 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +SELECT COUNT(@@GLOBAL.wsrep_cluster_address); +--echo 1 Expected + +SELECT COUNT(@@GLOBAL.wsrep_cluster_address); +--echo 1 Expected + +SELECT @@GLOBAL.wsrep_cluster_address = VARIABLE_VALUE +FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES +WHERE VARIABLE_NAME='wsrep_cluster_address'; +--echo 1 Expected + +SELECT COUNT(@@GLOBAL.wsrep_cluster_address); +--echo 1 Expected + +SELECT COUNT(VARIABLE_VALUE) +FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES +WHERE VARIABLE_NAME='wsrep_cluster_address'; +--echo 1 Expected + +SELECT @@wsrep_cluster_address = @@GLOBAL.wsrep_cluster_address; +--echo 1 Expected + +SELECT COUNT(@@wsrep_cluster_address); +--echo 1 Expected + +--Error ER_INCORRECT_GLOBAL_LOCAL_VAR +SELECT COUNT(@@local.wsrep_cluster_address); +--echo Expected error 'Variable is a GLOBAL variable' + +--Error ER_INCORRECT_GLOBAL_LOCAL_VAR +SELECT COUNT(@@SESSION.wsrep_cluster_address); +--echo Expected error 'Variable is a GLOBAL variable' + +SELECT COUNT(@@GLOBAL.wsrep_cluster_address); +--echo 1 Expected + +--Error ER_BAD_FIELD_ERROR +SELECT wsrep_cluster_address = @@SESSION.wsrep_cluster_address; +--echo Expected error 'Readonly variable' + + diff --git a/mysql-test/suite/sys_vars/t/wsrep_cluster_name_basic.test b/mysql-test/suite/sys_vars/t/wsrep_cluster_name_basic.test new file mode 100644 index 00000000000..104c342bfe4 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_cluster_name_basic.test @@ -0,0 +1,12 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +set @start_value = @@wsrep_cluster_name; + +set @@global.wsrep_cluster_name='test'; +--Error 1231 +set @@global.wsrep_cluster_name=NULL; +--Error 1232 +SET @@global.wsrep_cluster_name = 1; + +set @@global.wsrep_cluster_name = @start_value;
\ No newline at end of file diff --git a/mysql-test/suite/sys_vars/t/wsrep_convert_lock_to_trx_basic.test b/mysql-test/suite/sys_vars/t/wsrep_convert_lock_to_trx_basic.test new file mode 100644 index 00000000000..84b92085238 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_convert_lock_to_trx_basic.test @@ -0,0 +1,13 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +set @start_value = @@wsrep_convert_lock_to_trx; + +set @@global.wsrep_convert_lock_to_trx=ON; +set @@global.wsrep_convert_lock_to_trx=OFF; +set @@global.wsrep_convert_lock_to_trx=1; +set @@global.wsrep_convert_lock_to_trx=0; +--Error 1231 +SET @@global.wsrep_convert_lock_to_trx = -1; + +set @@global.wsrep_convert_lock_to_trx = @start_value;
\ No newline at end of file diff --git a/mysql-test/suite/sys_vars/t/wsrep_data_home_dir_basic.test b/mysql-test/suite/sys_vars/t/wsrep_data_home_dir_basic.test new file mode 100644 index 00000000000..fccf685193e --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_data_home_dir_basic.test @@ -0,0 +1,48 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +SELECT COUNT(@@GLOBAL.wsrep_data_home_dir); +--echo 1 Expected + +--error ER_INCORRECT_GLOBAL_LOCAL_VAR +SET @@GLOBAL.wsrep_data_home_dir=1; +--echo Expected error 'Read only variable' + +SELECT COUNT(@@GLOBAL.wsrep_data_home_dir); +--echo 1 Expected + +SELECT @@GLOBAL.wsrep_data_home_dir = VARIABLE_VALUE +FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES +WHERE VARIABLE_NAME='wsrep_data_home_dir'; +--echo 1 Expected + +SELECT COUNT(@@GLOBAL.wsrep_data_home_dir); +--echo 1 Expected + +SELECT COUNT(VARIABLE_VALUE) +FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES +WHERE VARIABLE_NAME='wsrep_data_home_dir'; +--echo 1 Expected + +SELECT @@wsrep_data_home_dir = @@GLOBAL.wsrep_data_home_dir; +--echo 1 Expected + +SELECT COUNT(@@wsrep_data_home_dir); +--echo 1 Expected + +--Error ER_INCORRECT_GLOBAL_LOCAL_VAR +SELECT COUNT(@@local.wsrep_data_home_dir); +--echo Expected error 'Variable is a GLOBAL variable' + +--Error ER_INCORRECT_GLOBAL_LOCAL_VAR +SELECT COUNT(@@SESSION.wsrep_data_home_dir); +--echo Expected error 'Variable is a GLOBAL variable' + +SELECT COUNT(@@GLOBAL.wsrep_data_home_dir); +--echo 1 Expected + +--Error ER_BAD_FIELD_ERROR +SELECT wsrep_data_home_dir = @@SESSION.wsrep_data_home_dir; +--echo Expected error 'Readonly variable' + + diff --git a/mysql-test/suite/sys_vars/t/wsrep_dbug_option_basic.test b/mysql-test/suite/sys_vars/t/wsrep_dbug_option_basic.test new file mode 100644 index 00000000000..0a559fe8d27 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_dbug_option_basic.test @@ -0,0 +1,11 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +set @start_value = @@wsrep_dbug_option; + +set @@global.wsrep_dbug_option='foo:bar'; +set @@global.wsrep_dbug_option=NULL; +--Error 1232 +SET @@global.wsrep_dbug_option = -1; + +set @@global.wsrep_dbug_option = @start_value; diff --git a/mysql-test/suite/sys_vars/t/wsrep_debug_basic.test b/mysql-test/suite/sys_vars/t/wsrep_debug_basic.test new file mode 100644 index 00000000000..194c163baa6 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_debug_basic.test @@ -0,0 +1,13 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +set @start_value = @@wsrep_debug; + +set @@global.wsrep_debug=ON; +set @@global.wsrep_debug=OFF; +set @@global.wsrep_debug=1; +set @@global.wsrep_debug=0; +--Error 1231 +SET @@global.wsrep_debug = -1; + +set @@global.wsrep_debug = @start_value;
\ No newline at end of file diff --git a/mysql-test/suite/sys_vars/t/wsrep_debug_option_basic.test b/mysql-test/suite/sys_vars/t/wsrep_debug_option_basic.test new file mode 100644 index 00000000000..060e721b676 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_debug_option_basic.test @@ -0,0 +1,13 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +set @start_value = @@wsrep_debug_option; + +--error 1231 +set @@global.wsrep_debug_option='foo:bar'; +--error 1231 +set @@global.wsrep_debug_option=NULL; +--Error 1232 +SET @@global.wsrep_debug_option = -1; + +set @@global.wsrep_debug_option = @start_value; diff --git a/mysql-test/suite/sys_vars/t/wsrep_desync_basic.test b/mysql-test/suite/sys_vars/t/wsrep_desync_basic.test new file mode 100644 index 00000000000..3c64d8cb30f --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_desync_basic.test @@ -0,0 +1,4 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +select @@global.wsrep_desync; diff --git a/mysql-test/suite/sys_vars/t/wsrep_drupal_282555_workaround_basic.test b/mysql-test/suite/sys_vars/t/wsrep_drupal_282555_workaround_basic.test new file mode 100644 index 00000000000..ada08bb125d --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_drupal_282555_workaround_basic.test @@ -0,0 +1,13 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +set @start_value = @@wsrep_drupal_282555_workaround; + +set @@global.wsrep_drupal_282555_workaround=ON; +set @@global.wsrep_drupal_282555_workaround=OFF; +set @@global.wsrep_drupal_282555_workaround=1; +set @@global.wsrep_drupal_282555_workaround=0; +--Error 1231 +SET @@global.wsrep_drupal_282555_workaround = -1; + +set @@global.wsrep_drupal_282555_workaround = @start_value;
\ No newline at end of file diff --git a/mysql-test/suite/sys_vars/t/wsrep_forced_binlog_format_basic.test b/mysql-test/suite/sys_vars/t/wsrep_forced_binlog_format_basic.test new file mode 100644 index 00000000000..5e5530a8f64 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_forced_binlog_format_basic.test @@ -0,0 +1,14 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +set @start_value = @@wsrep_forced_binlog_format; + +set @@global.wsrep_forced_binlog_format = ROW; +set @@global.wsrep_forced_binlog_format = MIXED; +set @@global.wsrep_forced_binlog_format = STATEMENT; +set @@global.wsrep_forced_binlog_format = NONE; + +--error 1231 +set @@global.wsrep_forced_binlog_format = FOO; + +set @@global.wsrep_forced_binlog_format = @start_value;
\ No newline at end of file diff --git a/mysql-test/suite/sys_vars/t/wsrep_load_data_splitting_basic.test b/mysql-test/suite/sys_vars/t/wsrep_load_data_splitting_basic.test new file mode 100644 index 00000000000..61ff27d6894 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_load_data_splitting_basic.test @@ -0,0 +1,13 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +set @start_value = @@wsrep_load_data_splitting; + +set @@global.wsrep_load_data_splitting=ON; +set @@global.wsrep_load_data_splitting=OFF; +set @@global.wsrep_load_data_splitting=1; +set @@global.wsrep_load_data_splitting=0; +--Error 1231 +SET @@global.wsrep_load_data_splitting = -1; + +set @@global.wsrep_load_data_splitting = @start_value;
\ No newline at end of file diff --git a/mysql-test/suite/sys_vars/t/wsrep_log_conflicts_basic.test b/mysql-test/suite/sys_vars/t/wsrep_log_conflicts_basic.test new file mode 100644 index 00000000000..dbd696c45a2 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_log_conflicts_basic.test @@ -0,0 +1,13 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +set @start_value = @@wsrep_log_conflicts; + +set @@global.wsrep_log_conflicts=ON; +set @@global.wsrep_log_conflicts=OFF; +set @@global.wsrep_log_conflicts=1; +set @@global.wsrep_log_conflicts=0; +--Error 1231 +SET @@global.wsrep_log_conflicts = -1; + +set @@global.wsrep_log_conflicts = @start_value;
\ No newline at end of file diff --git a/mysql-test/suite/sys_vars/t/wsrep_max_ws_rows_basic.test b/mysql-test/suite/sys_vars/t/wsrep_max_ws_rows_basic.test new file mode 100644 index 00000000000..f607a567d80 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_max_ws_rows_basic.test @@ -0,0 +1,14 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +set @start_value = @@wsrep_max_ws_rows; + +set @@global.wsrep_max_ws_rows=256000; +set @@global.wsrep_max_ws_rows=0; +show warnings; +set @@global.wsrep_max_ws_rows=-1; +show warnings; +--Error 1232 +SET @@global.wsrep_max_ws_rows = r; + +set @@global.wsrep_max_ws_rows = @start_value;
\ No newline at end of file diff --git a/mysql-test/suite/sys_vars/t/wsrep_max_ws_size_basic.test b/mysql-test/suite/sys_vars/t/wsrep_max_ws_size_basic.test new file mode 100644 index 00000000000..6b1d1f71090 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_max_ws_size_basic.test @@ -0,0 +1,14 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +set @start_value = @@wsrep_max_ws_size; + +set @@global.wsrep_max_ws_size=256000; +set @@global.wsrep_max_ws_size=0; +show warnings; +set @@global.wsrep_max_ws_size=-1; +show warnings; +--Error 1232 +SET @@global.wsrep_max_ws_size = r; + +set @@global.wsrep_max_ws_size = @start_value;
\ No newline at end of file diff --git a/mysql-test/suite/sys_vars/t/wsrep_mysql_replication_bundle_basic.test b/mysql-test/suite/sys_vars/t/wsrep_mysql_replication_bundle_basic.test new file mode 100644 index 00000000000..20a0dc9bf9f --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_mysql_replication_bundle_basic.test @@ -0,0 +1,16 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +set @start_value = @@wsrep_mysql_replication_bundle; + +set @@global.wsrep_mysql_replication_bundle=0; +set @@global.wsrep_mysql_replication_bundle=1000; + +set @@global.wsrep_mysql_replication_bundle=-1; +show warnings; +set @@global.wsrep_mysql_replication_bundle=1001; +show warnings; +--Error 1232 +SET @@global.wsrep_mysql_replication_bundle = r; + +set @@global.wsrep_mysql_replication_bundle = @start_value;
\ No newline at end of file diff --git a/mysql-test/suite/sys_vars/t/wsrep_node_address_basic.test b/mysql-test/suite/sys_vars/t/wsrep_node_address_basic.test new file mode 100644 index 00000000000..feace325044 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_node_address_basic.test @@ -0,0 +1,42 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +SELECT COUNT(@@GLOBAL.wsrep_node_address); +--echo 1 Expected + +--error 1232 +SET @@GLOBAL.wsrep_node_address=1; +--echo Expected error 'Read only variable' + +SELECT COUNT(@@GLOBAL.wsrep_node_address); +--echo 1 Expected + +SELECT @@GLOBAL.wsrep_node_address = VARIABLE_VALUE +FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES +WHERE VARIABLE_NAME='wsrep_node_address'; +--echo 1 Expected + +SELECT COUNT(@@GLOBAL.wsrep_node_address); +--echo 1 Expected + +SELECT COUNT(VARIABLE_VALUE) +FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES +WHERE VARIABLE_NAME='wsrep_node_address'; +--echo 1 Expected + +SELECT @@wsrep_node_address = @@GLOBAL.wsrep_node_address; +--echo 1 Expected + +SELECT COUNT(@@wsrep_node_address); +--echo 1 Expected + +--Error ER_INCORRECT_GLOBAL_LOCAL_VAR +SELECT COUNT(@@local.wsrep_node_address); +--echo Expected error 'Variable is a GLOBAL variable' + +--Error ER_INCORRECT_GLOBAL_LOCAL_VAR +SELECT COUNT(@@SESSION.wsrep_node_address); +--echo Expected error 'Variable is a GLOBAL variable' + +SELECT COUNT(@@GLOBAL.wsrep_node_address); +--echo 1 Expected diff --git a/mysql-test/suite/sys_vars/t/wsrep_node_incoming_address_basic.test b/mysql-test/suite/sys_vars/t/wsrep_node_incoming_address_basic.test new file mode 100644 index 00000000000..188a5960eb9 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_node_incoming_address_basic.test @@ -0,0 +1,42 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +SELECT COUNT(@@GLOBAL.wsrep_node_incoming_address); +--echo 1 Expected + +--error 1232 +SET @@GLOBAL.wsrep_node_incoming_address=1; +--echo Expected error 'Read only variable' + +SELECT COUNT(@@GLOBAL.wsrep_node_incoming_address); +--echo 1 Expected + +SELECT @@GLOBAL.wsrep_node_incoming_address = VARIABLE_VALUE +FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES +WHERE VARIABLE_NAME='wsrep_node_incoming_address'; +--echo 1 Expected + +SELECT COUNT(@@GLOBAL.wsrep_node_incoming_address); +--echo 1 Expected + +SELECT COUNT(VARIABLE_VALUE) +FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES +WHERE VARIABLE_NAME='wsrep_node_incoming_address'; +--echo 1 Expected + +SELECT @@wsrep_node_incoming_address = @@GLOBAL.wsrep_node_incoming_address; +--echo 1 Expected + +SELECT COUNT(@@wsrep_node_incoming_address); +--echo 1 Expected + +--Error ER_INCORRECT_GLOBAL_LOCAL_VAR +SELECT COUNT(@@local.wsrep_node_incoming_address); +--echo Expected error 'Variable is a GLOBAL variable' + +--Error ER_INCORRECT_GLOBAL_LOCAL_VAR +SELECT COUNT(@@SESSION.wsrep_node_incoming_address); +--echo Expected error 'Variable is a GLOBAL variable' + +SELECT COUNT(@@GLOBAL.wsrep_node_incoming_address); +--echo 1 Expected diff --git a/mysql-test/suite/sys_vars/t/wsrep_node_name_basic.test b/mysql-test/suite/sys_vars/t/wsrep_node_name_basic.test new file mode 100644 index 00000000000..3220ae373e2 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_node_name_basic.test @@ -0,0 +1,11 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +set @start_value = @@wsrep_node_name; + +set @@global.wsrep_node_name='test'; +set @@global.wsrep_node_name=NULL; +--Error 1232 +SET @@global.wsrep_node_name = 1; + +set @@global.wsrep_node_name = @start_value;
\ No newline at end of file diff --git a/mysql-test/suite/sys_vars/t/wsrep_notify_cmd_basic.test b/mysql-test/suite/sys_vars/t/wsrep_notify_cmd_basic.test new file mode 100644 index 00000000000..d816453f8a3 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_notify_cmd_basic.test @@ -0,0 +1,11 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +set @start_value = @@wsrep_notify_cmd; + +set @@global.wsrep_notify_cmd='test'; +set @@global.wsrep_notify_cmd=NULL; +--Error 1232 +SET @@global.wsrep_notify_cmd = 1; + +set @@global.wsrep_notify_cmd = @start_value;
\ No newline at end of file diff --git a/mysql-test/suite/sys_vars/t/wsrep_on_basic.test b/mysql-test/suite/sys_vars/t/wsrep_on_basic.test new file mode 100644 index 00000000000..5afe5c4451f --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_on_basic.test @@ -0,0 +1,13 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +set @start_value = @@wsrep_on; + +set @@global.wsrep_on=ON; +set @@global.wsrep_on=OFF; +set @@global.wsrep_on=1; +set @@global.wsrep_on=0; +--Error 1231 +SET @@global.wsrep_on = -1; + +set @@global.wsrep_on = @start_value; diff --git a/mysql-test/suite/sys_vars/t/wsrep_osu_method_basic.test b/mysql-test/suite/sys_vars/t/wsrep_osu_method_basic.test new file mode 100644 index 00000000000..9e1adde76a3 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_osu_method_basic.test @@ -0,0 +1,18 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +set @start_value = @@wsrep_osu_method; + +set @@global.wsrep_osu_method='TOI'; +set @@global.wsrep_osu_method='RSU'; +set @@global.wsrep_osu_method=TOI; +set @@global.wsrep_osu_method=RSU; + +--Error 1231 +set @@global.wsrep_osu_method=TSU; +--Error 1231 +set @@global.wsrep_osu_method='TSU'; +--Error 1231 +SET @@global.wsrep_on = -1; + +set @@global.wsrep_osu_method = @start_value; diff --git a/mysql-test/suite/sys_vars/t/wsrep_provider_basic.test b/mysql-test/suite/sys_vars/t/wsrep_provider_basic.test new file mode 100644 index 00000000000..aae122c42fe --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_provider_basic.test @@ -0,0 +1,5 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +SELECT COUNT(@@GLOBAL.wsrep_provider); +--echo 1 Expected diff --git a/mysql-test/suite/sys_vars/t/wsrep_provider_options_basic.test b/mysql-test/suite/sys_vars/t/wsrep_provider_options_basic.test new file mode 100644 index 00000000000..e2d8b63b2fd --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_provider_options_basic.test @@ -0,0 +1,5 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +SELECT COUNT(@@GLOBAL.wsrep_provider_options); +--echo 1 Expected diff --git a/mysql-test/suite/sys_vars/t/wsrep_recover_basic.test b/mysql-test/suite/sys_vars/t/wsrep_recover_basic.test new file mode 100644 index 00000000000..f4e1707a434 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_recover_basic.test @@ -0,0 +1,47 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +SELECT COUNT(@@GLOBAL.wsrep_recover); +--echo 1 Expected + +--Error 1238 +set @@global.wsrep_recover=ON; +--echo Expected error 'Readonly variable' +--Error 1238 +set @@global.wsrep_recover=OFF; +--echo Expected error 'Readonly variable' + +SELECT @@GLOBAL.wsrep_recover = VARIABLE_VALUE +FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES +WHERE VARIABLE_NAME='wsrep_recover'; +--echo 1 Expected + +SELECT COUNT(@@GLOBAL.wsrep_recover); +--echo 1 Expected + +SELECT COUNT(VARIABLE_VALUE) +FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES +WHERE VARIABLE_NAME='wsrep_recover'; +--echo 1 Expected + +SELECT @@wsrep_recover = @@GLOBAL.wsrep_recover; +--echo 1 Expected + +SELECT COUNT(@@wsrep_recover); +--echo 1 Expected + +--Error ER_INCORRECT_GLOBAL_LOCAL_VAR +SELECT COUNT(@@local.wsrep_recover); +--echo Expected error 'Variable is a GLOBAL variable' + +--Error ER_INCORRECT_GLOBAL_LOCAL_VAR +SELECT COUNT(@@SESSION.wsrep_recover); +--echo Expected error 'Variable is a GLOBAL variable' + +SELECT COUNT(@@GLOBAL.wsrep_recover); +--echo 1 Expected + +--Error ER_BAD_FIELD_ERROR +SELECT wsrep_recover = @@SESSION.wsrep_recover; +--echo Expected error 'Readonly variable' + diff --git a/mysql-test/suite/sys_vars/t/wsrep_replicate_myisam_basic.test b/mysql-test/suite/sys_vars/t/wsrep_replicate_myisam_basic.test new file mode 100644 index 00000000000..c03d76b5123 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_replicate_myisam_basic.test @@ -0,0 +1,13 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +set @start_value = @@wsrep_replicate_myisam; + +set @@global.wsrep_replicate_myisam=ON; +set @@global.wsrep_replicate_myisam=OFF; +set @@global.wsrep_replicate_myisam=1; +set @@global.wsrep_replicate_myisam=0; +--Error 1231 +SET @@global.wsrep_replicate_myisam = -1; + +set @@global.wsrep_replicate_myisam = @start_value;
\ No newline at end of file diff --git a/mysql-test/suite/sys_vars/t/wsrep_restart_slave_basic.test b/mysql-test/suite/sys_vars/t/wsrep_restart_slave_basic.test new file mode 100644 index 00000000000..82f5a97327d --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_restart_slave_basic.test @@ -0,0 +1,13 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +set @start_value = @@wsrep_restart_slave; + +set @@global.wsrep_restart_slave=ON; +set @@global.wsrep_restart_slave=OFF; +set @@global.wsrep_restart_slave=1; +set @@global.wsrep_restart_slave=0; +--Error 1231 +SET @@global.wsrep_restart_slave = -1; + +set @@global.wsrep_restart_slave = @start_value;
\ No newline at end of file diff --git a/mysql-test/suite/sys_vars/t/wsrep_retry_autocommit_basic.test b/mysql-test/suite/sys_vars/t/wsrep_retry_autocommit_basic.test new file mode 100644 index 00000000000..82f5a97327d --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_retry_autocommit_basic.test @@ -0,0 +1,13 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +set @start_value = @@wsrep_restart_slave; + +set @@global.wsrep_restart_slave=ON; +set @@global.wsrep_restart_slave=OFF; +set @@global.wsrep_restart_slave=1; +set @@global.wsrep_restart_slave=0; +--Error 1231 +SET @@global.wsrep_restart_slave = -1; + +set @@global.wsrep_restart_slave = @start_value;
\ No newline at end of file diff --git a/mysql-test/suite/sys_vars/t/wsrep_slave_fk_checks_basic.test b/mysql-test/suite/sys_vars/t/wsrep_slave_fk_checks_basic.test new file mode 100644 index 00000000000..dd60eb8694b --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_slave_fk_checks_basic.test @@ -0,0 +1,42 @@ +--source include/have_wsrep.inc + +--echo # +--echo # wsrep_slave_fk_checks +--echo # + +--echo # save the initial value +SET @wsrep_slave_fk_checks_global_saved = @@global.wsrep_slave_fk_checks; + +--echo # default +SELECT @@global.wsrep_slave_fk_checks; + +--echo +--echo # scope +--error ER_INCORRECT_GLOBAL_LOCAL_VAR +SELECT @@session.wsrep_slave_fk_checks; +SET @@global.wsrep_slave_fk_checks=OFF; +SELECT @@global.wsrep_slave_fk_checks; +SET @@global.wsrep_slave_fk_checks=ON; +SELECT @@global.wsrep_slave_fk_checks; + +--echo +--echo # valid values +SET @@global.wsrep_slave_fk_checks='OFF'; +SELECT @@global.wsrep_slave_fk_checks; +SET @@global.wsrep_slave_fk_checks=ON; +SELECT @@global.wsrep_slave_fk_checks; +SET @@global.wsrep_slave_fk_checks=default; +SELECT @@global.wsrep_slave_fk_checks; + +--echo +--echo # invalid values +--error ER_WRONG_VALUE_FOR_VAR +SET @@global.wsrep_slave_fk_checks=NULL; +--error ER_WRONG_VALUE_FOR_VAR +SET @@global.wsrep_slave_fk_checks='junk'; + +--echo +--echo # restore the initial value +SET @@global.wsrep_slave_fk_checks = @wsrep_slave_fk_checks_global_saved; + +--echo # End of test diff --git a/mysql-test/suite/sys_vars/t/wsrep_slave_threads_basic.test b/mysql-test/suite/sys_vars/t/wsrep_slave_threads_basic.test new file mode 100644 index 00000000000..cff4f433846 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_slave_threads_basic.test @@ -0,0 +1,16 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +set @start_value = @@wsrep_slave_threads; + +set @@global.wsrep_slave_threads=1; +set @@global.wsrep_slave_threads=4; +show warnings; +set @@global.wsrep_slave_threads=0; +show warnings; +set @@global.wsrep_slave_threads=-1; +show warnings; +--Error 1232 +SET @@global.wsrep_slave_threads = r; + +set @@global.wsrep_slave_threads = @start_value;
\ No newline at end of file diff --git a/mysql-test/suite/sys_vars/t/wsrep_slave_uk_checks_basic.test b/mysql-test/suite/sys_vars/t/wsrep_slave_uk_checks_basic.test new file mode 100644 index 00000000000..c9012954371 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_slave_uk_checks_basic.test @@ -0,0 +1,42 @@ +--source include/have_wsrep.inc + +--echo # +--echo # wsrep_slave_uk_checks +--echo # + +--echo # save the initial value +SET @wsrep_slave_uk_checks_global_saved = @@global.wsrep_slave_uk_checks; + +--echo # default +SELECT @@global.wsrep_slave_uk_checks; + +--echo +--echo # scope +--error ER_INCORRECT_GLOBAL_LOCAL_VAR +SELECT @@session.wsrep_slave_uk_checks; +SET @@global.wsrep_slave_uk_checks=OFF; +SELECT @@global.wsrep_slave_uk_checks; +SET @@global.wsrep_slave_uk_checks=ON; +SELECT @@global.wsrep_slave_uk_checks; + +--echo +--echo # valid values +SET @@global.wsrep_slave_uk_checks='OFF'; +SELECT @@global.wsrep_slave_uk_checks; +SET @@global.wsrep_slave_uk_checks=ON; +SELECT @@global.wsrep_slave_uk_checks; +SET @@global.wsrep_slave_uk_checks=default; +SELECT @@global.wsrep_slave_uk_checks; + +--echo +--echo # invalid values +--error ER_WRONG_VALUE_FOR_VAR +SET @@global.wsrep_slave_uk_checks=NULL; +--error ER_WRONG_VALUE_FOR_VAR +SET @@global.wsrep_slave_uk_checks='junk'; + +--echo +--echo # restore the initial value +SET @@global.wsrep_slave_uk_checks = @wsrep_slave_uk_checks_global_saved; + +--echo # End of test diff --git a/mysql-test/suite/sys_vars/t/wsrep_sst_auth_basic.test b/mysql-test/suite/sys_vars/t/wsrep_sst_auth_basic.test new file mode 100644 index 00000000000..6db2a4cd844 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_sst_auth_basic.test @@ -0,0 +1,12 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +SELECT COUNT(@@wsrep_sst_auth); + +# Cause crash, fix later +#set @start_value = @@wsrep_sst_auth; +#set @@global.wsrep_sst_auth='root:pass'; +#set @@global.wsrep_sst_auth=NULL; +#set @@global.wsrep_sst_auth=r; +#set @@global.wsrep_sst_auth=1; +#set @@global.wsrep_sst_auth = @start_value; diff --git a/mysql-test/suite/sys_vars/t/wsrep_sst_donor_basic.test b/mysql-test/suite/sys_vars/t/wsrep_sst_donor_basic.test new file mode 100644 index 00000000000..58d005282a0 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_sst_donor_basic.test @@ -0,0 +1,12 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +SELECT COUNT(@@wsrep_sst_donor); + +set @start_value = @@wsrep_sst_donor; +set @@global.wsrep_sst_donor='foo'; +set @@global.wsrep_sst_donor=NULL; +set @@global.wsrep_sst_donor=r; +--error 1232 +set @@global.wsrep_sst_donor=1; +set @@global.wsrep_sst_donor = @start_value; diff --git a/mysql-test/suite/sys_vars/t/wsrep_sst_donor_rejects_queries_basic.test b/mysql-test/suite/sys_vars/t/wsrep_sst_donor_rejects_queries_basic.test new file mode 100644 index 00000000000..fc8633ce00f --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_sst_donor_rejects_queries_basic.test @@ -0,0 +1,13 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +set @start_value = @@wsrep_sst_donor_rejects_queries; + +set @@global.wsrep_sst_donor_rejects_queries=ON; +set @@global.wsrep_sst_donor_rejects_queries=OFF; +set @@global.wsrep_sst_donor_rejects_queries=1; +set @@global.wsrep_sst_donor_rejects_queries=0; +--Error 1231 +SET @@global.wsrep_sst_donor_rejects_queries = -1; + +set @@global.wsrep_sst_donor_rejects_queries = @start_value; diff --git a/mysql-test/suite/sys_vars/t/wsrep_sst_method_basic.test b/mysql-test/suite/sys_vars/t/wsrep_sst_method_basic.test new file mode 100644 index 00000000000..dab5831ff01 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_sst_method_basic.test @@ -0,0 +1,17 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +set @start_value = @@wsrep_sst_method; + +set @@global.wsrep_sst_method='xtrabackup'; +set @@global.wsrep_sst_method='xtrabackup-v2'; +set @@global.wsrep_sst_method='rsync'; +set @@global.wsrep_sst_method='mysqldump'; +set @@global.wsrep_sst_method='myscript'; +set @@global.wsrep_sst_method='skip'; +--error 1231 +set @@global.wsrep_sst_method=NULL; +--Error 1232 +SET @@global.wsrep_sst_method = -1; + +set @@global.wsrep_sst_method = @start_value;
\ No newline at end of file diff --git a/mysql-test/suite/sys_vars/t/wsrep_sst_receive_address_basic.test b/mysql-test/suite/sys_vars/t/wsrep_sst_receive_address_basic.test new file mode 100644 index 00000000000..0a18098d77f --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_sst_receive_address_basic.test @@ -0,0 +1,13 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +set @start_value = @@wsrep_sst_receive_address; + +set @@global.wsrep_sst_receive_address='128.0.2.1'; +set @@global.wsrep_sst_receive_address=AUTO; +set @@global.wsrep_sst_receive_address='AUTO'; +set @@global.wsrep_sst_receive_address=NULL; +--Error 1232 +SET @@global.wsrep_sst_receive_address = -1; + +set @@global.wsrep_sst_receive_address = @start_value; diff --git a/mysql-test/suite/sys_vars/t/wsrep_start_position_basic.test b/mysql-test/suite/sys_vars/t/wsrep_start_position_basic.test new file mode 100644 index 00000000000..3e30d10c016 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_start_position_basic.test @@ -0,0 +1,14 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +set @start_value = @@wsrep_start_position; + +--error 1231 +set @@global.wsrep_start_position='foo:bar'; +--error 1231 +set @@global.wsrep_start_position=NULL; +--Error 1232 +SET @@global.wsrep_start_position = -1; + +set @@global.wsrep_start_position = @start_value; + diff --git a/mysql-test/suite/sys_vars/t/wsrep_sync_wait_basic.test b/mysql-test/suite/sys_vars/t/wsrep_sync_wait_basic.test new file mode 100644 index 00000000000..cd0d545f80e --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_sync_wait_basic.test @@ -0,0 +1,47 @@ +--source include/have_wsrep.inc + +--echo # +--echo # wsrep_sync_wait +--echo # + +--echo # save the initial values +SET @wsrep_sync_wait_global_saved = @@global.wsrep_sync_wait; +SET @wsrep_sync_wait_session_saved = @@session.wsrep_sync_wait; + +--echo # default +SELECT @@global.wsrep_sync_wait; +SELECT @@session.wsrep_sync_wait; + +--echo +--echo # scope and valid values +SET @@global.wsrep_sync_wait=0; +SELECT @@global.wsrep_sync_wait; +SET @@global.wsrep_sync_wait=7; +SELECT @@global.wsrep_sync_wait; + +SET @@session.wsrep_sync_wait=0; +SELECT @@session.wsrep_sync_wait; +SET @@session.wsrep_sync_wait=7; +SELECT @@session.wsrep_sync_wait; +SET @@session.wsrep_sync_wait=default; +SELECT @@session.wsrep_sync_wait; +SET @@session.wsrep_sync_wait=8; +SELECT @@session.wsrep_sync_wait; + +--echo +--echo # invalid values +--error ER_WRONG_TYPE_FOR_VAR +SET @@global.wsrep_sync_wait=NULL; +--error ER_WRONG_TYPE_FOR_VAR +SET @@global.wsrep_sync_wait='junk'; +--error ER_WRONG_TYPE_FOR_VAR +SET @@session.wsrep_sync_wait=NULL; +--error ER_WRONG_TYPE_FOR_VAR +SET @@session.wsrep_sync_wait='junk'; + +--echo +--echo # restore the initial values +SET @@global.wsrep_sync_wait = @wsrep_sync_wait_global_saved; +SET @@session.wsrep_sync_wait = @wsrep_sync_wait_session_saved; + +--echo # End of test diff --git a/mysql-test/suite/sys_vars/t/wsrep_wsrep_provider_basic.test b/mysql-test/suite/sys_vars/t/wsrep_wsrep_provider_basic.test new file mode 100644 index 00000000000..f4faaccc6a7 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/wsrep_wsrep_provider_basic.test @@ -0,0 +1,11 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +set @start_value = @@wsrep_provider; + +set @@global.wsrep_provider=none; + +--Error 1231 +SET @@global.wsrep_provider = -1; + +set @@global.wsrep_provider = @start_value; diff --git a/mysql-test/suite/wsrep/README b/mysql-test/suite/wsrep/README new file mode 100644 index 00000000000..988096071a4 --- /dev/null +++ b/mysql-test/suite/wsrep/README @@ -0,0 +1,7 @@ +* 'wsrep' suite is designated for tests which do not require a multi-node + galera cluster. + +* As these tests are specific to wsrep-related functionalities, they must skip + on server built without wsrep patch (vanilla). (-DWITH_WSREP=OFF) + See : include/have_wsrep.inc, include/have_wsrep_enabled.inc, not_wsrep.inc + diff --git a/mysql-test/suite/wsrep/r/binlog_format.result b/mysql-test/suite/wsrep/r/binlog_format.result new file mode 100644 index 00000000000..5b8da51f829 --- /dev/null +++ b/mysql-test/suite/wsrep/r/binlog_format.result @@ -0,0 +1,35 @@ +call mtr.add_suppression("WSREP: cannot get fake InnoDB transaction ID"); +call mtr.add_suppression("WSREP: Could not open saved state file for reading:.*"); +SHOW VARIABLES LIKE 'binlog_format'; +Variable_name Value +binlog_format ROW +SET binlog_format=STATEMENT; +ERROR 42000: Variable 'binlog_format' can't be set to the value of 'STATEMENT' +SHOW WARNINGS; +Level Code Message +Warning 1105 MariaDB Galera does not support binlog format: STATEMENT +Error 1231 Variable 'binlog_format' can't be set to the value of 'STATEMENT' +SHOW VARIABLES LIKE 'binlog_format'; +Variable_name Value +binlog_format ROW +CREATE TABLE IF NOT EXISTS test.t1 AS SELECT * FROM information_schema.routines WHERE 1 = 0; +SET binlog_format=MIXED; +ERROR 42000: Variable 'binlog_format' can't be set to the value of 'MIXED' +SHOW WARNINGS; +Level Code Message +Warning 1105 MariaDB Galera does not support binlog format: MIXED +Error 1231 Variable 'binlog_format' can't be set to the value of 'MIXED' +SHOW VARIABLES LIKE 'binlog_format'; +Variable_name Value +binlog_format ROW +CREATE TABLE IF NOT EXISTS test.t2 AS SELECT * FROM information_schema.routines WHERE 1 = 0; +SET binlog_format=ROW; +SHOW WARNINGS; +Level Code Message +SHOW VARIABLES LIKE 'binlog_format'; +Variable_name Value +binlog_format ROW +CREATE TABLE IF NOT EXISTS test.t3 AS SELECT * FROM information_schema.routines WHERE 1 = 0; +DROP TABLE IF EXISTS test.t1; +DROP TABLE IF EXISTS test.t2; +DROP TABLE IF EXISTS test.t3; diff --git a/mysql-test/suite/wsrep/r/innodb_load_xa_with_wsrep.result b/mysql-test/suite/wsrep/r/innodb_load_xa_with_wsrep.result new file mode 100644 index 00000000000..90faf766145 --- /dev/null +++ b/mysql-test/suite/wsrep/r/innodb_load_xa_with_wsrep.result @@ -0,0 +1,19 @@ +install plugin innodb soname 'ha_innodb'; +select engine,support,transactions,xa from information_schema.engines where engine='innodb'; +engine support transactions xa +InnoDB YES YES YES +create table t1 (a int) engine=innodb; +start transaction; +insert t1 values (1); +insert t1 values (2); +commit; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +mysqld-bin.000001 # Gtid # # GTID #-#-# +mysqld-bin.000001 # Query # # use `test`; create table t1 (a int) engine=innodb +mysqld-bin.000001 # Gtid # # BEGIN GTID #-#-# +mysqld-bin.000001 # Query # # use `test`; insert t1 values (1) +mysqld-bin.000001 # Query # # use `test`; insert t1 values (2) +mysqld-bin.000001 # Xid # # COMMIT /* XID */ +drop table t1; +uninstall plugin innodb; diff --git a/mysql-test/suite/wsrep/r/mysql_tzinfo_to_sql_symlink.result b/mysql-test/suite/wsrep/r/mysql_tzinfo_to_sql_symlink.result new file mode 100644 index 00000000000..f77a655773a --- /dev/null +++ b/mysql-test/suite/wsrep/r/mysql_tzinfo_to_sql_symlink.result @@ -0,0 +1,70 @@ +# +# MDEV-5226 mysql_tzinfo_to_sql errors with tzdata 2013f and above +# +# Verbose run +SET GLOBAL wsrep_replicate_myisam= ON; +TRUNCATE TABLE time_zone; +TRUNCATE TABLE time_zone_name; +TRUNCATE TABLE time_zone_transition; +TRUNCATE TABLE time_zone_transition_type; +INSERT INTO time_zone (Use_leap_seconds) VALUES ('N'); +SET @time_zone_id= LAST_INSERT_ID(); +INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('GMT', @time_zone_id); +INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES + (@time_zone_id, 0, 0, 0, 'GMT') +; +Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/garbage' as time zone. Skipping it. +Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/ignored.tab' as time zone. Skipping it. +INSERT INTO time_zone (Use_leap_seconds) VALUES ('N'); +SET @time_zone_id= LAST_INSERT_ID(); +INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('posix/GMT', @time_zone_id); +INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES + (@time_zone_id, 0, 0, 0, 'GMT') +; +Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/posix/garbage' as time zone. Skipping it. +Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/posix/ignored.tab' as time zone. Skipping it. +Warning: Skipping directory 'MYSQLTEST_VARDIR/zoneinfo/posix/posix': to avoid infinite symlink recursion. +ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time; +ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id; +SET GLOBAL wsrep_replicate_myisam= OFF; +# Silent run +SET GLOBAL wsrep_replicate_myisam= ON; +TRUNCATE TABLE time_zone; +TRUNCATE TABLE time_zone_name; +TRUNCATE TABLE time_zone_transition; +TRUNCATE TABLE time_zone_transition_type; +INSERT INTO time_zone (Use_leap_seconds) VALUES ('N'); +SET @time_zone_id= LAST_INSERT_ID(); +INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('GMT', @time_zone_id); +INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES + (@time_zone_id, 0, 0, 0, 'GMT') +; +Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/garbage' as time zone. Skipping it. +INSERT INTO time_zone (Use_leap_seconds) VALUES ('N'); +SET @time_zone_id= LAST_INSERT_ID(); +INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('posix/GMT', @time_zone_id); +INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES + (@time_zone_id, 0, 0, 0, 'GMT') +; +Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/posix/garbage' as time zone. Skipping it. +ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time; +ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id; +SET GLOBAL wsrep_replicate_myisam= OFF; +# +# Testing with explicit timezonefile +# +SET GLOBAL wsrep_replicate_myisam= ON; +INSERT INTO time_zone (Use_leap_seconds) VALUES ('N'); +SET @time_zone_id= LAST_INSERT_ID(); +INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('XXX', @time_zone_id); +INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES + (@time_zone_id, 0, 0, 0, 'GMT') +; +SET GLOBAL wsrep_replicate_myisam= OFF; +# +# Testing --leap +# +SET GLOBAL wsrep_replicate_myisam= ON; +TRUNCATE TABLE time_zone_leap_second; +ALTER TABLE time_zone_leap_second ORDER BY Transition_time; +SET GLOBAL wsrep_replicate_myisam= OFF; diff --git a/mysql-test/suite/wsrep/r/pool_of_threads.result b/mysql-test/suite/wsrep/r/pool_of_threads.result new file mode 100644 index 00000000000..ffe309f2580 --- /dev/null +++ b/mysql-test/suite/wsrep/r/pool_of_threads.result @@ -0,0 +1,8 @@ + +# +# MDEV#5687: Maria doesn't shutdown following upgrade to 5.5.35-galera +# +SELECT @@GLOBAL.thread_handling; +@@GLOBAL.thread_handling +pool-of-threads +# End of test. diff --git a/mysql-test/suite/wsrep/r/trans.result b/mysql-test/suite/wsrep/r/trans.result new file mode 100644 index 00000000000..bc225897103 --- /dev/null +++ b/mysql-test/suite/wsrep/r/trans.result @@ -0,0 +1,9 @@ +# +# MDEV-4222 : Assertion `( ((global_system_variables.wsrep_on) && +# (thd && thd->variables.wsrep_on)) && srep_emulate_bin_log) +# || mysql_bin_log .is_open()' fails on SAVEPOINT with +# disabled wsrep_provider +# +START TRANSACTION WITH CONSISTENT SNAPSHOT; +SAVEPOINT A; +End of test. diff --git a/mysql-test/suite/wsrep/r/variables.result b/mysql-test/suite/wsrep/r/variables.result new file mode 100644 index 00000000000..bd762f916bc --- /dev/null +++ b/mysql-test/suite/wsrep/r/variables.result @@ -0,0 +1,222 @@ + +# MDEV#5534: mysql_tzinfo_to_sql generates wrong query +# +# Testing wsrep_replicate_myisam variable. +SELECT @@session.wsrep_replicate_myisam; +ERROR HY000: Variable 'wsrep_replicate_myisam' is a GLOBAL variable +SELECT @@global.wsrep_replicate_myisam; +@@global.wsrep_replicate_myisam +0 +SET SESSION wsrep_replicate_myisam= ON; +ERROR HY000: Variable 'wsrep_replicate_myisam' is a GLOBAL variable and should be set with SET GLOBAL +SET GLOBAL wsrep_replicate_myisam= ON; +SET GLOBAL wsrep_replicate_myisam= OFF; +SET GLOBAL wsrep_provider=none; +# +# MDEV#5790: SHOW GLOBAL STATUS LIKE does not show the correct list of +# variables when using "_" +# +CALL mtr.add_suppression("WSREP: Could not open saved state file for reading.*"); +SHOW GLOBAL STATUS LIKE 'wsrep%'; +Variable_name Value +wsrep_local_state_uuid # +wsrep_protocol_version # +wsrep_last_committed # +wsrep_replicated # +wsrep_replicated_bytes # +wsrep_repl_keys # +wsrep_repl_keys_bytes # +wsrep_repl_data_bytes # +wsrep_repl_other_bytes # +wsrep_received # +wsrep_received_bytes # +wsrep_local_commits # +wsrep_local_cert_failures # +wsrep_local_replays # +wsrep_local_send_queue # +wsrep_local_send_queue_avg # +wsrep_local_recv_queue # +wsrep_local_recv_queue_avg # +wsrep_local_cached_downto # +wsrep_flow_control_paused_ns # +wsrep_flow_control_paused # +wsrep_flow_control_sent # +wsrep_flow_control_recv # +wsrep_cert_deps_distance # +wsrep_apply_oooe # +wsrep_apply_oool # +wsrep_apply_window # +wsrep_commit_oooe # +wsrep_commit_oool # +wsrep_commit_window # +wsrep_local_state # +wsrep_local_state_comment # +wsrep_cert_index_size # +wsrep_causal_reads # +wsrep_cert_interval # +wsrep_incoming_addresses # +wsrep_cluster_conf_id # +wsrep_cluster_size # +wsrep_cluster_state_uuid # +wsrep_cluster_status # +wsrep_connected # +wsrep_local_bf_aborts # +wsrep_local_index # +wsrep_provider_name # +wsrep_provider_vendor # +wsrep_provider_version # +wsrep_ready # +wsrep_thread_count # + +SHOW GLOBAL STATUS LIKE 'wsrep_%'; +Variable_name Value +wsrep_local_state_uuid # +wsrep_protocol_version # +wsrep_last_committed # +wsrep_replicated # +wsrep_replicated_bytes # +wsrep_repl_keys # +wsrep_repl_keys_bytes # +wsrep_repl_data_bytes # +wsrep_repl_other_bytes # +wsrep_received # +wsrep_received_bytes # +wsrep_local_commits # +wsrep_local_cert_failures # +wsrep_local_replays # +wsrep_local_send_queue # +wsrep_local_send_queue_avg # +wsrep_local_recv_queue # +wsrep_local_recv_queue_avg # +wsrep_local_cached_downto # +wsrep_flow_control_paused_ns # +wsrep_flow_control_paused # +wsrep_flow_control_sent # +wsrep_flow_control_recv # +wsrep_cert_deps_distance # +wsrep_apply_oooe # +wsrep_apply_oool # +wsrep_apply_window # +wsrep_commit_oooe # +wsrep_commit_oool # +wsrep_commit_window # +wsrep_local_state # +wsrep_local_state_comment # +wsrep_cert_index_size # +wsrep_causal_reads # +wsrep_cert_interval # +wsrep_incoming_addresses # +wsrep_cluster_conf_id # +wsrep_cluster_size # +wsrep_cluster_state_uuid # +wsrep_cluster_status # +wsrep_connected # +wsrep_local_bf_aborts # +wsrep_local_index # +wsrep_provider_name # +wsrep_provider_vendor # +wsrep_provider_version # +wsrep_ready # +wsrep_thread_count # +SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment'; +Variable_name Value +wsrep_local_state_comment # +# Should show nothing. +SHOW STATUS LIKE 'x'; +Variable_name Value +SET GLOBAL wsrep_provider=none; +# +# MDEV#6079: xtrabackup SST failing with maria-10.0-galera +# + +SHOW STATUS LIKE 'wsrep_local_state_uuid'; +Variable_name Value +wsrep_local_state_uuid # + +SHOW STATUS LIKE 'wsrep_last_committed'; +Variable_name Value +wsrep_last_committed # +SET GLOBAL wsrep_provider=none; + +# +# MDEV#6206: wsrep_slave_threads subtracts from max_connections +# +call mtr.add_suppression("safe_mutex: Found wrong usage of mutex 'LOCK_wsrep_slave_threads' and 'LOCK_global_system_variables'"); +call mtr.add_suppression("WSREP: Failed to get provider options"); +SELECT @@global.wsrep_provider; +@@global.wsrep_provider +libgalera_smm.so +SELECT @@global.wsrep_slave_threads; +@@global.wsrep_slave_threads +1 +SELECT @@global.wsrep_cluster_address; +@@global.wsrep_cluster_address +NULL +SHOW STATUS LIKE 'threads_connected'; +Variable_name Value +Threads_connected 1 +SHOW STATUS LIKE 'wsrep_thread_count'; +Variable_name Value +wsrep_thread_count 0 + +SELECT @@global.wsrep_provider; +@@global.wsrep_provider +libgalera_smm.so +SELECT @@global.wsrep_cluster_address; +@@global.wsrep_cluster_address +NULL +SHOW STATUS LIKE 'threads_connected'; +Variable_name Value +Threads_connected 1 +SHOW STATUS LIKE 'wsrep_thread_count'; +Variable_name Value +wsrep_thread_count 0 + +# Setting wsrep_cluster_address triggers the creation of +# applier/rollbacker threads. +SET GLOBAL wsrep_cluster_address= 'gcomm://'; +# Wait for applier threads to get created. +SELECT @@global.wsrep_provider; +@@global.wsrep_provider +libgalera_smm.so +SELECT @@global.wsrep_cluster_address; +@@global.wsrep_cluster_address +gcomm:// +SHOW STATUS LIKE 'threads_connected'; +Variable_name Value +Threads_connected 1 +SHOW STATUS LIKE 'wsrep_thread_count'; +Variable_name Value +wsrep_thread_count 2 + +SET @wsrep_slave_threads_saved= @@global.wsrep_slave_threads; +SET GLOBAL wsrep_slave_threads= 10; +# Wait for applier threads to get created. +SHOW STATUS LIKE 'threads_connected'; +Variable_name Value +Threads_connected 1 +SHOW STATUS LIKE 'wsrep_thread_count'; +Variable_name Value +wsrep_thread_count 11 +SET GLOBAL wsrep_slave_threads= @wsrep_slave_threads_saved; +SET GLOBAL wsrep_provider= none; +SET GLOBAL wsrep_cluster_address= ''; +SET GLOBAL wsrep_provider_options= ''; +# +# MDEV#6411: Setting set @@global.wsrep_sst_auth=NULL causes crash +# +SET @wsrep_sst_auth_saved= @@global.wsrep_sst_auth; +SET @@global.wsrep_sst_auth= 'user:pass'; +SELECT @@global.wsrep_sst_auth; +@@global.wsrep_sst_auth +******** +SET @@global.wsrep_sst_auth= ''; +SELECT @@global.wsrep_sst_auth; +@@global.wsrep_sst_auth + +SET @@global.wsrep_sst_auth= NULL; +SELECT @@global.wsrep_sst_auth; +@@global.wsrep_sst_auth +NULL +SET @@global.wsrep_sst_auth= @wsrep_sst_auth_saved; +# End of test. diff --git a/mysql-test/suite/wsrep/t/binlog_format.opt b/mysql-test/suite/wsrep/t/binlog_format.opt new file mode 100644 index 00000000000..1b8937b91f3 --- /dev/null +++ b/mysql-test/suite/wsrep/t/binlog_format.opt @@ -0,0 +1 @@ +--binlog-format=row --innodb_autoinc_lock_mode=2 --innodb_locks_unsafe_for_binlog=1 --wsrep-provider=$WSREP_PROVIDER --wsrep-cluster-address=gcomm:// --wsrep_provider_options='base_port=$GALERA_BASE_PORT' --wsrep-on=1 --log-bin diff --git a/mysql-test/suite/wsrep/t/binlog_format.test b/mysql-test/suite/wsrep/t/binlog_format.test new file mode 100644 index 00000000000..99d34873512 --- /dev/null +++ b/mysql-test/suite/wsrep/t/binlog_format.test @@ -0,0 +1,27 @@ +--source include/have_wsrep_enabled.inc +--source include/have_binlog_format_row.inc +# +# MDEV-4227: Galera server should stop crashing on setting binlog_format STATEMENT +# +call mtr.add_suppression("WSREP: cannot get fake InnoDB transaction ID"); +call mtr.add_suppression("WSREP: Could not open saved state file for reading:.*"); + +SHOW VARIABLES LIKE 'binlog_format'; +-- error ER_WRONG_VALUE_FOR_VAR +SET binlog_format=STATEMENT; +SHOW WARNINGS; +SHOW VARIABLES LIKE 'binlog_format'; +CREATE TABLE IF NOT EXISTS test.t1 AS SELECT * FROM information_schema.routines WHERE 1 = 0; +-- error ER_WRONG_VALUE_FOR_VAR +SET binlog_format=MIXED; +SHOW WARNINGS; +SHOW VARIABLES LIKE 'binlog_format'; +CREATE TABLE IF NOT EXISTS test.t2 AS SELECT * FROM information_schema.routines WHERE 1 = 0; +SET binlog_format=ROW; +SHOW WARNINGS; +SHOW VARIABLES LIKE 'binlog_format'; +CREATE TABLE IF NOT EXISTS test.t3 AS SELECT * FROM information_schema.routines WHERE 1 = 0; +DROP TABLE IF EXISTS test.t1; +DROP TABLE IF EXISTS test.t2; +DROP TABLE IF EXISTS test.t3; + diff --git a/mysql-test/suite/wsrep/t/innodb_load_xa_with_wsrep.opt b/mysql-test/suite/wsrep/t/innodb_load_xa_with_wsrep.opt new file mode 100644 index 00000000000..4ff27e659ce --- /dev/null +++ b/mysql-test/suite/wsrep/t/innodb_load_xa_with_wsrep.opt @@ -0,0 +1 @@ +--ignore-builtin-innodb --loose-innodb --log-bin diff --git a/mysql-test/suite/wsrep/t/innodb_load_xa_with_wsrep.test b/mysql-test/suite/wsrep/t/innodb_load_xa_with_wsrep.test new file mode 100644 index 00000000000..413faf54864 --- /dev/null +++ b/mysql-test/suite/wsrep/t/innodb_load_xa_with_wsrep.test @@ -0,0 +1,19 @@ +# +# MDEV-6082 Assertion `0' fails in TC_LOG_DUMMY::log_and_order on DML after installing TokuDB at runtime on server with disabled InnoDB +# +--source include/not_embedded.inc +--source include/have_wsrep.inc + +if (!$HA_INNODB_SO) { + --skip Need InnoDB plugin +} +install plugin innodb soname 'ha_innodb'; +select engine,support,transactions,xa from information_schema.engines where engine='innodb'; +create table t1 (a int) engine=innodb; +start transaction; +insert t1 values (1); +insert t1 values (2); +commit; +--source include/show_binlog_events.inc +drop table t1; +uninstall plugin innodb; diff --git a/mysql-test/suite/wsrep/t/mysql_tzinfo_to_sql_symlink.test b/mysql-test/suite/wsrep/t/mysql_tzinfo_to_sql_symlink.test new file mode 100644 index 00000000000..100e09d3afb --- /dev/null +++ b/mysql-test/suite/wsrep/t/mysql_tzinfo_to_sql_symlink.test @@ -0,0 +1,40 @@ +--source include/have_wsrep.inc +--source include/have_symlink.inc +--source include/not_windows.inc + +--echo # +--echo # MDEV-5226 mysql_tzinfo_to_sql errors with tzdata 2013f and above +--echo # + +--exec mkdir $MYSQLTEST_VARDIR/zoneinfo +--exec ln -s $MYSQLTEST_VARDIR/zoneinfo $MYSQLTEST_VARDIR/zoneinfo/posix +--copy_file std_data/zoneinfo/GMT $MYSQLTEST_VARDIR/zoneinfo/GMT +--copy_file std_data/words.dat $MYSQLTEST_VARDIR/zoneinfo/garbage +--copy_file std_data/words.dat $MYSQLTEST_VARDIR/zoneinfo/ignored.tab + +--echo # Verbose run +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--exec $MYSQL_TZINFO_TO_SQL --verbose $MYSQLTEST_VARDIR/zoneinfo 2>&1 + +--echo # Silent run +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--exec $MYSQL_TZINFO_TO_SQL $MYSQLTEST_VARDIR/zoneinfo 2>&1 + +--echo # +--echo # Testing with explicit timezonefile +--echo # + +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--exec $MYSQL_TZINFO_TO_SQL $MYSQLTEST_VARDIR/zoneinfo/GMT XXX 2>&1 + +--echo # +--echo # Testing --leap +--echo # + +--exec $MYSQL_TZINFO_TO_SQL --leap $MYSQLTEST_VARDIR/zoneinfo/GMT 2>&1 + +# +# Cleanup +# + +--exec rm -rf $MYSQLTEST_VARDIR/zoneinfo diff --git a/mysql-test/suite/wsrep/t/pool_of_threads.opt b/mysql-test/suite/wsrep/t/pool_of_threads.opt new file mode 100644 index 00000000000..5ee38531a4a --- /dev/null +++ b/mysql-test/suite/wsrep/t/pool_of_threads.opt @@ -0,0 +1 @@ +--binlog-format=row --innodb_autoinc_lock_mode=2 --innodb_locks_unsafe_for_binlog=1 --wsrep-provider=$WSREP_PROVIDER --wsrep-cluster-address=gcomm:// --wsrep_provider_options='base_port=$GALERA_BASE_PORT' --thread_handling=pool-of-threads diff --git a/mysql-test/suite/wsrep/t/pool_of_threads.test b/mysql-test/suite/wsrep/t/pool_of_threads.test new file mode 100644 index 00000000000..f4fffaf4f9a --- /dev/null +++ b/mysql-test/suite/wsrep/t/pool_of_threads.test @@ -0,0 +1,11 @@ +--source include/have_wsrep.inc + +--echo +--echo # +--echo # MDEV#5687: Maria doesn't shutdown following upgrade to 5.5.35-galera +--echo # + +# Note: This test is to ensure that server shuts down properly. +SELECT @@GLOBAL.thread_handling; + +--echo # End of test. diff --git a/mysql-test/suite/wsrep/t/trans.test b/mysql-test/suite/wsrep/t/trans.test new file mode 100644 index 00000000000..d8c4a4722a0 --- /dev/null +++ b/mysql-test/suite/wsrep/t/trans.test @@ -0,0 +1,14 @@ +--source include/have_wsrep.inc +--source include/have_innodb.inc + +--echo # +--echo # MDEV-4222 : Assertion `( ((global_system_variables.wsrep_on) && +--echo # (thd && thd->variables.wsrep_on)) && srep_emulate_bin_log) +--echo # || mysql_bin_log .is_open()' fails on SAVEPOINT with +--echo # disabled wsrep_provider +--echo # + +START TRANSACTION WITH CONSISTENT SNAPSHOT; +SAVEPOINT A; + +--echo End of test. diff --git a/mysql-test/suite/wsrep/t/variables.test b/mysql-test/suite/wsrep/t/variables.test new file mode 100644 index 00000000000..6cc895a75d9 --- /dev/null +++ b/mysql-test/suite/wsrep/t/variables.test @@ -0,0 +1,146 @@ +--source include/have_wsrep.inc + +# Set galera's base_port so that test can run in parallel with other galera +# tests. +--disable_query_log +eval SET GLOBAL wsrep_provider_options='base_port=$GALERA_BASE_PORT'; +--enable_query_log + +--echo +--echo # MDEV#5534: mysql_tzinfo_to_sql generates wrong query +--echo # +--echo # Testing wsrep_replicate_myisam variable. + +--disable_query_log +eval SET GLOBAL wsrep_provider= '$WSREP_PROVIDER'; +--enable_query_log + +--error ER_INCORRECT_GLOBAL_LOCAL_VAR +SELECT @@session.wsrep_replicate_myisam; +SELECT @@global.wsrep_replicate_myisam; + +--error ER_GLOBAL_VARIABLE +SET SESSION wsrep_replicate_myisam= ON; +SET GLOBAL wsrep_replicate_myisam= ON; + +# Reset it back. +SET GLOBAL wsrep_replicate_myisam= OFF; +SET GLOBAL wsrep_provider=none; + +--echo # +--echo # MDEV#5790: SHOW GLOBAL STATUS LIKE does not show the correct list of +--echo # variables when using "_" +--echo # + +CALL mtr.add_suppression("WSREP: Could not open saved state file for reading.*"); + +--disable_query_log +eval SET GLOBAL wsrep_provider= '$WSREP_PROVIDER'; +--enable_query_log + +--replace_column 2 # +SHOW GLOBAL STATUS LIKE 'wsrep%'; + +--echo +--replace_column 2 # +SHOW GLOBAL STATUS LIKE 'wsrep_%'; + +--replace_column 2 # +SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment'; + +--echo # Should show nothing. +SHOW STATUS LIKE 'x'; + +# Reset it back. +SET GLOBAL wsrep_provider=none; + +--echo # +--echo # MDEV#6079: xtrabackup SST failing with maria-10.0-galera +--echo # + +--disable_query_log +eval SET GLOBAL wsrep_provider= '$WSREP_PROVIDER'; +--enable_query_log + +# The following 2 variables are used in innobackupex during xtrabackup-based +# SST. +--echo +--replace_column 2 # +SHOW STATUS LIKE 'wsrep_local_state_uuid'; +--echo +--replace_column 2 # +SHOW STATUS LIKE 'wsrep_last_committed'; + +# Reset it back. +SET GLOBAL wsrep_provider=none; + +--echo +--echo # +--echo # MDEV#6206: wsrep_slave_threads subtracts from max_connections +--echo # +call mtr.add_suppression("safe_mutex: Found wrong usage of mutex 'LOCK_wsrep_slave_threads' and 'LOCK_global_system_variables'"); +call mtr.add_suppression("WSREP: Failed to get provider options"); + +--disable_query_log +eval SET GLOBAL wsrep_provider= '$WSREP_PROVIDER'; +--enable_query_log + +--replace_regex /.*libgalera_smm.*/libgalera_smm.so/ +SELECT @@global.wsrep_provider; +SELECT @@global.wsrep_slave_threads; +SELECT @@global.wsrep_cluster_address; +SHOW STATUS LIKE 'threads_connected'; +SHOW STATUS LIKE 'wsrep_thread_count'; +--echo + +--disable_query_log +eval SET GLOBAL wsrep_provider= '$WSREP_PROVIDER'; +--enable_query_log + +--replace_regex /.*libgalera_smm.*/libgalera_smm.so/ +SELECT @@global.wsrep_provider; +SELECT @@global.wsrep_cluster_address; +SHOW STATUS LIKE 'threads_connected'; +SHOW STATUS LIKE 'wsrep_thread_count'; +--echo + +--echo # Setting wsrep_cluster_address triggers the creation of +--echo # applier/rollbacker threads. +SET GLOBAL wsrep_cluster_address= 'gcomm://'; +--echo # Wait for applier threads to get created. +sleep 3; + +--replace_regex /.*libgalera_smm.*/libgalera_smm.so/ +SELECT @@global.wsrep_provider; +SELECT @@global.wsrep_cluster_address; +SHOW STATUS LIKE 'threads_connected'; +SHOW STATUS LIKE 'wsrep_thread_count'; +--echo + +SET @wsrep_slave_threads_saved= @@global.wsrep_slave_threads; +SET GLOBAL wsrep_slave_threads= 10; +--echo # Wait for applier threads to get created. +sleep 3; +SHOW STATUS LIKE 'threads_connected'; +SHOW STATUS LIKE 'wsrep_thread_count'; + +# reset (for mtr internal checks) +SET GLOBAL wsrep_slave_threads= @wsrep_slave_threads_saved; +SET GLOBAL wsrep_provider= none; +SET GLOBAL wsrep_cluster_address= ''; +SET GLOBAL wsrep_provider_options= ''; + +--echo # +--echo # MDEV#6411: Setting set @@global.wsrep_sst_auth=NULL causes crash +--echo # +SET @wsrep_sst_auth_saved= @@global.wsrep_sst_auth; +SET @@global.wsrep_sst_auth= 'user:pass'; +SELECT @@global.wsrep_sst_auth; +SET @@global.wsrep_sst_auth= ''; +SELECT @@global.wsrep_sst_auth; +SET @@global.wsrep_sst_auth= NULL; +SELECT @@global.wsrep_sst_auth; +SET @@global.wsrep_sst_auth= @wsrep_sst_auth_saved; + +--echo # End of test. + diff --git a/mysql-test/t/mysql_tzinfo_to_sql_symlink.test b/mysql-test/t/mysql_tzinfo_to_sql_symlink.test index 1ba4e91be3c..0c70315c93b 100644 --- a/mysql-test/t/mysql_tzinfo_to_sql_symlink.test +++ b/mysql-test/t/mysql_tzinfo_to_sql_symlink.test @@ -1,5 +1,16 @@ --source include/have_symlink.inc --source include/not_windows.inc +--source include/not_wsrep.inc + +# Note: The output of mysql_tzinfo_to_sql is different if server is compiled +# with wsrep. Hence a copy of this test has been placed under wsrep suite with +# the updated result. (lp:1161432) +--source include/not_wsrep.inc + +# Note: The output of mysql_tzinfo_to_sql is different if server is compiled +# with wsrep. Hence a copy of this test has been placed under wsrep suite with +# the updated result. (lp:1161432) +--source include/not_wsrep.inc --echo # --echo # MDEV-5226 mysql_tzinfo_to_sql errors with tzdata 2013f and above diff --git a/mysql-test/t/mysqld--help.test b/mysql-test/t/mysqld--help.test index c27fa58f935..a8cafed9efb 100644 --- a/mysql-test/t/mysqld--help.test +++ b/mysql-test/t/mysqld--help.test @@ -4,6 +4,7 @@ --source include/not_embedded.inc --source include/have_perfschema.inc --source include/platform.inc +--source include/not_wsrep.inc # # force lower-case-table-names=1 (linux/macosx have different defaults) @@ -22,7 +23,7 @@ perl; log-slow-queries pid-file slow-query-log-file log-basename datadir slave-load-tmpdir tmpdir socket thread-pool-size large-files-support lower-case-file-system system-time-zone - version.*/; + wsrep-node-name version.*/; # Plugins which may or may not be there: @plugins=qw/innodb ndb archive blackhole federated partition ndbcluster |