mariadb/include
marko 60bbfd6d0b branches/innodb+: Clean up the buffering of purges. Instead of
traversing the index B-tree twice (first in BTR_WATCH_LEAF mode and
then in BTR_DELETE mode), let BTR_DELETE take care of checking that
the record can be purged, and either buffering or performing the
purge.

row_purge_poss_sec(): New function, to check if it is possible to
purge a secondary index record.  Refactored from
row_purge_remove_sec_if_poss_low().

row_purge_remove_sec_if_poss_nonbuffered(): Rename to
row_purge_remove_sec_if_poss_tree().  Remove the parameter mode
(always use BTR_MODIFY_TREE).  Use row_purge_poss_sec().

row_purge_remove_sec_if_poss_low(): Rename to
row_purge_remove_sec_if_poss_leaf().  Remove the parameter mode
(always use BTR_MODIFY_LEAF). Let row_search_index_entry() do all the
hard work.

btr_cur_t: Add purge_node, which will be needed by
btr_cur_search_to_nth_level() for BTR_DELETE.  Replace the flag value
BTR_CUR_ABORTED with BTR_CUR_DELETE_REF and BTR_CUR_DELETE_FAILED.

enum row_search_result, row_search_index_entry(): Replace
ROW_NOT_IN_POOL with ROW_NOT_DELETED_REF and ROW_NOT_DELETED.

btr_cur_search_to_nth_level(): Remove BTR_WATCH_LEAF.  As a side
effect, the adaptive hash index can be used in purge as well.  If
BTR_DELETE cannot be buffered, attempt btr_cur_optimistic_delete().
Either way, check row_purge_poss_sec().  Move the code to set
cursor->ibuf_count to get rid of another if (height == 0)
check. Eliminate the label loop_end.  Do not call ibuf_should_try()
twice.

ibuf_should_try(): Now that the successful calls to this function will
be halved, halve the magic constant that ibuf_flush_count will be
compared to, accordingly.

The changes regarding ibuf_should_try() were merged from branches/zip
r3515.

