Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
af2d260b
Commit
af2d260b
authored
Feb 13, 2018
by
Eugene Kosov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
merge btr_page_get_level_low() and btr_page_get_level()
parent
9d46bd8a
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
43 additions
and
47 deletions
+43
-47
storage/innobase/btr/btr0btr.cc
storage/innobase/btr/btr0btr.cc
+20
-21
storage/innobase/btr/btr0cur.cc
storage/innobase/btr/btr0cur.cc
+8
-9
storage/innobase/btr/btr0defragment.cc
storage/innobase/btr/btr0defragment.cc
+2
-2
storage/innobase/buf/buf0buf.cc
storage/innobase/buf/buf0buf.cc
+1
-1
storage/innobase/dict/dict0stats.cc
storage/innobase/dict/dict0stats.cc
+2
-2
storage/innobase/gis/gis0rtree.cc
storage/innobase/gis/gis0rtree.cc
+4
-5
storage/innobase/gis/gis0sea.cc
storage/innobase/gis/gis0sea.cc
+2
-2
storage/innobase/ibuf/ibuf0ibuf.cc
storage/innobase/ibuf/ibuf0ibuf.cc
+1
-1
storage/innobase/include/btr0btr.h
storage/innobase/include/btr0btr.h
+1
-2
storage/innobase/include/btr0btr.ic
storage/innobase/include/btr0btr.ic
+2
-2
No files found.
storage/innobase/btr/btr0btr.cc
View file @
af2d260b
...
@@ -307,7 +307,7 @@ btr_height_get(
...
@@ -307,7 +307,7 @@ btr_height_get(
root_block
=
btr_root_block_get
(
index
,
RW_S_LATCH
,
mtr
);
root_block
=
btr_root_block_get
(
index
,
RW_S_LATCH
,
mtr
);
if
(
root_block
)
{
if
(
root_block
)
{
height
=
btr_page_get_level
(
buf_block_get_frame
(
root_block
)
,
mtr
);
height
=
btr_page_get_level
(
buf_block_get_frame
(
root_block
));
/* Release the S latch on the root page. */
/* Release the S latch on the root page. */
mtr
->
memo_release
(
root_block
,
MTR_MEMO_PAGE_S_FIX
);
mtr
->
memo_release
(
root_block
,
MTR_MEMO_PAGE_S_FIX
);
...
@@ -872,7 +872,7 @@ btr_page_free(
...
@@ -872,7 +872,7 @@ btr_page_free(
mtr_t
*
mtr
)
/*!< in: mtr */
mtr_t
*
mtr
)
/*!< in: mtr */
{
{
const
page_t
*
page
=
buf_block_get_frame
(
block
);
const
page_t
*
page
=
buf_block_get_frame
(
block
);
ulint
level
=
btr_page_get_level
(
page
,
mtr
);
ulint
level
=
btr_page_get_level
(
page
);
ut_ad
(
fil_page_index_page_check
(
block
->
frame
));
ut_ad
(
fil_page_index_page_check
(
block
->
frame
));
ut_ad
(
level
!=
ULINT_UNDEFINED
);
ut_ad
(
level
!=
ULINT_UNDEFINED
);
...
@@ -976,7 +976,7 @@ btr_page_get_father_node_ptr_func(
...
@@ -976,7 +976,7 @@ btr_page_get_father_node_ptr_func(
ut_ad
(
dict_index_get_page
(
index
)
!=
page_no
);
ut_ad
(
dict_index_get_page
(
index
)
!=
page_no
);
level
=
btr_page_get_level
(
btr_cur_get_page
(
cursor
)
,
mtr
);
level
=
btr_page_get_level
(
btr_cur_get_page
(
cursor
));
user_rec
=
btr_cur_get_rec
(
cursor
);
user_rec
=
btr_cur_get_rec
(
cursor
);
ut_a
(
page_rec_is_user_rec
(
user_rec
));
ut_a
(
page_rec_is_user_rec
(
user_rec
));
...
@@ -2018,7 +2018,7 @@ btr_root_raise_and_insert(
...
@@ -2018,7 +2018,7 @@ btr_root_raise_and_insert(
moving the root records to the new page, emptying the root, putting
moving the root records to the new page, emptying the root, putting
a node pointer to the new page, and then splitting the new page. */
a node pointer to the new page, and then splitting the new page. */
level
=
btr_page_get_level
(
root
,
mtr
);
level
=
btr_page_get_level
(
root
);
new_block
=
btr_page_alloc
(
index
,
0
,
FSP_NO_DIR
,
level
,
mtr
,
mtr
);
new_block
=
btr_page_alloc
(
index
,
0
,
FSP_NO_DIR
,
level
,
mtr
,
mtr
);
...
@@ -2684,9 +2684,8 @@ btr_attach_half_pages(
...
@@ -2684,9 +2684,8 @@ btr_attach_half_pages(
}
}
/* Get the level of the split pages */
/* Get the level of the split pages */
level
=
btr_page_get_level
(
buf_block_get_frame
(
block
),
mtr
);
level
=
btr_page_get_level
(
buf_block_get_frame
(
block
));
ut_ad
(
level
ut_ad
(
level
==
btr_page_get_level
(
buf_block_get_frame
(
new_block
)));
==
btr_page_get_level
(
buf_block_get_frame
(
new_block
),
mtr
));
/* Build the node pointer (= node key and page address) for the upper
/* Build the node pointer (= node key and page address) for the upper
half */
half */
...
@@ -2870,7 +2869,7 @@ btr_insert_into_right_sibling(
...
@@ -2870,7 +2869,7 @@ btr_insert_into_right_sibling(
ibool
compressed
;
ibool
compressed
;
dberr_t
err
;
dberr_t
err
;
ulint
level
=
btr_page_get_level
(
next_page
,
mtr
);
ulint
level
=
btr_page_get_level
(
next_page
);
/* adjust cursor position */
/* adjust cursor position */
*
btr_cur_get_page_cur
(
cursor
)
=
next_page_cursor
;
*
btr_cur_get_page_cur
(
cursor
)
=
next_page_cursor
;
...
@@ -3056,7 +3055,7 @@ btr_page_split_and_insert(
...
@@ -3056,7 +3055,7 @@ btr_page_split_and_insert(
/* 2. Allocate a new page to the index */
/* 2. Allocate a new page to the index */
new_block
=
btr_page_alloc
(
cursor
->
index
,
hint_page_no
,
direction
,
new_block
=
btr_page_alloc
(
cursor
->
index
,
hint_page_no
,
direction
,
btr_page_get_level
(
page
,
mtr
),
mtr
,
mtr
);
btr_page_get_level
(
page
),
mtr
,
mtr
);
if
(
new_block
==
NULL
&&
os_has_said_disk_full
)
{
if
(
new_block
==
NULL
&&
os_has_said_disk_full
)
{
return
(
NULL
);
return
(
NULL
);
...
@@ -3065,7 +3064,7 @@ btr_page_split_and_insert(
...
@@ -3065,7 +3064,7 @@ btr_page_split_and_insert(
new_page
=
buf_block_get_frame
(
new_block
);
new_page
=
buf_block_get_frame
(
new_block
);
new_page_zip
=
buf_block_get_page_zip
(
new_block
);
new_page_zip
=
buf_block_get_page_zip
(
new_block
);
btr_page_create
(
new_block
,
new_page_zip
,
cursor
->
index
,
btr_page_create
(
new_block
,
new_page_zip
,
cursor
->
index
,
btr_page_get_level
(
page
,
mtr
),
mtr
);
btr_page_get_level
(
page
),
mtr
);
/* Only record the leaf level page splits. */
/* Only record the leaf level page splits. */
if
(
page_is_leaf
(
page
))
{
if
(
page_is_leaf
(
page
))
{
cursor
->
index
->
stat_defrag_n_page_split
++
;
cursor
->
index
->
stat_defrag_n_page_split
++
;
...
@@ -3545,7 +3544,7 @@ btr_lift_page_up(
...
@@ -3545,7 +3544,7 @@ btr_lift_page_up(
ut_ad
(
!
page_has_siblings
(
page
));
ut_ad
(
!
page_has_siblings
(
page
));
ut_ad
(
mtr_is_block_fix
(
mtr
,
block
,
MTR_MEMO_PAGE_X_FIX
,
index
->
table
));
ut_ad
(
mtr_is_block_fix
(
mtr
,
block
,
MTR_MEMO_PAGE_X_FIX
,
index
->
table
));
page_level
=
btr_page_get_level
(
page
,
mtr
);
page_level
=
btr_page_get_level
(
page
);
root_page_no
=
dict_index_get_page
(
index
);
root_page_no
=
dict_index_get_page
(
index
);
{
{
...
@@ -3607,7 +3606,7 @@ btr_lift_page_up(
...
@@ -3607,7 +3606,7 @@ btr_lift_page_up(
block
=
father_block
;
block
=
father_block
;
page
=
buf_block_get_frame
(
block
);
page
=
buf_block_get_frame
(
block
);
page_level
=
btr_page_get_level
(
page
,
mtr
);
page_level
=
btr_page_get_level
(
page
);
ut_ad
(
!
page_has_siblings
(
page
));
ut_ad
(
!
page_has_siblings
(
page
));
ut_ad
(
mtr_is_block_fix
(
ut_ad
(
mtr_is_block_fix
(
...
@@ -3687,7 +3686,7 @@ btr_lift_page_up(
...
@@ -3687,7 +3686,7 @@ btr_lift_page_up(
page_t
*
page
=
buf_block_get_frame
(
blocks
[
i
]);
page_t
*
page
=
buf_block_get_frame
(
blocks
[
i
]);
page_zip_des_t
*
page_zip
=
buf_block_get_page_zip
(
blocks
[
i
]);
page_zip_des_t
*
page_zip
=
buf_block_get_page_zip
(
blocks
[
i
]);
ut_ad
(
btr_page_get_level
(
page
,
mtr
)
==
page_level
+
1
);
ut_ad
(
btr_page_get_level
(
page
)
==
page_level
+
1
);
btr_page_set_level
(
page
,
page_zip
,
page_level
,
mtr
);
btr_page_set_level
(
page
,
page_zip
,
page_level
,
mtr
);
#ifdef UNIV_ZIP_DEBUG
#ifdef UNIV_ZIP_DEBUG
...
@@ -4273,7 +4272,7 @@ btr_discard_only_page_on_level(
...
@@ -4273,7 +4272,7 @@ btr_discard_only_page_on_level(
const
page_t
*
page
=
buf_block_get_frame
(
block
);
const
page_t
*
page
=
buf_block_get_frame
(
block
);
ut_a
(
page_get_n_recs
(
page
)
==
1
);
ut_a
(
page_get_n_recs
(
page
)
==
1
);
ut_a
(
page_level
==
btr_page_get_level
(
page
,
mtr
));
ut_a
(
page_level
==
btr_page_get_level
(
page
));
ut_a
(
!
page_has_siblings
(
page
));
ut_a
(
!
page_has_siblings
(
page
));
ut_ad
(
mtr_is_block_fix
(
ut_ad
(
mtr_is_block_fix
(
...
@@ -4553,7 +4552,7 @@ btr_print_recursive(
...
@@ -4553,7 +4552,7 @@ btr_print_recursive(
ut_ad
(
mtr_is_block_fix
(
mtr
,
block
,
MTR_MEMO_PAGE_SX_FIX
,
index
->
table
));
ut_ad
(
mtr_is_block_fix
(
mtr
,
block
,
MTR_MEMO_PAGE_SX_FIX
,
index
->
table
));
ib
::
info
()
<<
"NODE ON LEVEL "
<<
btr_page_get_level
(
page
,
mtr
)
ib
::
info
()
<<
"NODE ON LEVEL "
<<
btr_page_get_level
(
page
)
<<
" page "
<<
block
->
page
.
id
;
<<
" page "
<<
block
->
page
.
id
;
page_print
(
block
,
index
,
width
,
width
);
page_print
(
block
,
index
,
width
,
width
);
...
@@ -4669,7 +4668,7 @@ btr_check_node_ptr(
...
@@ -4669,7 +4668,7 @@ btr_check_node_ptr(
tuple
=
dict_index_build_node_ptr
(
tuple
=
dict_index_build_node_ptr
(
index
,
page_rec_get_next
(
page_get_infimum_rec
(
page
)),
0
,
heap
,
index
,
page_rec_get_next
(
page_get_infimum_rec
(
page
)),
0
,
heap
,
btr_page_get_level
(
page
,
mtr
));
btr_page_get_level
(
page
));
/* For spatial index, the MBR in the parent rec could be different
/* For spatial index, the MBR in the parent rec could be different
with that of first rec of child, their relationship should be
with that of first rec of child, their relationship should be
...
@@ -5000,7 +4999,7 @@ btr_validate_level(
...
@@ -5000,7 +4999,7 @@ btr_validate_level(
return
(
false
);
return
(
false
);
}
}
while
(
level
!=
btr_page_get_level
(
page
,
&
mtr
))
{
while
(
level
!=
btr_page_get_level
(
page
))
{
const
rec_t
*
node_ptr
;
const
rec_t
*
node_ptr
;
if
(
fseg_page_is_free
(
space
,
block
->
page
.
id
.
page_no
()))
{
if
(
fseg_page_is_free
(
space
,
block
->
page
.
id
.
page_no
()))
{
...
@@ -5108,7 +5107,7 @@ btr_validate_level(
...
@@ -5108,7 +5107,7 @@ btr_validate_level(
ret
=
false
;
ret
=
false
;
}
}
ut_a
(
btr_page_get_level
(
page
,
&
mtr
)
==
level
);
ut_a
(
btr_page_get_level
(
page
)
==
level
);
right_page_no
=
btr_page_get_next
(
page
,
&
mtr
);
right_page_no
=
btr_page_get_next
(
page
,
&
mtr
);
left_page_no
=
btr_page_get_prev
(
page
,
&
mtr
);
left_page_no
=
btr_page_get_prev
(
page
,
&
mtr
);
...
@@ -5253,7 +5252,7 @@ btr_validate_level(
...
@@ -5253,7 +5252,7 @@ btr_validate_level(
node_ptr_tuple
=
dict_index_build_node_ptr
(
node_ptr_tuple
=
dict_index_build_node_ptr
(
index
,
index
,
page_rec_get_next
(
page_get_infimum_rec
(
page
)),
page_rec_get_next
(
page_get_infimum_rec
(
page
)),
0
,
heap
,
btr_page_get_level
(
page
,
&
mtr
));
0
,
heap
,
btr_page_get_level
(
page
));
if
(
cmp_dtuple_rec
(
node_ptr_tuple
,
node_ptr
,
if
(
cmp_dtuple_rec
(
node_ptr_tuple
,
node_ptr
,
offsets
))
{
offsets
))
{
...
@@ -5431,7 +5430,7 @@ btr_validate_spatial_index(
...
@@ -5431,7 +5430,7 @@ btr_validate_spatial_index(
mtr_x_lock
(
dict_index_get_lock
(
index
),
&
mtr
);
mtr_x_lock
(
dict_index_get_lock
(
index
),
&
mtr
);
page_t
*
root
=
btr_root_get
(
index
,
&
mtr
);
page_t
*
root
=
btr_root_get
(
index
,
&
mtr
);
ulint
n
=
btr_page_get_level
(
root
,
&
mtr
);
ulint
n
=
btr_page_get_level
(
root
);
#ifdef UNIV_RTR_DEBUG
#ifdef UNIV_RTR_DEBUG
fprintf
(
stderr
,
"R-tree level is %lu
\n
"
,
n
);
fprintf
(
stderr
,
"R-tree level is %lu
\n
"
,
n
);
...
@@ -5498,7 +5497,7 @@ btr_validate_index(
...
@@ -5498,7 +5497,7 @@ btr_validate_index(
return
err
;
return
err
;
}
}
ulint
n
=
btr_page_get_level
(
root
,
&
mtr
);
ulint
n
=
btr_page_get_level
(
root
);
for
(
ulint
i
=
0
;
i
<=
n
;
++
i
)
{
for
(
ulint
i
=
0
;
i
<=
n
;
++
i
)
{
...
...
storage/innobase/btr/btr0cur.cc
View file @
af2d260b
...
@@ -1513,7 +1513,7 @@ btr_cur_search_to_nth_level_func(
...
@@ -1513,7 +1513,7 @@ btr_cur_search_to_nth_level_func(
if
(
height
==
ULINT_UNDEFINED
)
{
if
(
height
==
ULINT_UNDEFINED
)
{
/* We are in the root node */
/* We are in the root node */
height
=
btr_page_get_level
(
page
,
mtr
);
height
=
btr_page_get_level
(
page
);
root_height
=
height
;
root_height
=
height
;
cursor
->
tree_height
=
root_height
+
1
;
cursor
->
tree_height
=
root_height
+
1
;
...
@@ -1707,8 +1707,7 @@ btr_cur_search_to_nth_level_func(
...
@@ -1707,8 +1707,7 @@ btr_cur_search_to_nth_level_func(
/* If this is the desired level, leave the loop */
/* If this is the desired level, leave the loop */
ut_ad
(
height
==
btr_page_get_level
(
page_cur_get_page
(
page_cursor
),
ut_ad
(
height
==
btr_page_get_level
(
page_cur_get_page
(
page_cursor
)));
mtr
));
/* Add Predicate lock if it is serializable isolation
/* Add Predicate lock if it is serializable isolation
and only if it is in the search case */
and only if it is in the search case */
...
@@ -2408,12 +2407,12 @@ btr_cur_open_at_index_side_func(
...
@@ -2408,12 +2407,12 @@ btr_cur_open_at_index_side_func(
if
(
height
==
ULINT_UNDEFINED
)
{
if
(
height
==
ULINT_UNDEFINED
)
{
/* We are in the root node */
/* We are in the root node */
height
=
btr_page_get_level
(
page
,
mtr
);
height
=
btr_page_get_level
(
page
);
root_height
=
height
;
root_height
=
height
;
ut_a
(
height
>=
level
);
ut_a
(
height
>=
level
);
}
else
{
}
else
{
/* TODO: flag the index corrupted if this fails */
/* TODO: flag the index corrupted if this fails */
ut_ad
(
height
==
btr_page_get_level
(
page
,
mtr
));
ut_ad
(
height
==
btr_page_get_level
(
page
));
}
}
if
(
height
==
level
)
{
if
(
height
==
level
)
{
...
@@ -2768,7 +2767,7 @@ btr_cur_open_at_rnd_pos_func(
...
@@ -2768,7 +2767,7 @@ btr_cur_open_at_rnd_pos_func(
if
(
height
==
ULINT_UNDEFINED
)
{
if
(
height
==
ULINT_UNDEFINED
)
{
/* We are in the root node */
/* We are in the root node */
height
=
btr_page_get_level
(
page
,
mtr
);
height
=
btr_page_get_level
(
page
);
}
}
if
(
height
==
0
)
{
if
(
height
==
0
)
{
...
@@ -5677,7 +5676,7 @@ btr_cur_pessimistic_delete(
...
@@ -5677,7 +5676,7 @@ btr_cur_pessimistic_delete(
on the page */
on the page */
btr_node_ptr_delete
(
index
,
block
,
mtr
);
btr_node_ptr_delete
(
index
,
block
,
mtr
);
const
ulint
level
=
btr_page_get_level
(
page
,
mtr
);
const
ulint
level
=
btr_page_get_level
(
page
);
dtuple_t
*
node_ptr
=
dict_index_build_node_ptr
(
dtuple_t
*
node_ptr
=
dict_index_build_node_ptr
(
index
,
next_rec
,
block
->
page
.
id
.
page_no
(),
index
,
next_rec
,
block
->
page
.
id
.
page_no
(),
...
@@ -5767,7 +5766,7 @@ btr_cur_add_path_info(
...
@@ -5767,7 +5766,7 @@ btr_cur_add_path_info(
slot
->
nth_rec
=
page_rec_get_n_recs_before
(
rec
);
slot
->
nth_rec
=
page_rec_get_n_recs_before
(
rec
);
slot
->
n_recs
=
page_get_n_recs
(
page
);
slot
->
n_recs
=
page_get_n_recs
(
page
);
slot
->
page_no
=
page_get_page_no
(
page
);
slot
->
page_no
=
page_get_page_no
(
page
);
slot
->
page_level
=
btr_page_get_level
_low
(
page
);
slot
->
page_level
=
btr_page_get_level
(
page
);
}
}
/*******************************************************************//**
/*******************************************************************//**
...
@@ -5884,7 +5883,7 @@ btr_estimate_n_rows_in_range_on_level(
...
@@ -5884,7 +5883,7 @@ btr_estimate_n_rows_in_range_on_level(
reuses them. */
reuses them. */
if
(
!
fil_page_index_page_check
(
page
)
if
(
!
fil_page_index_page_check
(
page
)
||
btr_page_get_index_id
(
page
)
!=
index
->
id
||
btr_page_get_index_id
(
page
)
!=
index
->
id
||
btr_page_get_level
_low
(
page
)
!=
level
)
{
||
btr_page_get_level
(
page
)
!=
level
)
{
/* The page got reused for something else */
/* The page got reused for something else */
mtr_commit
(
&
mtr
);
mtr_commit
(
&
mtr
);
...
...
storage/innobase/btr/btr0defragment.cc
View file @
af2d260b
...
@@ -438,7 +438,7 @@ btr_defragment_merge_pages(
...
@@ -438,7 +438,7 @@ btr_defragment_merge_pages(
page_t
*
from_page
=
buf_block_get_frame
(
from_block
);
page_t
*
from_page
=
buf_block_get_frame
(
from_block
);
page_t
*
to_page
=
buf_block_get_frame
(
to_block
);
page_t
*
to_page
=
buf_block_get_frame
(
to_block
);
ulint
space
=
dict_index_get_space
(
index
);
ulint
space
=
dict_index_get_space
(
index
);
ulint
level
=
btr_page_get_level
(
from_page
,
mtr
);
ulint
level
=
btr_page_get_level
(
from_page
);
ulint
n_recs
=
page_get_n_recs
(
from_page
);
ulint
n_recs
=
page_get_n_recs
(
from_page
);
ulint
new_data_size
=
page_get_data_size
(
to_page
);
ulint
new_data_size
=
page_get_data_size
(
to_page
);
ulint
max_ins_size
=
ulint
max_ins_size
=
...
@@ -623,7 +623,7 @@ btr_defragment_n_pages(
...
@@ -623,7 +623,7 @@ btr_defragment_n_pages(
}
}
first_page
=
buf_block_get_frame
(
block
);
first_page
=
buf_block_get_frame
(
block
);
level
=
btr_page_get_level
(
first_page
,
mtr
);
level
=
btr_page_get_level
(
first_page
);
const
page_size_t
page_size
(
dict_table_page_size
(
index
->
table
));
const
page_size_t
page_size
(
dict_table_page_size
(
index
->
table
));
if
(
level
!=
0
)
{
if
(
level
!=
0
)
{
...
...
storage/innobase/buf/buf0buf.cc
View file @
af2d260b
...
@@ -5668,7 +5668,7 @@ buf_page_monitor(
...
@@ -5668,7 +5668,7 @@ buf_page_monitor(
case
FIL_PAGE_TYPE_INSTANT
:
case
FIL_PAGE_TYPE_INSTANT
:
case
FIL_PAGE_INDEX
:
case
FIL_PAGE_INDEX
:
case
FIL_PAGE_RTREE
:
case
FIL_PAGE_RTREE
:
level
=
btr_page_get_level
_low
(
frame
);
level
=
btr_page_get_level
(
frame
);
/* Check if it is an index page for insert buffer */
/* Check if it is an index page for insert buffer */
if
(
fil_page_get_type
(
frame
)
==
FIL_PAGE_INDEX
if
(
fil_page_get_type
(
frame
)
==
FIL_PAGE_INDEX
...
...
storage/innobase/dict/dict0stats.cc
View file @
af2d260b
...
@@ -1080,7 +1080,7 @@ dict_stats_analyze_index_level(
...
@@ -1080,7 +1080,7 @@ dict_stats_analyze_index_level(
==
page_rec_get_next_const
(
page_get_infimum_rec
(
page
)));
==
page_rec_get_next_const
(
page_get_infimum_rec
(
page
)));
/* check that we are indeed on the desired level */
/* check that we are indeed on the desired level */
ut_a
(
btr_page_get_level
(
page
,
mtr
)
==
level
);
ut_a
(
btr_page_get_level
(
page
)
==
level
);
/* there should not be any pages on the left */
/* there should not be any pages on the left */
ut_a
(
!
page_has_prev
(
page
));
ut_a
(
!
page_has_prev
(
page
));
...
@@ -1701,7 +1701,7 @@ dict_stats_analyze_index_for_n_prefix(
...
@@ -1701,7 +1701,7 @@ dict_stats_analyze_index_for_n_prefix(
ut_ad
(
first_rec
==
page_rec_get_next_const
(
page_get_infimum_rec
(
page
)));
ut_ad
(
first_rec
==
page_rec_get_next_const
(
page_get_infimum_rec
(
page
)));
/* check that we are indeed on the desired level */
/* check that we are indeed on the desired level */
ut_a
(
btr_page_get_level
(
page
,
mtr
)
==
n_diff_data
->
level
);
ut_a
(
btr_page_get_level
(
page
)
==
n_diff_data
->
level
);
/* there should not be any pages on the left */
/* there should not be any pages on the left */
ut_a
(
!
page_has_prev
(
page
));
ut_a
(
!
page_has_prev
(
page
));
...
...
storage/innobase/gis/gis0rtree.cc
View file @
af2d260b
...
@@ -310,7 +310,7 @@ rtr_update_mbr_field(
...
@@ -310,7 +310,7 @@ rtr_update_mbr_field(
page_zip
=
buf_block_get_page_zip
(
block
);
page_zip
=
buf_block_get_page_zip
(
block
);
child
=
btr_node_ptr_get_child_page_no
(
rec
,
offsets
);
child
=
btr_node_ptr_get_child_page_no
(
rec
,
offsets
);
level
=
btr_page_get_level
(
buf_block_get_frame
(
block
)
,
mtr
);
level
=
btr_page_get_level
(
buf_block_get_frame
(
block
));
if
(
new_rec
)
{
if
(
new_rec
)
{
child_rec
=
new_rec
;
child_rec
=
new_rec
;
...
@@ -668,9 +668,8 @@ rtr_adjust_upper_level(
...
@@ -668,9 +668,8 @@ rtr_adjust_upper_level(
cursor
.
thr
=
sea_cur
->
thr
;
cursor
.
thr
=
sea_cur
->
thr
;
/* Get the level of the split pages */
/* Get the level of the split pages */
level
=
btr_page_get_level
(
buf_block_get_frame
(
block
),
mtr
);
level
=
btr_page_get_level
(
buf_block_get_frame
(
block
));
ut_ad
(
level
ut_ad
(
level
==
btr_page_get_level
(
buf_block_get_frame
(
new_block
)));
==
btr_page_get_level
(
buf_block_get_frame
(
new_block
),
mtr
));
page
=
buf_block_get_frame
(
block
);
page
=
buf_block_get_frame
(
block
);
page_no
=
block
->
page
.
id
.
page_no
();
page_no
=
block
->
page
.
id
.
page_no
();
...
@@ -1048,7 +1047,7 @@ rtr_page_split_and_insert(
...
@@ -1048,7 +1047,7 @@ rtr_page_split_and_insert(
block
=
btr_cur_get_block
(
cursor
);
block
=
btr_cur_get_block
(
cursor
);
page
=
buf_block_get_frame
(
block
);
page
=
buf_block_get_frame
(
block
);
page_zip
=
buf_block_get_page_zip
(
block
);
page_zip
=
buf_block_get_page_zip
(
block
);
page_level
=
btr_page_get_level
(
page
,
mtr
);
page_level
=
btr_page_get_level
(
page
);
current_ssn
=
page_get_ssn_id
(
page
);
current_ssn
=
page_get_ssn_id
(
page
);
ut_ad
(
mtr_memo_contains
(
mtr
,
block
,
MTR_MEMO_PAGE_X_FIX
));
ut_ad
(
mtr_memo_contains
(
mtr
,
block
,
MTR_MEMO_PAGE_X_FIX
));
...
...
storage/innobase/gis/gis0sea.cc
View file @
af2d260b
...
@@ -718,7 +718,7 @@ rtr_page_get_father_node_ptr(
...
@@ -718,7 +718,7 @@ rtr_page_get_father_node_ptr(
ut_ad
(
dict_index_get_page
(
index
)
!=
page_no
);
ut_ad
(
dict_index_get_page
(
index
)
!=
page_no
);
level
=
btr_page_get_level
(
btr_cur_get_page
(
cursor
)
,
mtr
);
level
=
btr_page_get_level
(
btr_cur_get_page
(
cursor
));
user_rec
=
btr_cur_get_rec
(
cursor
);
user_rec
=
btr_cur_get_rec
(
cursor
);
ut_a
(
page_rec_is_user_rec
(
user_rec
));
ut_a
(
page_rec_is_user_rec
(
user_rec
));
...
@@ -1680,7 +1680,7 @@ rtr_cur_search_with_match(
...
@@ -1680,7 +1680,7 @@ rtr_cur_search_with_match(
page
=
buf_block_get_frame
(
block
);
page
=
buf_block_get_frame
(
block
);
const
ulint
level
=
btr_page_get_level
(
page
,
mtr
);
const
ulint
level
=
btr_page_get_level
(
page
);
const
bool
is_leaf
=
!
level
;
const
bool
is_leaf
=
!
level
;
if
(
mode
==
PAGE_CUR_RTREE_LOCATE
)
{
if
(
mode
==
PAGE_CUR_RTREE_LOCATE
)
{
...
...
storage/innobase/ibuf/ibuf0ibuf.cc
View file @
af2d260b
...
@@ -483,7 +483,7 @@ ibuf_size_update(
...
@@ -483,7 +483,7 @@ ibuf_size_update(
ibuf
->
free_list_len
=
flst_get_len
(
root
+
PAGE_HEADER
ibuf
->
free_list_len
=
flst_get_len
(
root
+
PAGE_HEADER
+
PAGE_BTR_IBUF_FREE_LIST
);
+
PAGE_BTR_IBUF_FREE_LIST
);
ibuf
->
height
=
1
+
btr_page_get_level
_low
(
root
);
ibuf
->
height
=
1
+
btr_page_get_level
(
root
);
/* the '1 +' is the ibuf header page */
/* the '1 +' is the ibuf header page */
ibuf
->
size
=
ibuf
->
seg_size
-
(
1
+
ibuf
->
free_list_len
);
ibuf
->
size
=
ibuf
->
seg_size
-
(
1
+
ibuf
->
free_list_len
);
...
...
storage/innobase/include/btr0btr.h
View file @
af2d260b
...
@@ -288,11 +288,10 @@ Gets the node level field in an index page.
...
@@ -288,11 +288,10 @@ Gets the node level field in an index page.
@return level, leaf level == 0 */
@return level, leaf level == 0 */
UNIV_INLINE
UNIV_INLINE
ulint
ulint
btr_page_get_level
_low
(
btr_page_get_level
(
/*===================*/
/*===================*/
const
page_t
*
page
)
/*!< in: index page */
const
page_t
*
page
)
/*!< in: index page */
MY_ATTRIBUTE
((
warn_unused_result
));
MY_ATTRIBUTE
((
warn_unused_result
));
#define btr_page_get_level(page, mtr) btr_page_get_level_low(page)
/********************************************************//**
/********************************************************//**
Gets the next index page number.
Gets the next index page number.
@return next page number */
@return next page number */
...
...
storage/innobase/include/btr0btr.ic
View file @
af2d260b
...
@@ -33,7 +33,7 @@ Created 6/2/1994 Heikki Tuuri
...
@@ -33,7 +33,7 @@ Created 6/2/1994 Heikki Tuuri
(not really a hard limit).
(not really a hard limit).
Used in debug assertions
Used in debug assertions
in btr_page_set_level and
in btr_page_set_level and
btr_page_get_level
_low
*/
btr_page_get_level */
/** Gets a buffer page and declares its latching order level.
/** Gets a buffer page and declares its latching order level.
@param[in] page_id page id
@param[in] page_id page id
...
@@ -148,7 +148,7 @@ Gets the node level field in an index page.
...
@@ -148,7 +148,7 @@ Gets the node level field in an index page.
@return level, leaf level == 0 */
@return level, leaf level == 0 */
UNIV_INLINE
UNIV_INLINE
ulint
ulint
btr_page_get_level
_low
(
btr_page_get_level(
/*===================*/
/*===================*/
const page_t* page) /*!< in: index page */
const page_t* page) /*!< in: index page */
{
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment