Commit 4eafe715 authored by unknown's avatar unknown

Merge sinisa@work.mysql.com:/home/bk/mysql

into sinisa.nasamreza.org:/mnt/work/mysql
parents b00b0842 8d8387ee
...@@ -1000,8 +1000,8 @@ row_update_cascade_for_mysql( ...@@ -1000,8 +1000,8 @@ row_update_cascade_for_mysql(
or set null operation */ or set null operation */
dict_table_t* table) /* in: table where we do the operation */ dict_table_t* table) /* in: table where we do the operation */
{ {
ulint err; ulint err;
trx_t* trx; trx_t* trx;
trx = thr_get_trx(thr); trx = thr_get_trx(thr);
run_again: run_again:
...@@ -1012,11 +1012,26 @@ row_update_cascade_for_mysql( ...@@ -1012,11 +1012,26 @@ row_update_cascade_for_mysql(
err = trx->error_state; err = trx->error_state;
/* Note that the cascade node is a subnode of another InnoDB
query graph node. We do a normal lock wait in this node, but
all errors are handled by the parent node. */
if (err == DB_LOCK_WAIT) { if (err == DB_LOCK_WAIT) {
que_thr_stop_for_mysql(thr); /* Handle lock wait here */
row_mysql_handle_errors(&err, trx, thr, NULL); que_thr_stop_for_mysql(thr);
srv_suspend_mysql_thread(thr);
/* Note that a lock wait may also end in a lock wait timeout */
if (trx->error_state != DB_SUCCESS) {
return(trx->error_state);
}
/* Retry operation after a normal lock wait */
goto run_again; goto run_again;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment