Commit 211417e2 authored by marko's avatar marko

branches/innodb+: Merge revisions 2660:2676 from branches/zip.

parent e574d604
2008-09-19 The InnoDB Team
* os/os0proc.c:
Fix a memory leak on Windows. The memory leak was due to wrong
parameters passed into VirtualFree() call. As the result, the
call fails with Windows error 87.
2008-09-17 The InnoDB Team 2008-09-17 The InnoDB Team
* mysql-test/innodb.result, mysql-test/innodb-zip.result, * mysql-test/innodb.result, mysql-test/innodb-zip.result,
......
...@@ -121,10 +121,14 @@ btr_root_block_get( ...@@ -121,10 +121,14 @@ btr_root_block_get(
ut_a((ibool)!!page_is_comp(buf_block_get_frame(block)) ut_a((ibool)!!page_is_comp(buf_block_get_frame(block))
== dict_table_is_comp(index->table)); == dict_table_is_comp(index->table));
#ifdef UNIV_BTR_DEBUG #ifdef UNIV_BTR_DEBUG
ut_a(btr_root_fseg_validate(FIL_PAGE_DATA + PAGE_BTR_SEG_LEAF if (!dict_index_is_ibuf(index)) {
+ buf_block_get_frame(block), space)); const page_t* root = buf_block_get_frame(block);
ut_a(btr_root_fseg_validate(FIL_PAGE_DATA + PAGE_BTR_SEG_TOP
+ buf_block_get_frame(block), space)); ut_a(btr_root_fseg_validate(FIL_PAGE_DATA + PAGE_BTR_SEG_LEAF
+ root, space));
ut_a(btr_root_fseg_validate(FIL_PAGE_DATA + PAGE_BTR_SEG_TOP
+ root, space));
}
#endif /* UNIV_BTR_DEBUG */ #endif /* UNIV_BTR_DEBUG */
return(block); return(block);
...@@ -1151,10 +1155,15 @@ btr_root_raise_and_insert( ...@@ -1151,10 +1155,15 @@ btr_root_raise_and_insert(
#endif /* UNIV_ZIP_DEBUG */ #endif /* UNIV_ZIP_DEBUG */
index = btr_cur_get_index(cursor); index = btr_cur_get_index(cursor);
#ifdef UNIV_BTR_DEBUG #ifdef UNIV_BTR_DEBUG
ut_a(btr_root_fseg_validate(FIL_PAGE_DATA + PAGE_BTR_SEG_LEAF if (!dict_index_is_ibuf(index)) {
+ root, dict_index_get_space(index))); ulint space = dict_index_get_space(index);
ut_a(btr_root_fseg_validate(FIL_PAGE_DATA + PAGE_BTR_SEG_TOP
+ root, dict_index_get_space(index))); ut_a(btr_root_fseg_validate(FIL_PAGE_DATA + PAGE_BTR_SEG_LEAF
+ root, space));
ut_a(btr_root_fseg_validate(FIL_PAGE_DATA + PAGE_BTR_SEG_TOP
+ root, space));
}
ut_a(dict_index_get_page(index) == page_get_page_no(root)); ut_a(dict_index_get_page(index) == page_get_page_no(root));
#endif /* UNIV_BTR_DEBUG */ #endif /* UNIV_BTR_DEBUG */
ut_ad(mtr_memo_contains(mtr, dict_index_get_lock(index), ut_ad(mtr_memo_contains(mtr, dict_index_get_lock(index),
...@@ -2703,12 +2712,18 @@ btr_discard_only_page_on_level( ...@@ -2703,12 +2712,18 @@ btr_discard_only_page_on_level(
/* The father is the root page */ /* The father is the root page */
#ifdef UNIV_BTR_DEBUG #ifdef UNIV_BTR_DEBUG
const page_t* root = buf_block_get_frame(father_block); if (!dict_index_is_ibuf(index)) {
const ulint space = dict_index_get_space(index); const page_t* root
ut_a(btr_root_fseg_validate(FIL_PAGE_DATA + PAGE_BTR_SEG_LEAF = buf_block_get_frame(father_block);
+ root, space)); const ulint space
ut_a(btr_root_fseg_validate(FIL_PAGE_DATA + PAGE_BTR_SEG_TOP = dict_index_get_space(index);
+ root, space)); ut_a(btr_root_fseg_validate(
FIL_PAGE_DATA + PAGE_BTR_SEG_LEAF
+ root, space));
ut_a(btr_root_fseg_validate(
FIL_PAGE_DATA + PAGE_BTR_SEG_TOP
+ root, space));
}
#endif /* UNIV_BTR_DEBUG */ #endif /* UNIV_BTR_DEBUG */
btr_page_empty(father_block, father_page_zip, mtr, index); btr_page_empty(father_block, father_page_zip, mtr, index);
......
...@@ -3717,7 +3717,8 @@ ibuf_merge_or_delete_for_page( ...@@ -3717,7 +3717,8 @@ ibuf_merge_or_delete_for_page(
page_zip = buf_block_get_page_zip(block); page_zip = buf_block_get_page_zip(block);
if (UNIV_UNLIKELY(fil_page_get_type(block->frame) if (UNIV_UNLIKELY(fil_page_get_type(block->frame)
!= FIL_PAGE_INDEX)) { != FIL_PAGE_INDEX)
|| UNIV_UNLIKELY(!page_is_leaf(block->frame))) {
page_t* bitmap_page; page_t* bitmap_page;
...@@ -3746,7 +3747,7 @@ ibuf_merge_or_delete_for_page( ...@@ -3746,7 +3747,7 @@ ibuf_merge_or_delete_for_page(
"InnoDB: buffer records to page n:o %lu" "InnoDB: buffer records to page n:o %lu"
" though the page\n" " though the page\n"
"InnoDB: type is %lu, which is" "InnoDB: type is %lu, which is"
" not an index page!\n" " not an index leaf page!\n"
"InnoDB: We try to resolve the problem" "InnoDB: We try to resolve the problem"
" by skipping the insert buffer\n" " by skipping the insert buffer\n"
"InnoDB: merge for this page." "InnoDB: merge for this page."
......
...@@ -207,7 +207,7 @@ row_purge_remove_sec_if_poss_low_nonbuffered( ...@@ -207,7 +207,7 @@ row_purge_remove_sec_if_poss_low_nonbuffered(
/* out: TRUE if success or if not found */ /* out: TRUE if success or if not found */
purge_node_t* node, /* in: row purge node */ purge_node_t* node, /* in: row purge node */
dict_index_t* index, /* in: index */ dict_index_t* index, /* in: index */
dtuple_t* entry, /* in: index entry */ const dtuple_t* entry, /* in: index entry */
ulint mode) /* in: latch mode BTR_MODIFY_LEAF or ulint mode) /* in: latch mode BTR_MODIFY_LEAF or
BTR_MODIFY_TREE */ BTR_MODIFY_TREE */
{ {
...@@ -288,7 +288,7 @@ row_purge_remove_sec_if_poss_low( ...@@ -288,7 +288,7 @@ row_purge_remove_sec_if_poss_low(
/* out: TRUE if success or if not found */ /* out: TRUE if success or if not found */
purge_node_t* node, /* in: row purge node */ purge_node_t* node, /* in: row purge node */
dict_index_t* index, /* in: index */ dict_index_t* index, /* in: index */
dtuple_t* entry, /* in: index entry */ const dtuple_t* entry, /* in: index entry */
ulint mode) /* in: latch mode BTR_MODIFY_LEAF or ulint mode) /* in: latch mode BTR_MODIFY_LEAF or
BTR_MODIFY_TREE */ BTR_MODIFY_TREE */
{ {
......
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