summaryrefslogtreecommitdiff
path: root/innobase/btr/btr0cur.c
diff options
context:
space:
mode:
authorheikki@hundin.mysql.fi <>2002-07-01 02:19:58 +0300
committerheikki@hundin.mysql.fi <>2002-07-01 02:19:58 +0300
commit18bb6008177c31824d5ed2a531d91ef69ebb2e7f (patch)
tree7e85b106228a6cda3b895b69fd143f12c99b4f44 /innobase/btr/btr0cur.c
parent1111a8d6a8a71aafa1c8bd3016b81ab2601a225f (diff)
downloadmariadb-git-18bb6008177c31824d5ed2a531d91ef69ebb2e7f.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
Diffstat (limited to 'innobase/btr/btr0cur.c')
-rw-r--r--innobase/btr/btr0cur.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/innobase/btr/btr0cur.c b/innobase/btr/btr0cur.c
index 67b74967e8d..f3aebb7f96f 100644
--- a/innobase/btr/btr0cur.c
+++ b/innobase/btr/btr0cur.c
@@ -1355,6 +1355,12 @@ btr_cur_update_in_place(
block = buf_block_align(rec);
if (block->is_hashed) {
+ if (row_upd_changes_ord_field_binary(NULL, index, update)) {
+
+ /* Remove possible hash index pointer to this record */
+ btr_search_update_hash_on_delete(cursor);
+ }
+
rw_lock_x_lock(&btr_search_latch);
}