diff --git a/ChangeLog b/ChangeLog index 460da3830..4572a255d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -86,6 +86,8 @@ $Id$ - [core] Update library PHPExcel to version 1.7.3c 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 40ce37773..1782a3e6c 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; + } } /**