bug #4830 Maximum execution time exceeded in Util.class.php (better fix)

Signed-off-by: Marc Delisle <marc@infomarc.info>
This commit is contained in:
Marc Delisle 2015-05-02 06:28:03 -04:00
parent c1ed2803d6
commit 2e7bcfcee4
2 changed files with 22 additions and 8 deletions

View File

@ -9,6 +9,7 @@ phpMyAdmin - ChangeLog
- bug #4878 Column list of central columns is not cleared
- bug #4881 jQuery dialogs of the Designer are not displayed in fullscreen
- bug #4883 Search function breaks when searching for certain combinations of backslashes and slashes
- bug #4830 Maximum execution time exceeded in Util.class.php (better fix)
4.4.4.0 (2015-04-26)
- bug #4863 Edit vs Change

View File

@ -2839,6 +2839,8 @@ class PMA_DisplayResults
$row_info = $this->_getRowInfoForSpecialLinks($row, $col_order);
$previousMetaOrgTable = '';
$columnCount = $this->__get('fields_cnt');
for ($currentColumn = 0;
$currentColumn < $columnCount;
@ -2984,14 +2986,25 @@ class PMA_DisplayResults
'transform_key' => $meta->name,
);
$unique_conditions = PMA_Util::getUniqueCondition(
$dt_result,
$this->__get('fields_cnt'),
$this->__get('fields_meta'),
$row,
false,
$meta->orgtable
);
/*
* The result set can have columns from more than one table,
* this is why we have to check for the unique conditions
* related to this table; however getUniqueCondition() is
* costly and does not need to be called if we already know
* the conditions for the current table.
*/
if ($meta->orgtable != $previousMetaOrgTable) {
$unique_conditions = PMA_Util::getUniqueCondition(
$dt_result,
$this->__get('fields_cnt'),
$this->__get('fields_meta'),
$row,
false,
$meta->orgtable
);
$previousMetaOrgTable = $meta->orgtable;
}
$transform_url_params = array(
'db' => $this->__get('db'),