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
52246dff
Commit
52246dff
authored
Nov 08, 2019
by
Marko Mäkelä
Browse files
Options
Browse Files
Download
Plain Diff
Merge 10.4 into 10.5
parents
db565439
78d0d2cd
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
50 additions
and
145 deletions
+50
-145
extra/mariabackup/xtrabackup.cc
extra/mariabackup/xtrabackup.cc
+3
-3
storage/innobase/btr/btr0bulk.cc
storage/innobase/btr/btr0bulk.cc
+5
-5
storage/innobase/btr/btr0cur.cc
storage/innobase/btr/btr0cur.cc
+5
-6
storage/innobase/dict/dict0crea.cc
storage/innobase/dict/dict0crea.cc
+8
-7
storage/innobase/dict/dict0load.cc
storage/innobase/dict/dict0load.cc
+4
-5
storage/innobase/fsp/fsp0fsp.cc
storage/innobase/fsp/fsp0fsp.cc
+14
-34
storage/innobase/fts/fts0fts.cc
storage/innobase/fts/fts0fts.cc
+1
-2
storage/innobase/include/fsp0fsp.ic
storage/innobase/include/fsp0fsp.ic
+1
-4
storage/innobase/include/fut0lst.ic
storage/innobase/include/fut0lst.ic
+3
-3
storage/innobase/include/mach0data.h
storage/innobase/include/mach0data.h
+1
-12
storage/innobase/include/mach0data.ic
storage/innobase/include/mach0data.ic
+1
-26
storage/innobase/include/mtr0mtr.h
storage/innobase/include/mtr0mtr.h
+1
-12
storage/innobase/include/mtr0mtr.ic
storage/innobase/include/mtr0mtr.ic
+0
-18
storage/innobase/row/row0import.cc
storage/innobase/row/row0import.cc
+3
-8
No files found.
extra/mariabackup/xtrabackup.cc
View file @
52246dff
...
...
@@ -3329,9 +3329,9 @@ static dberr_t xb_assign_undo_space_start()
+
TRX_SYS_RSEG_PAGE_NO
+
page
)
!=
FIL_NULL
);
space
=
mach_read_
ulint
(
TRX_SYS
+
TRX_SYS_RSEGS
+
TRX_SYS_RSEG_SLOT_SIZE
+
TRX_SYS_RSEG_SPACE
+
page
,
MLOG_4BYTES
);
space
=
mach_read_
from_4
(
TRX_SYS
+
TRX_SYS_RSEGS
+
TRX_SYS_RSEG_SLOT_SIZE
+
TRX_SYS_RSEG_SPACE
+
page
);
srv_undo_space_id_start
=
space
;
...
...
storage/innobase/btr/btr0bulk.cc
View file @
52246dff
...
...
@@ -107,12 +107,12 @@ PageBulk::init()
}
else
{
ut_ad
(
!
dict_index_is_spatial
(
m_index
));
page_create
(
new_block
,
&
m_mtr
,
dict_table_is_comp
(
m_index
->
table
),
m_index
->
table
->
not_redundant
(
),
false
);
mlog_write_ulint
(
FIL_PAGE_PREV
+
new_page
,
FIL_NULL
,
MLOG_4BYTES
,
&
m_mtr
);
mlog_write_ulint
(
FIL_PAGE_NEXT
+
new_page
,
FIL_NULL
,
MLOG_4BYTES
,
&
m_mtr
);
compile_time_assert
(
FIL_PAGE_NEXT
==
FIL_PAGE_PREV
+
4
);
compile_time_assert
(
FIL_NULL
==
0xffffffff
);
mlog_memset
(
new_block
,
FIL_PAGE_PREV
,
8
,
0xff
,
&
m_mtr
);
mlog_write_ulint
(
PAGE_HEADER
+
PAGE_LEVEL
+
new_page
,
m_level
,
MLOG_2BYTES
,
&
m_mtr
);
mlog_write_ull
(
PAGE_HEADER
+
PAGE_INDEX_ID
+
new_page
,
...
...
storage/innobase/btr/btr0cur.cc
View file @
52246dff
...
...
@@ -7739,12 +7739,11 @@ btr_store_big_rec_extern_fields(
ut_a
(
err
==
Z_STREAM_END
||
c_stream
.
avail_out
==
0
);
/* Write the "next BLOB page" pointer */
mlog_write_ulint
(
page
+
FIL_PAGE_NEXT
,
FIL_NULL
,
MLOG_4BYTES
,
&
mtr
);
/* Initialize the unused "prev page" pointer */
mlog_write_ulint
(
page
+
FIL_PAGE_PREV
,
FIL_NULL
,
MLOG_4BYTES
,
&
mtr
);
compile_time_assert
(
FIL_PAGE_NEXT
==
FIL_PAGE_PREV
+
4
);
compile_time_assert
(
FIL_NULL
==
0xffffffff
);
mlog_memset
(
block
,
FIL_PAGE_PREV
,
8
,
0xff
,
&
mtr
);
/* Write a back pointer to the record
into the otherwise unused area. This
information could be useful in
...
...
storage/innobase/dict/dict0crea.cc
View file @
52246dff
...
...
@@ -905,10 +905,10 @@ dict_drop_index_tree(
btr_pcur_t
*
pcur
,
mtr_t
*
mtr
)
{
const
byte
*
ptr
;
ulint
len
;
ulint
space
;
ulint
root_page_no
;
byte
*
ptr
;
ulint
len
;
ulint
space
;
ulint
root_page_no
;
ut_ad
(
mutex_own
(
&
dict_sys
.
mutex
));
ut_a
(
!
dict_table_is_comp
(
dict_sys
.
sys_indexes
));
...
...
@@ -919,7 +919,7 @@ dict_drop_index_tree(
btr_pcur_store_position
(
pcur
,
mtr
);
root_page_no
=
m
tr_read_ulint
(
ptr
,
MLOG_4BYTES
,
m
tr
);
root_page_no
=
m
ach_read_from_4
(
p
tr
);
if
(
root_page_no
==
FIL_NULL
)
{
/* The tree has already been freed */
...
...
@@ -927,14 +927,15 @@ dict_drop_index_tree(
return
(
false
);
}
mlog_write_ulint
(
const_cast
<
byte
*>
(
ptr
),
FIL_NULL
,
MLOG_4BYTES
,
mtr
);
compile_time_assert
(
FIL_NULL
==
0xffffffff
);
mlog_memset
(
ptr
,
4
,
0xff
,
mtr
);
ptr
=
rec_get_nth_field_old
(
rec
,
DICT_FLD__SYS_INDEXES__SPACE
,
&
len
);
ut_ad
(
len
==
4
);
space
=
m
tr_read_ulint
(
ptr
,
MLOG_4BYTES
,
m
tr
);
space
=
m
ach_read_from_4
(
p
tr
);
ptr
=
rec_get_nth_field_old
(
rec
,
DICT_FLD__SYS_INDEXES__ID
,
&
len
);
...
...
storage/innobase/dict/dict0load.cc
View file @
52246dff
...
...
@@ -1479,11 +1479,10 @@ void dict_check_tablespaces_and_store_max_id()
dict_sys_lock
();
/* Initialize the max space_id from sys header */
mtr_start
(
&
mtr
);
ulint
max_space_id
=
mtr_read_ulint
(
dict_hdr_get
(
&
mtr
)
+
DICT_HDR_MAX_SPACE_ID
,
MLOG_4BYTES
,
&
mtr
);
mtr_commit
(
&
mtr
);
mtr
.
start
();
ulint
max_space_id
=
mach_read_from_4
(
DICT_HDR_MAX_SPACE_ID
+
dict_hdr_get
(
&
mtr
));
mtr
.
commit
();
fil_set_max_space_id_if_bigger
(
max_space_id
);
...
...
storage/innobase/fsp/fsp0fsp.cc
View file @
52246dff
...
...
@@ -1386,8 +1386,7 @@ static void fsp_free_page(fil_space_t* space, page_no_t offset,
xdes_set_bit
(
descr
,
XDES_FREE_BIT
,
bit
,
TRUE
,
mtr
);
xdes_set_bit
(
descr
,
XDES_CLEAN_BIT
,
bit
,
TRUE
,
mtr
);
frag_n_used
=
mtr_read_ulint
(
header
+
FSP_FRAG_N_USED
,
MLOG_4BYTES
,
mtr
);
frag_n_used
=
mach_read_from_4
(
header
+
FSP_FRAG_N_USED
);
if
(
state
==
XDES_FULL_FRAG
)
{
/* The fragment was full: move it to another list */
flst_remove
(
header
+
FSP_FULL_FRAG
,
descr
+
XDES_FLST_NODE
,
...
...
@@ -2610,8 +2609,7 @@ fsp_reserve_free_extents(
n_free_list_ext
=
flst_get_len
(
space_header
+
FSP_FREE
);
ut_ad
(
space
->
free_len
==
n_free_list_ext
);
free_limit
=
mtr_read_ulint
(
space_header
+
FSP_FREE_LIMIT
,
MLOG_4BYTES
,
mtr
);
free_limit
=
mach_read_from_4
(
space_header
+
FSP_FREE_LIMIT
);
ut_ad
(
space
->
free_limit
==
free_limit
);
/* Below we play safe when counting free extents above the free limit:
...
...
@@ -2693,9 +2691,7 @@ fseg_mark_page_used(
ut_ad
(
!
((
page_offset
(
seg_inode
)
-
FSEG_ARR_OFFSET
)
%
FSEG_INODE_SIZE
));
ut_ad
(
mach_read_from_4
(
seg_inode
+
FSEG_MAGIC_N
)
==
FSEG_MAGIC_N_VALUE
);
ut_ad
(
mtr_read_ulint
(
seg_inode
+
FSEG_ID
,
MLOG_4BYTES
,
mtr
)
==
mtr_read_ulint
(
descr
+
XDES_ID
,
MLOG_4BYTES
,
mtr
));
ut_ad
(
!
memcmp
(
seg_inode
+
FSEG_ID
,
descr
+
XDES_ID
,
4
));
if
(
xdes_is_free
(
descr
,
mtr
))
{
/* We move the extent from the free list to the
...
...
@@ -2712,8 +2708,7 @@ fseg_mark_page_used(
/* We mark the page as used */
xdes_set_bit
(
descr
,
XDES_FREE_BIT
,
page
%
FSP_EXTENT_SIZE
,
FALSE
,
mtr
);
not_full_n_used
=
mtr_read_ulint
(
seg_inode
+
FSEG_NOT_FULL_N_USED
,
MLOG_4BYTES
,
mtr
);
not_full_n_used
=
mach_read_from_4
(
seg_inode
+
FSEG_NOT_FULL_N_USED
);
not_full_n_used
++
;
mlog_write_ulint
(
seg_inode
+
FSEG_NOT_FULL_N_USED
,
not_full_n_used
,
MLOG_4BYTES
,
mtr
);
...
...
@@ -2825,8 +2820,7 @@ fseg_free_page_low(
<<
FORCE_RECOVERY_MSG
;
}
not_full_n_used
=
mtr_read_ulint
(
seg_inode
+
FSEG_NOT_FULL_N_USED
,
MLOG_4BYTES
,
mtr
);
not_full_n_used
=
mach_read_from_4
(
seg_inode
+
FSEG_NOT_FULL_N_USED
);
if
(
xdes_is_full
(
descr
,
mtr
))
{
/* The fragment is full: move it to another list */
flst_remove
(
seg_inode
+
FSEG_FULL
,
...
...
@@ -2991,9 +2985,8 @@ fseg_free_extent(
flst_remove
(
seg_inode
+
FSEG_NOT_FULL
,
descr
+
XDES_FLST_NODE
,
mtr
);
not_full_n_used
=
mtr_read_ulint
(
seg_inode
+
FSEG_NOT_FULL_N_USED
,
MLOG_4BYTES
,
mtr
);
not_full_n_used
=
mach_read_from_4
(
FSEG_NOT_FULL_N_USED
+
seg_inode
);
descr_n_used
=
xdes_get_n_used
(
descr
,
mtr
);
ut_a
(
not_full_n_used
>=
descr_n_used
);
mlog_write_ulint
(
seg_inode
+
FSEG_NOT_FULL_N_USED
,
...
...
@@ -3234,9 +3227,7 @@ fseg_print_low(
reserved
=
fseg_n_reserved_pages_low
(
inode
,
&
used
,
mtr
);
seg_id
=
mach_read_from_8
(
inode
+
FSEG_ID
);
n_used
=
mtr_read_ulint
(
inode
+
FSEG_NOT_FULL_N_USED
,
MLOG_4BYTES
,
mtr
);
n_used
=
mach_read_from_4
(
inode
+
FSEG_NOT_FULL_N_USED
);
n_frag
=
fseg_get_n_frag_pages
(
inode
,
mtr
);
n_free
=
flst_get_len
(
inode
+
FSEG_FREE
);
n_not_full
=
flst_get_len
(
inode
+
FSEG_NOT_FULL
);
...
...
@@ -3275,23 +3266,12 @@ fseg_print(
#endif
/* UNIV_BTR_PRINT */
#ifdef UNIV_DEBUG
/** Print the file segment header to the given output stream.
@param[in] out the output stream into which the object is printed.
@retval the output stream into which the object was printed. */
std
::
ostream
&
fseg_header
::
to_stream
(
std
::
ostream
&
out
)
const
std
::
ostream
&
fseg_header
::
to_stream
(
std
::
ostream
&
out
)
const
{
const
ulint
space
=
mtr_read_ulint
(
m_header
+
FSEG_HDR_SPACE
,
MLOG_4BYTES
,
m_mtr
);
const
ulint
page_no
=
mtr_read_ulint
(
m_header
+
FSEG_HDR_PAGE_NO
,
MLOG_4BYTES
,
m_mtr
);
const
ulint
offset
=
mtr_read_ulint
(
m_header
+
FSEG_HDR_OFFSET
,
MLOG_2BYTES
,
m_mtr
);
out
<<
"[fseg_header_t: space="
<<
space
<<
", page="
<<
page_no
<<
", offset="
<<
offset
<<
"]"
;
return
(
out
);
out
<<
"[fseg_header_t: space="
<<
mach_read_from_4
(
m_header
+
FSEG_HDR_SPACE
)
<<
", page="
<<
mach_read_from_4
(
m_header
+
FSEG_HDR_PAGE_NO
)
<<
", offset="
<<
mach_read_from_2
(
m_header
+
FSEG_HDR_OFFSET
)
<<
"]"
;
return
out
;
}
#endif
/* UNIV_DEBUG */
storage/innobase/fts/fts0fts.cc
View file @
52246dff
...
...
@@ -3625,8 +3625,7 @@ fts_read_ulint(
dfield_t
*
dfield
=
que_node_get_val
(
exp
);
void
*
data
=
dfield_get_data
(
dfield
);
*
value
=
static_cast
<
ulint
>
(
mach_read_from_4
(
static_cast
<
const
byte
*>
(
data
)));
*
value
=
mach_read_from_4
(
static_cast
<
const
byte
*>
(
data
));
return
(
TRUE
);
}
...
...
storage/innobase/include/fsp0fsp.ic
View file @
52246dff
...
...
@@ -44,8 +44,5 @@ xdes_get_bit(
ulint bit_index = index % 8;
ulint byte_index = index / 8;
return(ut_bit_get_nth(
mach_read_ulint(descr + XDES_BITMAP + byte_index,
MLOG_1BYTE),
bit_index));
return ut_bit_get_nth(descr[XDES_BITMAP + byte_index], bit_index);
}
storage/innobase/include/fut0lst.ic
View file @
52246dff
/*****************************************************************************
Copyright (c) 1995, 2014, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2019, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
...
...
@@ -61,9 +62,8 @@ flst_read_addr(
ut_ad(faddr && mtr);
addr.page = mtr_read_ulint(faddr + FIL_ADDR_PAGE, MLOG_4BYTES, mtr);
addr.boffset = mtr_read_ulint(faddr + FIL_ADDR_BYTE, MLOG_2BYTES,
mtr);
addr.page = mach_read_from_4(faddr + FIL_ADDR_PAGE);
addr.boffset = mach_read_from_2(faddr + FIL_ADDR_BYTE);
ut_a(addr.page == FIL_NULL || addr.boffset >= FIL_PAGE_DATA);
ut_a(ut_align_offset(faddr, srv_page_size) >= FIL_PAGE_DATA);
return(addr);
...
...
storage/innobase/include/mach0data.h
View file @
52246dff
/*****************************************************************************
Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2017, MariaDB Corporation.
Copyright (c) 2017,
2019,
MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
...
...
@@ -367,17 +367,6 @@ mach_write_ulonglong(
#endif
/* !UNIV_INNOCHECKSUM */
/** Read 1 to 4 bytes from a file page buffered in the buffer pool.
@param[in] ptr pointer where to read
@param[in] type MLOG_1BYTE, MLOG_2BYTES, or MLOG_4BYTES
@return value read */
UNIV_INLINE
ulint
mach_read_ulint
(
const
byte
*
ptr
,
mlog_id_t
type
)
MY_ATTRIBUTE
((
warn_unused_result
));
#include "mach0data.ic"
#endif
storage/innobase/include/mach0data.ic
View file @
52246dff
/*****************************************************************************
Copyright (c) 1995, 2015, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2017, MariaDB Corporation.
Copyright (c) 2017,
2019,
MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
...
...
@@ -866,28 +866,3 @@ mach_write_ulonglong(
}
#endif /* !UNIV_INNOCHECKSUM */
/** Read 1 to 4 bytes from a file page buffered in the buffer pool.
@param[in] ptr pointer where to read
@param[in] type MLOG_1BYTE, MLOG_2BYTES, or MLOG_4BYTES
@return value read */
UNIV_INLINE
ulint
mach_read_ulint(
const byte* ptr,
mlog_id_t type)
{
switch (type) {
case MLOG_1BYTE:
return(mach_read_from_1(ptr));
case MLOG_2BYTES:
return(mach_read_from_2(ptr));
case MLOG_4BYTES:
return(mach_read_from_4(ptr));
default:
break;
}
ut_error;
return(0);
}
storage/innobase/include/mtr0mtr.h
View file @
52246dff
...
...
@@ -2,7 +2,7 @@
Copyright (c) 1995, 2017, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2012, Facebook Inc.
Copyright (c) 2013, 201
8
, MariaDB Corporation.
Copyright (c) 2013, 201
9
, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
...
...
@@ -54,10 +54,6 @@ savepoint. */
@return old mode */
#define mtr_set_log_mode(m, d) (m)->set_log_mode((d))
/** Read 1 - 4 bytes from a file page buffered in the buffer pool.
@return value read */
#define mtr_read_ulint(p, t, m) (m)->read_ulint((p), (t))
/** Release an object in the memo stack.
@return true if released */
#define mtr_memo_release(m, o, t) \
...
...
@@ -306,13 +302,6 @@ struct mtr_t {
bool
is_named_space
(
const
fil_space_t
*
space
)
const
;
#endif
/* UNIV_DEBUG */
/** Read 1 - 4 bytes from a file page buffered in the buffer pool.
@param ptr pointer from where to read
@param type) MLOG_1BYTE, MLOG_2BYTES, MLOG_4BYTES
@return value read */
inline
ulint
read_ulint
(
const
byte
*
ptr
,
mlog_id_t
type
)
const
MY_ATTRIBUTE
((
warn_unused_result
));
/** Locks a rw-latch in S mode.
NOTE: use mtr_s_lock().
@param lock rw-lock
...
...
storage/innobase/include/mtr0mtr.ic
View file @
52246dff
...
...
@@ -275,21 +275,3 @@ mtr_t::sx_lock(rw_lock_t* lock, const char* file, unsigned line)
memo_push(lock, MTR_MEMO_SX_LOCK);
}
/**
Reads 1 - 4 bytes from a file page buffered in the buffer pool.
@return value read */
ulint
mtr_t::read_ulint(const byte* ptr, mlog_id_t type) const
{
ut_ad(is_active());
ut_ad(memo_contains_page_flagged(
ptr,
MTR_MEMO_PAGE_S_FIX
| MTR_MEMO_PAGE_X_FIX
| MTR_MEMO_PAGE_SX_FIX));
return(mach_read_ulint(ptr, type));
}
storage/innobase/row/row0import.cc
View file @
52246dff
...
...
@@ -466,17 +466,12 @@ class AbstractCallback
UT_DELETE_ARRAY
(
m_xdes
);
m_xdes
=
NULL
;
ulint
state
;
const
xdes_t
*
xdesc
=
page
+
XDES_ARR_OFFSET
;
state
=
mach_read_ulint
(
xdesc
+
XDES_STATE
,
MLOG_4BYTES
);
if
(
state
!=
XDES_FREE
)
{
if
(
mach_read_from_4
(
XDES_ARR_OFFSET
+
XDES_STATE
+
page
)
!=
XDES_FREE
)
{
const
ulint
physical_size
=
m_zip_size
?
m_zip_size
:
srv_page_size
;
m_xdes
=
UT_NEW_ARRAY_NOKEY
(
xdes_t
,
physical_size
);
m_xdes
=
UT_NEW_ARRAY_NOKEY
(
xdes_t
,
physical_size
);
/* Trigger OOM */
DBUG_EXECUTE_IF
(
...
...
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