rb://60 approved by Heikki over IM
2008-12-12 12:59:48 +00:00
..
btr0btr.h branches/innodb+: Clean up the buffering of purges. Instead of 2008-12-12 12:59:48 +00:00
btr0btr.ic branches/innodb+: Merge 2637:2660 from branches/zip. 2008-09-22 07:57:34 +00:00
btr0cur.h branches/innodb+: Clean up the buffering of purges. Instead of 2008-12-12 12:59:48 +00:00
btr0cur.ic
btr0pcur.h branches/innodb+: btr_cur_t: Remove leaf_in_buf_pool. The flag can be 2008-12-04 21:56:21 +00:00
btr0pcur.ic branches/innodb+: btr_cur_t: Remove leaf_in_buf_pool. The flag can be 2008-12-04 21:56:21 +00:00
btr0sea.h branches/innodb+: Merge revisions 2460:2579 from branches/zip 2008-08-09 00:15:46 +00:00
btr0sea.ic branches/zip: Introduce UNIV_INTERN, a linkage specifier for InnoDB-global 2008-02-06 14:17:36 +00:00
btr0types.h branches/zip: row_ext: Fetch the BLOB prefixes already at row_ext_create(). 2007-11-29 12:47:18 +00:00
buf0buddy.h branches/innodb+: Merge revisions 2344:2454 from branches/zip 2008-05-14 15:43:19 +00:00
buf0buddy.ic branches/innodb+: Merge revisions 2322:2340 from branches/zip 2008-03-03 10:25:27 +00:00
buf0buf.h branches/innodb+: When buffering an insert, notify the buffer pool 2008-12-10 15:20:17 +00:00
buf0buf.ic branches/innodb+: Merge 2579:2637 from branches/zip. 2008-09-17 19:52:30 +00:00
buf0flu.h branches/innodb+ issue#115 2008-12-04 08:19:12 +00:00
buf0flu.ic branches/zip: Introduce UNIV_INTERN, a linkage specifier for InnoDB-global 2008-02-06 14:17:36 +00:00
buf0lru.h branches/innodb+: Merge revisions 2986:3152 from branches/zip: 2008-11-20 11:53:53 +00:00
buf0lru.ic
buf0rea.h branches/innodb+: Merge revisions 2344:2454 from branches/zip 2008-05-14 15:43:19 +00:00
buf0types.h branches/zip: Allow the uncompressed page size to be settable by setting 2007-12-20 13:23:23 +00:00
data0data.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
data0data.ic branches/zip: Fetch externally stored columns only when the clustered index 2008-01-16 10:10:32 +00:00
data0type.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
data0type.ic branches/innodb+: Merge revisions 2867:2986 from branches/zip: 2008-11-11 10:21:16 +00:00
data0types.h
db0err.h branches/innodb+: Merge revisions 2344:2454 from branches/zip 2008-05-14 15:43:19 +00:00
dict0boot.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
dict0boot.ic branches/zip: Introduce UNIV_INTERN, a linkage specifier for InnoDB-global 2008-02-06 14:17:36 +00:00
dict0crea.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
dict0crea.ic
dict0dict.h branches/innodb+: Merge revisions 2867:2986 from branches/zip: 2008-11-11 10:21:16 +00:00
dict0dict.ic branches/innodb+: Merge revisions 2344:2454 from branches/zip 2008-05-14 15:43:19 +00:00
dict0load.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
dict0load.ic
dict0mem.h branches/innodb+: Merge revisions 2867:2986 from branches/zip: 2008-11-11 10:21:16 +00:00
dict0mem.ic
dict0types.h
dyn0dyn.h
dyn0dyn.ic branches/zip: Introduce UNIV_INTERN, a linkage specifier for InnoDB-global 2008-02-06 14:17:36 +00:00
eval0eval.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
eval0eval.ic branches/zip: Introduce UNIV_INTERN, a linkage specifier for InnoDB-global 2008-02-06 14:17:36 +00:00
eval0proc.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
eval0proc.ic
fil0fil.h branches/innodb+: Merge revisions 2344:2454 from branches/zip 2008-05-14 15:43:19 +00:00
fsp0fsp.h branches/innodb+: Merge revisions 2344:2454 from branches/zip 2008-05-14 15:43:19 +00:00
fsp0fsp.ic
fut0fut.h
fut0fut.ic branches/innodb+: Merge 2637:2660 from branches/zip. 2008-09-22 07:57:34 +00:00
fut0lst.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
fut0lst.ic branches/innodb+: Merge 2579:2637 from branches/zip. 2008-09-17 19:52:30 +00:00
ha0ha.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
ha0ha.ic branches/zip: Introduce UNIV_INTERN, a linkage specifier for InnoDB-global 2008-02-06 14:17:36 +00:00
ha0storage.h branches/zip: 2007-11-16 13:12:13 +00:00
ha0storage.ic
ha_prototypes.h branches/innodb+: Merge revisions 2986:3152 from branches/zip: 2008-11-20 11:53:53 +00:00
handler0alter.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
hash0hash.h branches/innodb+: Merge 2579:2637 from branches/zip. 2008-09-17 19:52:30 +00:00
hash0hash.ic branches/innodb+: Merge revisions 2344:2454 from branches/zip 2008-05-14 15:43:19 +00:00
ibuf0ibuf.h branches/innodb+: Non-functional change: 2008-09-22 10:38:51 +00:00
ibuf0ibuf.ic branches/innodb+: Clean up the buffering of purges. Instead of 2008-12-12 12:59:48 +00:00
ibuf0types.h branches/innodb+: Delete buffer port from branches/fts:r2283 2008-02-27 07:03:34 +00:00
lock0iter.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
lock0lock.h branches/innodb+: Merge revisions 2867:2986 from branches/zip: 2008-11-11 10:21:16 +00:00
lock0lock.ic
lock0priv.h
lock0priv.ic
lock0types.h branches/zip: Fast index creation: Remove the ROW_PREBUILT_OBSOLETE nonsense. 2007-12-17 15:49:59 +00:00
log0log.h branches/innodb+: Merge revisions 2344:2454 from branches/zip 2008-05-14 15:43:19 +00:00
log0log.ic branches/zip: Introduce UNIV_INTERN, a linkage specifier for InnoDB-global 2008-02-06 14:17:36 +00:00
log0recv.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
log0recv.ic
mach0data.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
mach0data.ic branches/innodb+: Merge revisions 2344:2454 from branches/zip 2008-05-14 15:43:19 +00:00
mem0dbg.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
mem0dbg.ic branches/zip: Introduce UNIV_INTERN, a linkage specifier for InnoDB-global 2008-02-06 14:17:36 +00:00
mem0mem.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
mem0mem.ic branches/zip: Introduce UNIV_INTERN, a linkage specifier for InnoDB-global 2008-02-06 14:17:36 +00:00
mem0pool.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
mem0pool.ic
mtr0log.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
mtr0log.ic branches/zip: Implement wrappers for all operations on the buffer pool mutex. 2008-01-10 09:37:13 +00:00
mtr0mtr.h branches/innodb+: Merge revisions 2344:2454 from branches/zip 2008-05-14 15:43:19 +00:00
mtr0mtr.ic
mtr0types.h
mysql_addons.h branches/innodb+: Merge revisions 3312:3459 from branches/zip: 2008-12-09 11:09:06 +00:00
os0file.h branches/innodb+: Merge revisions r2455:r2459 from branches/zip 2008-05-16 14:49:22 +00:00
os0proc.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
os0proc.ic
os0sync.h branches/innodb+: Merge revisions 2344:2454 from branches/zip 2008-05-14 15:43:19 +00:00
os0sync.ic
os0thread.h branches/zip: Remove the unused function os_thread_join(). 2008-02-18 19:14:09 +00:00
os0thread.ic
page0cur.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
page0cur.ic
page0page.h branches/innodb+: Merge revisions 2678:2774 from branches/zip. 2008-10-11 19:37:21 +00:00
page0page.ic branches/innodb+: Merge revisions 2678:2774 from branches/zip. 2008-10-11 19:37:21 +00:00
page0types.h branches/innodb+: Merge revisions 2460:2579 from branches/zip 2008-08-09 00:15:46 +00:00
page0zip.h branches/innodb+: Merge revisions 2774:2799 from branches/zip: 2008-10-15 12:09:17 +00:00
page0zip.ic branches/innodb+: Merge revisions 2835:2862 from branches/zip: 2008-10-23 10:03:20 +00:00
pars0grm.h
pars0opt.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
pars0opt.ic
pars0pars.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
pars0pars.ic
pars0sym.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
pars0sym.ic
pars0types.h
que0que.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
que0que.ic
que0types.h
read0read.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
read0read.ic
read0types.h
rem0cmp.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
rem0cmp.ic
rem0rec.h branches/innodb+: Merge revisions 2678:2774 from branches/zip. 2008-10-11 19:37:21 +00:00
rem0rec.ic branches/zip: Introduce UNIV_INTERN, a linkage specifier for InnoDB-global 2008-02-06 14:17:36 +00:00
rem0types.h
row0ext.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
row0ext.ic branches/zip: row_ext: Fetch the BLOB prefixes already at row_ext_create(). 2007-11-29 12:47:18 +00:00
row0ins.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
row0ins.ic
row0merge.h branches/innodb+: Merge revisions 2678:2774 from branches/zip. 2008-10-11 19:37:21 +00:00
row0mysql.h branches/innodb+: Merge revisions 2867:2986 from branches/zip: 2008-11-11 10:21:16 +00:00
row0mysql.ic
row0purge.h branches/innodb+: Clean up the buffering of purges. Instead of 2008-12-12 12:59:48 +00:00
row0purge.ic
row0row.h branches/innodb+: Clean up the buffering of purges. Instead of 2008-12-12 12:59:48 +00:00
row0row.ic
row0sel.h branches/innodb+: Merge revisions 2344:2454 from branches/zip 2008-05-14 15:43:19 +00:00
row0sel.ic
row0types.h branches/zip: Fast index creation: Remove the ROW_PREBUILT_OBSOLETE nonsense. 2007-12-17 15:49:59 +00:00
row0uins.h branches/innodb+: Merge revisions 3180:3312 from branches/zip: 2008-11-28 14:58:51 +00:00
row0uins.ic
row0umod.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
row0umod.ic
row0undo.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
row0undo.ic
row0upd.h branches/innodb+: Merge revisions 2344:2454 from branches/zip 2008-05-14 15:43:19 +00:00
row0upd.ic branches/innodb+: Merge revisions 2344:2454 from branches/zip 2008-05-14 15:43:19 +00:00
row0vers.h branches/innodb+: Merge revisions 2344:2454 from branches/zip 2008-05-14 15:43:19 +00:00
row0vers.ic
srv0que.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
srv0srv.h branches/innodb+: Merge revisions 3459:3498 from branches/zip: 2008-12-11 15:18:37 +00:00
srv0srv.ic
srv0start.h branches/innodb+: Merge revisions 2344:2454 from branches/zip 2008-05-14 15:43:19 +00:00
sync0arr.h branches/zip: Merge 2263:2295 from branches/5.1. 2008-02-18 20:09:03 +00:00
sync0arr.ic
sync0rw.h branches/zip: Merge 2263:2295 from branches/5.1. 2008-02-18 20:09:03 +00:00
sync0rw.ic branches/zip: Merge 2263:2295 from branches/5.1. 2008-02-18 20:09:03 +00:00
sync0sync.h branches/innodb+: Merge revisions 2344:2454 from branches/zip 2008-05-14 15:43:19 +00:00
sync0sync.ic branches/zip: Merge 2263:2295 from branches/5.1. 2008-02-18 20:09:03 +00:00
sync0types.h
thr0loc.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
thr0loc.ic
trx0i_s.h branches/innodb+: Merge revisions 2344:2454 from branches/zip 2008-05-14 15:43:19 +00:00
trx0purge.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
trx0purge.ic
trx0rec.h branches/innodb+: Merge revisions 2460:2579 from branches/zip 2008-08-09 00:15:46 +00:00
trx0rec.ic
trx0roll.h branches/innodb+: Merge revisions 2460:2579 from branches/zip 2008-08-09 00:15:46 +00:00
trx0roll.ic
trx0rseg.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
trx0rseg.ic branches/innodb+: Merge 2637:2660 from branches/zip. 2008-09-22 07:57:34 +00:00
trx0sys.h branches/innodb+: Merge revisions 2835:2862 from branches/zip: 2008-10-23 10:03:20 +00:00
trx0sys.ic branches/innodb+: Merge 2637:2660 from branches/zip. 2008-09-22 07:57:34 +00:00
trx0trx.h branches/innodb+: Merge revisions 2986:3152 from branches/zip: 2008-11-20 11:53:53 +00:00
trx0trx.ic branches/zip: Fast index creation: Release locks on system tables before 2008-01-25 14:26:07 +00:00
trx0types.h branches/innodb+: Merge revisions 2460:2579 from branches/zip 2008-08-09 00:15:46 +00:00
trx0undo.h branches/innodb+: Merge revisions 2460:2579 from branches/zip 2008-08-09 00:15:46 +00:00
trx0undo.ic branches/innodb+: Merge 2637:2660 from branches/zip. 2008-09-22 07:57:34 +00:00
trx0xa.h branches/zip: Remove unused definitions from include/trx0xa.h. 2008-02-06 08:19:56 +00:00
univ.i branches/innodb+: Merge revisions 3312:3459 from branches/zip: 2008-12-09 11:09:06 +00:00
usr0sess.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
usr0sess.ic
usr0types.h
ut0byte.h branches/innodb+: Merge revisions 2344:2454 from branches/zip 2008-05-14 15:43:19 +00:00
ut0byte.ic branches/innodb+: Merge revisions 2344:2454 from branches/zip 2008-05-14 15:43:19 +00:00
ut0dbg.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
ut0list.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
ut0list.ic
ut0lst.h
ut0mem.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
ut0mem.ic
ut0rbt.h branches/innodb+: Add missing UNIV_INTERN linkage specifiers. 2008-09-18 08:44:32 +00:00
ut0rnd.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
ut0rnd.ic branches/innodb+: Merge revisions 2867:2986 from branches/zip: 2008-11-11 10:21:16 +00:00
ut0sort.h branches/innodb+: Merge revisions 2344:2454 from branches/zip 2008-05-14 15:43:19 +00:00
ut0ut.h branches/innodb+: Merge revisions 2460:2579 from branches/zip 2008-08-09 00:15:46 +00:00
ut0ut.ic branches/innodb+: Merge revisions 2344:2454 from branches/zip 2008-05-14 15:43:19 +00:00
ut0vec.h branches/innodb+: Merge revisions 2867:2986 from branches/zip: 2008-11-11 10:21:16 +00:00
ut0vec.ic branches/innodb+: Merge revisions 2867:2986 from branches/zip: 2008-11-11 10:21:16 +00:00
ut0wqueue.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00