From 01c514e060638dfd4a428f6614f1353b7c2fb962 Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Tue, 11 Nov 2014 16:08:40 +0100 Subject: [PATCH 1/3] Manage empty values of slave replication. Signed-off-by: Hugues Peccatte --- libraries/replication.inc.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/libraries/replication.inc.php b/libraries/replication.inc.php index 4aec54c963..0dcdfd04cb 100644 --- a/libraries/replication.inc.php +++ b/libraries/replication.inc.php @@ -157,9 +157,13 @@ foreach ($replication_types as $type) { ",", $server_slave_replication[0]["Replicate_Wild_Do_Table"] ); - $GLOBALS['replication_info'][$type]['Wild_Ignore_Table'] = explode( - ",", $server_slave_replication[0]["Replicate_Wild_Ignore_Table"] - ); + $GLOBALS['replication_info'][$type]['Wild_Ignore_Table'] + = empty($server_slave_replication[0]["Replicate_Wild_Ignore_Table"]) + ? array() + : explode( + ",", + $server_slave_replication[0]["Replicate_Wild_Ignore_Table"] + ); } } } From 8280bb0f9e70ba15508cd67ee4716c99c0d56b74 Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Tue, 11 Nov 2014 16:12:26 +0100 Subject: [PATCH 2/3] Manage empty values of slave replication. Signed-off-by: Hugues Peccatte --- libraries/replication.inc.php | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/libraries/replication.inc.php b/libraries/replication.inc.php index 0dcdfd04cb..2f4cca8a7c 100644 --- a/libraries/replication.inc.php +++ b/libraries/replication.inc.php @@ -153,17 +153,21 @@ foreach ($replication_types as $type) { ",", $server_slave_replication[0]["Replicate_Ignore_Table"] ); - $GLOBALS['replication_info'][$type]['Wild_Do_Table'] = explode( - ",", $server_slave_replication[0]["Replicate_Wild_Do_Table"] - ); + $GLOBALS['replication_info'][$type]['Wild_Do_Table'] + = empty($server_slave_replication[0]["Replicate_Wild_Do_Table"]) + ? array() + : explode( + ",", + $server_slave_replication[0]["Replicate_Wild_Do_Table"] + ); $GLOBALS['replication_info'][$type]['Wild_Ignore_Table'] = empty($server_slave_replication[0]["Replicate_Wild_Ignore_Table"]) - ? array() - : explode( - ",", - $server_slave_replication[0]["Replicate_Wild_Ignore_Table"] - ); + ? array() + : explode( + ",", + $server_slave_replication[0]["Replicate_Wild_Ignore_Table"] + ); } } } From 829a84b46e101cc5caa3a4252ea6f4453c49528d Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Tue, 11 Nov 2014 16:24:45 +0100 Subject: [PATCH 3/3] Refactor replication_info filling. Signed-off-by: Hugues Peccatte --- libraries/replication.inc.php | 84 ++++++++++++++++++++++------------- 1 file changed, 52 insertions(+), 32 deletions(-) diff --git a/libraries/replication.inc.php b/libraries/replication.inc.php index 2f4cca8a7c..6f50ba55cf 100644 --- a/libraries/replication.inc.php +++ b/libraries/replication.inc.php @@ -125,53 +125,73 @@ foreach ($replication_types as $type) { } if ($GLOBALS['replication_info'][$type]['status']) { if ($type == "master") { - $GLOBALS['replication_info'][$type]['Do_DB'] = explode( - ",", $server_master_replication[0]["Binlog_Do_DB"] + PMA_fillReplicationInfo( + $type, 'Do_DB', $server_slave_replication[0], + 'Binlog_Do_DB' ); - $GLOBALS['replication_info'][$type]['Ignore_DB'] = explode( - ",", $server_master_replication[0]["Binlog_Ignore_DB"] + PMA_fillReplicationInfo( + $type, 'Ignore_DB', $server_slave_replication[0], + 'Binlog_Ignore_DB' ); } elseif ($type == "slave") { - $doDB = explode( - ",", $server_slave_replication[0]["Replicate_Do_DB"] - ); - if (!empty($doDB)) { - $GLOBALS['replication_info'][$type]['Do_DB'] = $doDB; - } - unset($doDB); - - $GLOBALS['replication_info'][$type]['Ignore_DB'] = explode( - ",", $server_slave_replication[0]["Replicate_Ignore_DB"] + PMA_fillReplicationInfo( + $type, 'Do_DB', $server_slave_replication[0], + 'Replicate_Do_DB' ); - $GLOBALS['replication_info'][$type]['Do_Table'] = explode( - ",", $server_slave_replication[0]["Replicate_Do_Table"] + PMA_fillReplicationInfo( + $type, 'Ignore_DB', $server_slave_replication[0], + 'Replicate_Ignore_DB' ); - $GLOBALS['replication_info'][$type]['Ignore_Table'] = explode( - ",", $server_slave_replication[0]["Replicate_Ignore_Table"] + PMA_fillReplicationInfo( + $type, 'Do_Table', $server_slave_replication[0], + 'Replicate_Do_Table' ); - $GLOBALS['replication_info'][$type]['Wild_Do_Table'] - = empty($server_slave_replication[0]["Replicate_Wild_Do_Table"]) - ? array() - : explode( - ",", - $server_slave_replication[0]["Replicate_Wild_Do_Table"] - ); + PMA_fillReplicationInfo( + $type, 'Ignore_Table', $server_slave_replication[0], + 'Replicate_Ignore_Table' + ); - $GLOBALS['replication_info'][$type]['Wild_Ignore_Table'] - = empty($server_slave_replication[0]["Replicate_Wild_Ignore_Table"]) - ? array() - : explode( - ",", - $server_slave_replication[0]["Replicate_Wild_Ignore_Table"] - ); + PMA_fillReplicationInfo( + $type, 'Wild_Do_Table', $server_slave_replication[0], + 'Replicate_Wild_Do_Table' + ); + + PMA_fillReplicationInfo( + $type, 'Wild_Ignore_Table', $server_slave_replication[0], + 'Replicate_Wild_Ignore_Table' + ); } } } +/** + * Fill global replication_info variable. + * + * @param string $type Type: master, slave + * @param string $replicationInfoKey Key in replication_info variable + * @param array $mysqlInfo MySQL data about replication + * @param string $mysqlKey MySQL key + * + * @return array + */ +function PMA_fillReplicationInfo( + $type, $replicationInfoKey, $mysqlInfo, $mysqlKey +) { + $GLOBALS['replication_info'][$type][$replicationInfoKey] + = empty($mysqlInfo[$mysqlKey]) + ? array() + : explode( + ",", + $mysqlInfo[$mysqlKey] + ); + + return $GLOBALS['replication_info'][$type][$replicationInfoKey]; +} + /** * Extracts database or table name from string *