mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
dict0dict.c:
Remove redundant code; parse both the database name and the table name in a FOREIGN KEY constraint with quotes in mind row0mysql.c, ha_innodb.cc, sql_table.cc: Return error message Cannot delete or update a parent row... if we try to drop a table which is referenced by a FOREIGN KEY constraint, and the user has not set foreign_key_checks=0 sql/sql_table.cc: Return error message Cannot delete or update a parent row... if we try to drop a table which is referenced by a FOREIGN KEY constraint, and the user has not set foreign_key_checks=0 sql/ha_innodb.cc: Return error message Cannot delete or update a parent row... if we try to drop a table which is referenced by a FOREIGN KEY constraint, and the user has not set foreign_key_checks=0 innobase/row/row0mysql.c: Return error message Cannot delete or update a parent row... if we try to drop a table which is referenced by a FOREIGN KEY constraint, and the user has not set foreign_key_checks=0 innobase/dict/dict0dict.c: Remove redundant code; parse both the database name and the table name in a FOREIGN KEY constraint with quotes in mind
This commit is contained in:
@ -276,7 +276,7 @@ convert_error_code_to_mysql(
|
||||
|
||||
} else if (error == (int) DB_CANNOT_DROP_CONSTRAINT) {
|
||||
|
||||
return(HA_WRONG_CREATE_OPTION);
|
||||
return(HA_ERR_ROW_IS_REFERENCED);
|
||||
|
||||
} else if (error == (int) DB_COL_APPEARS_TWICE_IN_INDEX) {
|
||||
|
||||
@ -3572,6 +3572,7 @@ ha_innobase::delete_table(
|
||||
int error;
|
||||
trx_t* parent_trx;
|
||||
trx_t* trx;
|
||||
THD *thd= current_thd;
|
||||
char norm_name[1000];
|
||||
|
||||
DBUG_ENTER("ha_innobase::delete_table");
|
||||
@ -3597,6 +3598,14 @@ ha_innobase::delete_table(
|
||||
trx->mysql_thd = current_thd;
|
||||
trx->mysql_query_str = &((*current_thd).query);
|
||||
|
||||
if (thd->options & OPTION_NO_FOREIGN_KEY_CHECKS) {
|
||||
trx->check_foreigns = FALSE;
|
||||
}
|
||||
|
||||
if (thd->options & OPTION_RELAXED_UNIQUE_CHECKS) {
|
||||
trx->check_unique_secondary = FALSE;
|
||||
}
|
||||
|
||||
name_len = strlen(name);
|
||||
|
||||
assert(name_len < 1000);
|
||||
|
Reference in New Issue
Block a user