mariadb/mysql-test/include/galera_diff.inc
Nirbhay Choubey 369c02674c MDEV-7053: WSREP_STATUS & WSREP_MEMBERSHIP I_S tables
wsrep_info INFORMATION_SCHEMA plugin to provide WSREP_STATUS
and WSREP_MEMBERSHIP tables.
2014-11-22 14:33:51 -05:00

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