summaryrefslogtreecommitdiff
path: root/storage/xtradb/dict/dict0dict.c
diff options
context:
space:
mode:
authorMichael Widenius <monty@askmonty.org>2011-12-11 11:34:44 +0200
committerMichael Widenius <monty@askmonty.org>2011-12-11 11:34:44 +0200
commit6d4224a31c9d32c8f8067a4f7d16daa29bcdee6b (patch)
tree79e3143528495069ad232f673532573b30afe425 /storage/xtradb/dict/dict0dict.c
parent3e2cb35e11cb5ee6668d538a62a3b32e017944a5 (diff)
parent701c0f822abe4ee9eeafd244fa30dc2fcf067b81 (diff)
downloadmariadb-git-6d4224a31c9d32c8f8067a4f7d16daa29bcdee6b.tar.gz
Merge with 5.2.
no_error handling for select (used by INSERT ... SELECT) still needs to be fixed, but I will do that in a separate commit
Diffstat (limited to 'storage/xtradb/dict/dict0dict.c')
-rw-r--r--storage/xtradb/dict/dict0dict.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/storage/xtradb/dict/dict0dict.c b/storage/xtradb/dict/dict0dict.c
index 8d4bd76c32c..6b7e0bcffd2 100644
--- a/storage/xtradb/dict/dict0dict.c
+++ b/storage/xtradb/dict/dict0dict.c
@@ -4527,6 +4527,8 @@ dict_store_statistics(
break;
}
+ btr_pcur_store_position(&pcur, &mtr);
+
if (rec_get_deleted_flag(rec, 0)) {
/* don't count */
i--;
@@ -4567,6 +4569,10 @@ dict_store_statistics(
rests--;
next_rec:
+ mtr_commit(&mtr);
+ mtr_start(&mtr);
+ btr_pcur_restore_position(BTR_MODIFY_LEAF, &pcur, &mtr);
+
btr_pcur_move_to_next_user_rec(&pcur, &mtr);
}
btr_pcur_close(&pcur);
@@ -4657,6 +4663,7 @@ dict_update_statistics(
do {
if (table->is_corrupt) {
ut_a(srv_pass_corrupt_table);
+ dict_table_stats_unlock(table, RW_X_LATCH);
return;
}