diff options
author | unknown <heikki@hundin.mysql.fi> | 2003-10-28 15:55:18 +0200 |
---|---|---|
committer | unknown <heikki@hundin.mysql.fi> | 2003-10-28 15:55:18 +0200 |
commit | 710418eb081b1ed1af2c5860b16cff2bbbeaf5dc (patch) | |
tree | 1bdc5af1e26a35dcb8891d6eb6e515cdc786162b /innobase | |
parent | 0152ed020b19873ca39c9da5ba73640ced65fbb9 (diff) | |
download | mariadb-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.c | 10 |
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( |