summaryrefslogtreecommitdiffstats
path: root/mysql-test/suite/innodb/include/no_checkpoint_start.inc
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/suite/innodb/include/no_checkpoint_start.inc')
-rw-r--r--mysql-test/suite/innodb/include/no_checkpoint_start.inc23
1 files changed, 23 insertions, 0 deletions
diff --git a/mysql-test/suite/innodb/include/no_checkpoint_start.inc b/mysql-test/suite/innodb/include/no_checkpoint_start.inc
index a903fee6..69823dd0 100644
--- a/mysql-test/suite/innodb/include/no_checkpoint_start.inc
+++ b/mysql-test/suite/innodb/include/no_checkpoint_start.inc
@@ -1,5 +1,28 @@
# Preparation for using no_checkpoint_end.inc
+# no_checkpoint_flush: Set to trigger flushing the dirty pages from buffer pool
+# and checkpoint before the "no checkpoint" block.
+
+if ($no_checkpoint_flush) {
+ --echo
+ --echo # Flush all dirty pages from buffer pool
+ SET @no_checkpoint_save_pct= @@GLOBAL.innodb_max_dirty_pages_pct;
+ SET @no_checkpoint_save_pct_lwm= @@GLOBAL.innodb_max_dirty_pages_pct_lwm;
+
+ SET GLOBAL innodb_max_dirty_pages_pct_lwm=0.0;
+ SET GLOBAL innodb_max_dirty_pages_pct=0.0;
+
+ let $wait_condition =
+ SELECT variable_value = 0
+ FROM information_schema.global_status
+ WHERE variable_name = 'INNODB_BUFFER_POOL_PAGES_DIRTY';
+ --source include/wait_condition.inc
+
+ SET GLOBAL innodb_max_dirty_pages_pct= @no_checkpoint_save_pct;
+ SET GLOBAL innodb_max_dirty_pages_pct_lwm= @no_checkpoint_save_pct_lwm;
+ --echo
+}
+
let MYSQLD_DATADIR= `select @@datadir`;
--replace_regex /.*Last checkpoint at[ ]*([0-9]+).*/\1/
let CHECKPOINT_LSN=`SHOW ENGINE INNODB STATUS`;