mariadb/storage
Marko Mäkelä 8a94d55e69 Bug#12612184 Race condition after btr_cur_pessimistic_update()
btr_cur_compress_if_useful(), btr_compress(): Add the parameter ibool
adjust. If adjust=TRUE, adjust the cursor position after compressing
the page.

btr_lift_page_up(): Return a pointer to the father page.

BTR_KEEP_POS_FLAG: A new flag for btr_cur_pessimistic_update().

btr_cur_pessimistic_update(): If *big_rec != NULL and flags &
BTR_KEEP_POS_FLAG, keep the cursor positioned on the updated record.
Also, do not release the index tree x-lock if *big_rec != NULL.

btr_cur_mtr_commit_and_start(): Commits and restarts a
mini-transaction so that it will retain an x-lock on index->lock and
the page of the cursor. This is invoked when
btr_cur_pessimistic_update() returns *big_rec != NULL.

In all callers of btr_cur_pessimistic_update() that do not pass
BTR_KEEP_POS_FLAG, assert that *big_rec == NULL.

btr_cur_compress(): Unused function [in the built-in MySQL 5.1], remove.

page_rec_get_nth(): Return the nth record on the page (an inverse
function of page_rec_get_n_recs_before()). Refactored from
page_get_middle_rec().

page_get_middle_rec(): Invoke page_rec_get_nth().

page_cur_insert_rec_zip_reorg(): Make use of the page directory
shortcuts in page_rec_get_nth() instead of scanning the whole list of
records.

row_ins_clust_index_entry_by_modify(): Pass BTR_KEEP_POS_FLAG to
btr_cur_pessimistic_update().

row_ins_index_entry_low(): If row_ins_clust_index_entry_by_modify()
returns a big_rec, invoke btr_cur_mtr_commit_and_start() in order to
commit and start the mini-transaction without releasing the x-locks on
index->lock and the cursor page, and write the big_rec. Releasing the
page latch in mtr_commit() caused a race condition.

row_upd_clust_rec(): Pass BTR_KEEP_POS_FLAG to
btr_cur_pessimistic_update(). If it returns a big_rec, invoke
btr_cur_mtr_commit_and_start() in order to commit and start the
mini-transaction without releasing the x-locks on index->lock and the
cursor page, and write the big_rec. Releasing the page latch in
mtr_commit() caused a race condition.

sync_thread_add_level(): Add the parameter ibool relock. When TRUE,
bypass the latching order rules.

rw_lock_add_debug_info(): For nested X-lock requests, pass relock=TRUE
to sync_thread_add_level().

rb:678 approved by Jimmy Yang
2011-06-16 10:27:21 +03:00
..
archive BUG#12402794 - 60976: CRASH, VALGRIND WARNING AND MEMORY 2011-05-18 14:01:43 +04:00
blackhole Bug#53445: Build with -Wall and fix warnings that it generates 2010-07-09 08:37:51 -03:00
csv Bug#45288: pb2 returns a lot of compilation warnings on linux 2010-07-20 15:07:36 -03:00
example Bug#45288: pb2 returns a lot of compilation warnings on linux 2010-07-20 15:07:36 -03:00
federated Bug#45288: pb2 returns a lot of compilation warnings on linux 2010-07-09 09:00:17 -03:00
heap Bug#11766249 bug#59316: PARTITIONING AND INDEX_MERGE MEMORY LEAK 2011-03-25 12:36:02 +01:00
innobase Bug#12612184 Race condition after btr_cur_pessimistic_update() 2011-06-16 10:27:21 +03:00
innodb_plugin Bug#12612184 Race condition after btr_cur_pessimistic_update() 2011-06-16 10:27:21 +03:00
myisam Bug#11764487: myisam corruption with insert ignore and invalid spatial data 2011-06-07 19:30:43 +04:00
myisammrg Bug#11766249 bug#59316: PARTITIONING AND INDEX_MERGE MEMORY LEAK 2011-03-25 12:36:02 +01:00
ndb BUG#11762616: BUG#55229: 'POSTION' 2011-05-06 00:46:53 +01:00
Makefile.am
mysql_storage_engine.cmake Bug #47797 CMake, engine can't specify additional libraries to link with 2009-10-08 14:54:11 +02:00