mariadb/include
marko b707b2e3b1 branches/zip: In r988, the function buf_block_align() was enclosed
within UNIV_DEBUG. The two remaining callers in non-debug builds,
btr_search_guess_on_hash() and btr_search_validate(), were rewritten
to call buf_page_hash_get().

To implement support for a resizeable buffer pool, the function
buf_block_align() had been rewritten to perform a page hash lookup in
the buffer pool. The caller was also made responsible for holding the
buffer pool mutex.

Because the page hash lookup is expensive and it has to be done while
holding the buffer pool mutex, implement buf_block_align() by pointer
arithmetics again, and make btr_search_guess_on_hash() call it. Note
that this will have to be adjusted if the interface to the resizeable
buffer pool is actually implemented.

rb://83 approved by Heikki Tuuri, to address Issue #161.

As a deviation from the approved patch, this patch also makes
btr_search_validate() (invoked by CHECK TABLE) check that
buf_pool->page_hash is consistent with buf_block_align().
2009-01-26 20:33:20 +00:00
..
btr0btr.h branches/zip: Remove some redundant #include directives. 2009-01-23 12:07:38 +00:00
btr0btr.ic branches/zip: Non-functional change: 2008-09-22 06:59:58 +00:00
btr0cur.h branches/zip: Remove some redundant #include directives. 2009-01-23 12:07:38 +00:00
btr0cur.ic branches/zip: Minor cleanup of B-tree cursor operations. 2007-10-22 08:16:35 +00:00
btr0pcur.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
btr0pcur.ic branches/zip: Minor cleanup of B-tree cursor operations. 2007-10-22 08:16:35 +00:00
btr0sea.h branches/zip: 2008-07-15 19:28:29 +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/zip: Implement the INFORMATION_SCHEMA tables 2008-03-28 10:03:58 +00:00
buf0buddy.ic branches/zip: buf_buddy_alloc(), buf_buddy_alloc_low(): Correct a mistake 2008-02-29 12:30:41 +00:00
buf0buf.h branches/zip: In r988, the function buf_block_align() was enclosed 2009-01-26 20:33:20 +00:00
buf0buf.ic branches/zip: In r988, the function buf_block_align() was enclosed 2009-01-26 20:33:20 +00:00
buf0flu.h branches/zip: buf_flush_insert_into_flush_list(), 2009-01-09 13:40:11 +00:00
buf0flu.ic branches/zip: buf_flush_insert_into_flush_list(), 2009-01-09 13:40:11 +00:00
buf0lru.h branches/zip: buf_LRU_free_block(): Clarify the function comment. 2008-11-19 14:39:55 +00:00
buf0lru.ic Import 5.0 code. 2005-10-27 07:29:40 +00:00
buf0rea.h branches/zip: Rename ib_ulonglong to ib_uint64_t and ib_longlong to ib_int64_t. 2008-03-17 14:19:04 +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/zip: Merge revisions 2854:2929 from branches/5.1, 2008-10-29 19:39:24 +00:00
data0types.h Import 5.0 code. 2005-10-27 07:29:40 +00:00
db0err.h branches/zip: Implement the configuration parameter and settable global 2008-03-10 11:05:32 +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 Import 5.0 code. 2005-10-27 07:29:40 +00:00
dict0dict.h branches/zip: Remove some redundant #include statements. 2009-01-23 09:04:49 +00:00
dict0dict.ic branches/zip: In hash table lookups, assert that the traversed items 2009-01-13 19:46:22 +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 Import 5.0 code. 2005-10-27 07:29:40 +00:00
dict0mem.h branches/zip: Remove some redundant #include statements. 2009-01-23 09:04:49 +00:00
dict0mem.ic Import 5.0 code. 2005-10-27 07:29:40 +00:00
dict0types.h branches/zip: Simplify crash recovery in fast index creation. 2007-09-05 10:18:03 +00:00
dyn0dyn.h branches/zip: Merge revisions 200:236 from trunk. 2006-02-23 19:25:29 +00:00
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 branches/zip: Merge revisions 200:236 from trunk. 2006-02-23 19:25:29 +00:00
fil0fil.h branches/zip: Clean up the insert buffer subsystem. 2008-12-12 14:08:23 +00:00
fsp0fsp.h branches/zip: Pass the tablespace flags correctly when creating or opening 2008-03-18 10:10:51 +00:00
fsp0fsp.ic branches/zip: Merge revisions 720:765 from trunk and reindent the code 2006-08-29 09:30:31 +00:00
fut0fut.h branches/zip: Remove the fil_space_get_zip_size() call from 2007-01-18 09:59:00 +00:00
fut0fut.ic branches/zip: Non-functional change: 2008-09-22 06:59:58 +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/zip: flst_write_addr(), flst_read_addr(): Assert that no 2008-08-18 06:56:52 +00:00
ha0ha.h branches/zip: Introduce UNIV_AHI_DEBUG for debugging the adaptive hash 2008-12-17 09:19:56 +00:00
ha0ha.ic branches/zip: Introduce UNIV_AHI_DEBUG for debugging the adaptive hash 2008-12-17 09:19:56 +00:00
ha0storage.h branches/zip: 2007-11-16 13:12:13 +00:00
ha0storage.ic branches/zip: 2007-10-08 10:46:26 +00:00
ha_prototypes.h branches/zip: Always check for "row too large" when executing SQL to create 2008-11-20 10:22:40 +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/zip: In hash table lookups, assert that the traversed items 2009-01-13 19:46:22 +00:00
hash0hash.ic branches/zip: Merge revisions 3479:3598 from branches/5.1: 2008-12-22 13:41:47 +00:00
ibuf0ibuf.h branches/zip: Remove some redundant #include directives. 2009-01-23 12:07:38 +00:00
ibuf0ibuf.ic branches/zip: Clean up the insert buffer subsystem. 2008-12-12 14:08:23 +00:00
ibuf0types.h branches/zip: Clean up the insert buffer subsystem. 2008-12-12 14:08:23 +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/zip: 2008-10-31 07:40:29 +00:00
lock0lock.ic branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG. 2007-01-18 18:29:12 +00:00
lock0priv.h lock_get_type() needs to be accessed outside of the lock module, but it 2007-09-04 07:54:29 +00:00
lock0priv.ic lock_get_type() needs to be accessed outside of the lock module, but it 2007-09-04 07:54:29 +00:00
lock0types.h branches/zip: Fast index creation: Remove the ROW_PREBUILT_OBSOLETE nonsense. 2007-12-17 15:49:59 +00:00
log0log.h branches/zip: Enclose some more unused code in #ifdef UNIV_LOG_ARCHIVE. 2009-01-23 09:26:10 +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: Enclose some more unused code in #ifdef UNIV_LOG_ARCHIVE. 2009-01-23 09:26:10 +00:00
log0recv.ic branches/zip: Remove some redundant #include statements. 2009-01-23 09:04:49 +00:00
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/zip: Fix most MSVC (Windows) compilation warnings. 2008-03-04 08:57:07 +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 Import 5.0 code. 2005-10-27 07:29:40 +00:00
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: In r988, the function buf_block_align() was enclosed 2009-01-26 20:33:20 +00:00
mtr0mtr.h branches/zip: struct mtr_struct: Remove the unused field magic_n 2009-01-12 12:40:08 +00:00
mtr0mtr.ic branches/zip: struct mtr_struct: Remove the unused field magic_n 2009-01-12 12:40:08 +00:00
mtr0types.h Import 5.0 code. 2005-10-27 07:29:40 +00:00
mysql_addons.h branches/zip: 2008-12-04 16:49:24 +00:00
os0file.h branches/zip: 2008-05-16 14:41:18 +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 Import 5.0 code. 2005-10-27 07:29:40 +00:00
os0sync.h branches/zip: Rename ib_ulonglong to ib_uint64_t and ib_longlong to ib_int64_t. 2008-03-17 14:19:04 +00:00
os0sync.ic branches/zip: Merge revisions 200:236 from trunk. 2006-02-23 19:25:29 +00:00
os0thread.h branches/zip: Remove the unused function os_thread_join(). 2008-02-18 19:14:09 +00:00
os0thread.ic Import 5.0 code. 2005-10-27 07:29:40 +00:00
page0cur.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
page0cur.ic branches/zip: Minor cleanup of B-tree cursor operations. 2007-10-22 08:16:35 +00:00
page0page.h branches/zip: page_mem_free(): Remove the obsolete remark that there 2008-10-01 19:04:44 +00:00
page0page.ic branches/zip: page_mem_free(): Remove the obsolete remark that there 2008-10-01 19:04:44 +00:00
page0types.h branches/zip: Function doesn't exist, remove declaration. 2008-06-26 07:24:23 +00:00
page0zip.h branches/zip: When invoking page_zip_copy_recs(), update the lock table 2008-10-15 06:32:40 +00:00
page0zip.ic branches/zip: page_zip_rec_needs_ext(): Fix a bug that was introduced 2008-10-22 06:07:37 +00:00
pars0grm.h branches/zip: Merge revisions 583:634 from trunk. 2006-06-13 20:23:26 +00:00
pars0opt.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
pars0opt.ic Import 5.0 code. 2005-10-27 07:29:40 +00:00
pars0pars.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
pars0pars.ic Import 5.0 code. 2005-10-27 07:29:40 +00:00
pars0sym.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
pars0sym.ic Import 5.0 code. 2005-10-27 07:29:40 +00:00
pars0types.h branches/zip: Merge revisions 465:532 from trunk. 2006-05-08 06:18:59 +00:00
que0que.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
que0que.ic branches/zip: Do not access the fields of dfield_t directly. 2007-10-23 06:46:12 +00:00
que0types.h branches/zip: Merge revisions 200:236 from trunk. 2006-02-23 19:25:29 +00:00
read0read.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
read0read.ic branches/zip: Merge revisions 804:838 from trunk. 2006-09-19 10:14:07 +00:00
read0types.h Import 5.0 code. 2005-10-27 07:29:40 +00:00
rem0cmp.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
rem0cmp.ic branches/zip: Add explicit type casts to *.ic, because C++ does not allow 2007-08-01 10:38:07 +00:00
rem0rec.h branches/zip: Merge revisions 3930:4005 from branches/5.1: 2009-01-20 14:29:22 +00:00
rem0rec.ic branches/zip: Merge revisions 3930:4005 from branches/5.1: 2009-01-20 14:29:22 +00:00
rem0types.h branches/zip: Merge 1533:1553 from trunk. 2007-06-06 11:07:37 +00:00
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 Import 5.0 code. 2005-10-27 07:29:40 +00:00
row0merge.h branches/zip: Fix some locking issues, mainly in fast index creation. 2008-10-10 11:44:27 +00:00
row0mysql.h branches/zip: Merge revisions 3479:3598 from branches/5.1: 2008-12-22 13:41:47 +00:00
row0mysql.ic Import 5.0 code. 2005-10-27 07:29:40 +00:00
row0purge.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
row0purge.ic Import 5.0 code. 2005-10-27 07:29:40 +00:00
row0row.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
row0row.ic branches/zip: Initialize dfield_t::ext as soon as possible. This should 2007-10-17 12:13:29 +00:00
row0sel.h branches/zip: Remove update-in-place-in-select from the internal SQL 2008-12-17 12:40:59 +00:00
row0sel.ic branches/zip: Add explicit type casts to *.ic, because C++ does not allow 2007-08-01 10:38:07 +00:00
row0types.h branches/zip: Fast index creation: Remove the ROW_PREBUILT_OBSOLETE nonsense. 2007-12-17 15:49:59 +00:00
row0uins.h branches/zip: Note that it is legitimate for a secondary index record not 2008-11-24 16:01:42 +00:00
row0uins.ic Import 5.0 code. 2005-10-27 07:29:40 +00:00
row0umod.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
row0umod.ic Import 5.0 code. 2005-10-27 07:29:40 +00:00
row0undo.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
row0undo.ic Import 5.0 code. 2005-10-27 07:29:40 +00:00
row0upd.h branches/zip: Remove update-in-place-in-select from the internal SQL 2008-12-17 12:40:59 +00:00
row0upd.ic branches/zip: In r988, the function buf_block_align() was enclosed 2009-01-26 20:33:20 +00:00
row0vers.h branches/zip: Non-functional change: Add some missing const qualifiers. 2008-03-13 09:29:22 +00:00
row0vers.ic Import 5.0 code. 2005-10-27 07:29:40 +00:00
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/zip: Implement the parameter innodb_use_sys_malloc 2009-01-02 13:10:50 +00:00
srv0srv.ic Import 5.0 code. 2005-10-27 07:29:40 +00:00
srv0start.h branches/zip: 2008-04-29 14:57:06 +00:00
sync0arr.h branches/zip: Merge 2263:2295 from branches/5.1. 2008-02-18 20:09:03 +00:00
sync0arr.ic Import 5.0 code. 2005-10-27 07:29:40 +00:00
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/zip: 2008-05-06 15:00:25 +00:00
sync0sync.ic branches/zip: Merge 2263:2295 from branches/5.1. 2008-02-18 20:09:03 +00:00
sync0types.h Import 5.0 code. 2005-10-27 07:29:40 +00:00
thr0loc.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
thr0loc.ic Import 5.0 code. 2005-10-27 07:29:40 +00:00
trx0i_s.h branches/zip: Fix most MSVC (Windows) compilation warnings. 2008-03-04 08:57:07 +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 branches/zip: Merge revisions 200:236 from trunk. 2006-02-23 19:25:29 +00:00
trx0rec.h branches/zip: Remove some redundant #include directives. 2009-01-23 12:07:38 +00:00
trx0rec.ic branches/zip: Merge branches/fast-index-creation -r1413. 2007-04-04 11:05:33 +00:00
trx0roll.h branches/zip: Merge revisions 3601:3930 from branches/5.1: 2009-01-14 14:06:22 +00:00
trx0roll.ic Import 5.0 code. 2005-10-27 07:29:40 +00:00
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/zip: Non-functional change: 2008-09-22 06:59:58 +00:00
trx0sys.h branches/zip: Clean up the file format stamping. 2008-10-23 08:27:15 +00:00
trx0sys.ic branches/zip: Non-functional change: 2008-09-22 06:59:58 +00:00
trx0trx.h branches/zip: Always check for "row too large" when executing SQL to create 2008-11-20 10:22:40 +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/zip: Remove some redundant #include directives. 2009-01-23 12:07:38 +00:00
trx0undo.h branches/zip: Correct some typos in comments. 2008-08-06 12:45:35 +00:00
trx0undo.ic branches/zip: Non-functional change: 2008-09-22 06:59:58 +00:00
trx0xa.h branches/zip: Remove unused definitions from include/trx0xa.h. 2008-02-06 08:19:56 +00:00
univ.i branches/zip: Introduce UNIV_AHI_DEBUG for debugging the adaptive hash 2008-12-17 09:19:56 +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 Import 5.0 code. 2005-10-27 07:29:40 +00:00
usr0types.h branches/zip: Merge revisions 200:236 from trunk. 2006-02-23 19:25:29 +00:00
ut0byte.h branches/zip: Rename ib_ulonglong to ib_uint64_t and ib_longlong to ib_int64_t. 2008-03-17 14:19:04 +00:00
ut0byte.ic branches/zip: Rename ib_ulonglong to ib_uint64_t and ib_longlong to ib_int64_t. 2008-03-17 14:19:04 +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 branches/zip: Merge revisions 465:532 from trunk. 2006-05-08 06:18:59 +00:00
ut0lst.h branches/zip: Add UNIV_UNLIKELY hints to help branch prediction. 2007-10-26 12:31:48 +00:00
ut0mem.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00
ut0mem.ic branches/zip: 2007-10-29 13:03:53 +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 Remove unnecessary assert 2008-10-29 17:20:10 +00:00
ut0sort.h branches/zip: Fix two more bogus MSVC C4090 warnings on constness differences 2008-03-05 09:54:48 +00:00
ut0ut.h branches/zip: Merge 2437:2485 from branches/5.1: 2008-06-06 15:24:58 +00:00
ut0ut.ic branches/zip: ut_is_2pow(), ut_2pow_round(), ut_2pow_remainder(): Define 2008-03-05 09:41:51 +00:00
ut0vec.h branches/zip: 2008-10-31 07:40:29 +00:00
ut0vec.ic branches/zip: 2008-10-31 07:40:29 +00:00
ut0wqueue.h branches/zip: Add a UNIV_INTERN qualifier to every global function declaration 2008-02-18 18:38:33 +00:00