Merge the fix for Bug#49238 from SVN
(without the unrelated whitespace changes): ------------------------------------------------------------------------ r7009 | jyang | 2010-04-29 20:44:56 +0300 (Thu, 29 Apr 2010) | 6 lines branches/5.0: Port fix for bug #49238 (Creating/Dropping a temporary table while at 1023 transactions will cause assert) from 5.1 to branches/5.1. Separate action for return value DB_TOO_MANY_CONCURRENT_TRXS from that of DB_MUST_GET_MORE_FILE_SPACE in row_drop_table_for_mysql(). ------------------------------------------------------------------------
This commit is contained in:
parent
ecc2d2793f
commit
b2318bce9e
@ -3335,20 +3335,13 @@ fputs(" InnoDB: You are trying to drop table ", stderr);
|
|||||||
|
|
||||||
err = trx->error_state;
|
err = trx->error_state;
|
||||||
|
|
||||||
if (err != DB_SUCCESS) {
|
switch (err) {
|
||||||
ut_a(err == DB_OUT_OF_FILE_SPACE);
|
|
||||||
|
|
||||||
err = DB_MUST_GET_MORE_FILE_SPACE;
|
|
||||||
|
|
||||||
row_mysql_handle_errors(&err, trx, thr, NULL);
|
|
||||||
|
|
||||||
ut_error;
|
|
||||||
} else {
|
|
||||||
ibool is_path;
|
ibool is_path;
|
||||||
const char* name_or_path;
|
const char* name_or_path;
|
||||||
|
|
||||||
|
case DB_SUCCESS:
|
||||||
space_id = table->space;
|
space_id = table->space;
|
||||||
|
|
||||||
if (table->dir_path_of_temp_table != NULL) {
|
if (table->dir_path_of_temp_table != NULL) {
|
||||||
dir_path_of_temp_table =
|
dir_path_of_temp_table =
|
||||||
mem_strdup(table->dir_path_of_temp_table);
|
mem_strdup(table->dir_path_of_temp_table);
|
||||||
@ -3407,7 +3400,27 @@ fputs(" InnoDB: You are trying to drop table ", stderr);
|
|||||||
err = DB_ERROR;
|
err = DB_ERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DB_TOO_MANY_CONCURRENT_TRXS:
|
||||||
|
/* Cannot even find a free slot for the
|
||||||
|
the undo log. We can directly exit here
|
||||||
|
and return the DB_TOO_MANY_CONCURRENT_TRXS
|
||||||
|
error. */
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DB_OUT_OF_FILE_SPACE:
|
||||||
|
err = DB_MUST_GET_MORE_FILE_SPACE;
|
||||||
|
|
||||||
|
row_mysql_handle_errors(&err, trx, thr, NULL);
|
||||||
|
|
||||||
|
/* Fall through to raise error */
|
||||||
|
|
||||||
|
default:
|
||||||
|
/* No other possible error returns */
|
||||||
|
ut_error;
|
||||||
}
|
}
|
||||||
|
|
||||||
funct_exit:
|
funct_exit:
|
||||||
|
|
||||||
trx_commit_for_mysql(trx);
|
trx_commit_for_mysql(trx);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user