diff --git a/ChangeLog b/ChangeLog index d259bac3c..62009196e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -6,6 +6,8 @@ $Id$ $HeadURL: https://phpmyadmin.svn.sourceforge.net/svnroot/phpmyadmin/trunk/phpMyAdmin/ChangeLog $ 3.3.5.0 (not yet released) +- patch #2932113 [information_schema] Slow export when having lots of + databases, thanks to Stéphane Pontier - shadow_walker 3.3.4.0 (not yet released) - bug #2996161 [import] properly escape import value diff --git a/libraries/mysql_charsets.lib.php b/libraries/mysql_charsets.lib.php index b0274d223..0b583d6a0 100644 --- a/libraries/mysql_charsets.lib.php +++ b/libraries/mysql_charsets.lib.php @@ -164,7 +164,17 @@ function PMA_getDbCollation($db) { return 'utf8_general_ci'; } - return PMA_DBI_fetch_value('SELECT DEFAULT_COLLATION_NAME FROM information_schema.SCHEMATA WHERE SCHEMA_NAME = \'' . PMA_sqlAddSlashes($db) . '\' LIMIT 1;'); + if (! $GLOBALS['cfg']['Server']['DisableIS']) { + // this is slow with thousands of databases + return PMA_DBI_fetch_value('SELECT DEFAULT_COLLATION_NAME FROM information_schema.SCHEMATA WHERE SCHEMA_NAME = \'' . PMA_sqlAddSlashes($db) . '\' LIMIT 1;'); + } else { + PMA_DBI_select_db($db); + $return = PMA_DBI_fetch_value('SHOW VARIABLES LIKE \'collation_database\'', 0, 1); + if ($db !== $GLOBALS['db']) { + PMA_DBI_select_db($GLOBALS['db']); + } + return $return; + } } /**