bug 983992

This commit is contained in:
Marc Delisle
2004-07-05 14:55:59 +00:00
parent a4e95ef78a
commit 3f7382d386
2 changed files with 20 additions and 7 deletions

View File

@@ -11,6 +11,9 @@ $Source$
in left frame when many databases are there (original theme), in left frame when many databases are there (original theme),
thanks to Michael Keck thanks to Michael Keck
* header.inc.php: bug 965594: spaces after colons, and remove old code * header.inc.php: bug 965594: spaces after colons, and remove old code
* libraries/sqlparser.lib.php: bug 983992, error in search mode because
MySQL 4.0.18+ has changed the way to report the foreign key references
when the foreign key is in a different db
2004-07-02 Marc Delisle <lem9@users.sourceforge.net> 2004-07-02 Marc Delisle <lem9@users.sourceforge.net>
* main.php: put Create button on the same line as the input field * main.php: put Create button on the same line as the input field

View File

@@ -1498,7 +1498,16 @@ if ($is_minimum_common == FALSE) {
if ($in_bracket) { if ($in_bracket) {
$foreign[$foreign_key_number]['ref_index_list'][] = $identifier; $foreign[$foreign_key_number]['ref_index_list'][] = $identifier;
} else { } else {
// identifier can be table or db.table // for MySQL 4.0.18, identifier is
// `table` or `db`.`table`
// first pass will pick the db name
// next pass will execute the else and pick the
// db name in $db_table[0]
if ($arr[$i+1]['type'] == 'punct_qualifier') {
$foreign[$foreign_key_number]['ref_db_name'] = $identifier;
} else {
// for MySQL 4.0.16, identifier is
// `table` or `db.table`
$db_table = explode('.',$identifier); $db_table = explode('.',$identifier);
if (isset($db_table[1])) { if (isset($db_table[1])) {
$foreign[$foreign_key_number]['ref_db_name'] = $db_table[0]; $foreign[$foreign_key_number]['ref_db_name'] = $db_table[0];
@@ -1509,6 +1518,7 @@ if ($is_minimum_common == FALSE) {
} }
} }
} }
}
} // end for $i (loop #3) } // end for $i (loop #3)
if (isset($foreign)) { if (isset($foreign)) {