row0ins.c:

The UNIV_DEBUG version asserted if a foreign key check failed because of a lock wait timeout
btr0cur.c:
  Fix a bug: if the primary key was updated (or delete + insert) so that only the case of characters changed, we were left with a dangling adaptive hash index pointer, often causing an assertion failure in page0page.ic line 515
This commit is contained in:
heikki@hundin.mysql.fi 2002-07-01 02:19:58 +03:00
commit 18bb600817
2 changed files with 14 additions and 2 deletions

View file

@ -627,6 +627,7 @@ row_ins_check_foreign_constraint(
dict_table_t* check_table;
dict_index_t* check_index;
ulint n_fields_cmp;
ibool timeout_expired;
rec_t* rec;
btr_pcur_t pcur;
ibool moved;
@ -790,10 +791,15 @@ do_possible_lock_wait:
thr_get_trx(thr)->error_state = err;
que_thr_stop_for_mysql(thr);
row_mysql_handle_errors(&err, thr_get_trx(thr), thr, NULL);
goto run_again;
timeout_expired = srv_suspend_mysql_thread(thr);
if (!timeout_expired) {
goto run_again;
}
err = DB_LOCK_WAIT_TIMEOUT;
}
return(err);