mirror of
https://github.com/MariaDB/server.git
synced 2025-01-15 19:42:28 +01:00
369c02674c
wsrep_info INFORMATION_SCHEMA plugin to provide WSREP_STATUS and WSREP_MEMBERSHIP tables.
100 lines
2.6 KiB
PHP
100 lines
2.6 KiB
PHP
# 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
|
|
|