summaryrefslogtreecommitdiff
path: root/innobase/row/row0ins.c
diff options
context:
space:
mode:
authorunknown <heikki@hundin.mysql.fi>2002-07-01 02:19:58 +0300
committerunknown <heikki@hundin.mysql.fi>2002-07-01 02:19:58 +0300
commitea13cafbfe83b1aba0c2dd6582eebd2acc5c6729 (patch)
tree7e85b106228a6cda3b895b69fd143f12c99b4f44 /innobase/row/row0ins.c
parentfbaede459b0e6e0a4e77930cf345d44f05547d1a (diff)
downloadmariadb-git-ea13cafbfe83b1aba0c2dd6582eebd2acc5c6729.tar.gz
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 innobase/btr/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 innobase/row/row0ins.c: The UNIV_DEBUG version asserted if a foreign key check failed because of a lock wait timeout
Diffstat (limited to 'innobase/row/row0ins.c')
-rw-r--r--innobase/row/row0ins.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/innobase/row/row0ins.c b/innobase/row/row0ins.c
index bbec004176b..ee4805d51d2 100644
--- a/innobase/row/row0ins.c
+++ b/innobase/row/row0ins.c
@@ -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);
+
+ timeout_expired = srv_suspend_mysql_thread(thr);
- row_mysql_handle_errors(&err, thr_get_trx(thr), thr, NULL);
+ if (!timeout_expired) {
+
+ goto run_again;
+ }
- goto run_again;
+ err = DB_LOCK_WAIT_TIMEOUT;
}
return(err);