polardbxengine/mysql-test/include/rpl_for_each_connection.inc

74 lines
2.1 KiB
PHP

# ==== Purpose ====
#
# Execute a .inc file once for master-slave connection that was
# configured by rpl_init.inc. For each connection, it sets the
# following variables:
#
# $rpl_master, $rpl_slave
# The server number of the master and of the slave.
#
# $rpl_channel_name
# If $rpl_multi_source is set, the name of the channel by which
# the slave connects to the master. Otherwise the empty string.
#
# $rpl_connection_number
# 1 for the first connection, 2 for the second connection, etc.
#
# Moreover, the current connection will be set to server_$rpl_slave.
#
# ==== Usage ====
#
# --let $rpl_source_file= FILE
# [--let $rpl_multi_source= 1]
# [--let $rpl_debug= 1]
# --source include/rpl_for_each_connection.inc
#
# Parameters:
# $rpl_source_file
# The file that will be sourced.
#
# $rpl_multi_source
# If this is set, $rpl_channel_name is set.
#
# $rpl_debug
# See include/rpl_init.inc
--let $include_filename= rpl_for_each_connection.inc [$rpl_source_file]
--source include/begin_include_file.inc
--let $rpl_connection_number= 1
while ($rpl_connection_number <= $rpl_connection_count)
{
# 'mX sY mZ sW ...'
# ^ _rfec_offset points here in the second iteration
--let $_rfec_offset= 1 + ($rpl_connection_number - 1) * 2 * (2 + $rpl_server_count_length)
--let $rpl_master= `SELECT SUBSTRING('$rpl_connection_list', $_rfec_offset + 1, $rpl_server_count_length)`
--let $rpl_slave= `SELECT SUBSTRING('$rpl_connection_list', $_rfec_offset + 1 + $rpl_server_count_length + 2, $rpl_server_count_length)`
--let $rpl_channel_name=
if ($rpl_multi_source)
{
--let $rpl_channel_name= 'channel_$rpl_master'
}
if ($rpl_debug)
{
--echo # debug: rpl_for_each_connection.inc: connection=$rpl_connection master=$rpl_master slave=$rpl_slave
}
--let $rpl_connection_name= server_$rpl_slave
--source include/rpl_connection.inc
--source $rpl_source_file
--inc $rpl_connection_number
}
--let $rpl_master=
--let $rpl_slave=
--let $rpl_connection_number=
--let $rpl_channel_name=
--let $include_filename= rpl_for_each_connection.inc [$rpl_source_file]
--source include/end_include_file.inc