Browse Source
branches/zip: Write PAGE_MAX_TRX_ID to the redo log. Otherwise,
branches/zip: Write PAGE_MAX_TRX_ID to the redo log. Otherwise,
transactions that are started before the rollback of incomplete transactions has finished may have an inconsistent view of the secondary indexes. dict_index_is_sec_or_ibuf(): Auxiliary function for controlling updates and checks of PAGE_MAX_TRX_ID: check whether an index is a secondary index or the insert buffer tree. page_set_max_trx_id(), page_update_max_trx_id(), lock_rec_insert_check_and_lock(), lock_sec_rec_modify_check_and_lock(), btr_cur_ins_lock_and_undo(), btr_cur_upd_lock_and_undo(): Add the parameter mtr. page_set_max_trx_id(): Allow mtr to be NULL. When mtr==NULL, do not attempt to write to the redo log. This only occurs when creating a page or reorganizing a compressed page. In these cases, the PAGE_MAX_TRX_ID will be set correctly during the application of redo log records, even though there is no explicit log record about it. btr_discard_only_page_on_level(): Preserve PAGE_MAX_TRX_ID. This function should be unreachable, though. btr_cur_pessimistic_update(): Update PAGE_MAX_TRX_ID. Add some assertions for checking that PAGE_MAX_TRX_ID is set on all secondary index leaf pages. rb://115 tested by Michael, fixes Issue #211pull/374/head
12 changed files with 171 additions and 40 deletions
-
12ChangeLog
-
23btr/btr0btr.c
-
35btr/btr0cur.c
-
7ibuf/ibuf0ibuf.c
-
10include/dict0dict.h
-
20include/dict0dict.ic
-
9include/lock0lock.h
-
6include/page0page.h
-
17include/page0page.ic
-
17lock/lock0lock.c
-
26page/page0page.c
-
19page/page0zip.c
Write
Preview
Loading…
Cancel
Save
Reference in new issue