Skip to content

Commit

Permalink
Extend trx_rseq library
Browse files Browse the repository at this point in the history
  • Loading branch information
romz-pl committed Sep 7, 2019
1 parent 44b8357 commit 2cb38ea
Show file tree
Hide file tree
Showing 9 changed files with 38 additions and 5 deletions.
4 changes: 4 additions & 0 deletions storage/innobase/include/trx0rseg.h
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,10 @@ this program; if not, write to the Free Software Foundation, Inc.,
#include <innodb/trx_types/trx_rseg_t.h>
#include <innodb/trx_types/trx_rsegf_t.h>
#include <innodb/trx_types/trx_rsegsf_t.h>
#include <innodb/trx_rseq/trx_rseg_id_to_space_id.h>
#include <innodb/trx_rseq/trx_rsegsf_get.h>
#include <innodb/trx_rseq/trx_rsegsf_get_page_no.h>


#include "mtr0log.h"
#include "srv0srv.h"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#pragma once

#include <innodb/univ/univ.h>

space_id_t trx_rseg_id_to_space_id(ulint id, bool is_temp);
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#pragma once

#include <innodb/univ/univ.h>

#include <innodb/trx_types/trx_rsegsf_t.h>

struct mtr_t;

trx_rsegsf_t *trx_rsegsf_get(space_id_t space_id, mtr_t *mtr) ;
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#pragma once

#include <innodb/univ/univ.h>

#include <innodb/univ/page_no_t.h>
#include <innodb/trx_types/trx_rsegsf_t.h>

struct mtr_t;

page_no_t trx_rsegsf_get_page_no(trx_rsegsf_t *rsegs_header, ulint slot,
mtr_t *mtr);
3 changes: 3 additions & 0 deletions storage/innobase/libs/trx_rseq/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ add_library( ${LIB_NAME} STATIC
trx_rseg_array_create.cpp
trx_rsegsf_set_page_no.cpp
flags.cpp
trx_rseg_id_to_space_id.cpp
trx_rsegsf_get.cpp
trx_rsegsf_get_page_no.cpp
)

target_compile_options( ${LIB_NAME} PRIVATE )
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#include <innodb/trx_rseq/trx_rseg_id_to_space_id.h>
1 change: 1 addition & 0 deletions storage/innobase/libs/trx_rseq/src/trx_rsegsf_get.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#include <innodb/trx_rseq/trx_rsegsf_get.h>
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#include <innodb/trx_rseq/trx_rsegsf_get_page_no.h>
8 changes: 3 additions & 5 deletions storage/innobase/trx/trx0rseg.cc
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,6 @@ trx_rsegf_t *trx_rsegf_get_new(space_id_t space, page_no_t page_no,

/** Gets the file page number of the nth undo log slot.
@return page number of the undo log segment */
UNIV_INLINE
page_no_t trx_rsegf_get_nth_undo(
trx_rsegf_t *rsegf, /*!< in: rollback segment header */
ulint n, /*!< in: index of slot */
Expand All @@ -132,7 +131,6 @@ void trx_rsegf_set_nth_undo(

/** Looks for a free slot for an undo log segment.
@return slot index or ULINT_UNDEFINED if not found */
UNIV_INLINE
ulint trx_rsegf_undo_find_free(
trx_rsegf_t *rsegf, /*!< in: rollback segment header */
mtr_t *mtr) /*!< in: mtr */
Expand Down Expand Up @@ -167,7 +165,7 @@ an undo space ID.
@param[in] id a 7-bit ID from a rollback pointer
@param[in] is_temp true if rseg from Temp Tablespace else false.
@return undo tablespace ID containing the rollback segment */
inline space_id_t trx_rseg_id_to_space_id(ulint id, bool is_temp) {
space_id_t trx_rseg_id_to_space_id(ulint id, bool is_temp) {
/* The rseg_id must be an undo_space_num between 0 and 127. */
ut_ad(id < TRX_SYS_N_RSEGS);

Expand Down Expand Up @@ -208,7 +206,7 @@ page.
@param[in] space_id Undo Tablespace ID
@param[in] mtr mtr
@return pointer to rollback segment directory header with page x-latched. */
inline trx_rsegsf_t *trx_rsegsf_get(space_id_t space_id, mtr_t *mtr) {
trx_rsegsf_t *trx_rsegsf_get(space_id_t space_id, mtr_t *mtr) {
buf_block_t *block;
trx_rsegsf_t *rsegs_header;

Expand All @@ -230,7 +228,7 @@ RSEG_ARRAY page for this undo tablespace.
@param[in] slot slot index == rseg id
@param[in] mtr mtr
@return page number, FIL_NULL if slot unused */
inline page_no_t trx_rsegsf_get_page_no(trx_rsegsf_t *rsegs_header, ulint slot,
page_no_t trx_rsegsf_get_page_no(trx_rsegsf_t *rsegs_header, ulint slot,
mtr_t *mtr) {
ut_ad(rsegs_header != nullptr);
ut_ad(mtr != nullptr);
Expand Down

0 comments on commit 2cb38ea

Please sign in to comment.