bug #1550690, wrong export of constraints

This commit is contained in:
Marc Delisle
2006-10-01 18:41:10 +00:00
parent 04283677f5
commit 20efd25355
2 changed files with 9 additions and 4 deletions

View File

@@ -11,6 +11,8 @@ $Source$
case sensitivity in database names case sensitivity in database names
* tbl_relation.php: trap error 1452 when adding a foreign key * tbl_relation.php: trap error 1452 when adding a foreign key
and a constraint fails and a constraint fails
* libraries/export/sql.php: bug #1550690, wrong export of constraints,
thanks to Robert Vock
2006-09-29 Marc Delisle <lem9@users.sourceforge.net> 2006-09-29 Marc Delisle <lem9@users.sourceforge.net>
* libraries/grab_globals.lib.php: fix attack via _FILES, * libraries/grab_globals.lib.php: fix attack via _FILES,

View File

@@ -461,6 +461,7 @@ function PMA_getTableDef($db, $table, $crlf, $error_url, $show_dates = false)
// let's do the work // let's do the work
$sql_constraints_query .= 'ALTER TABLE ' . PMA_backquote($table) . $crlf; $sql_constraints_query .= 'ALTER TABLE ' . PMA_backquote($table) . $crlf;
$sql_constraints .= 'ALTER TABLE ' . PMA_backquote($table) . $crlf;
$first = TRUE; $first = TRUE;
for ($j = $i; $j < $sql_count; $j++) { for ($j = $i; $j < $sql_count; $j++) {
@@ -469,11 +470,13 @@ function PMA_getTableDef($db, $table, $crlf, $error_url, $show_dates = false)
$sql_constraints .= $crlf; $sql_constraints .= $crlf;
} }
if (strpos($sql_lines[$j], 'CONSTRAINT') === FALSE) { if (strpos($sql_lines[$j], 'CONSTRAINT') === FALSE) {
$sql_constraints_query .= preg_replace('/(FOREIGN[\s]+KEY)/', 'ADD \1', $sql_lines[$j]); $str_tmp = preg_replace('/(FOREIGN[\s]+KEY)/', 'ADD \1', $sql_lines[$j]);
$sql_constraints .= $sql_constraints_query; $sql_constraints_query .= $str_tmp;
$sql_constraints .= $str_tmp;
} else { } else {
$sql_constraints_query .= preg_replace('/(CONSTRAINT)/', 'ADD \1', $sql_lines[$j]); $str_tmp = preg_replace('/(CONSTRAINT)/', 'ADD \1', $sql_lines[$j]);
$sql_constraints .= $sql_constraints_query; $sql_constraints_query .= $str_tmp;
$sql_constraints .= $str_tmp;
} }
$first = FALSE; $first = FALSE;
} else { } else {