summaryrefslogtreecommitdiff
path: root/storage/innobase/include/mtr0mtr.h
diff options
context:
space:
mode:
Diffstat (limited to 'storage/innobase/include/mtr0mtr.h')
-rw-r--r--storage/innobase/include/mtr0mtr.h35
1 files changed, 11 insertions, 24 deletions
diff --git a/storage/innobase/include/mtr0mtr.h b/storage/innobase/include/mtr0mtr.h
index f8ab7cf440f..d65a830dea2 100644
--- a/storage/innobase/include/mtr0mtr.h
+++ b/storage/innobase/include/mtr0mtr.h
@@ -316,24 +316,12 @@ public:
/** @return true if we are inside the change buffer code */
bool is_inside_ibuf() const { return m_inside_ibuf; }
- /** Note that system tablespace page has been freed. */
- void freed_system_tablespace_page() { m_freed_in_system_tablespace= true; }
-
/** Note that pages has been trimed */
void set_trim_pages() { m_trim_pages= true; }
/** @return true if pages has been trimed */
bool is_trim_pages() { return m_trim_pages; }
- /** @return whether a page_compressed table was modified */
- bool is_page_compressed() const
- {
-#if defined(HAVE_FALLOC_PUNCH_HOLE_AND_KEEP_SIZE) || defined(_WIN32)
- return m_user_space && m_user_space->is_compressed();
-#else
- return false;
-#endif
- }
#ifdef UNIV_DEBUG
/** Check if we are holding an rw-latch in this mini-transaction
@param lock latch to search for
@@ -376,12 +364,6 @@ public:
/** @return the memo stack */
mtr_buf_t* get_memo() { return &m_memo; }
-
- /** @return true if system tablespace page has been freed */
- bool is_freed_system_tablespace_page()
- {
- return m_freed_in_system_tablespace;
- }
#endif /* UNIV_DEBUG */
/** @return true if a record was added to the mini-transaction */
@@ -587,12 +569,18 @@ public:
const char *new_path= nullptr);
/** Add freed page numbers to freed_pages */
- void add_freed_offset(page_id_t id)
+ void add_freed_offset(fil_space_t *space, uint32_t page)
{
- ut_ad(m_user_space == NULL || id.space() == m_user_space->id);
+ ut_ad(is_named_space(space));
if (!m_freed_pages)
+ {
m_freed_pages= new range_set();
- m_freed_pages->add_value(id.page_no());
+ ut_ad(!m_freed_space);
+ m_freed_space= space;
+ }
+ else
+ ut_ad(m_freed_space == space);
+ m_freed_pages->add_value(page);
}
/** Determine the added buffer fix count of a block.
@@ -670,9 +658,6 @@ private:
to suppress some read-ahead operations, @see ibuf_inside() */
uint16_t m_inside_ibuf:1;
- /** whether the page has been freed in system tablespace */
- uint16_t m_freed_in_system_tablespace:1;
-
/** whether the pages has been trimmed */
uint16_t m_trim_pages:1;
@@ -694,6 +679,8 @@ private:
/** LSN at commit time */
lsn_t m_commit_lsn;
+ /** tablespace where pages have been freed */
+ fil_space_t *m_freed_space= nullptr;
/** set of freed page ids */
range_set *m_freed_pages= nullptr;
};