mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
Applying InnoDB Plugin 1.0.6 snapshot, part 6. Add Testcase for BUG#46676
1. add testcase for BUG#46676 2. Allow CREATE INDEX to be interrupted 3. ha_innobase::change_active_index(): When the history is missing, report it to the client, not to the error log 4. ChangeLog entries appplied revisions:r6169, r6170, r6175, r6177, r6179 Detailed revision comments: r6169 | calvin | 2009-11-12 14:40:43 +0200 (Thu, 12 Nov 2009) | 6 lines branches/zip: add test case for bug#46676 This crash is reproducible with InnoDB plugin 1.0.4 + MySQL 5.1.37. But no longer reproducible after MySQL 5.1.38 (with plugin 1.0.5). Add test case to catch future regression. r6170 | marko | 2009-11-12 15:49:08 +0200 (Thu, 12 Nov 2009) | 4 lines branches/zip: Allow CREATE INDEX to be interrupted. (Issue #354) rb://183 approved by Heikki Tuuri r6175 | vasil | 2009-11-16 20:07:39 +0200 (Mon, 16 Nov 2009) | 4 lines branches/zip: Wrap line at 78th char in the ChangeLog r6177 | calvin | 2009-11-16 20:20:38 +0200 (Mon, 16 Nov 2009) | 2 lines branches/zip: add an entry to ChangeLog for r6065 r6179 | marko | 2009-11-17 10:19:34 +0200 (Tue, 17 Nov 2009) | 2 lines branches/zip: ha_innobase::change_active_index(): When the history is missing, report it to the client, not to the error log.
This commit is contained in:
@@ -785,6 +785,9 @@ convert_error_code_to_mysql(
|
||||
case DB_SUCCESS:
|
||||
return(0);
|
||||
|
||||
case DB_INTERRUPTED:
|
||||
my_error(ER_QUERY_INTERRUPTED, MYF(0));
|
||||
/* fall through */
|
||||
case DB_ERROR:
|
||||
default:
|
||||
return(-1); /* unspecified error */
|
||||
@@ -5238,8 +5241,10 @@ ha_innobase::change_active_index(
|
||||
prebuilt->index);
|
||||
|
||||
if (UNIV_UNLIKELY(!prebuilt->index_usable)) {
|
||||
sql_print_warning("InnoDB: insufficient history for index %u",
|
||||
keynr);
|
||||
push_warning_printf(user_thd, MYSQL_ERROR::WARN_LEVEL_WARN,
|
||||
HA_ERR_TABLE_DEF_CHANGED,
|
||||
"InnoDB: insufficient history for index %u",
|
||||
keynr);
|
||||
/* The caller seems to ignore this. Thus, we must check
|
||||
this again in row_search_for_mysql(). */
|
||||
DBUG_RETURN(2);
|
||||
@@ -7361,11 +7366,15 @@ ha_innobase::check(
|
||||
|
||||
ret = row_check_table_for_mysql(prebuilt);
|
||||
|
||||
if (ret == DB_SUCCESS) {
|
||||
switch (ret) {
|
||||
case DB_SUCCESS:
|
||||
return(HA_ADMIN_OK);
|
||||
case DB_INTERRUPTED:
|
||||
my_error(ER_QUERY_INTERRUPTED, MYF(0));
|
||||
return(-1);
|
||||
default:
|
||||
return(HA_ADMIN_CORRUPT);
|
||||
}
|
||||
|
||||
return(HA_ADMIN_CORRUPT);
|
||||
}
|
||||
|
||||
/*************************************************************//**
|
||||
|
||||
Reference in New Issue
Block a user