mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	wsrep_info INFORMATION_SCHEMA plugin to provide WSREP_STATUS and WSREP_MEMBERSHIP tables.
		
			
				
	
	
		
			101 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			101 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
 | 
						|
 |