From 6c002b9fbc088f4d0d2172d5407836321b16312e Mon Sep 17 00:00:00 2001 From: Madhura Jayaratne Date: Mon, 26 Oct 2015 16:55:30 +1100 Subject: [PATCH 1/2] Fix #11594 'only_db' config option bug when db names contain underscore and are grouped Signed-off-by: Madhura Jayaratne --- ChangeLog | 1 + libraries/navigation/Nodes/Node.class.php | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 024cf536f7..3c764923d6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -6,6 +6,7 @@ phpMyAdmin - ChangeLog - issue #11592 Missing headers in zipped export - issue #11590 Parser: Array to string conversion - issue #11597 Huge binary log growth on 4.5.x +- issue #11594 'only_db' config option bug when db names contain underscore and are grouped 4.5.1.0 (2015-10-23) - issue Invalid argument supplied for foreach() diff --git a/libraries/navigation/Nodes/Node.class.php b/libraries/navigation/Nodes/Node.class.php index 849901566a..546759744d 100644 --- a/libraries/navigation/Nodes/Node.class.php +++ b/libraries/navigation/Nodes/Node.class.php @@ -451,7 +451,8 @@ class Node $query .= "ORDER BY DB_first_level ASC "; $query .= "LIMIT $pos, $maxItems"; $query .= ") t2 "; - $query .= "WHERE 1 = LOCATE(CONCAT(DB_first_level, "; + $query .= $this->_getWhereClause('SCHEMA_NAME', $searchClause); + $query .= " AND 1 = LOCATE(CONCAT(DB_first_level, "; $query .= "'$dbSeparator'), "; $query .= "CONCAT(SCHEMA_NAME, "; $query .= "'$dbSeparator')) "; @@ -482,7 +483,7 @@ class Node } $query = "SHOW DATABASES "; - $query .= $this->_getWhereClause('Database', ''); + $query .= $this->_getWhereClause('Database', $searchClause); $query .= " AND ("; $subClauses = array(); foreach ($prefixes as $prefix) { From 2e3ed069c651f83585b3c4e6c34f09917c82965b Mon Sep 17 00:00:00 2001 From: Madhura Jayaratne Date: Mon, 26 Oct 2015 17:06:04 +1100 Subject: [PATCH 2/2] Fix tests Signed-off-by: Madhura Jayaratne --- libraries/navigation/Nodes/Node.class.php | 2 +- test/classes/navigation/PMA_Node_test.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/navigation/Nodes/Node.class.php b/libraries/navigation/Nodes/Node.class.php index 546759744d..ce49a81865 100644 --- a/libraries/navigation/Nodes/Node.class.php +++ b/libraries/navigation/Nodes/Node.class.php @@ -452,7 +452,7 @@ class Node $query .= "LIMIT $pos, $maxItems"; $query .= ") t2 "; $query .= $this->_getWhereClause('SCHEMA_NAME', $searchClause); - $query .= " AND 1 = LOCATE(CONCAT(DB_first_level, "; + $query .= "AND 1 = LOCATE(CONCAT(DB_first_level, "; $query .= "'$dbSeparator'), "; $query .= "CONCAT(SCHEMA_NAME, "; $query .= "'$dbSeparator')) "; diff --git a/test/classes/navigation/PMA_Node_test.php b/test/classes/navigation/PMA_Node_test.php index 6557dc91e2..38241674de 100644 --- a/test/classes/navigation/PMA_Node_test.php +++ b/test/classes/navigation/PMA_Node_test.php @@ -362,7 +362,7 @@ class Node_Test extends PHPUnit_Framework_TestCase $expectedSql .= "ORDER BY DB_first_level ASC "; $expectedSql .= "LIMIT $pos, $limit"; $expectedSql .= ") t2 "; - $expectedSql .= "WHERE 1 = LOCATE(CONCAT(DB_first_level, '_'), "; + $expectedSql .= "WHERE TRUE AND 1 = LOCATE(CONCAT(DB_first_level, '_'), "; $expectedSql .= "CONCAT(SCHEMA_NAME, '_')) "; $expectedSql .= "ORDER BY SCHEMA_NAME ASC";