Commit 395e1dcd authored by Marko Mäkelä's avatar Marko Mäkelä

Merge 10.2 into 10.3

parents 130d9490 fe6eac0c
...@@ -9,8 +9,8 @@ update t1 set c = 'MariaDB'; ...@@ -9,8 +9,8 @@ update t1 set c = 'MariaDB';
update t1 set c = 'InnoDB'; update t1 set c = 'InnoDB';
set global debug_dbug = '+d,ib_undo_trunc'; set global debug_dbug = '+d,ib_undo_trunc';
commit; commit;
drop table t1;
call mtr.add_suppression("InnoDB: innodb_undo_tablespaces=0 disables dedicated undo log tablespaces"); call mtr.add_suppression("InnoDB: innodb_undo_tablespaces=0 disables dedicated undo log tablespaces");
call mtr.add_suppression("InnoDB: The redo log transaction size "); call mtr.add_suppression("InnoDB: The redo log transaction size ");
SET GLOBAL innodb_fast_shutdown=0; SET GLOBAL innodb_fast_shutdown=0;
FOUND 1 /ib_undo_trunc/ in mysqld.1.err FOUND 1 /ib_undo_trunc/ in mysqld.1.err
drop table t1;
...@@ -34,6 +34,7 @@ update t1 set c = 'MariaDB'; ...@@ -34,6 +34,7 @@ update t1 set c = 'MariaDB';
update t1 set c = 'InnoDB'; update t1 set c = 'InnoDB';
eval set global debug_dbug = '+d,$SEARCH_PATTERN'; eval set global debug_dbug = '+d,$SEARCH_PATTERN';
commit; commit;
drop table t1;
call mtr.add_suppression("InnoDB: innodb_undo_tablespaces=0 disables dedicated undo log tablespaces"); call mtr.add_suppression("InnoDB: innodb_undo_tablespaces=0 disables dedicated undo log tablespaces");
# FIXME: remove this work-around, and generate less log! # FIXME: remove this work-around, and generate less log!
call mtr.add_suppression("InnoDB: The redo log transaction size "); call mtr.add_suppression("InnoDB: The redo log transaction size ");
...@@ -43,5 +44,3 @@ SET GLOBAL innodb_fast_shutdown=0; ...@@ -43,5 +44,3 @@ SET GLOBAL innodb_fast_shutdown=0;
# FIXME: remove this work-around, and generate less log! # FIXME: remove this work-around, and generate less log!
--let $restart_parameters= --innodb-buffer-pool-size=16m --innodb-undo-tablespaces=1 --let $restart_parameters= --innodb-buffer-pool-size=16m --innodb-undo-tablespaces=1
--source include/start_mysqld.inc --source include/start_mysqld.inc
drop table t1;
...@@ -4642,7 +4642,7 @@ row_search_mvcc( ...@@ -4642,7 +4642,7 @@ row_search_mvcc(
if (err != DB_SUCCESS) { if (err != DB_SUCCESS) {
rec = NULL; rec = NULL;
goto lock_wait_or_error; goto page_read_error;
} }
pcur->trx_if_known = trx; pcur->trx_if_known = trx;
...@@ -4696,7 +4696,7 @@ row_search_mvcc( ...@@ -4696,7 +4696,7 @@ row_search_mvcc(
index->table->file_unreadable = true; index->table->file_unreadable = true;
} }
rec = NULL; rec = NULL;
goto lock_wait_or_error; goto page_read_error;
} }
} }
...@@ -4717,7 +4717,7 @@ row_search_mvcc( ...@@ -4717,7 +4717,7 @@ row_search_mvcc(
if (!index->table->is_readable()) { if (!index->table->is_readable()) {
err = DB_DECRYPTION_FAILED; err = DB_DECRYPTION_FAILED;
goto lock_wait_or_error; goto page_read_error;
} }
ut_ad(!!page_rec_is_comp(rec) == comp); ut_ad(!!page_rec_is_comp(rec) == comp);
...@@ -4824,7 +4824,7 @@ row_search_mvcc( ...@@ -4824,7 +4824,7 @@ row_search_mvcc(
ut_ad(0); ut_ad(0);
err = DB_CORRUPTION; err = DB_CORRUPTION;
goto lock_wait_or_error; goto page_read_error;
} else { } else {
/* The user may be dumping a corrupt table. Jump /* The user may be dumping a corrupt table. Jump
over the corruption to recover as much as possible. */ over the corruption to recover as much as possible. */
...@@ -5645,6 +5645,10 @@ row_search_mvcc( ...@@ -5645,6 +5645,10 @@ row_search_mvcc(
goto normal_return; goto normal_return;
lock_wait_or_error: lock_wait_or_error:
if (!dict_index_is_spatial(index)) {
btr_pcur_store_position(pcur, &mtr);
}
page_read_error:
/* Reset the old and new "did semi-consistent read" flags. */ /* Reset the old and new "did semi-consistent read" flags. */
if (UNIV_UNLIKELY(prebuilt->row_read_type if (UNIV_UNLIKELY(prebuilt->row_read_type
== ROW_READ_DID_SEMI_CONSISTENT)) { == ROW_READ_DID_SEMI_CONSISTENT)) {
...@@ -5652,11 +5656,6 @@ row_search_mvcc( ...@@ -5652,11 +5656,6 @@ row_search_mvcc(
} }
did_semi_consistent_read = FALSE; did_semi_consistent_read = FALSE;
/*-------------------------------------------------------------*/
if (!dict_index_is_spatial(index)) {
btr_pcur_store_position(pcur, &mtr);
}
lock_table_wait: lock_table_wait:
mtr.commit(); mtr.commit();
mtr_has_extra_clust_latch = FALSE; mtr_has_extra_clust_latch = FALSE;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment