diff --git a/ChangeLog b/ChangeLog index d5d5f661a..aff67b5ad 100644 --- a/ChangeLog +++ b/ChangeLog @@ -91,6 +91,7 @@ $HeadURL: https://phpmyadmin.svn.sourceforge.net/svnroot/phpmyadmin/trunk/phpMyA - bug #1748633 Incorrect parameter validation for VIEWs + [lang] Russian revision, thanks to Victor Volkov and the users of php-myadmin.ru +- Do not try to delete an internal relation if we just deleted an InnoDB one 2.10.2.0 (2007-06-15) diff --git a/pmd_relation_upd.php b/pmd_relation_upd.php index 5941353c5..c7baf450a 100644 --- a/pmd_relation_upd.php +++ b/pmd_relation_upd.php @@ -18,15 +18,13 @@ include_once 'pmd_save_pos.php'; list($DB1,$T1) = explode(".",$T1); list($DB2,$T2) = explode(".",$T2); -//++++++++++++++++++++++++++++++++++++++++++++++++++++ InnoDB ++++++++++++++++++++++++++++++++++++++++++++++++++++ - - $tables = PMA_DBI_get_tables_full($db, $T1); $type_T1 = strtoupper($tables[$T1]['ENGINE']); $tables = PMA_DBI_get_tables_full($db, $T2); $type_T2 = strtoupper($tables[$T2]['ENGINE']); if ($type_T1 == 'INNODB' && $type_T2 == 'INNODB') { + // InnoDB $existrel_innodb = PMA_getForeigners($DB2, $T2, '', 'innodb'); if (PMA_MYSQL_INT_VERSION >= 40013 && isset($existrel_innodb[$F2]['constraint'])) { @@ -35,11 +33,9 @@ if ($type_T1 == 'INNODB' && $type_T2 == 'INNODB') { . PMA_backquote($existrel_innodb[$F2]['constraint']); $upd_rs = PMA_DBI_query($upd_query); } -} -//--------------------------------------------------------------------------------------------------- - - -PMA_query_as_cu('DELETE FROM '.$cfg['Server']['relation'].' WHERE ' +} else { + // internal relations + PMA_query_as_cu('DELETE FROM '.$cfg['Server']['relation'].' WHERE ' . 'master_db = \'' . PMA_sqlAddslashes($DB2) . '\'' . 'AND master_table = \'' . PMA_sqlAddslashes($T2) . '\'' . 'AND master_field = \'' . PMA_sqlAddslashes($F2) . '\'' @@ -47,7 +43,7 @@ PMA_query_as_cu('DELETE FROM '.$cfg['Server']['relation'].' WHERE ' . 'AND foreign_table = \'' . PMA_sqlAddslashes($T1) . '\'' . 'AND foreign_field = \'' . PMA_sqlAddslashes($F1) . '\'' , FALSE, PMA_DBI_QUERY_STORE); - +} PMD_return(1, 'strRelationDeleted'); function PMD_return($b,$ret) @@ -58,4 +54,3 @@ function PMD_return($b,$ret) die(''); } ?> -