summaryrefslogtreecommitdiff
path: root/innobase
diff options
context:
space:
mode:
authorunknown <heikki@hundin.mysql.fi>2003-10-28 15:55:18 +0200
committerunknown <heikki@hundin.mysql.fi>2003-10-28 15:55:18 +0200
commit710418eb081b1ed1af2c5860b16cff2bbbeaf5dc (patch)
tree1bdc5af1e26a35dcb8891d6eb6e515cdc786162b /innobase
parent0152ed020b19873ca39c9da5ba73640ced65fbb9 (diff)
downloadmariadb-git-710418eb081b1ed1af2c5860b16cff2bbbeaf5dc.tar.gz
row0sel.c:
If innodb_force_recovery >= 5, do not try to fetch an old version of a clustered index record: this reduces crashes when dumping tables from a corrupt database innobase/row/row0sel.c: If innodb_force_recovery >= 5, do not try to fetch an old version of a clustered index record: this reduces crashes when dumping tables from a corrupt database
Diffstat (limited to 'innobase')
-rw-r--r--innobase/row/row0sel.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/innobase/row/row0sel.c b/innobase/row/row0sel.c
index 482f82b02ba..f02fbeeb8fd 100644
--- a/innobase/row/row0sel.c
+++ b/innobase/row/row0sel.c
@@ -3222,8 +3222,14 @@ rec_loop:
latest version of the record */
} else if (index == clust_index) {
-
- if (!lock_clust_rec_cons_read_sees(rec, index,
+
+ /* Fetch a previous version of the row if the current
+ one is not visible in the snapshot; if we have a very
+ high force recovery level set, we try to avoid crashes
+ by skipping this lookup */
+
+ if (srv_force_recovery < 5
+ && !lock_clust_rec_cons_read_sees(rec, index,
trx->read_view)) {
err = row_sel_build_prev_vers_for_mysql(