From f990678a30f3d45d52652f90e4a19f3aec555f29 Mon Sep 17 00:00:00 2001 From: Marc Delisle Date: Sun, 20 Sep 2009 12:21:30 +0000 Subject: [PATCH] bug #2832600 [export] Slow export when having lots of databases --- ChangeLog | 1 + libraries/database_interface.lib.php | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 6adcce1e2..b8b83905c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -10,6 +10,7 @@ $HeadURL: https://phpmyadmin.svn.sourceforge.net/svnroot/phpmyadmin/trunk/phpMyA OpenOffice Spreadsheet, thanks to Thomas Pulickal - jemajoign - patch #2859788 [parser] Double-character delimiters (bug #2846239), thanks to Thomas Pulickal - jemajoign +- bug #2832600 [export] Slow export when having lots of databases 3.2.2.0 (2009-09-13) - bug #2825293 [structure] Default value for a BIT column diff --git a/libraries/database_interface.lib.php b/libraries/database_interface.lib.php index dfe7a09c1..42911a938 100644 --- a/libraries/database_interface.lib.php +++ b/libraries/database_interface.lib.php @@ -1322,14 +1322,25 @@ function PMA_DBI_get_triggers($db, $table) { $result = array(); + if (! $GLOBALS['cfg']['Server']['DisableIS']) { // Note: in http://dev.mysql.com/doc/refman/5.0/en/faqs-triggers.html // their example uses WHERE TRIGGER_SCHEMA='dbname' so let's use this // instead of WHERE EVENT_OBJECT_SCHEMA='dbname' - $triggers = PMA_DBI_fetch_result("SELECT TRIGGER_SCHEMA, TRIGGER_NAME, EVENT_MANIPULATION, ACTION_TIMING, ACTION_STATEMENT, EVENT_OBJECT_SCHEMA, EVENT_OBJECT_TABLE FROM information_schema.TRIGGERS WHERE TRIGGER_SCHEMA= '" . PMA_sqlAddslashes($db,true) . "' and EVENT_OBJECT_TABLE = '" . PMA_sqlAddslashes($table, true) . "';"); + $triggers = PMA_DBI_fetch_result("SELECT TRIGGER_SCHEMA, TRIGGER_NAME, EVENT_MANIPULATION, ACTION_TIMING, ACTION_STATEMENT, EVENT_OBJECT_SCHEMA, EVENT_OBJECT_TABLE FROM information_schema.TRIGGERS WHERE TRIGGER_SCHEMA= '" . PMA_sqlAddslashes($db,true) . "' and EVENT_OBJECT_TABLE = '" . PMA_sqlAddslashes($table, true) . "';"); + } else { + $triggers = PMA_DBI_fetch_result("SHOW TRIGGERS FROM " . PMA_sqlAddslashes($db,true) . " LIKE '" . PMA_sqlAddslashes($table, true) . "';"); + } if ($triggers) { $delimiter = '//'; foreach ($triggers as $trigger) { + if ($GLOBALS['cfg']['Server']['DisableIS']) { + $trigger['TRIGGER_NAME'] = $trigger['Trigger']; + $trigger['ACTION_TIMING'] = $trigger['Timing']; + $trigger['EVENT_MANIPULATION'] = $trigger['Event']; + $trigger['EVENT_OBJECT_TABLE'] = $trigger['Table']; + $trigger['ACTION_STATEMENT'] = $trigger['Statement']; + } $one_result = array(); $one_result['name'] = $trigger['TRIGGER_NAME']; $one_result['action_timing'] = $trigger['ACTION_TIMING'];