summaryrefslogtreecommitdiff
path: root/storage/innobase/include/buf0flu.h
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2018-07-25 17:05:47 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2018-07-26 08:44:42 +0300
commit0f90728bc0f8bc946a61500801b23f8a316e73d5 (patch)
tree735b003cdecab7e6a866e49dba9fd0a32e4e8c36 /storage/innobase/include/buf0flu.h
parent32eb5823e42d488c2c8eb85fdf822733e0a482a3 (diff)
downloadmariadb-git-0f90728bc0f8bc946a61500801b23f8a316e73d5.tar.gz
MDEV-16809 Allow full redo logging for ALTER TABLE
Introduce the configuration option innodb_log_optimize_ddl for controlling whether native index creation or table-rebuild in InnoDB should keep optimizing the redo log (and writing MLOG_INDEX_LOAD records to ensure that concurrent backup would fail). By default, we have innodb_log_optimize_ddl=ON, that is, the default behaviour that was introduced in MariaDB 10.2.2 (with the merge of InnoDB from MySQL 5.7) will be unchanged. BtrBulk::m_trx: Replaces m_trx_id. We must be able to check for KILL QUERY even if !m_flush_observer (innodb_log_optimize_ddl=OFF). page_cur_insert_rec_write_log(): Declare globally, so that this can be called from PageBulk::insert(). row_merge_insert_index_tuples(): Remove the unused parameter trx_id. row_merge_build_indexes(): Enable or disable redo logging based on the innodb_log_optimize_ddl parameter. PageBulk::init(), PageBulk::insert(), PageBulk::finish(): Write redo log records if needed. For ROW_FORMAT=COMPRESSED, redo log will be written in PageBulk::compress() unless we called m_mtr.set_log_mode(MTR_LOG_NO_REDO).
Diffstat (limited to 'storage/innobase/include/buf0flu.h')
-rw-r--r--storage/innobase/include/buf0flu.h7
1 files changed, 3 insertions, 4 deletions
diff --git a/storage/innobase/include/buf0flu.h b/storage/innobase/include/buf0flu.h
index c3b518c4295..5c1dddd9a3b 100644
--- a/storage/innobase/include/buf0flu.h
+++ b/storage/innobase/include/buf0flu.h
@@ -371,9 +371,8 @@ public:
m_interrupted = true;
}
- /** Check whether trx is interrupted
- @return true if trx is interrupted */
- bool check_interrupted();
+ /** Check whether the operation has been interrupted */
+ void check_interrupted();
/** Flush dirty pages. */
void flush();
@@ -395,7 +394,7 @@ private:
const ulint m_space_id;
/** Trx instance */
- trx_t* const m_trx;
+ const trx_t* const m_trx;
/** Performance schema accounting object, used by ALTER TABLE.
If not NULL, then stage->begin_phase_flush() will be called initially,