diff options
Diffstat (limited to 'sql/sql_table.cc')
-rw-r--r-- | sql/sql_table.cc | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 94426e914f8..842ece1dec4 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -3321,7 +3321,7 @@ bool mysql_create_table_no_lock(THD *thd, if (key->type == Key::FOREIGN_KEY && !part_info->is_auto_partitioned) { - my_error(ER_CANNOT_ADD_FOREIGN, MYF(0)); + my_error(ER_FOREIGN_KEY_ON_PARTITIONED, MYF(0)); goto err; } } @@ -4297,7 +4297,14 @@ static bool mysql_admin_table(THD* thd, TABLE_LIST* tables, view_checksum(thd, table) == HA_ADMIN_WRONG_CHECKSUM) push_warning(thd, MYSQL_ERROR::WARN_LEVEL_ERROR, ER_VIEW_CHECKSUM, ER(ER_VIEW_CHECKSUM)); - result_code= HA_ADMIN_CORRUPT; + if (thd->main_da.is_error() && + (thd->main_da.sql_errno() == ER_NO_SUCH_TABLE || + thd->main_da.sql_errno() == ER_FILE_NOT_FOUND)) + /* A missing table is just issued as a failed command */ + result_code= HA_ADMIN_FAILED; + else + /* Default failure code is corrupt table */ + result_code= HA_ADMIN_CORRUPT; goto send_result; } @@ -4639,7 +4646,7 @@ err: bool mysql_backup_table(THD* thd, TABLE_LIST* table_list) { DBUG_ENTER("mysql_backup_table"); - WARN_DEPRECATED(thd, "5.2", "BACKUP TABLE", + WARN_DEPRECATED(thd, "6.0", "BACKUP TABLE", "MySQL Administrator (mysqldump, mysql)"); DBUG_RETURN(mysql_admin_table(thd, table_list, 0, "backup", TL_READ, 0, 0, 0, 0, @@ -4650,7 +4657,7 @@ bool mysql_backup_table(THD* thd, TABLE_LIST* table_list) bool mysql_restore_table(THD* thd, TABLE_LIST* table_list) { DBUG_ENTER("mysql_restore_table"); - WARN_DEPRECATED(thd, "5.2", "RESTORE TABLE", + WARN_DEPRECATED(thd, "6.0", "RESTORE TABLE", "MySQL Administrator (mysqldump, mysql)"); DBUG_RETURN(mysql_admin_table(thd, table_list, 0, "restore", TL_WRITE, 1, 1, 0, |