summaryrefslogtreecommitdiff
path: root/mysql-test/suite/percona
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/suite/percona')
-rw-r--r--mysql-test/suite/percona/disabled.def26
-rw-r--r--mysql-test/suite/percona/have_response_time_distribution.inc8
-rw-r--r--mysql-test/suite/percona/log_connection_error.patch/percona_log_connection_error.result3
-rw-r--r--mysql-test/suite/percona/log_connection_error.patch/percona_log_connection_error.test10
-rw-r--r--mysql-test/suite/percona/percona_innodb_buffer_pool_shm-master.opt1
-rw-r--r--mysql-test/suite/percona/percona_innodb_buffer_pool_shm.result4
-rw-r--r--mysql-test/suite/percona/percona_innodb_buffer_pool_shm.test19
-rw-r--r--mysql-test/suite/percona/percona_innodb_deadlock_count.result10
-rw-r--r--mysql-test/suite/percona/percona_innodb_deadlock_count.test24
-rw-r--r--mysql-test/suite/percona/percona_innodb_doublewrite_file.test2
-rw-r--r--mysql-test/suite/percona/percona_innodb_expand_fast_index_creation.result64
-rw-r--r--mysql-test/suite/percona/percona_innodb_expand_fast_index_creation.test45
-rw-r--r--mysql-test/suite/percona/percona_innodb_fake_changes.result55
-rw-r--r--mysql-test/suite/percona/percona_innodb_fake_changes.test49
-rw-r--r--mysql-test/suite/percona/percona_innodb_fake_changes_locks.result19
-rw-r--r--mysql-test/suite/percona/percona_innodb_fake_changes_locks.test24
-rw-r--r--mysql-test/suite/percona/percona_innodb_kill_idle_trx.result41
-rw-r--r--mysql-test/suite/percona/percona_innodb_kill_idle_trx.test28
-rw-r--r--mysql-test/suite/percona/percona_innodb_kill_idle_trx_locks.result45
-rw-r--r--mysql-test/suite/percona/percona_innodb_kill_idle_trx_locks.test31
-rw-r--r--mysql-test/suite/percona/percona_innodb_kill_idle_trx_show.inc2
-rw-r--r--mysql-test/suite/percona/percona_innodb_use_sys_stats_table-master.opt2
-rw-r--r--mysql-test/suite/percona/percona_innodb_use_sys_stats_table.test2
-rw-r--r--mysql-test/suite/percona/percona_log_warnings_suppress-master.opt (renamed from mysql-test/suite/percona/percona_suppress_log_warning_1592-master.opt)0
-rw-r--r--mysql-test/suite/percona/percona_log_warnings_suppress.result31
-rw-r--r--mysql-test/suite/percona/percona_log_warnings_suppress.test (renamed from mysql-test/suite/percona/percona_suppress_log_warning_1592.test)17
-rw-r--r--mysql-test/suite/percona/percona_processlist_row_stats.result70
-rw-r--r--mysql-test/suite/percona/percona_processlist_row_stats.test79
-rw-r--r--mysql-test/suite/percona/percona_query_cache_with_comments.inc.backup88
-rw-r--r--mysql-test/suite/percona/percona_query_response_time-replication.result727
-rw-r--r--mysql-test/suite/percona/percona_query_response_time-replication.test28
-rw-r--r--mysql-test/suite/percona/percona_query_response_time-stored.result544
-rw-r--r--mysql-test/suite/percona/percona_query_response_time-stored.test36
-rw-r--r--mysql-test/suite/percona/percona_query_response_time.result1307
-rw-r--r--mysql-test/suite/percona/percona_query_response_time.test20
-rw-r--r--mysql-test/suite/percona/percona_query_response_time_flush.inc1
-rw-r--r--mysql-test/suite/percona/percona_query_response_time_show.inc8
-rw-r--r--mysql-test/suite/percona/percona_query_response_time_sleep.inc19
-rw-r--r--mysql-test/suite/percona/percona_server_variables.inc3
-rw-r--r--mysql-test/suite/percona/percona_server_variables.result343
-rw-r--r--mysql-test/suite/percona/percona_server_variables.test8
-rw-r--r--mysql-test/suite/percona/percona_server_variables_debug.result380
-rw-r--r--mysql-test/suite/percona/percona_server_variables_debug.test2
-rw-r--r--mysql-test/suite/percona/percona_server_variables_release.result376
-rw-r--r--mysql-test/suite/percona/percona_server_variables_release.test2
-rw-r--r--mysql-test/suite/percona/percona_slow_extended-slow_query_log_timestamp_always-cl-master.opt1
-rw-r--r--mysql-test/suite/percona/percona_slow_extended-slow_query_log_timestamp_always-cl.result3
-rw-r--r--mysql-test/suite/percona/percona_slow_extended-slow_query_log_timestamp_always-cl.test1
-rw-r--r--mysql-test/suite/percona/percona_slow_extended-use_global_control-master.opt1
-rw-r--r--mysql-test/suite/percona/percona_slow_extended-use_global_control.result12
-rw-r--r--mysql-test/suite/percona/percona_slow_extended-use_global_control.test12
-rw-r--r--mysql-test/suite/percona/percona_suppress_log_warning_1592.result28
-rw-r--r--mysql-test/suite/percona/percona_xtradb_admin_command.test2
-rw-r--r--mysql-test/suite/percona/percona_xtradb_bug317074.result1
-rw-r--r--mysql-test/suite/percona/percona_xtradb_bug317074.test6
-rw-r--r--mysql-test/suite/percona/profiling_slow.patch/percona_bug643149.result25
-rw-r--r--mysql-test/suite/percona/profiling_slow.patch/percona_bug643149.test11
-rw-r--r--mysql-test/suite/percona/query_cache_enhance.patch/percona_query_cache_with_comments.inc54
-rw-r--r--mysql-test/suite/percona/query_cache_enhance.patch/percona_query_cache_with_comments_begin.inc2
-rw-r--r--mysql-test/suite/percona/query_cache_enhance.patch/percona_query_cache_with_comments_eval.inc4
-rw-r--r--mysql-test/suite/percona/query_cache_enhance.patch/percona_status_wait_query_cache_mutex.result26
-rw-r--r--mysql-test/suite/percona/query_cache_enhance.patch/percona_status_wait_query_cache_mutex.test32
-rw-r--r--mysql-test/suite/percona/query_response_time-replication.inc57
-rw-r--r--mysql-test/suite/percona/query_response_time-stored.inc37
-rw-r--r--mysql-test/suite/percona/query_response_time.inc43
-rw-r--r--mysql-test/suite/percona/show_slave_status_nolock.patch/percona_show_slave_status_nolock.result70
-rw-r--r--mysql-test/suite/percona/show_slave_status_nolock.patch/percona_show_slave_status_nolock.test98
-rw-r--r--mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-log_slow_filter-master.opt2
-rw-r--r--mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-log_slow_filter.result2
-rw-r--r--mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-log_slow_filter.test8
-rw-r--r--mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-log_slow_verbosity.test4
-rw-r--r--mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-long_query_time-master.opt2
-rw-r--r--mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-long_query_time.result2
-rw-r--r--mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-long_query_time.test8
-rw-r--r--mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-microseconds_in_slow_extended-master.opt2
-rw-r--r--mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-microseconds_in_slow_extended.result6
-rw-r--r--mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-microseconds_in_slow_extended.test14
-rw-r--r--mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-min_examined_row_limit-master.opt2
-rw-r--r--mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-min_examined_row_limit.result2
-rw-r--r--mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-min_examined_row_limit.test8
-rw-r--r--mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slave_innodb_stats.result2
-rw-r--r--mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slave_innodb_stats.test7
-rw-r--r--mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slave_statements-and-use_global_long_query_time.result29
-rw-r--r--mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slave_statements-and-use_global_long_query_time.test35
-rw-r--r--mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slave_statements.result51
-rw-r--r--mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slave_statements.test97
-rw-r--r--mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slow_query_log_microseconds_timestamp-cl-master.opt2
-rw-r--r--mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slow_query_log_microseconds_timestamp-cl.result4
-rw-r--r--mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slow_query_log_microseconds_timestamp-cl.test2
-rw-r--r--mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-use_global_long_query_time-master.opt2
-rw-r--r--mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-use_global_long_query_time.result51
-rw-r--r--mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-use_global_long_query_time.test37
-rw-r--r--mysql-test/suite/percona/userstat_bug602047.result5
-rw-r--r--mysql-test/suite/percona/userstat_bug602047.test7
94 files changed, 4742 insertions, 780 deletions
diff --git a/mysql-test/suite/percona/disabled.def b/mysql-test/suite/percona/disabled.def
index 2155df55a7f..eb9df7f4118 100644
--- a/mysql-test/suite/percona/disabled.def
+++ b/mysql-test/suite/percona/disabled.def
@@ -15,9 +15,29 @@ percona_sql_no_fcache: Feature not merged into MariaDB
percona_status_wait_query_cache_mutex: Feature not merged into MariaDB
percona_slave_innodb_stats: Feature not merged into MariaDB
percona_query_response_time-replication: Feature not merged into MariaDB
-percona_server_variables: Feature not merged into MariaDB
-
+percona_server_variables_debug: Feature not merged into MariaDB
+percona_server_variables_release: Feature not merged into MariaDB
percona_slow_query_log-log_slow_verbosity: InnoDB filtering information not fully merged into MariaDB
-
percona_innodb_buffer_pool_shm: Requires big shmmax not default on many systems
+percona_log_warnings_suppress: Feature not merged into MariaDB
+percona_slow_extended-log_slow_sp_statements-cl: Feature not merged into MariaDB
+percona_slow_extended-log_slow_verbosity-cl: Feature not merged into MariaDB
+slow_query_log_use_global_control: Feature not merged into MariaDB
+percona_slow_extended-use_global_control: Feature not merged into MariaDB
+percona_slow_query_log-log_slow_verbosity: Feature not merged into MariaDB
+percona_slow_extended-log_slow_verbosity: Feature not merged into MariaDB
+percona_slow_extended-microseconds_in_slow_extended: Feature not merged into MariaDB
+percona_slow_extended-use_global_long_query_time: Feature not merged into MariaDB
+percona_slow_extended-slow_query_log_timestamp_always-cl: Feature not merged into MariaDB
+percona_slow_extended-slow_query_log_microseconds_timestamp-cl: Feature not merged into MariaDB
+percona_bug643149: Feature not merged into MariaDB
+percona_processlist_row_stats: Feature not merged into MariaDB
+percona_server_variables_debug: Feature not merged into MariaDB
+percona_slow_extended-slave_statements: Feature not merged into MariaDB
+percona_show_slave_status_nolock: Feature not merged into MariaDB
+percona_slow_extended-slave_innodb_stats: Feature not merged into MariaDB
+percona_slow_extended-slave_statements-and-use_global_long_query_time: Feature not merged into MariaDB
userstat_bug602047: Feature not merged into MariaDB
+percona_innodb_expand_fast_index_creation: Feature not merged into MariaDB
+percona_innodb_kill_idle_trx: Feature not merged into MariaDB
+percona_innodb_kill_idle_trx_locks: Feature not merged into MariaDB
diff --git a/mysql-test/suite/percona/have_response_time_distribution.inc b/mysql-test/suite/percona/have_response_time_distribution.inc
index aa4bf40ce67..45650133b31 100644
--- a/mysql-test/suite/percona/have_response_time_distribution.inc
+++ b/mysql-test/suite/percona/have_response_time_distribution.inc
@@ -1,4 +1,4 @@
--- require r/have_response_time_distribution.require
-disable_query_log;
-show variables like 'have_response_time_distribution';
-enable_query_log;
+if (`SELECT @@have_response_time_distribution != 'YES'`)
+{
+ --skip No response time distribution
+}
diff --git a/mysql-test/suite/percona/log_connection_error.patch/percona_log_connection_error.result b/mysql-test/suite/percona/log_connection_error.patch/percona_log_connection_error.result
index 3c6c67f770c..352c9ca2a99 100644
--- a/mysql-test/suite/percona/log_connection_error.patch/percona_log_connection_error.result
+++ b/mysql-test/suite/percona/log_connection_error.patch/percona_log_connection_error.result
@@ -12,4 +12,5 @@ connect(localhost,root,,test,port,socket);
ERROR HY000: Too many connections
SET GLOBAL max_connections = @old_max_connections;
SET GLOBAL log_warnings = @old_log_warnings;
-1
+[log_grep.inc] file: percona.log_connection_error.err pattern: Too many connections
+[log_grep.inc] lines: 1
diff --git a/mysql-test/suite/percona/log_connection_error.patch/percona_log_connection_error.test b/mysql-test/suite/percona/log_connection_error.patch/percona_log_connection_error.test
index 57cd652bd24..048102d0499 100644
--- a/mysql-test/suite/percona/log_connection_error.patch/percona_log_connection_error.test
+++ b/mysql-test/suite/percona/log_connection_error.patch/percona_log_connection_error.test
@@ -45,8 +45,10 @@ if(!`select LENGTH('$log_error_')`)
# does not know the location of its .err log, use default location
let $log_error_ = $MYSQLTEST_VARDIR/log/mysqld.1.err;
}
-# Assign env variable LOG_ERROR
-let LOG_ERROR=$log_error_;
-let cmd=cat $log_error | grep "Too many connections" | wc -l;
-exec $cmd;
+--let log_error=$log_error_
+--let log_file=percona.log_connection_error.err
+--let log_file_full_path=$log_error
+--let grep_pattern= Too many connections
+--source log_grep.inc
+
diff --git a/mysql-test/suite/percona/percona_innodb_buffer_pool_shm-master.opt b/mysql-test/suite/percona/percona_innodb_buffer_pool_shm-master.opt
index 521fd9f459e..5974ef6e2be 100644
--- a/mysql-test/suite/percona/percona_innodb_buffer_pool_shm-master.opt
+++ b/mysql-test/suite/percona/percona_innodb_buffer_pool_shm-master.opt
@@ -1,2 +1 @@
--innodb_buffer_pool_shm_key=123456
---innodb=FORCE
diff --git a/mysql-test/suite/percona/percona_innodb_buffer_pool_shm.result b/mysql-test/suite/percona/percona_innodb_buffer_pool_shm.result
index 04ca5f4b877..e5373606099 100644
--- a/mysql-test/suite/percona/percona_innodb_buffer_pool_shm.result
+++ b/mysql-test/suite/percona/percona_innodb_buffer_pool_shm.result
@@ -2,7 +2,3 @@ show variables like 'innodb_buffer_pool_shm%';
Variable_name Value
innodb_buffer_pool_shm_checksum ON
innodb_buffer_pool_shm_key 123456
-show variables like 'innodb_buffer_pool_shm%';
-Variable_name Value
-innodb_buffer_pool_shm_checksum ON
-innodb_buffer_pool_shm_key 123456
diff --git a/mysql-test/suite/percona/percona_innodb_buffer_pool_shm.test b/mysql-test/suite/percona/percona_innodb_buffer_pool_shm.test
index a7f9c8eb72f..7b26c217893 100644
--- a/mysql-test/suite/percona/percona_innodb_buffer_pool_shm.test
+++ b/mysql-test/suite/percona/percona_innodb_buffer_pool_shm.test
@@ -1,19 +1,2 @@
---source include/big_test.inc
---source include/have_innodb.inc
+--source include/have_xtradb.inc
show variables like 'innodb_buffer_pool_shm%';
-
-#clean shutdown (restart_mysqld.inc is not clean if over 10 sec...)
---write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
-wait
-EOF
-shutdown_server 120;
---append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
-restart
-EOF
---enable_reconnect
---source include/wait_until_connected_again.inc
---disable_reconnect
-
-show variables like 'innodb_buffer_pool_shm%';
---sleep 1
---system ipcrm -M 123456
diff --git a/mysql-test/suite/percona/percona_innodb_deadlock_count.result b/mysql-test/suite/percona/percona_innodb_deadlock_count.result
index 4ad6fd433fe..00902e87feb 100644
--- a/mysql-test/suite/percona/percona_innodb_deadlock_count.result
+++ b/mysql-test/suite/percona/percona_innodb_deadlock_count.result
@@ -11,18 +11,18 @@ insert into t values(1,2);
# Switch to connection con1
BEGIN;
SELECT b FROM t WHERE a=1 FOR UPDATE;
-b
-2
# Switch to connection con2
BEGIN;
SELECT b FROM t WHERE a=2 FOR UPDATE;
-b
-1
# Switch to connection con1
SELECT b FROM t WHERE a=2 FOR UPDATE;
# Switch to connection con2
SELECT b FROM t WHERE a=1 FOR UPDATE;
+# Switch to connection con1
+ROLLBACK;
+# Switch to connection con2
+ROLLBACK;
# Switch to connection con3
-1
+Deadlocks: 1
# Drop test table
drop table t;
diff --git a/mysql-test/suite/percona/percona_innodb_deadlock_count.test b/mysql-test/suite/percona/percona_innodb_deadlock_count.test
index b0882a18dc1..f953b9d7822 100644
--- a/mysql-test/suite/percona/percona_innodb_deadlock_count.test
+++ b/mysql-test/suite/percona/percona_innodb_deadlock_count.test
@@ -1,4 +1,4 @@
---source include/have_innodb.inc
+--source include/have_xtradb.inc
--echo # Establish connection con1 (user=root)
connect (con1,localhost,root,,);
--echo # Establish connection con2 (user=root)
@@ -9,7 +9,6 @@ connect (con3,localhost,root,,);
--disable_warnings
drop table if exists t;
--enable_warnings
-disable_abort_on_error;
--echo # Create test table
create table t(a INT PRIMARY KEY, b INT) engine=InnoDB;
@@ -20,12 +19,12 @@ insert into t values(1,2);
#--echo # Save current deadlock count
let $current = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'Innodb_deadlocks'`;
+--disable_result_log
+
--echo # Switch to connection con1
connection con1;
BEGIN; SELECT b FROM t WHERE a=1 FOR UPDATE;
-#show engine innodb status;
-
--echo # Switch to connection con2
connection con2;
BEGIN; SELECT b FROM t WHERE a=2 FOR UPDATE;
@@ -38,12 +37,25 @@ SEND SELECT b FROM t WHERE a=2 FOR UPDATE;
connection con2;
SEND SELECT b FROM t WHERE a=1 FOR UPDATE;
-SLEEP 0.2;
+--echo # Switch to connection con1
+connection con1;
+--error 0, ER_LOCK_DEADLOCK
+reap;
+ROLLBACK;
+
+--echo # Switch to connection con2
+connection con2;
+--error 0, ER_LOCK_DEADLOCK
+reap;
+ROLLBACK;
+
--echo # Switch to connection con3
connection con3;
let $result = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'Innodb_deadlocks'`;
+--enable_result_log
+
let $diff = `SELECT $result - $current`;
-echo $diff;
+echo Deadlocks: $diff;
--echo # Drop test table
drop table t;
diff --git a/mysql-test/suite/percona/percona_innodb_doublewrite_file.test b/mysql-test/suite/percona/percona_innodb_doublewrite_file.test
index 8068d561190..d9e94db8463 100644
--- a/mysql-test/suite/percona/percona_innodb_doublewrite_file.test
+++ b/mysql-test/suite/percona/percona_innodb_doublewrite_file.test
@@ -1,2 +1,2 @@
---source include/have_innodb.inc
+--source include/have_xtradb.inc
show variables like 'innodb_doublewrite%';
diff --git a/mysql-test/suite/percona/percona_innodb_expand_fast_index_creation.result b/mysql-test/suite/percona/percona_innodb_expand_fast_index_creation.result
new file mode 100644
index 00000000000..b8cec3d4398
--- /dev/null
+++ b/mysql-test/suite/percona/percona_innodb_expand_fast_index_creation.result
@@ -0,0 +1,64 @@
+CREATE TABLE t1(
+id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
+a CHAR(1) NOT NULL,
+b CHAR(36) NOT NULL) ENGINE=InnoDB;
+INSERT INTO t1(a,b) VALUES ('a','b');
+INSERT INTO t1(a,b) SELECT a,b FROM t1;
+INSERT INTO t1(a,b) SELECT a,b FROM t1;
+INSERT INTO t1(a,b) SELECT a,b FROM t1;
+INSERT INTO t1(a,b) SELECT a,b FROM t1;
+ALTER TABLE t1 ADD KEY (a);
+affected rows: 0
+info: Records: 0 Duplicates: 0 Warnings: 0
+EXPLAIN SELECT COUNT(*) FROM t1, t1 t2 WHERE t1.a = t2.a AND t1.b = t2.b;
+id 1
+select_type SIMPLE
+table t1
+type ALL
+possible_keys a
+key NULL
+key_len NULL
+ref NULL
+rows 16
+Extra
+id 1
+select_type SIMPLE
+table t2
+type ref
+possible_keys a
+key a
+key_len 1
+ref test.t1.a
+rows 1
+Extra Using where
+ALTER TABLE t1 DROP KEY a;
+SET expand_fast_index_creation = 1;
+SELECT @@expand_fast_index_creation;
+@@expand_fast_index_creation
+1
+ALTER TABLE t1 ADD KEY (a);
+affected rows: 0
+info: Records: 0 Duplicates: 0 Warnings: 0
+EXPLAIN SELECT COUNT(*) FROM t1, t1 t2 WHERE t1.a = t2.a AND t1.b = t2.b;
+id 1
+select_type SIMPLE
+table t1
+type ALL
+possible_keys a
+key NULL
+key_len NULL
+ref NULL
+rows 16
+Extra
+id 1
+select_type SIMPLE
+table t2
+type ALL
+possible_keys a
+key NULL
+key_len NULL
+ref NULL
+rows 16
+Extra Using where; Using join buffer
+SET expand_fast_index_creation = 0;
+DROP TABLE t1;
diff --git a/mysql-test/suite/percona/percona_innodb_expand_fast_index_creation.test b/mysql-test/suite/percona/percona_innodb_expand_fast_index_creation.test
new file mode 100644
index 00000000000..06e6c719c17
--- /dev/null
+++ b/mysql-test/suite/percona/percona_innodb_expand_fast_index_creation.test
@@ -0,0 +1,45 @@
+--source include/have_innodb.inc
+
+########################################################################
+# Bug #857590: Fast index creation does not update index statistics
+########################################################################
+
+CREATE TABLE t1(
+ id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
+ a CHAR(1) NOT NULL,
+ b CHAR(36) NOT NULL) ENGINE=InnoDB;
+
+INSERT INTO t1(a,b) VALUES ('a','b');
+INSERT INTO t1(a,b) SELECT a,b FROM t1;
+INSERT INTO t1(a,b) SELECT a,b FROM t1;
+INSERT INTO t1(a,b) SELECT a,b FROM t1;
+INSERT INTO t1(a,b) SELECT a,b FROM t1;
+
+# Check that fast index creation is used
+--enable_info
+ALTER TABLE t1 ADD KEY (a);
+--disable_info
+
+# The default (wrong) plan due to bogus statistics
+--vertical_results
+EXPLAIN SELECT COUNT(*) FROM t1, t1 t2 WHERE t1.a = t2.a AND t1.b = t2.b;
+--horizontal_results
+
+ALTER TABLE t1 DROP KEY a;
+
+SET expand_fast_index_creation = 1;
+SELECT @@expand_fast_index_creation;
+
+# Check that stats are updated with the option enabled
+
+--enable_info
+ALTER TABLE t1 ADD KEY (a);
+--disable_info
+
+--vertical_results
+EXPLAIN SELECT COUNT(*) FROM t1, t1 t2 WHERE t1.a = t2.a AND t1.b = t2.b;
+--horizontal_results
+
+SET expand_fast_index_creation = 0;
+
+DROP TABLE t1;
diff --git a/mysql-test/suite/percona/percona_innodb_fake_changes.result b/mysql-test/suite/percona/percona_innodb_fake_changes.result
new file mode 100644
index 00000000000..7f00c687c54
--- /dev/null
+++ b/mysql-test/suite/percona/percona_innodb_fake_changes.result
@@ -0,0 +1,55 @@
+DROP TABLE IF EXISTS t1;
+# Checking variables
+SHOW VARIABLES LIKE 'innodb_fake_changes';
+Variable_name Value
+innodb_fake_changes OFF
+SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_fake_changes';
+VARIABLE_VALUE
+OFF
+SET innodb_fake_changes=1;
+SHOW VARIABLES LIKE 'innodb_fake_changes';
+Variable_name Value
+innodb_fake_changes ON
+SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_fake_changes';
+VARIABLE_VALUE
+ON
+SET innodb_fake_changes=default;
+SHOW VARIABLES LIKE 'innodb_fake_changes';
+Variable_name Value
+innodb_fake_changes OFF
+SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_fake_changes';
+VARIABLE_VALUE
+OFF
+# Explicit COMMIT should fail when innodb_fake_changes is enabled
+# DML should be fine
+CREATE TABLE t1 (a INT) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (1);
+SET autocommit=0;
+SET innodb_fake_changes=1;
+BEGIN;
+INSERT INTO t1 VALUES (2);
+UPDATE t1 SET a=0;
+DELETE FROM t1 LIMIT 1;
+SELECT * FROM t1;
+a
+1
+COMMIT;
+ERROR HY000: Got error 131 during COMMIT
+SET innodb_fake_changes=default;
+DROP TABLE t1;
+# DDL must result in error
+CREATE TABLE t1 (a INT) ENGINE=InnoDB;
+SET autocommit=0;
+SET innodb_fake_changes=1;
+BEGIN;
+CREATE TABLE t2 (a INT) ENGINE=InnoDB;
+ERROR HY000: Can't create table 'test.t2' (errno: 131)
+DROP TABLE t1;
+ERROR 42S02: Unknown table 't1'
+TRUNCATE TABLE t1;
+ERROR HY000: Got error 131 during COMMIT
+ALTER TABLE t1 ENGINE=MyISAM;
+ERROR HY000: Got error 131 during COMMIT
+ROLLBACK;
+SET innodb_fake_changes=default;
+DROP TABLE t1;
diff --git a/mysql-test/suite/percona/percona_innodb_fake_changes.test b/mysql-test/suite/percona/percona_innodb_fake_changes.test
new file mode 100644
index 00000000000..fd231ae096f
--- /dev/null
+++ b/mysql-test/suite/percona/percona_innodb_fake_changes.test
@@ -0,0 +1,49 @@
+--source include/have_innodb.inc
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+
+--echo # Checking variables
+SHOW VARIABLES LIKE 'innodb_fake_changes';
+SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_fake_changes';
+SET innodb_fake_changes=1;
+SHOW VARIABLES LIKE 'innodb_fake_changes';
+SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_fake_changes';
+SET innodb_fake_changes=default;
+SHOW VARIABLES LIKE 'innodb_fake_changes';
+SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_fake_changes';
+
+--echo # Explicit COMMIT should fail when innodb_fake_changes is enabled
+--echo # DML should be fine
+CREATE TABLE t1 (a INT) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (1);
+SET autocommit=0;
+SET innodb_fake_changes=1;
+BEGIN;
+INSERT INTO t1 VALUES (2);
+UPDATE t1 SET a=0;
+DELETE FROM t1 LIMIT 1;
+SELECT * FROM t1;
+--error 1180
+COMMIT;
+SET innodb_fake_changes=default;
+DROP TABLE t1;
+
+--echo # DDL must result in error
+CREATE TABLE t1 (a INT) ENGINE=InnoDB;
+SET autocommit=0;
+SET innodb_fake_changes=1;
+BEGIN;
+--error 1005
+CREATE TABLE t2 (a INT) ENGINE=InnoDB;
+--error 1051
+DROP TABLE t1;
+--error 1180
+TRUNCATE TABLE t1;
+--error 1180
+ALTER TABLE t1 ENGINE=MyISAM;
+ROLLBACK;
+SET innodb_fake_changes=default;
+DROP TABLE t1;
diff --git a/mysql-test/suite/percona/percona_innodb_fake_changes_locks.result b/mysql-test/suite/percona/percona_innodb_fake_changes_locks.result
new file mode 100644
index 00000000000..c2b533ca9f3
--- /dev/null
+++ b/mysql-test/suite/percona/percona_innodb_fake_changes_locks.result
@@ -0,0 +1,19 @@
+DROP TABLE IF EXISTS t1;
+# Verifying that X_LOCK not acquired
+CREATE TABLE t1 (a INT) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (1);
+SET autocommit=0;
+SET innodb_fake_changes=1;
+BEGIN;
+SELECT * FROM t1 FOR UPDATE;
+a
+1
+SET innodb_lock_wait_timeout=3;
+UPDATE t1 SET a=2;
+ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+SELECT * FROM t1 LOCK IN SHARE MODE;
+a
+1
+ROLLBACK;
+SET innodb_fake_changes=default;
+DROP TABLE t1;
diff --git a/mysql-test/suite/percona/percona_innodb_fake_changes_locks.test b/mysql-test/suite/percona/percona_innodb_fake_changes_locks.test
new file mode 100644
index 00000000000..e298405cd43
--- /dev/null
+++ b/mysql-test/suite/percona/percona_innodb_fake_changes_locks.test
@@ -0,0 +1,24 @@
+--source include/have_innodb.inc
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+--echo # Verifying that X_LOCK not acquired
+CREATE TABLE t1 (a INT) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (1);
+--connect (conn1,localhost,root,,)
+--connection conn1
+SET autocommit=0;
+SET innodb_fake_changes=1;
+BEGIN;
+SELECT * FROM t1 FOR UPDATE;
+--connection default
+SET innodb_lock_wait_timeout=3;
+--error 1205
+UPDATE t1 SET a=2;
+SELECT * FROM t1 LOCK IN SHARE MODE;
+--connection conn1
+ROLLBACK;
+SET innodb_fake_changes=default;
+DROP TABLE t1;
diff --git a/mysql-test/suite/percona/percona_innodb_kill_idle_trx.result b/mysql-test/suite/percona/percona_innodb_kill_idle_trx.result
new file mode 100644
index 00000000000..a05b5a912fe
--- /dev/null
+++ b/mysql-test/suite/percona/percona_innodb_kill_idle_trx.result
@@ -0,0 +1,41 @@
+DROP TABLE IF EXISTS t1;
+SET autocommit=0;
+CREATE TABLE t1 (a INT) ENGINE=InnoDB;
+SHOW GLOBAL VARIABLES LIKE 'innodb_kill_idle_transaction';
+Variable_name Value
+innodb_kill_idle_transaction 0
+SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_kill_idle_transaction';
+VARIABLE_NAME VARIABLE_VALUE
+INNODB_KILL_IDLE_TRANSACTION 0
+SET GLOBAL innodb_kill_idle_transaction=1;
+SHOW GLOBAL VARIABLES LIKE 'innodb_kill_idle_transaction';
+Variable_name Value
+innodb_kill_idle_transaction 1
+SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_kill_idle_transaction';
+VARIABLE_NAME VARIABLE_VALUE
+INNODB_KILL_IDLE_TRANSACTION 1
+BEGIN;
+INSERT INTO t1 VALUES (1),(2),(3);
+COMMIT;
+SELECT * FROM t1;
+a
+1
+2
+3
+BEGIN;
+INSERT INTO t1 VALUES (4),(5),(6);
+SELECT * FROM t1;
+ERROR HY000: MySQL server has gone away
+SELECT * FROM t1;
+a
+1
+2
+3
+DROP TABLE t1;
+SET GLOBAL innodb_kill_idle_transaction=0;
+SHOW GLOBAL VARIABLES LIKE 'innodb_kill_idle_transaction';
+Variable_name Value
+innodb_kill_idle_transaction 0
+SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_kill_idle_transaction';
+VARIABLE_NAME VARIABLE_VALUE
+INNODB_KILL_IDLE_TRANSACTION 0
diff --git a/mysql-test/suite/percona/percona_innodb_kill_idle_trx.test b/mysql-test/suite/percona/percona_innodb_kill_idle_trx.test
new file mode 100644
index 00000000000..e1b7b778a31
--- /dev/null
+++ b/mysql-test/suite/percona/percona_innodb_kill_idle_trx.test
@@ -0,0 +1,28 @@
+--source include/have_innodb.inc
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+SET autocommit=0;
+CREATE TABLE t1 (a INT) ENGINE=InnoDB;
+
+--source percona_innodb_kill_idle_trx_show.inc
+SET GLOBAL innodb_kill_idle_transaction=1;
+--source percona_innodb_kill_idle_trx_show.inc
+
+BEGIN;
+INSERT INTO t1 VALUES (1),(2),(3);
+COMMIT;
+SELECT * FROM t1;
+
+BEGIN;
+INSERT INTO t1 VALUES (4),(5),(6);
+sleep 3;
+
+--enable_reconnect
+--error 2006 --error CR_SERVER_GONE_ERROR
+SELECT * FROM t1;
+SELECT * FROM t1;
+DROP TABLE t1;
+SET GLOBAL innodb_kill_idle_transaction=0;
+--source percona_innodb_kill_idle_trx_show.inc
diff --git a/mysql-test/suite/percona/percona_innodb_kill_idle_trx_locks.result b/mysql-test/suite/percona/percona_innodb_kill_idle_trx_locks.result
new file mode 100644
index 00000000000..6bdd2617805
--- /dev/null
+++ b/mysql-test/suite/percona/percona_innodb_kill_idle_trx_locks.result
@@ -0,0 +1,45 @@
+DROP TABLE IF EXISTS t1;
+SET autocommit=0;
+CREATE TABLE t1 (a INT) ENGINE=InnoDB;
+SHOW GLOBAL VARIABLES LIKE 'innodb_kill_idle_transaction';
+Variable_name Value
+innodb_kill_idle_transaction 0
+SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_kill_idle_transaction';
+VARIABLE_NAME VARIABLE_VALUE
+INNODB_KILL_IDLE_TRANSACTION 0
+SET GLOBAL innodb_kill_idle_transaction=5;
+SHOW GLOBAL VARIABLES LIKE 'innodb_kill_idle_transaction';
+Variable_name Value
+innodb_kill_idle_transaction 5
+SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_kill_idle_transaction';
+VARIABLE_NAME VARIABLE_VALUE
+INNODB_KILL_IDLE_TRANSACTION 5
+BEGIN;
+INSERT INTO t1 VALUES (1),(2),(3);
+COMMIT;
+SELECT * FROM t1;
+a
+1
+2
+3
+### Locking rows. Lock should be released when idle trx is killed.
+BEGIN;
+SELECT * FROM t1 FOR UPDATE;
+a
+1
+2
+3
+UPDATE t1 set a=4;
+SELECT * FROM t1;
+a
+4
+4
+4
+DROP TABLE t1;
+SET GLOBAL innodb_kill_idle_transaction=0;
+SHOW GLOBAL VARIABLES LIKE 'innodb_kill_idle_transaction';
+Variable_name Value
+innodb_kill_idle_transaction 0
+SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_kill_idle_transaction';
+VARIABLE_NAME VARIABLE_VALUE
+INNODB_KILL_IDLE_TRANSACTION 0
diff --git a/mysql-test/suite/percona/percona_innodb_kill_idle_trx_locks.test b/mysql-test/suite/percona/percona_innodb_kill_idle_trx_locks.test
new file mode 100644
index 00000000000..c283f38de42
--- /dev/null
+++ b/mysql-test/suite/percona/percona_innodb_kill_idle_trx_locks.test
@@ -0,0 +1,31 @@
+--source include/have_innodb.inc
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+SET autocommit=0;
+CREATE TABLE t1 (a INT) ENGINE=InnoDB;
+
+--source percona_innodb_kill_idle_trx_show.inc
+SET GLOBAL innodb_kill_idle_transaction=5;
+--source percona_innodb_kill_idle_trx_show.inc
+
+connect (conn1,localhost,root,,);
+connection conn1;
+
+BEGIN;
+INSERT INTO t1 VALUES (1),(2),(3);
+COMMIT;
+SELECT * FROM t1;
+
+--echo ### Locking rows. Lock should be released when idle trx is killed.
+BEGIN;
+SELECT * FROM t1 FOR UPDATE;
+
+connection default;
+UPDATE t1 set a=4;
+
+SELECT * FROM t1;
+DROP TABLE t1;
+SET GLOBAL innodb_kill_idle_transaction=0;
+--source percona_innodb_kill_idle_trx_show.inc
diff --git a/mysql-test/suite/percona/percona_innodb_kill_idle_trx_show.inc b/mysql-test/suite/percona/percona_innodb_kill_idle_trx_show.inc
new file mode 100644
index 00000000000..c85c0311c81
--- /dev/null
+++ b/mysql-test/suite/percona/percona_innodb_kill_idle_trx_show.inc
@@ -0,0 +1,2 @@
+SHOW GLOBAL VARIABLES LIKE 'innodb_kill_idle_transaction';
+SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_kill_idle_transaction';
diff --git a/mysql-test/suite/percona/percona_innodb_use_sys_stats_table-master.opt b/mysql-test/suite/percona/percona_innodb_use_sys_stats_table-master.opt
index c6865f5704c..7479e2036aa 100644
--- a/mysql-test/suite/percona/percona_innodb_use_sys_stats_table-master.opt
+++ b/mysql-test/suite/percona/percona_innodb_use_sys_stats_table-master.opt
@@ -1 +1 @@
---innodb_use_sys_stats_table
+--loose-innodb_use_sys_stats_table
diff --git a/mysql-test/suite/percona/percona_innodb_use_sys_stats_table.test b/mysql-test/suite/percona/percona_innodb_use_sys_stats_table.test
index 02791137f08..534b26a3b45 100644
--- a/mysql-test/suite/percona/percona_innodb_use_sys_stats_table.test
+++ b/mysql-test/suite/percona/percona_innodb_use_sys_stats_table.test
@@ -1,2 +1,2 @@
---source include/have_innodb.inc
+--source include/have_xtradb.inc
show variables like 'innodb_use_sys_stats%';
diff --git a/mysql-test/suite/percona/percona_suppress_log_warning_1592-master.opt b/mysql-test/suite/percona/percona_log_warnings_suppress-master.opt
index 4658d62af60..4658d62af60 100644
--- a/mysql-test/suite/percona/percona_suppress_log_warning_1592-master.opt
+++ b/mysql-test/suite/percona/percona_log_warnings_suppress-master.opt
diff --git a/mysql-test/suite/percona/percona_log_warnings_suppress.result b/mysql-test/suite/percona/percona_log_warnings_suppress.result
new file mode 100644
index 00000000000..1ee6c46738a
--- /dev/null
+++ b/mysql-test/suite/percona/percona_log_warnings_suppress.result
@@ -0,0 +1,31 @@
+SET @old_log_warnings = @@log_warnings;
+SET @old_log_warnings_suppress = @@log_warnings_suppress;
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (a VARCHAR(36), b VARCHAR(20));
+SET GLOBAL log_warnings_suppress='';
+SET GLOBAL LOG_WARNINGS=0;
+SHOW GLOBAL VARIABLES LIKE 'log_warnings_suppress';
+Variable_name Value
+log_warnings_suppress
+INSERT INTO t1 VALUES(UUID(), 'suppress_1592');
+Warnings:
+Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
+SET GLOBAL LOG_WARNINGS=1;
+INSERT INTO t1 VALUES(UUID(), 'suppress_1592');
+Warnings:
+Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
+SET GLOBAL log_warnings_suppress='1592';
+SET GLOBAL LOG_WARNINGS=0;
+INSERT INTO t1 VALUES(UUID(), 'suppress_1592');
+Warnings:
+Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
+SET GLOBAL LOG_WARNINGS=1;
+INSERT INTO t1 VALUES(UUID(), 'suppress_1592');
+Warnings:
+Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
+DROP TABLE t1;
+SET GLOBAL log_warnings = @old_log_warnings;
+SET GLOBAL log_warnings_suppress = @old_log_warnings_suppress;
+# Count the number of times the "Unsafe" message was printed
+# to the error log.
+Occurrences: 1
diff --git a/mysql-test/suite/percona/percona_suppress_log_warning_1592.test b/mysql-test/suite/percona/percona_log_warnings_suppress.test
index 97fe40469fc..82221013f0b 100644
--- a/mysql-test/suite/percona/percona_suppress_log_warning_1592.test
+++ b/mysql-test/suite/percona/percona_log_warnings_suppress.test
@@ -2,26 +2,27 @@
-- source include/have_binlog_format_statement.inc
SET @old_log_warnings = @@log_warnings;
-SET @old_suppress_log_warning_1592 = @@suppress_log_warning_1592;
+SET @old_log_warnings_suppress = @@log_warnings_suppress;
--disable_warnings
DROP TABLE IF EXISTS t1;
--enable_warnings
CREATE TABLE t1 (a VARCHAR(36), b VARCHAR(20));
-SET GLOBAL SUPPRESS_LOG_WARNING_1592 = 0;
-SET GLOBAL LOG_WARNINGS = 0;
+SET GLOBAL log_warnings_suppress='';
+SET GLOBAL LOG_WARNINGS=0;
+SHOW GLOBAL VARIABLES LIKE 'log_warnings_suppress';
INSERT INTO t1 VALUES(UUID(), 'suppress_1592');
-SET GLOBAL LOG_WARNINGS = 1;
+SET GLOBAL LOG_WARNINGS=1;
INSERT INTO t1 VALUES(UUID(), 'suppress_1592');
-SET GLOBAL SUPPRESS_LOG_WARNING_1592 = 1;
-SET GLOBAL LOG_WARNINGS = 0;
+SET GLOBAL log_warnings_suppress='1592';
+SET GLOBAL LOG_WARNINGS=0;
INSERT INTO t1 VALUES(UUID(), 'suppress_1592');
-SET GLOBAL LOG_WARNINGS = 1;
+SET GLOBAL LOG_WARNINGS=1;
INSERT INTO t1 VALUES(UUID(), 'suppress_1592');
DROP TABLE t1;
SET GLOBAL log_warnings = @old_log_warnings;
-SET GLOBAL suppress_log_warning_1592 = @old_suppress_log_warning_1592;
+SET GLOBAL log_warnings_suppress = @old_log_warnings_suppress;
let $log_error_= `SELECT @@GLOBAL.log_error`;
if(!`select LENGTH('$log_error_')`)
diff --git a/mysql-test/suite/percona/percona_processlist_row_stats.result b/mysql-test/suite/percona/percona_processlist_row_stats.result
new file mode 100644
index 00000000000..109b6a912d9
--- /dev/null
+++ b/mysql-test/suite/percona/percona_processlist_row_stats.result
@@ -0,0 +1,70 @@
+DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t2;
+CREATE TABLE t2 (a INT);
+INSERT INTO t2 VALUES(10);
+INSERT INTO t2 VALUES(10);
+INSERT INTO t2 VALUES(20);
+INSERT INTO t2 VALUES(10);
+INSERT INTO t2 VALUES(20);
+SET DEBUG_SYNC= 'locked_table_name SIGNAL thread1_ready WAIT_FOR threads_dumped';
+CREATE TABLE t1 (a INT);
+SET DEBUG_SYNC= 'now WAIT_FOR thread1_ready';
+SET DEBUG_SYNC= 'execute_command_after_close_tables SIGNAL thread2_ready WAIT_FOR threads_dumped';
+SELECT a FROM t2 WHERE a > 15;
+SET DEBUG_SYNC= 'now WAIT_FOR thread2_ready';
+SHOW PROCESSLIST;
+Id User Host db Command Time State Info Rows_sent Rows_examined Rows_read
+### root ### test Query ### ### SHOW PROCESSLIST 0 0 2
+### root ### test Query ### ### CREATE TABLE t1 (a INT) 0 0 1
+### root ### test Query ### ### SELECT a FROM t2 WHERE a > 15 2 5 6
+SELECT id, info, rows_sent, rows_examined, rows_read FROM INFORMATION_SCHEMA.PROCESSLIST ORDER BY id;
+id info rows_sent rows_examined rows_read
+### SELECT id, info, rows_sent, rows_examined, rows_read FROM INFORMATION_SCHEMA.PROCESSLIST ORDER BY id 0 0 1
+### CREATE TABLE t1 (a INT) 0 0 1
+### SELECT a FROM t2 WHERE a > 15 2 5 6
+SET DEBUG_SYNC= 'now SIGNAL threads_dumped';
+a
+20
+20
+SET DEBUG_SYNC= 'sent_row SIGNAL thread1_ready WAIT_FOR threads_dumped';
+SELECT a FROM t2 WHERE a < 15;
+SET DEBUG_SYNC= 'now WAIT_FOR thread1_ready';
+SET DEBUG_SYNC= 'sent_row SIGNAL thread2_ready WAIT_FOR threads_dumped';
+SELECT a FROM t2 WHERE a > 15;
+SET DEBUG_SYNC= 'now WAIT_FOR thread2_ready';
+SHOW PROCESSLIST;
+Id User Host db Command Time State Info Rows_sent Rows_examined Rows_read
+### root ### test Query ### ### SHOW PROCESSLIST 0 0 4
+### root ### test Query ### ### SELECT a FROM t2 WHERE a < 15 1 0 1
+### root ### test Query ### ### SELECT a FROM t2 WHERE a > 15 1 0 3
+SELECT id, info, rows_sent, rows_examined, rows_read FROM INFORMATION_SCHEMA.PROCESSLIST ORDER BY id;
+id info rows_sent rows_examined rows_read
+### SELECT id, info, rows_sent, rows_examined, rows_read FROM INFORMATION_SCHEMA.PROCESSLIST ORDER BY id 0 0 1
+### SELECT a FROM t2 WHERE a < 15 1 0 1
+### SELECT a FROM t2 WHERE a > 15 1 0 3
+SET DEBUG_SYNC= 'now SIGNAL threads_dumped';
+a
+10
+10
+10
+a
+20
+20
+SET DEBUG_SYNC= 'execute_command_after_close_tables SIGNAL thread1_ready WAIT_FOR threads_dumped';
+UPDATE t2 SET a = 15 WHERE a = 20;
+SET DEBUG_SYNC= 'now WAIT_FOR thread1_ready';
+SET DEBUG_SYNC= 'execute_command_after_close_tables SIGNAL thread2_ready WAIT_FOR threads_dumped';
+UPDATE t2 SET a = 15 WHERE a = 10;
+SET DEBUG_SYNC= 'now WAIT_FOR thread2_ready';
+SHOW PROCESSLIST;
+Id User Host db Command Time State Info Rows_sent Rows_examined Rows_read
+### root ### test Query ### ### SHOW PROCESSLIST 0 0 4
+### root ### test Query ### ### UPDATE t2 SET a = 15 WHERE a = 20 0 5 6
+### root ### test Query ### ### UPDATE t2 SET a = 15 WHERE a = 10 0 5 6
+SELECT id, info, rows_sent, rows_examined, rows_read FROM INFORMATION_SCHEMA.PROCESSLIST ORDER BY id;
+id info rows_sent rows_examined rows_read
+### SELECT id, info, rows_sent, rows_examined, rows_read FROM INFORMATION_SCHEMA.PROCESSLIST ORDER BY id 0 0 1
+### UPDATE t2 SET a = 15 WHERE a = 20 0 5 6
+### UPDATE t2 SET a = 15 WHERE a = 10 0 5 6
+SET DEBUG_SYNC= 'now SIGNAL threads_dumped';
+DROP TABLES t1, t2;
diff --git a/mysql-test/suite/percona/percona_processlist_row_stats.test b/mysql-test/suite/percona/percona_processlist_row_stats.test
new file mode 100644
index 00000000000..17ebfedfa40
--- /dev/null
+++ b/mysql-test/suite/percona/percona_processlist_row_stats.test
@@ -0,0 +1,79 @@
+# Testing of INFORMATION_SCHEMA.PROCESSLIST fields ROWS_SENT, ROWS_EXAMINED, ROWS_READ
+--source include/have_debug_sync.inc
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t2;
+--enable_warnings
+
+CREATE TABLE t2 (a INT);
+INSERT INTO t2 VALUES(10);
+INSERT INTO t2 VALUES(10);
+INSERT INTO t2 VALUES(20);
+INSERT INTO t2 VALUES(10);
+INSERT INTO t2 VALUES(20);
+
+--connect (conn1, localhost, root, ,)
+--connect (conn2, localhost, root, ,)
+
+--connection conn1
+SET DEBUG_SYNC= 'locked_table_name SIGNAL thread1_ready WAIT_FOR threads_dumped';
+send CREATE TABLE t1 (a INT);
+--connection default
+SET DEBUG_SYNC= 'now WAIT_FOR thread1_ready';
+
+--connection conn2
+SET DEBUG_SYNC= 'execute_command_after_close_tables SIGNAL thread2_ready WAIT_FOR threads_dumped';
+send SELECT a FROM t2 WHERE a > 15;
+--connection default
+SET DEBUG_SYNC= 'now WAIT_FOR thread2_ready';
+
+--source include/percona_processlist_row_stats_show.inc
+
+--connection conn1
+reap;
+--connection conn2
+reap;
+
+--connection conn1
+SET DEBUG_SYNC= 'sent_row SIGNAL thread1_ready WAIT_FOR threads_dumped';
+send SELECT a FROM t2 WHERE a < 15;
+--connection default
+SET DEBUG_SYNC= 'now WAIT_FOR thread1_ready';
+
+--connection conn2
+SET DEBUG_SYNC= 'sent_row SIGNAL thread2_ready WAIT_FOR threads_dumped';
+send SELECT a FROM t2 WHERE a > 15;
+--connection default
+SET DEBUG_SYNC= 'now WAIT_FOR thread2_ready';
+
+--source include/percona_processlist_row_stats_show.inc
+
+--connection conn1
+reap;
+--connection conn2
+reap;
+
+--connection conn1
+SET DEBUG_SYNC= 'execute_command_after_close_tables SIGNAL thread1_ready WAIT_FOR threads_dumped';
+send UPDATE t2 SET a = 15 WHERE a = 20;
+--connection default
+SET DEBUG_SYNC= 'now WAIT_FOR thread1_ready';
+
+--connection conn2
+SET DEBUG_SYNC= 'execute_command_after_close_tables SIGNAL thread2_ready WAIT_FOR threads_dumped';
+send UPDATE t2 SET a = 15 WHERE a = 10;
+--connection default
+SET DEBUG_SYNC= 'now WAIT_FOR thread2_ready';
+
+--source include/percona_processlist_row_stats_show.inc
+
+--connection conn1
+reap;
+--connection conn2
+reap;
+
+--connection default
+disconnect conn1;
+disconnect conn2;
+DROP TABLES t1, t2;
diff --git a/mysql-test/suite/percona/percona_query_cache_with_comments.inc.backup b/mysql-test/suite/percona/percona_query_cache_with_comments.inc.backup
new file mode 100644
index 00000000000..4b5b31e9239
--- /dev/null
+++ b/mysql-test/suite/percona/percona_query_cache_with_comments.inc.backup
@@ -0,0 +1,88 @@
+--source include/percona_query_cache_with_comments_clear.inc
+let $query=/* with comment first */select * from t1;
+eval $query;
+--source include/percona_query_cache_with_comments_eval.inc
+
+let $query=# with comment first
+select * from t1;
+--source include/percona_query_cache_with_comments_eval.inc
+
+let $query=-- with comment first
+select * from t1;
+--source include/percona_query_cache_with_comments_eval.inc
+
+let $query=/* with comment first and "quote" */select * from t1;
+--source include/percona_query_cache_with_comments_eval.inc
+
+let $query=# with comment first and "quote"
+select * from t1;
+--source include/percona_query_cache_with_comments_eval.inc
+
+let $query=-- with comment first and "quote"
+select * from t1;
+--source include/percona_query_cache_with_comments_eval.inc
+
+let $query=
+ /* with comment and whitespaces first */select * from t1;
+--source include/percona_query_cache_with_comments_eval.inc
+
+let $query=
+ # with comment and whitespaces first
+select * from t1;
+--source include/percona_query_cache_with_comments_eval.inc
+
+let $query=
+ -- with comment and whitespaces first
+select * from t1;
+--source include/percona_query_cache_with_comments_eval.inc
+
+let $internal=* internal comment *;
+
+let $query=select * /$internal/ from t1;
+--source include/percona_query_cache_with_comments_eval.inc
+let $query=select */$internal/ from t1;
+--source include/percona_query_cache_with_comments_eval.inc
+let $query=select */$internal/from t1;
+--source include/percona_query_cache_with_comments_eval.inc
+
+let $internal=* internal comment with "quote" *;
+
+let $query=select * /$internal/ from t1;
+--source include/percona_query_cache_with_comments_eval.inc
+let $query=select */$internal/ from t1;
+--source include/percona_query_cache_with_comments_eval.inc
+let $query=select */$internal/from t1;
+--source include/percona_query_cache_with_comments_eval.inc
+
+let $query=select * from t1
+;
+--source include/percona_query_cache_with_comments_eval.inc
+
+let $query=select * from t1 ;
+--source include/percona_query_cache_with_comments_eval.inc
+
+let $query=select * from t1 ;
+--source include/percona_query_cache_with_comments_eval.inc
+
+let $query=select * from t1
+/* comment in the end */;
+--source include/percona_query_cache_with_comments_eval.inc
+
+let $query=select * from t1
+/* comment in the end */
+;
+--source include/percona_query_cache_with_comments_eval.inc
+
+let $query=select * from t1 #comment in the end;
+--source include/percona_query_cache_with_comments_eval.inc
+
+let $query=select * from t1 #comment in the end
+;
+--source include/percona_query_cache_with_comments_eval.inc
+
+let $query=select * from t1 -- comment in the end;
+--source include/percona_query_cache_with_comments_eval.inc
+
+let $query=select * from t1 -- comment in the end
+;
+--source include/percona_query_cache_with_comments_eval.inc
diff --git a/mysql-test/suite/percona/percona_query_response_time-replication.result b/mysql-test/suite/percona/percona_query_response_time-replication.result
new file mode 100644
index 00000000000..c00520110c2
--- /dev/null
+++ b/mysql-test/suite/percona/percona_query_response_time-replication.result
@@ -0,0 +1,727 @@
+SET GLOBAL query_exec_time=0.1;
+include/master-slave.inc
+[connection master]
+CREATE TABLE t(id INT);
+SET GLOBAL query_exec_time = 0.1;
+include/restart_slave.inc
+SET SESSION query_exec_time=0.1;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=1;
+Warnings:
+Warning 1292 Truncated incorrect query_response_time_range_base value: '1'
+FLUSH QUERY_RESPONSE_TIME;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
+SET SESSION query_exec_time = 0.31;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.32;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.33;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.34;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.35;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.36;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.37;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.38;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.39;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.4;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.1;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.2;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.3;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.5;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.4;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.5;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 2.1;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 2.3;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 2.5;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 3.1;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 4.1;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 5.1;
+INSERT INTO t VALUES(1);
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
+Variable_name Value
+query_response_time_range_base 2
+SHOW QUERY_RESPONSE_TIME;
+
+ 0.000001 1 0.000000
+ 0.000003 0 0.000000
+ 0.000007 0 0.000000
+ 0.000015 0 0.000000
+ 0.000030 0 0.000000
+ 0.000061 0 0.000000
+ 0.000122 0 0.000000
+ 0.000244 0 0.000000
+ 0.000488 0 0.000000
+ 0.000976 0 0.000000
+ 0.001953 0 0.000000
+ 0.003906 0 0.000000
+ 0.007812 0 0.000000
+ 0.015625 0 0.000000
+ 0.031250 0 0.000000
+ 0.062500 0 0.000000
+ 0.125000 1 0.100000
+ 0.250000 0 0.000000
+ 0.500000 30 10.650000
+ 1.000000 3 1.500000
+ 2.000000 15 19.500000
+ 4.000000 12 30.000000
+ 8.000000 6 27.599997
+ 16.000000 0 0.000000
+ 32.000000 0 0.000000
+ 64.000000 0 0.000000
+ 128.000000 0 0.000000
+ 256.000000 0 0.000000
+ 512.000000 0 0.000000
+ 1024.000000 0 0.000000
+ 2048.000000 0 0.000000
+ 4096.000000 0 0.000000
+ 8192.000000 0 0.000000
+ 16384.000000 0 0.000000
+ 32768.000000 0 0.000000
+ 65536.000000 0 0.000000
+ 131072.000000 0 0.000000
+ 262144.000000 0 0.000000
+ 524288.000000 0 0.000000
+ 1048576.00000 0 0.000000
+ 2097152.00000 0 0.000000
+ 4194304.00000 0 0.000000
+ 8388608.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+time count total
+ 0.000001 1 0.000000
+ 0.000003 0 0.000000
+ 0.000007 0 0.000000
+ 0.000015 0 0.000000
+ 0.000030 0 0.000000
+ 0.000061 0 0.000000
+ 0.000122 0 0.000000
+ 0.000244 0 0.000000
+ 0.000488 0 0.000000
+ 0.000976 0 0.000000
+ 0.001953 0 0.000000
+ 0.003906 0 0.000000
+ 0.007812 0 0.000000
+ 0.015625 0 0.000000
+ 0.031250 0 0.000000
+ 0.062500 0 0.000000
+ 0.125000 1 0.100000
+ 0.250000 0 0.000000
+ 0.500000 30 10.650000
+ 1.000000 3 1.500000
+ 2.000000 15 19.500000
+ 4.000000 12 30.000000
+ 8.000000 6 27.599997
+ 16.000000 0 0.000000
+ 32.000000 0 0.000000
+ 64.000000 0 0.000000
+ 128.000000 0 0.000000
+ 256.000000 0 0.000000
+ 512.000000 0 0.000000
+ 1024.000000 0 0.000000
+ 2048.000000 0 0.000000
+ 4096.000000 0 0.000000
+ 8192.000000 0 0.000000
+ 16384.000000 0 0.000000
+ 32768.000000 0 0.000000
+ 65536.000000 0 0.000000
+ 131072.000000 0 0.000000
+ 262144.000000 0 0.000000
+ 524288.000000 0 0.000000
+ 1048576.00000 0 0.000000
+ 2097152.00000 0 0.000000
+ 4194304.00000 0 0.000000
+ 8388608.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=default;
+DROP TABLE t;
+CREATE TABLE t(id INT);
+SET GLOBAL query_exec_time = 0.1;
+include/restart_slave.inc
+SET SESSION query_exec_time=0.1;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=2;
+FLUSH QUERY_RESPONSE_TIME;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
+SET SESSION query_exec_time = 0.31;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.32;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.33;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.34;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.35;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.36;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.37;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.38;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.39;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.4;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.1;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.2;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.3;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.5;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.4;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.5;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 2.1;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 2.3;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 2.5;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 3.1;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 4.1;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 5.1;
+INSERT INTO t VALUES(1);
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
+Variable_name Value
+query_response_time_range_base 2
+SHOW QUERY_RESPONSE_TIME;
+
+ 0.000001 1 0.000000
+ 0.000003 0 0.000000
+ 0.000007 0 0.000000
+ 0.000015 0 0.000000
+ 0.000030 0 0.000000
+ 0.000061 0 0.000000
+ 0.000122 0 0.000000
+ 0.000244 0 0.000000
+ 0.000488 0 0.000000
+ 0.000976 0 0.000000
+ 0.001953 0 0.000000
+ 0.003906 0 0.000000
+ 0.007812 0 0.000000
+ 0.015625 0 0.000000
+ 0.031250 0 0.000000
+ 0.062500 0 0.000000
+ 0.125000 1 0.100000
+ 0.250000 0 0.000000
+ 0.500000 30 10.650000
+ 1.000000 3 1.500000
+ 2.000000 15 19.500000
+ 4.000000 12 30.000000
+ 8.000000 6 27.599997
+ 16.000000 0 0.000000
+ 32.000000 0 0.000000
+ 64.000000 0 0.000000
+ 128.000000 0 0.000000
+ 256.000000 0 0.000000
+ 512.000000 0 0.000000
+ 1024.000000 0 0.000000
+ 2048.000000 0 0.000000
+ 4096.000000 0 0.000000
+ 8192.000000 0 0.000000
+ 16384.000000 0 0.000000
+ 32768.000000 0 0.000000
+ 65536.000000 0 0.000000
+ 131072.000000 0 0.000000
+ 262144.000000 0 0.000000
+ 524288.000000 0 0.000000
+ 1048576.00000 0 0.000000
+ 2097152.00000 0 0.000000
+ 4194304.00000 0 0.000000
+ 8388608.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+time count total
+ 0.000001 1 0.000000
+ 0.000003 0 0.000000
+ 0.000007 0 0.000000
+ 0.000015 0 0.000000
+ 0.000030 0 0.000000
+ 0.000061 0 0.000000
+ 0.000122 0 0.000000
+ 0.000244 0 0.000000
+ 0.000488 0 0.000000
+ 0.000976 0 0.000000
+ 0.001953 0 0.000000
+ 0.003906 0 0.000000
+ 0.007812 0 0.000000
+ 0.015625 0 0.000000
+ 0.031250 0 0.000000
+ 0.062500 0 0.000000
+ 0.125000 1 0.100000
+ 0.250000 0 0.000000
+ 0.500000 30 10.650000
+ 1.000000 3 1.500000
+ 2.000000 15 19.500000
+ 4.000000 12 30.000000
+ 8.000000 6 27.599997
+ 16.000000 0 0.000000
+ 32.000000 0 0.000000
+ 64.000000 0 0.000000
+ 128.000000 0 0.000000
+ 256.000000 0 0.000000
+ 512.000000 0 0.000000
+ 1024.000000 0 0.000000
+ 2048.000000 0 0.000000
+ 4096.000000 0 0.000000
+ 8192.000000 0 0.000000
+ 16384.000000 0 0.000000
+ 32768.000000 0 0.000000
+ 65536.000000 0 0.000000
+ 131072.000000 0 0.000000
+ 262144.000000 0 0.000000
+ 524288.000000 0 0.000000
+ 1048576.00000 0 0.000000
+ 2097152.00000 0 0.000000
+ 4194304.00000 0 0.000000
+ 8388608.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=default;
+DROP TABLE t;
+CREATE TABLE t(id INT);
+SET GLOBAL query_exec_time = 0.1;
+include/restart_slave.inc
+SET SESSION query_exec_time=0.1;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=10;
+FLUSH QUERY_RESPONSE_TIME;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
+SET SESSION query_exec_time = 0.31;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.32;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.33;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.34;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.35;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.36;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.37;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.38;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.39;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.4;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.1;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.2;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.3;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.5;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.4;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.5;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 2.1;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 2.3;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 2.5;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 3.1;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 4.1;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 5.1;
+INSERT INTO t VALUES(1);
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
+Variable_name Value
+query_response_time_range_base 10
+SHOW QUERY_RESPONSE_TIME;
+
+ 0.000001 1 0.000000
+ 0.000010 0 0.000000
+ 0.000100 0 0.000000
+ 0.001000 0 0.000000
+ 0.010000 0 0.000000
+ 0.100000 0 0.000000
+ 1.000000 34 12.250000
+ 10.000000 33 77.099997
+ 100.000000 0 0.000000
+ 1000.000000 0 0.000000
+ 10000.000000 0 0.000000
+ 100000.000000 0 0.000000
+ 1000000.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+time count total
+ 0.000001 1 0.000000
+ 0.000010 0 0.000000
+ 0.000100 0 0.000000
+ 0.001000 0 0.000000
+ 0.010000 0 0.000000
+ 0.100000 0 0.000000
+ 1.000000 34 12.250000
+ 10.000000 33 77.099997
+ 100.000000 0 0.000000
+ 1000.000000 0 0.000000
+ 10000.000000 0 0.000000
+ 100000.000000 0 0.000000
+ 1000000.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=default;
+DROP TABLE t;
+CREATE TABLE t(id INT);
+SET GLOBAL query_exec_time = 0.1;
+include/restart_slave.inc
+SET SESSION query_exec_time=0.1;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=7;
+FLUSH QUERY_RESPONSE_TIME;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
+SET SESSION query_exec_time = 0.31;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.32;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.33;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.34;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.35;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.36;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.37;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.38;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.39;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.4;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.1;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.2;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.3;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.5;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.4;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.5;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 2.1;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 2.3;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 2.5;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 3.1;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 4.1;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 5.1;
+INSERT INTO t VALUES(1);
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
+Variable_name Value
+query_response_time_range_base 7
+SHOW QUERY_RESPONSE_TIME;
+
+ 0.000001 1 0.000000
+ 0.000008 0 0.000000
+ 0.000059 0 0.000000
+ 0.000416 0 0.000000
+ 0.002915 0 0.000000
+ 0.020408 0 0.000000
+ 0.142857 1 0.100000
+ 1.000000 33 12.150000
+ 7.000000 33 77.099997
+ 49.000000 0 0.000000
+ 343.000000 0 0.000000
+ 2401.000000 0 0.000000
+ 16807.000000 0 0.000000
+ 117649.000000 0 0.000000
+ 823543.000000 0 0.000000
+ 5764801.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+time count total
+ 0.000001 1 0.000000
+ 0.000008 0 0.000000
+ 0.000059 0 0.000000
+ 0.000416 0 0.000000
+ 0.002915 0 0.000000
+ 0.020408 0 0.000000
+ 0.142857 1 0.100000
+ 1.000000 33 12.150000
+ 7.000000 33 77.099997
+ 49.000000 0 0.000000
+ 343.000000 0 0.000000
+ 2401.000000 0 0.000000
+ 16807.000000 0 0.000000
+ 117649.000000 0 0.000000
+ 823543.000000 0 0.000000
+ 5764801.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=default;
+DROP TABLE t;
+CREATE TABLE t(id INT);
+SET GLOBAL query_exec_time = 0.1;
+include/restart_slave.inc
+SET SESSION query_exec_time=0.1;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=156;
+FLUSH QUERY_RESPONSE_TIME;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
+SET SESSION query_exec_time = 0.31;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.32;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.33;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.34;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.35;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.36;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.37;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.38;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.39;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.4;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.1;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.2;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.3;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.5;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.4;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.5;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 2.1;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 2.3;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 2.5;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 3.1;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 4.1;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 5.1;
+INSERT INTO t VALUES(1);
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
+Variable_name Value
+query_response_time_range_base 156
+SHOW QUERY_RESPONSE_TIME;
+
+ 0.000041 1 0.000000
+ 0.006410 0 0.000000
+ 1.000000 34 12.250000
+ 156.000000 33 77.099997
+ 24336.000000 0 0.000000
+ 3796416.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+time count total
+ 0.000041 1 0.000000
+ 0.006410 0 0.000000
+ 1.000000 34 12.250000
+ 156.000000 33 77.099997
+ 24336.000000 0 0.000000
+ 3796416.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=default;
+DROP TABLE t;
+CREATE TABLE t(id INT);
+SET GLOBAL query_exec_time = 0.1;
+include/restart_slave.inc
+SET SESSION query_exec_time=0.1;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=1000;
+FLUSH QUERY_RESPONSE_TIME;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
+SET SESSION query_exec_time = 0.31;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.32;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.33;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.34;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.35;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.36;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.37;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.38;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.39;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.4;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.1;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.2;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.3;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.5;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.4;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.5;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 2.1;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 2.3;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 2.5;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 3.1;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 4.1;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 5.1;
+INSERT INTO t VALUES(1);
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
+Variable_name Value
+query_response_time_range_base 1000
+SHOW QUERY_RESPONSE_TIME;
+
+ 0.000001 1 0.000000
+ 0.001000 0 0.000000
+ 1.000000 34 12.250000
+ 1000.000000 33 77.099997
+ 1000000.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+time count total
+ 0.000001 1 0.000000
+ 0.001000 0 0.000000
+ 1.000000 34 12.250000
+ 1000.000000 33 77.099997
+ 1000000.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=default;
+DROP TABLE t;
+CREATE TABLE t(id INT);
+SET GLOBAL query_exec_time = 0.1;
+include/restart_slave.inc
+SET SESSION query_exec_time=0.1;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=1001;
+Warnings:
+Warning 1292 Truncated incorrect query_response_time_range_base value: '1001'
+FLUSH QUERY_RESPONSE_TIME;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
+SET SESSION query_exec_time = 0.31;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.32;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.33;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.34;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.35;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.36;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.37;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.38;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.39;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.4;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.1;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.2;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.3;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.5;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.4;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.5;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 2.1;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 2.3;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 2.5;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 3.1;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 4.1;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 5.1;
+INSERT INTO t VALUES(1);
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
+Variable_name Value
+query_response_time_range_base 1000
+SHOW QUERY_RESPONSE_TIME;
+
+ 0.000001 1 0.000000
+ 0.001000 0 0.000000
+ 1.000000 34 12.250000
+ 1000.000000 33 77.099997
+ 1000000.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+time count total
+ 0.000001 1 0.000000
+ 0.001000 0 0.000000
+ 1.000000 34 12.250000
+ 1000.000000 33 77.099997
+ 1000000.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=default;
+DROP TABLE t;
+include/rpl_end.inc
+SET GLOBAL query_exec_time=default;
+SET GLOBAL query_exec_time=default;
diff --git a/mysql-test/suite/percona/percona_query_response_time-replication.test b/mysql-test/suite/percona/percona_query_response_time-replication.test
new file mode 100644
index 00000000000..1207e5d1c3d
--- /dev/null
+++ b/mysql-test/suite/percona/percona_query_response_time-replication.test
@@ -0,0 +1,28 @@
+SET GLOBAL query_exec_time=0.1;
+
+--source include/have_response_time_distribution.inc
+--source include/have_debug.inc
+--source include/have_binlog_format_statement.inc
+--source include/master-slave.inc
+
+--let base=1
+--source include/query_response_time-replication.inc
+--let base=2
+--source include/query_response_time-replication.inc
+--let base=10
+--source include/query_response_time-replication.inc
+--let base=7
+--source include/query_response_time-replication.inc
+--let base=156
+--source include/query_response_time-replication.inc
+--let base=1000
+--source include/query_response_time-replication.inc
+--let base=1001
+--source include/query_response_time-replication.inc
+
+--source include/rpl_end.inc
+
+SET GLOBAL query_exec_time=default;
+
+connection slave;
+SET GLOBAL query_exec_time=default;
diff --git a/mysql-test/suite/percona/percona_query_response_time-stored.result b/mysql-test/suite/percona/percona_query_response_time-stored.result
new file mode 100644
index 00000000000..7385231241e
--- /dev/null
+++ b/mysql-test/suite/percona/percona_query_response_time-stored.result
@@ -0,0 +1,544 @@
+CREATE TABLE t(a INT);
+CREATE PROCEDURE test_f(t DECIMAL(3,2))
+BEGIN
+SET SESSION query_exec_time=t;
+INSERT INTO t VALUES(1);
+SET SESSION query_exec_time=0.1;
+DELETE FROM t;
+END^
+SET SESSION query_exec_time=0.1;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=1;
+Warnings:
+Warning 1292 Truncated incorrect query_response_time_range_base value: '1'
+FLUSH QUERY_RESPONSE_TIME;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
+CALL test_f(0.31);
+CALL test_f(0.32);
+CALL test_f(0.33);
+CALL test_f(0.34);
+CALL test_f(0.35);
+CALL test_f(0.36);
+CALL test_f(0.37);
+CALL test_f(0.38);
+CALL test_f(0.39);
+CALL test_f(0.4);
+CALL test_f(1.1);
+CALL test_f(1.2);
+CALL test_f(1.3);
+CALL test_f(1.5);
+CALL test_f(1.4);
+CALL test_f(0.5);
+CALL test_f(2.1);
+CALL test_f(2.3);
+CALL test_f(2.5);
+CALL test_f(3.1);
+CALL test_f(4.1);
+CALL test_f(5.1);
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
+Variable_name Value
+query_response_time_range_base 2
+SHOW QUERY_RESPONSE_TIME;
+
+ 0.000001 45 0.000000
+ 0.000003 0 0.000000
+ 0.000007 0 0.000000
+ 0.000015 0 0.000000
+ 0.000030 0 0.000000
+ 0.000061 0 0.000000
+ 0.000122 0 0.000000
+ 0.000244 0 0.000000
+ 0.000488 0 0.000000
+ 0.000976 0 0.000000
+ 0.001953 0 0.000000
+ 0.003906 0 0.000000
+ 0.007812 0 0.000000
+ 0.015625 0 0.000000
+ 0.031250 0 0.000000
+ 0.062500 0 0.000000
+ 0.125000 44 4.400000
+ 0.250000 0 0.000000
+ 0.500000 10 3.550000
+ 1.000000 1 0.500000
+ 2.000000 5 6.500000
+ 4.000000 4 10.000000
+ 8.000000 2 9.199999
+ 16.000000 0 0.000000
+ 32.000000 0 0.000000
+ 64.000000 0 0.000000
+ 128.000000 0 0.000000
+ 256.000000 0 0.000000
+ 512.000000 0 0.000000
+ 1024.000000 0 0.000000
+ 2048.000000 0 0.000000
+ 4096.000000 0 0.000000
+ 8192.000000 0 0.000000
+ 16384.000000 0 0.000000
+ 32768.000000 0 0.000000
+ 65536.000000 0 0.000000
+ 131072.000000 0 0.000000
+ 262144.000000 0 0.000000
+ 524288.000000 0 0.000000
+ 1048576.00000 0 0.000000
+ 2097152.00000 0 0.000000
+ 4194304.00000 0 0.000000
+ 8388608.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+time count total
+ 0.000001 45 0.000000
+ 0.000003 0 0.000000
+ 0.000007 0 0.000000
+ 0.000015 0 0.000000
+ 0.000030 0 0.000000
+ 0.000061 0 0.000000
+ 0.000122 0 0.000000
+ 0.000244 0 0.000000
+ 0.000488 0 0.000000
+ 0.000976 0 0.000000
+ 0.001953 0 0.000000
+ 0.003906 0 0.000000
+ 0.007812 0 0.000000
+ 0.015625 0 0.000000
+ 0.031250 0 0.000000
+ 0.062500 0 0.000000
+ 0.125000 44 4.400000
+ 0.250000 0 0.000000
+ 0.500000 10 3.550000
+ 1.000000 1 0.500000
+ 2.000000 5 6.500000
+ 4.000000 4 10.000000
+ 8.000000 2 9.199999
+ 16.000000 0 0.000000
+ 32.000000 0 0.000000
+ 64.000000 0 0.000000
+ 128.000000 0 0.000000
+ 256.000000 0 0.000000
+ 512.000000 0 0.000000
+ 1024.000000 0 0.000000
+ 2048.000000 0 0.000000
+ 4096.000000 0 0.000000
+ 8192.000000 0 0.000000
+ 16384.000000 0 0.000000
+ 32768.000000 0 0.000000
+ 65536.000000 0 0.000000
+ 131072.000000 0 0.000000
+ 262144.000000 0 0.000000
+ 524288.000000 0 0.000000
+ 1048576.00000 0 0.000000
+ 2097152.00000 0 0.000000
+ 4194304.00000 0 0.000000
+ 8388608.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SET SESSION query_exec_time=default;
+SET SESSION query_exec_time=0.1;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=2;
+FLUSH QUERY_RESPONSE_TIME;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
+CALL test_f(0.31);
+CALL test_f(0.32);
+CALL test_f(0.33);
+CALL test_f(0.34);
+CALL test_f(0.35);
+CALL test_f(0.36);
+CALL test_f(0.37);
+CALL test_f(0.38);
+CALL test_f(0.39);
+CALL test_f(0.4);
+CALL test_f(1.1);
+CALL test_f(1.2);
+CALL test_f(1.3);
+CALL test_f(1.5);
+CALL test_f(1.4);
+CALL test_f(0.5);
+CALL test_f(2.1);
+CALL test_f(2.3);
+CALL test_f(2.5);
+CALL test_f(3.1);
+CALL test_f(4.1);
+CALL test_f(5.1);
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
+Variable_name Value
+query_response_time_range_base 2
+SHOW QUERY_RESPONSE_TIME;
+
+ 0.000001 45 0.000000
+ 0.000003 0 0.000000
+ 0.000007 0 0.000000
+ 0.000015 0 0.000000
+ 0.000030 0 0.000000
+ 0.000061 0 0.000000
+ 0.000122 0 0.000000
+ 0.000244 0 0.000000
+ 0.000488 0 0.000000
+ 0.000976 0 0.000000
+ 0.001953 0 0.000000
+ 0.003906 0 0.000000
+ 0.007812 0 0.000000
+ 0.015625 0 0.000000
+ 0.031250 0 0.000000
+ 0.062500 0 0.000000
+ 0.125000 44 4.400000
+ 0.250000 0 0.000000
+ 0.500000 10 3.550000
+ 1.000000 1 0.500000
+ 2.000000 5 6.500000
+ 4.000000 4 10.000000
+ 8.000000 2 9.199999
+ 16.000000 0 0.000000
+ 32.000000 0 0.000000
+ 64.000000 0 0.000000
+ 128.000000 0 0.000000
+ 256.000000 0 0.000000
+ 512.000000 0 0.000000
+ 1024.000000 0 0.000000
+ 2048.000000 0 0.000000
+ 4096.000000 0 0.000000
+ 8192.000000 0 0.000000
+ 16384.000000 0 0.000000
+ 32768.000000 0 0.000000
+ 65536.000000 0 0.000000
+ 131072.000000 0 0.000000
+ 262144.000000 0 0.000000
+ 524288.000000 0 0.000000
+ 1048576.00000 0 0.000000
+ 2097152.00000 0 0.000000
+ 4194304.00000 0 0.000000
+ 8388608.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+time count total
+ 0.000001 45 0.000000
+ 0.000003 0 0.000000
+ 0.000007 0 0.000000
+ 0.000015 0 0.000000
+ 0.000030 0 0.000000
+ 0.000061 0 0.000000
+ 0.000122 0 0.000000
+ 0.000244 0 0.000000
+ 0.000488 0 0.000000
+ 0.000976 0 0.000000
+ 0.001953 0 0.000000
+ 0.003906 0 0.000000
+ 0.007812 0 0.000000
+ 0.015625 0 0.000000
+ 0.031250 0 0.000000
+ 0.062500 0 0.000000
+ 0.125000 44 4.400000
+ 0.250000 0 0.000000
+ 0.500000 10 3.550000
+ 1.000000 1 0.500000
+ 2.000000 5 6.500000
+ 4.000000 4 10.000000
+ 8.000000 2 9.199999
+ 16.000000 0 0.000000
+ 32.000000 0 0.000000
+ 64.000000 0 0.000000
+ 128.000000 0 0.000000
+ 256.000000 0 0.000000
+ 512.000000 0 0.000000
+ 1024.000000 0 0.000000
+ 2048.000000 0 0.000000
+ 4096.000000 0 0.000000
+ 8192.000000 0 0.000000
+ 16384.000000 0 0.000000
+ 32768.000000 0 0.000000
+ 65536.000000 0 0.000000
+ 131072.000000 0 0.000000
+ 262144.000000 0 0.000000
+ 524288.000000 0 0.000000
+ 1048576.00000 0 0.000000
+ 2097152.00000 0 0.000000
+ 4194304.00000 0 0.000000
+ 8388608.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SET SESSION query_exec_time=default;
+SET SESSION query_exec_time=0.1;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=10;
+FLUSH QUERY_RESPONSE_TIME;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
+CALL test_f(0.31);
+CALL test_f(0.32);
+CALL test_f(0.33);
+CALL test_f(0.34);
+CALL test_f(0.35);
+CALL test_f(0.36);
+CALL test_f(0.37);
+CALL test_f(0.38);
+CALL test_f(0.39);
+CALL test_f(0.4);
+CALL test_f(1.1);
+CALL test_f(1.2);
+CALL test_f(1.3);
+CALL test_f(1.5);
+CALL test_f(1.4);
+CALL test_f(0.5);
+CALL test_f(2.1);
+CALL test_f(2.3);
+CALL test_f(2.5);
+CALL test_f(3.1);
+CALL test_f(4.1);
+CALL test_f(5.1);
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
+Variable_name Value
+query_response_time_range_base 10
+SHOW QUERY_RESPONSE_TIME;
+
+ 0.000001 45 0.000000
+ 0.000010 0 0.000000
+ 0.000100 0 0.000000
+ 0.001000 0 0.000000
+ 0.010000 0 0.000000
+ 0.100000 0 0.000000
+ 1.000000 55 8.450000
+ 10.000000 11 25.699999
+ 100.000000 0 0.000000
+ 1000.000000 0 0.000000
+ 10000.000000 0 0.000000
+ 100000.000000 0 0.000000
+ 1000000.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+time count total
+ 0.000001 45 0.000000
+ 0.000010 0 0.000000
+ 0.000100 0 0.000000
+ 0.001000 0 0.000000
+ 0.010000 0 0.000000
+ 0.100000 0 0.000000
+ 1.000000 55 8.450000
+ 10.000000 11 25.699999
+ 100.000000 0 0.000000
+ 1000.000000 0 0.000000
+ 10000.000000 0 0.000000
+ 100000.000000 0 0.000000
+ 1000000.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SET SESSION query_exec_time=default;
+SET SESSION query_exec_time=0.1;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=7;
+FLUSH QUERY_RESPONSE_TIME;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
+CALL test_f(0.31);
+CALL test_f(0.32);
+CALL test_f(0.33);
+CALL test_f(0.34);
+CALL test_f(0.35);
+CALL test_f(0.36);
+CALL test_f(0.37);
+CALL test_f(0.38);
+CALL test_f(0.39);
+CALL test_f(0.4);
+CALL test_f(1.1);
+CALL test_f(1.2);
+CALL test_f(1.3);
+CALL test_f(1.5);
+CALL test_f(1.4);
+CALL test_f(0.5);
+CALL test_f(2.1);
+CALL test_f(2.3);
+CALL test_f(2.5);
+CALL test_f(3.1);
+CALL test_f(4.1);
+CALL test_f(5.1);
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
+Variable_name Value
+query_response_time_range_base 7
+SHOW QUERY_RESPONSE_TIME;
+
+ 0.000001 45 0.000000
+ 0.000008 0 0.000000
+ 0.000059 0 0.000000
+ 0.000416 0 0.000000
+ 0.002915 0 0.000000
+ 0.020408 0 0.000000
+ 0.142857 44 4.400000
+ 1.000000 11 4.050000
+ 7.000000 11 25.699999
+ 49.000000 0 0.000000
+ 343.000000 0 0.000000
+ 2401.000000 0 0.000000
+ 16807.000000 0 0.000000
+ 117649.000000 0 0.000000
+ 823543.000000 0 0.000000
+ 5764801.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+time count total
+ 0.000001 45 0.000000
+ 0.000008 0 0.000000
+ 0.000059 0 0.000000
+ 0.000416 0 0.000000
+ 0.002915 0 0.000000
+ 0.020408 0 0.000000
+ 0.142857 44 4.400000
+ 1.000000 11 4.050000
+ 7.000000 11 25.699999
+ 49.000000 0 0.000000
+ 343.000000 0 0.000000
+ 2401.000000 0 0.000000
+ 16807.000000 0 0.000000
+ 117649.000000 0 0.000000
+ 823543.000000 0 0.000000
+ 5764801.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SET SESSION query_exec_time=default;
+SET SESSION query_exec_time=0.1;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=156;
+FLUSH QUERY_RESPONSE_TIME;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
+CALL test_f(0.31);
+CALL test_f(0.32);
+CALL test_f(0.33);
+CALL test_f(0.34);
+CALL test_f(0.35);
+CALL test_f(0.36);
+CALL test_f(0.37);
+CALL test_f(0.38);
+CALL test_f(0.39);
+CALL test_f(0.4);
+CALL test_f(1.1);
+CALL test_f(1.2);
+CALL test_f(1.3);
+CALL test_f(1.5);
+CALL test_f(1.4);
+CALL test_f(0.5);
+CALL test_f(2.1);
+CALL test_f(2.3);
+CALL test_f(2.5);
+CALL test_f(3.1);
+CALL test_f(4.1);
+CALL test_f(5.1);
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
+Variable_name Value
+query_response_time_range_base 156
+SHOW QUERY_RESPONSE_TIME;
+
+ 0.000041 45 0.000000
+ 0.006410 0 0.000000
+ 1.000000 55 8.450000
+ 156.000000 11 25.699999
+ 24336.000000 0 0.000000
+ 3796416.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+time count total
+ 0.000041 45 0.000000
+ 0.006410 0 0.000000
+ 1.000000 55 8.450000
+ 156.000000 11 25.699999
+ 24336.000000 0 0.000000
+ 3796416.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SET SESSION query_exec_time=default;
+SET SESSION query_exec_time=0.1;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=1000;
+FLUSH QUERY_RESPONSE_TIME;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
+CALL test_f(0.31);
+CALL test_f(0.32);
+CALL test_f(0.33);
+CALL test_f(0.34);
+CALL test_f(0.35);
+CALL test_f(0.36);
+CALL test_f(0.37);
+CALL test_f(0.38);
+CALL test_f(0.39);
+CALL test_f(0.4);
+CALL test_f(1.1);
+CALL test_f(1.2);
+CALL test_f(1.3);
+CALL test_f(1.5);
+CALL test_f(1.4);
+CALL test_f(0.5);
+CALL test_f(2.1);
+CALL test_f(2.3);
+CALL test_f(2.5);
+CALL test_f(3.1);
+CALL test_f(4.1);
+CALL test_f(5.1);
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
+Variable_name Value
+query_response_time_range_base 1000
+SHOW QUERY_RESPONSE_TIME;
+
+ 0.000001 45 0.000000
+ 0.001000 0 0.000000
+ 1.000000 55 8.450000
+ 1000.000000 11 25.699999
+ 1000000.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+time count total
+ 0.000001 45 0.000000
+ 0.001000 0 0.000000
+ 1.000000 55 8.450000
+ 1000.000000 11 25.699999
+ 1000000.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SET SESSION query_exec_time=default;
+SET SESSION query_exec_time=0.1;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=1001;
+Warnings:
+Warning 1292 Truncated incorrect query_response_time_range_base value: '1001'
+FLUSH QUERY_RESPONSE_TIME;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
+CALL test_f(0.31);
+CALL test_f(0.32);
+CALL test_f(0.33);
+CALL test_f(0.34);
+CALL test_f(0.35);
+CALL test_f(0.36);
+CALL test_f(0.37);
+CALL test_f(0.38);
+CALL test_f(0.39);
+CALL test_f(0.4);
+CALL test_f(1.1);
+CALL test_f(1.2);
+CALL test_f(1.3);
+CALL test_f(1.5);
+CALL test_f(1.4);
+CALL test_f(0.5);
+CALL test_f(2.1);
+CALL test_f(2.3);
+CALL test_f(2.5);
+CALL test_f(3.1);
+CALL test_f(4.1);
+CALL test_f(5.1);
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
+Variable_name Value
+query_response_time_range_base 1000
+SHOW QUERY_RESPONSE_TIME;
+
+ 0.000001 45 0.000000
+ 0.001000 0 0.000000
+ 1.000000 55 8.450000
+ 1000.000000 11 25.699999
+ 1000000.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+time count total
+ 0.000001 45 0.000000
+ 0.001000 0 0.000000
+ 1.000000 55 8.450000
+ 1000.000000 11 25.699999
+ 1000000.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SET SESSION query_exec_time=default;
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=default;
+DROP PROCEDURE test_f;
+DROP TABLE t;
diff --git a/mysql-test/suite/percona/percona_query_response_time-stored.test b/mysql-test/suite/percona/percona_query_response_time-stored.test
new file mode 100644
index 00000000000..847ff223b3f
--- /dev/null
+++ b/mysql-test/suite/percona/percona_query_response_time-stored.test
@@ -0,0 +1,36 @@
+--source include/have_response_time_distribution.inc
+--source include/have_debug.inc
+
+CREATE TABLE t(a INT);
+
+delimiter ^;
+CREATE PROCEDURE test_f(t DECIMAL(3,2))
+BEGIN
+ SET SESSION query_exec_time=t;
+ INSERT INTO t VALUES(1);
+ SET SESSION query_exec_time=0.1;
+ DELETE FROM t;
+END^
+delimiter ;^
+
+--let base=1
+--source include/query_response_time-stored.inc
+--let base=2
+--source include/query_response_time-stored.inc
+--let base=10
+--source include/query_response_time-stored.inc
+--let base=7
+--source include/query_response_time-stored.inc
+--let base=156
+--source include/query_response_time-stored.inc
+--let base=1000
+--source include/query_response_time-stored.inc
+--let base=1001
+--source include/query_response_time-stored.inc
+
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=default;
+
+DROP PROCEDURE test_f;
+
+DROP TABLE t;
diff --git a/mysql-test/suite/percona/percona_query_response_time.result b/mysql-test/suite/percona/percona_query_response_time.result
new file mode 100644
index 00000000000..4c4d50319c0
--- /dev/null
+++ b/mysql-test/suite/percona/percona_query_response_time.result
@@ -0,0 +1,1307 @@
+SET SESSION query_exec_time=0.1;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=1;
+Warnings:
+Warning 1292 Truncated incorrect query_response_time_range_base value: '1'
+FLUSH QUERY_RESPONSE_TIME;
+SHOW QUERY_RESPONSE_TIME;
+
+ 0.000001 0 0.000000
+ 0.000003 0 0.000000
+ 0.000007 0 0.000000
+ 0.000015 0 0.000000
+ 0.000030 0 0.000000
+ 0.000061 0 0.000000
+ 0.000122 0 0.000000
+ 0.000244 0 0.000000
+ 0.000488 0 0.000000
+ 0.000976 0 0.000000
+ 0.001953 0 0.000000
+ 0.003906 0 0.000000
+ 0.007812 0 0.000000
+ 0.015625 0 0.000000
+ 0.031250 0 0.000000
+ 0.062500 0 0.000000
+ 0.125000 0 0.000000
+ 0.250000 0 0.000000
+ 0.500000 0 0.000000
+ 1.000000 0 0.000000
+ 2.000000 0 0.000000
+ 4.000000 0 0.000000
+ 8.000000 0 0.000000
+ 16.000000 0 0.000000
+ 32.000000 0 0.000000
+ 64.000000 0 0.000000
+ 128.000000 0 0.000000
+ 256.000000 0 0.000000
+ 512.000000 0 0.000000
+ 1024.000000 0 0.000000
+ 2048.000000 0 0.000000
+ 4096.000000 0 0.000000
+ 8192.000000 0 0.000000
+ 16384.000000 0 0.000000
+ 32768.000000 0 0.000000
+ 65536.000000 0 0.000000
+ 131072.000000 0 0.000000
+ 262144.000000 0 0.000000
+ 524288.000000 0 0.000000
+ 1048576.00000 0 0.000000
+ 2097152.00000 0 0.000000
+ 4194304.00000 0 0.000000
+ 8388608.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+time count total
+ 0.000001 0 0.000000
+ 0.000003 0 0.000000
+ 0.000007 0 0.000000
+ 0.000015 0 0.000000
+ 0.000030 0 0.000000
+ 0.000061 0 0.000000
+ 0.000122 0 0.000000
+ 0.000244 0 0.000000
+ 0.000488 0 0.000000
+ 0.000976 0 0.000000
+ 0.001953 0 0.000000
+ 0.003906 0 0.000000
+ 0.007812 0 0.000000
+ 0.015625 0 0.000000
+ 0.031250 0 0.000000
+ 0.062500 0 0.000000
+ 0.125000 0 0.000000
+ 0.250000 0 0.000000
+ 0.500000 0 0.000000
+ 1.000000 0 0.000000
+ 2.000000 0 0.000000
+ 4.000000 0 0.000000
+ 8.000000 0 0.000000
+ 16.000000 0 0.000000
+ 32.000000 0 0.000000
+ 64.000000 0 0.000000
+ 128.000000 0 0.000000
+ 256.000000 0 0.000000
+ 512.000000 0 0.000000
+ 1024.000000 0 0.000000
+ 2048.000000 0 0.000000
+ 4096.000000 0 0.000000
+ 8192.000000 0 0.000000
+ 16384.000000 0 0.000000
+ 32768.000000 0 0.000000
+ 65536.000000 0 0.000000
+ 131072.000000 0 0.000000
+ 262144.000000 0 0.000000
+ 524288.000000 0 0.000000
+ 1048576.00000 0 0.000000
+ 2097152.00000 0 0.000000
+ 4194304.00000 0 0.000000
+ 8388608.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
+SET SESSION query_exec_time=0.31;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.32;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.33;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.34;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.35;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.36;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.37;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.38;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.39;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.4;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.2;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.3;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.5;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.4;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.5;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=2.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=2.3;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=2.5;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=3.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=4.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=5.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.1;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
+Variable_name Value
+query_response_time_range_base 2
+SHOW QUERY_RESPONSE_TIME;
+
+ 0.000001 24 0.000000
+ 0.000003 0 0.000000
+ 0.000007 0 0.000000
+ 0.000015 0 0.000000
+ 0.000030 0 0.000000
+ 0.000061 0 0.000000
+ 0.000122 0 0.000000
+ 0.000244 0 0.000000
+ 0.000488 0 0.000000
+ 0.000976 0 0.000000
+ 0.001953 0 0.000000
+ 0.003906 0 0.000000
+ 0.007812 0 0.000000
+ 0.015625 0 0.000000
+ 0.031250 0 0.000000
+ 0.062500 0 0.000000
+ 0.125000 0 0.000000
+ 0.250000 0 0.000000
+ 0.500000 10 3.550000
+ 1.000000 1 0.500000
+ 2.000000 5 6.500000
+ 4.000000 4 10.000000
+ 8.000000 2 9.199999
+ 16.000000 0 0.000000
+ 32.000000 0 0.000000
+ 64.000000 0 0.000000
+ 128.000000 0 0.000000
+ 256.000000 0 0.000000
+ 512.000000 0 0.000000
+ 1024.000000 0 0.000000
+ 2048.000000 0 0.000000
+ 4096.000000 0 0.000000
+ 8192.000000 0 0.000000
+ 16384.000000 0 0.000000
+ 32768.000000 0 0.000000
+ 65536.000000 0 0.000000
+ 131072.000000 0 0.000000
+ 262144.000000 0 0.000000
+ 524288.000000 0 0.000000
+ 1048576.00000 0 0.000000
+ 2097152.00000 0 0.000000
+ 4194304.00000 0 0.000000
+ 8388608.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+time count total
+ 0.000001 24 0.000000
+ 0.000003 0 0.000000
+ 0.000007 0 0.000000
+ 0.000015 0 0.000000
+ 0.000030 0 0.000000
+ 0.000061 0 0.000000
+ 0.000122 0 0.000000
+ 0.000244 0 0.000000
+ 0.000488 0 0.000000
+ 0.000976 0 0.000000
+ 0.001953 0 0.000000
+ 0.003906 0 0.000000
+ 0.007812 0 0.000000
+ 0.015625 0 0.000000
+ 0.031250 0 0.000000
+ 0.062500 0 0.000000
+ 0.125000 0 0.000000
+ 0.250000 0 0.000000
+ 0.500000 10 3.550000
+ 1.000000 1 0.500000
+ 2.000000 5 6.500000
+ 4.000000 4 10.000000
+ 8.000000 2 9.199999
+ 16.000000 0 0.000000
+ 32.000000 0 0.000000
+ 64.000000 0 0.000000
+ 128.000000 0 0.000000
+ 256.000000 0 0.000000
+ 512.000000 0 0.000000
+ 1024.000000 0 0.000000
+ 2048.000000 0 0.000000
+ 4096.000000 0 0.000000
+ 8192.000000 0 0.000000
+ 16384.000000 0 0.000000
+ 32768.000000 0 0.000000
+ 65536.000000 0 0.000000
+ 131072.000000 0 0.000000
+ 262144.000000 0 0.000000
+ 524288.000000 0 0.000000
+ 1048576.00000 0 0.000000
+ 2097152.00000 0 0.000000
+ 4194304.00000 0 0.000000
+ 8388608.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SET SESSION query_exec_time=default;
+SET SESSION query_exec_time=0.1;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=2;
+FLUSH QUERY_RESPONSE_TIME;
+SHOW QUERY_RESPONSE_TIME;
+
+ 0.000001 0 0.000000
+ 0.000003 0 0.000000
+ 0.000007 0 0.000000
+ 0.000015 0 0.000000
+ 0.000030 0 0.000000
+ 0.000061 0 0.000000
+ 0.000122 0 0.000000
+ 0.000244 0 0.000000
+ 0.000488 0 0.000000
+ 0.000976 0 0.000000
+ 0.001953 0 0.000000
+ 0.003906 0 0.000000
+ 0.007812 0 0.000000
+ 0.015625 0 0.000000
+ 0.031250 0 0.000000
+ 0.062500 0 0.000000
+ 0.125000 0 0.000000
+ 0.250000 0 0.000000
+ 0.500000 0 0.000000
+ 1.000000 0 0.000000
+ 2.000000 0 0.000000
+ 4.000000 0 0.000000
+ 8.000000 0 0.000000
+ 16.000000 0 0.000000
+ 32.000000 0 0.000000
+ 64.000000 0 0.000000
+ 128.000000 0 0.000000
+ 256.000000 0 0.000000
+ 512.000000 0 0.000000
+ 1024.000000 0 0.000000
+ 2048.000000 0 0.000000
+ 4096.000000 0 0.000000
+ 8192.000000 0 0.000000
+ 16384.000000 0 0.000000
+ 32768.000000 0 0.000000
+ 65536.000000 0 0.000000
+ 131072.000000 0 0.000000
+ 262144.000000 0 0.000000
+ 524288.000000 0 0.000000
+ 1048576.00000 0 0.000000
+ 2097152.00000 0 0.000000
+ 4194304.00000 0 0.000000
+ 8388608.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+time count total
+ 0.000001 0 0.000000
+ 0.000003 0 0.000000
+ 0.000007 0 0.000000
+ 0.000015 0 0.000000
+ 0.000030 0 0.000000
+ 0.000061 0 0.000000
+ 0.000122 0 0.000000
+ 0.000244 0 0.000000
+ 0.000488 0 0.000000
+ 0.000976 0 0.000000
+ 0.001953 0 0.000000
+ 0.003906 0 0.000000
+ 0.007812 0 0.000000
+ 0.015625 0 0.000000
+ 0.031250 0 0.000000
+ 0.062500 0 0.000000
+ 0.125000 0 0.000000
+ 0.250000 0 0.000000
+ 0.500000 0 0.000000
+ 1.000000 0 0.000000
+ 2.000000 0 0.000000
+ 4.000000 0 0.000000
+ 8.000000 0 0.000000
+ 16.000000 0 0.000000
+ 32.000000 0 0.000000
+ 64.000000 0 0.000000
+ 128.000000 0 0.000000
+ 256.000000 0 0.000000
+ 512.000000 0 0.000000
+ 1024.000000 0 0.000000
+ 2048.000000 0 0.000000
+ 4096.000000 0 0.000000
+ 8192.000000 0 0.000000
+ 16384.000000 0 0.000000
+ 32768.000000 0 0.000000
+ 65536.000000 0 0.000000
+ 131072.000000 0 0.000000
+ 262144.000000 0 0.000000
+ 524288.000000 0 0.000000
+ 1048576.00000 0 0.000000
+ 2097152.00000 0 0.000000
+ 4194304.00000 0 0.000000
+ 8388608.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
+SET SESSION query_exec_time=0.31;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.32;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.33;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.34;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.35;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.36;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.37;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.38;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.39;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.4;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.2;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.3;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.5;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.4;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.5;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=2.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=2.3;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=2.5;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=3.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=4.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=5.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.1;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
+Variable_name Value
+query_response_time_range_base 2
+SHOW QUERY_RESPONSE_TIME;
+
+ 0.000001 24 0.000000
+ 0.000003 0 0.000000
+ 0.000007 0 0.000000
+ 0.000015 0 0.000000
+ 0.000030 0 0.000000
+ 0.000061 0 0.000000
+ 0.000122 0 0.000000
+ 0.000244 0 0.000000
+ 0.000488 0 0.000000
+ 0.000976 0 0.000000
+ 0.001953 0 0.000000
+ 0.003906 0 0.000000
+ 0.007812 0 0.000000
+ 0.015625 0 0.000000
+ 0.031250 0 0.000000
+ 0.062500 0 0.000000
+ 0.125000 0 0.000000
+ 0.250000 0 0.000000
+ 0.500000 10 3.550000
+ 1.000000 1 0.500000
+ 2.000000 5 6.500000
+ 4.000000 4 10.000000
+ 8.000000 2 9.199999
+ 16.000000 0 0.000000
+ 32.000000 0 0.000000
+ 64.000000 0 0.000000
+ 128.000000 0 0.000000
+ 256.000000 0 0.000000
+ 512.000000 0 0.000000
+ 1024.000000 0 0.000000
+ 2048.000000 0 0.000000
+ 4096.000000 0 0.000000
+ 8192.000000 0 0.000000
+ 16384.000000 0 0.000000
+ 32768.000000 0 0.000000
+ 65536.000000 0 0.000000
+ 131072.000000 0 0.000000
+ 262144.000000 0 0.000000
+ 524288.000000 0 0.000000
+ 1048576.00000 0 0.000000
+ 2097152.00000 0 0.000000
+ 4194304.00000 0 0.000000
+ 8388608.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+time count total
+ 0.000001 24 0.000000
+ 0.000003 0 0.000000
+ 0.000007 0 0.000000
+ 0.000015 0 0.000000
+ 0.000030 0 0.000000
+ 0.000061 0 0.000000
+ 0.000122 0 0.000000
+ 0.000244 0 0.000000
+ 0.000488 0 0.000000
+ 0.000976 0 0.000000
+ 0.001953 0 0.000000
+ 0.003906 0 0.000000
+ 0.007812 0 0.000000
+ 0.015625 0 0.000000
+ 0.031250 0 0.000000
+ 0.062500 0 0.000000
+ 0.125000 0 0.000000
+ 0.250000 0 0.000000
+ 0.500000 10 3.550000
+ 1.000000 1 0.500000
+ 2.000000 5 6.500000
+ 4.000000 4 10.000000
+ 8.000000 2 9.199999
+ 16.000000 0 0.000000
+ 32.000000 0 0.000000
+ 64.000000 0 0.000000
+ 128.000000 0 0.000000
+ 256.000000 0 0.000000
+ 512.000000 0 0.000000
+ 1024.000000 0 0.000000
+ 2048.000000 0 0.000000
+ 4096.000000 0 0.000000
+ 8192.000000 0 0.000000
+ 16384.000000 0 0.000000
+ 32768.000000 0 0.000000
+ 65536.000000 0 0.000000
+ 131072.000000 0 0.000000
+ 262144.000000 0 0.000000
+ 524288.000000 0 0.000000
+ 1048576.00000 0 0.000000
+ 2097152.00000 0 0.000000
+ 4194304.00000 0 0.000000
+ 8388608.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SET SESSION query_exec_time=default;
+SET SESSION query_exec_time=0.1;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=10;
+FLUSH QUERY_RESPONSE_TIME;
+SHOW QUERY_RESPONSE_TIME;
+
+ 0.000001 0 0.000000
+ 0.000010 0 0.000000
+ 0.000100 0 0.000000
+ 0.001000 0 0.000000
+ 0.010000 0 0.000000
+ 0.100000 0 0.000000
+ 1.000000 0 0.000000
+ 10.000000 0 0.000000
+ 100.000000 0 0.000000
+ 1000.000000 0 0.000000
+ 10000.000000 0 0.000000
+ 100000.000000 0 0.000000
+ 1000000.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+time count total
+ 0.000001 0 0.000000
+ 0.000010 0 0.000000
+ 0.000100 0 0.000000
+ 0.001000 0 0.000000
+ 0.010000 0 0.000000
+ 0.100000 0 0.000000
+ 1.000000 0 0.000000
+ 10.000000 0 0.000000
+ 100.000000 0 0.000000
+ 1000.000000 0 0.000000
+ 10000.000000 0 0.000000
+ 100000.000000 0 0.000000
+ 1000000.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
+SET SESSION query_exec_time=0.31;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.32;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.33;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.34;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.35;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.36;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.37;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.38;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.39;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.4;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.2;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.3;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.5;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.4;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.5;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=2.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=2.3;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=2.5;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=3.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=4.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=5.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.1;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
+Variable_name Value
+query_response_time_range_base 10
+SHOW QUERY_RESPONSE_TIME;
+
+ 0.000001 24 0.000000
+ 0.000010 0 0.000000
+ 0.000100 0 0.000000
+ 0.001000 0 0.000000
+ 0.010000 0 0.000000
+ 0.100000 0 0.000000
+ 1.000000 11 4.050000
+ 10.000000 11 25.699999
+ 100.000000 0 0.000000
+ 1000.000000 0 0.000000
+ 10000.000000 0 0.000000
+ 100000.000000 0 0.000000
+ 1000000.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+time count total
+ 0.000001 24 0.000000
+ 0.000010 0 0.000000
+ 0.000100 0 0.000000
+ 0.001000 0 0.000000
+ 0.010000 0 0.000000
+ 0.100000 0 0.000000
+ 1.000000 11 4.050000
+ 10.000000 11 25.699999
+ 100.000000 0 0.000000
+ 1000.000000 0 0.000000
+ 10000.000000 0 0.000000
+ 100000.000000 0 0.000000
+ 1000000.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SET SESSION query_exec_time=default;
+SET SESSION query_exec_time=0.1;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=7;
+FLUSH QUERY_RESPONSE_TIME;
+SHOW QUERY_RESPONSE_TIME;
+
+ 0.000001 0 0.000000
+ 0.000008 0 0.000000
+ 0.000059 0 0.000000
+ 0.000416 0 0.000000
+ 0.002915 0 0.000000
+ 0.020408 0 0.000000
+ 0.142857 0 0.000000
+ 1.000000 0 0.000000
+ 7.000000 0 0.000000
+ 49.000000 0 0.000000
+ 343.000000 0 0.000000
+ 2401.000000 0 0.000000
+ 16807.000000 0 0.000000
+ 117649.000000 0 0.000000
+ 823543.000000 0 0.000000
+ 5764801.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+time count total
+ 0.000001 0 0.000000
+ 0.000008 0 0.000000
+ 0.000059 0 0.000000
+ 0.000416 0 0.000000
+ 0.002915 0 0.000000
+ 0.020408 0 0.000000
+ 0.142857 0 0.000000
+ 1.000000 0 0.000000
+ 7.000000 0 0.000000
+ 49.000000 0 0.000000
+ 343.000000 0 0.000000
+ 2401.000000 0 0.000000
+ 16807.000000 0 0.000000
+ 117649.000000 0 0.000000
+ 823543.000000 0 0.000000
+ 5764801.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
+SET SESSION query_exec_time=0.31;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.32;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.33;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.34;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.35;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.36;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.37;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.38;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.39;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.4;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.2;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.3;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.5;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.4;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.5;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=2.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=2.3;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=2.5;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=3.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=4.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=5.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.1;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
+Variable_name Value
+query_response_time_range_base 7
+SHOW QUERY_RESPONSE_TIME;
+
+ 0.000001 24 0.000000
+ 0.000008 0 0.000000
+ 0.000059 0 0.000000
+ 0.000416 0 0.000000
+ 0.002915 0 0.000000
+ 0.020408 0 0.000000
+ 0.142857 0 0.000000
+ 1.000000 11 4.050000
+ 7.000000 11 25.699999
+ 49.000000 0 0.000000
+ 343.000000 0 0.000000
+ 2401.000000 0 0.000000
+ 16807.000000 0 0.000000
+ 117649.000000 0 0.000000
+ 823543.000000 0 0.000000
+ 5764801.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+time count total
+ 0.000001 24 0.000000
+ 0.000008 0 0.000000
+ 0.000059 0 0.000000
+ 0.000416 0 0.000000
+ 0.002915 0 0.000000
+ 0.020408 0 0.000000
+ 0.142857 0 0.000000
+ 1.000000 11 4.050000
+ 7.000000 11 25.699999
+ 49.000000 0 0.000000
+ 343.000000 0 0.000000
+ 2401.000000 0 0.000000
+ 16807.000000 0 0.000000
+ 117649.000000 0 0.000000
+ 823543.000000 0 0.000000
+ 5764801.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SET SESSION query_exec_time=default;
+SET SESSION query_exec_time=0.1;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=156;
+FLUSH QUERY_RESPONSE_TIME;
+SHOW QUERY_RESPONSE_TIME;
+
+ 0.000041 0 0.000000
+ 0.006410 0 0.000000
+ 1.000000 0 0.000000
+ 156.000000 0 0.000000
+ 24336.000000 0 0.000000
+ 3796416.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+time count total
+ 0.000041 0 0.000000
+ 0.006410 0 0.000000
+ 1.000000 0 0.000000
+ 156.000000 0 0.000000
+ 24336.000000 0 0.000000
+ 3796416.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
+SET SESSION query_exec_time=0.31;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.32;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.33;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.34;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.35;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.36;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.37;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.38;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.39;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.4;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.2;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.3;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.5;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.4;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.5;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=2.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=2.3;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=2.5;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=3.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=4.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=5.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.1;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
+Variable_name Value
+query_response_time_range_base 156
+SHOW QUERY_RESPONSE_TIME;
+
+ 0.000041 24 0.000000
+ 0.006410 0 0.000000
+ 1.000000 11 4.050000
+ 156.000000 11 25.699999
+ 24336.000000 0 0.000000
+ 3796416.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+time count total
+ 0.000041 24 0.000000
+ 0.006410 0 0.000000
+ 1.000000 11 4.050000
+ 156.000000 11 25.699999
+ 24336.000000 0 0.000000
+ 3796416.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SET SESSION query_exec_time=default;
+SET SESSION query_exec_time=0.1;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=1000;
+FLUSH QUERY_RESPONSE_TIME;
+SHOW QUERY_RESPONSE_TIME;
+
+ 0.000001 0 0.000000
+ 0.001000 0 0.000000
+ 1.000000 0 0.000000
+ 1000.000000 0 0.000000
+ 1000000.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+time count total
+ 0.000001 0 0.000000
+ 0.001000 0 0.000000
+ 1.000000 0 0.000000
+ 1000.000000 0 0.000000
+ 1000000.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
+SET SESSION query_exec_time=0.31;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.32;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.33;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.34;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.35;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.36;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.37;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.38;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.39;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.4;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.2;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.3;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.5;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.4;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.5;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=2.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=2.3;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=2.5;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=3.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=4.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=5.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.1;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
+Variable_name Value
+query_response_time_range_base 1000
+SHOW QUERY_RESPONSE_TIME;
+
+ 0.000001 24 0.000000
+ 0.001000 0 0.000000
+ 1.000000 11 4.050000
+ 1000.000000 11 25.699999
+ 1000000.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+time count total
+ 0.000001 24 0.000000
+ 0.001000 0 0.000000
+ 1.000000 11 4.050000
+ 1000.000000 11 25.699999
+ 1000000.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SET SESSION query_exec_time=default;
+SET SESSION query_exec_time=0.1;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=1001;
+Warnings:
+Warning 1292 Truncated incorrect query_response_time_range_base value: '1001'
+FLUSH QUERY_RESPONSE_TIME;
+SHOW QUERY_RESPONSE_TIME;
+
+ 0.000001 0 0.000000
+ 0.001000 0 0.000000
+ 1.000000 0 0.000000
+ 1000.000000 0 0.000000
+ 1000000.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+time count total
+ 0.000001 0 0.000000
+ 0.001000 0 0.000000
+ 1.000000 0 0.000000
+ 1000.000000 0 0.000000
+ 1000000.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
+SET SESSION query_exec_time=0.31;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.32;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.33;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.34;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.35;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.36;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.37;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.38;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.39;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.4;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.2;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.3;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.5;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=1.4;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.5;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=2.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=2.3;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=2.5;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=3.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=4.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=5.1;
+SELECT 1;
+1
+1
+SET SESSION query_exec_time=0.1;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
+Variable_name Value
+query_response_time_range_base 1000
+SHOW QUERY_RESPONSE_TIME;
+
+ 0.000001 24 0.000000
+ 0.001000 0 0.000000
+ 1.000000 11 4.050000
+ 1000.000000 11 25.699999
+ 1000000.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+time count total
+ 0.000001 24 0.000000
+ 0.001000 0 0.000000
+ 1.000000 11 4.050000
+ 1000.000000 11 25.699999
+ 1000000.00000 0 0.000000
+TOO LONG 0 TOO LONG
+SET SESSION query_exec_time=default;
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=default;
diff --git a/mysql-test/suite/percona/percona_query_response_time.test b/mysql-test/suite/percona/percona_query_response_time.test
new file mode 100644
index 00000000000..d4fb9c61388
--- /dev/null
+++ b/mysql-test/suite/percona/percona_query_response_time.test
@@ -0,0 +1,20 @@
+--source include/have_response_time_distribution.inc
+--source include/have_debug.inc
+
+--let base=1
+--source include/query_response_time.inc
+--let base=2
+--source include/query_response_time.inc
+--let base=10
+--source include/query_response_time.inc
+--let base=7
+--source include/query_response_time.inc
+--let base=156
+--source include/query_response_time.inc
+--let base=1000
+--source include/query_response_time.inc
+--let base=1001
+--source include/query_response_time.inc
+
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=default;
diff --git a/mysql-test/suite/percona/percona_query_response_time_flush.inc b/mysql-test/suite/percona/percona_query_response_time_flush.inc
new file mode 100644
index 00000000000..44bb320fe13
--- /dev/null
+++ b/mysql-test/suite/percona/percona_query_response_time_flush.inc
@@ -0,0 +1 @@
+FLUSH QUERY_RESPONSE_TIME;
diff --git a/mysql-test/suite/percona/percona_query_response_time_show.inc b/mysql-test/suite/percona/percona_query_response_time_show.inc
new file mode 100644
index 00000000000..709abf9872e
--- /dev/null
+++ b/mysql-test/suite/percona/percona_query_response_time_show.inc
@@ -0,0 +1,8 @@
+SELECT d.count,
+(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
+(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
+(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
+(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
+FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
+SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
diff --git a/mysql-test/suite/percona/percona_query_response_time_sleep.inc b/mysql-test/suite/percona/percona_query_response_time_sleep.inc
new file mode 100644
index 00000000000..d889fd9f98d
--- /dev/null
+++ b/mysql-test/suite/percona/percona_query_response_time_sleep.inc
@@ -0,0 +1,19 @@
+SET SESSION debug="+d,query_exec_time_0.31";
+SET SESSION debug="+d,query_exec_time_0.32";
+SET SESSION debug="+d,query_exec_time_0.33";
+SET SESSION debug="+d,query_exec_time_0.34";
+SET SESSION debug="+d,query_exec_time_0.35";
+SET SESSION debug="+d,query_exec_time_0.36";
+SET SESSION debug="+d,query_exec_time_0.37";
+SET SESSION debug="+d,query_exec_time_0.38";
+SET SESSION debug="+d,query_exec_time_0.39";
+SET SESSION debug="+d,query_exec_time_0.4";
+SET SESSION debug="+d,query_exec_time_1.1";
+SET SESSION debug="+d,query_exec_time_1.2";
+SET SESSION debug="+d,query_exec_time_1.3";
+SET SESSION debug="+d,query_exec_time_1.5";
+SET SESSION debug="+d,query_exec_time_1.4";
+SET SESSION debug="+d,query_exec_time_0.5";
+SET SESSION debug="+d,query_exec_time_2.1";
+SET SESSION debug="+d,query_exec_time_2.3";
+SET SESSION debug="+d,query_exec_time_2.5";
diff --git a/mysql-test/suite/percona/percona_server_variables.inc b/mysql-test/suite/percona/percona_server_variables.inc
new file mode 100644
index 00000000000..60c8e0ba759
--- /dev/null
+++ b/mysql-test/suite/percona/percona_server_variables.inc
@@ -0,0 +1,3 @@
+--source have_response_time_distribution.inc
+--source include/have_xtradb.inc
+SELECT Variable_name FROM INFORMATION_SCHEMA.SESSION_VARIABLES ORDER BY 1;
diff --git a/mysql-test/suite/percona/percona_server_variables.result b/mysql-test/suite/percona/percona_server_variables.result
deleted file mode 100644
index 9eeb1bd90e5..00000000000
--- a/mysql-test/suite/percona/percona_server_variables.result
+++ /dev/null
@@ -1,343 +0,0 @@
-show variables;
-Variable_name Value
-auto_increment_increment Value
-auto_increment_offset Value
-autocommit Value
-automatic_sp_privileges Value
-back_log Value
-basedir Value
-big_tables Value
-binlog_cache_size Value
-binlog_direct_non_transactional_updates Value
-binlog_format Value
-bulk_insert_buffer_size Value
-character_set_client Value
-character_set_connection Value
-character_set_database Value
-character_set_filesystem Value
-character_set_results Value
-character_set_server Value
-character_set_system Value
-character_sets_dir Value
-collation_connection Value
-collation_database Value
-collation_server Value
-completion_type Value
-concurrent_insert Value
-connect_timeout Value
-datadir Value
-date_format Value
-datetime_format Value
-debug Value
-debug_sync Value
-default_week_format Value
-delay_key_write Value
-delayed_insert_limit Value
-delayed_insert_timeout Value
-delayed_queue_size Value
-div_precision_increment Value
-enable_query_response_time_stats Value
-engine_condition_pushdown Value
-error_count Value
-event_scheduler Value
-expire_logs_days Value
-fast_index_creation Value
-flush Value
-flush_time Value
-foreign_key_checks Value
-ft_boolean_syntax Value
-ft_max_word_len Value
-ft_min_word_len Value
-ft_query_expansion_limit Value
-ft_stopword_file Value
-general_log Value
-general_log_file Value
-group_concat_max_len Value
-have_community_features Value
-have_compress Value
-have_crypt Value
-have_csv Value
-have_dynamic_loading Value
-have_geometry Value
-have_innodb Value
-have_ndbcluster Value
-have_openssl Value
-have_partitioning Value
-have_query_cache Value
-have_response_time_distribution Value
-have_rtree_keys Value
-have_ssl Value
-have_symlink Value
-hostname Value
-identity Value
-ignore_builtin_innodb Value
-init_connect Value
-init_file Value
-init_slave Value
-innodb_adaptive_checkpoint Value
-innodb_adaptive_flushing Value
-innodb_adaptive_hash_index Value
-innodb_additional_mem_pool_size Value
-innodb_auto_lru_dump Value
-innodb_autoextend_increment Value
-innodb_autoinc_lock_mode Value
-innodb_buffer_pool_shm_checksum Value
-innodb_buffer_pool_shm_key Value
-innodb_buffer_pool_size Value
-innodb_change_buffering Value
-innodb_checkpoint_age_target Value
-innodb_checksums Value
-innodb_commit_concurrency Value
-innodb_concurrency_tickets Value
-innodb_data_file_path Value
-innodb_data_home_dir Value
-innodb_dict_size_limit Value
-innodb_doublewrite Value
-innodb_doublewrite_file Value
-innodb_enable_unsafe_group_commit Value
-innodb_expand_import Value
-innodb_extra_rsegments Value
-innodb_extra_undoslots Value
-innodb_fast_checksum Value
-innodb_fast_recovery Value
-innodb_fast_shutdown Value
-innodb_file_format Value
-innodb_file_format_check Value
-innodb_file_per_table Value
-innodb_flush_log_at_trx_commit Value
-innodb_flush_log_at_trx_commit_session Value
-innodb_flush_method Value
-innodb_flush_neighbor_pages Value
-innodb_force_recovery Value
-innodb_ibuf_accel_rate Value
-innodb_ibuf_active_contract Value
-innodb_ibuf_max_size Value
-innodb_io_capacity Value
-innodb_lock_wait_timeout Value
-innodb_locks_unsafe_for_binlog Value
-innodb_log_buffer_size Value
-innodb_log_file_size Value
-innodb_log_files_in_group Value
-innodb_log_group_home_dir Value
-innodb_max_dirty_pages_pct Value
-innodb_max_purge_lag Value
-innodb_mirrored_log_groups Value
-innodb_old_blocks_pct Value
-innodb_old_blocks_time Value
-innodb_open_files Value
-innodb_overwrite_relay_log_info Value
-innodb_page_size Value
-innodb_pass_corrupt_table Value
-innodb_read_ahead Value
-innodb_read_ahead_threshold Value
-innodb_read_io_threads Value
-innodb_recovery_stats Value
-innodb_replication_delay Value
-innodb_rollback_on_timeout Value
-innodb_show_locks_held Value
-innodb_show_verbose_locks Value
-innodb_spin_wait_delay Value
-innodb_stats_auto_update Value
-innodb_stats_method Value
-innodb_stats_on_metadata Value
-innodb_stats_sample_pages Value
-innodb_stats_update_need_lock Value
-innodb_strict_mode Value
-innodb_support_xa Value
-innodb_sync_spin_loops Value
-innodb_table_locks Value
-innodb_thread_concurrency Value
-innodb_thread_concurrency_timer_based Value
-innodb_thread_sleep_delay Value
-innodb_use_purge_thread Value
-innodb_use_sys_malloc Value
-innodb_use_sys_stats_table Value
-innodb_version Value
-innodb_write_io_threads Value
-insert_id Value
-interactive_timeout Value
-join_buffer_size Value
-keep_files_on_create Value
-key_buffer_size Value
-key_cache_age_threshold Value
-key_cache_block_size Value
-key_cache_division_limit Value
-language Value
-large_files_support Value
-large_page_size Value
-large_pages Value
-last_insert_id Value
-lc_time_names Value
-license Value
-local_infile Value
-locked_in_memory Value
-log Value
-log_bin Value
-log_bin_trust_function_creators Value
-log_bin_trust_routine_creators Value
-log_error Value
-log_output Value
-log_queries_not_using_indexes Value
-log_slave_updates Value
-log_slow_filter Value
-log_slow_queries Value
-log_slow_rate_limit Value
-log_slow_slave_statements Value
-log_slow_sp_statements Value
-log_slow_timestamp_every Value
-log_slow_verbosity Value
-log_warnings Value
-long_query_time Value
-low_priority_updates Value
-lower_case_file_system Value
-lower_case_table_names Value
-max_allowed_packet Value
-max_binlog_cache_size Value
-max_binlog_size Value
-max_connect_errors Value
-max_connections Value
-max_delayed_threads Value
-max_error_count Value
-max_heap_table_size Value
-max_insert_delayed_threads Value
-max_join_size Value
-max_length_for_sort_data Value
-max_prepared_stmt_count Value
-max_relay_log_size Value
-max_seeks_for_key Value
-max_sort_length Value
-max_sp_recursion_depth Value
-max_tmp_tables Value
-max_user_connections Value
-max_write_lock_count Value
-min_examined_row_limit Value
-multi_range_count Value
-myisam_data_pointer_size Value
-myisam_max_sort_file_size Value
-myisam_mmap_size Value
-myisam_recover_options Value
-myisam_repair_threads Value
-myisam_sort_buffer_size Value
-myisam_stats_method Value
-myisam_use_mmap Value
-net_buffer_length Value
-net_read_timeout Value
-net_retry_count Value
-net_write_timeout Value
-new Value
-old Value
-old_alter_table Value
-old_passwords Value
-open_files_limit Value
-optimizer_fix Value
-optimizer_prune_level Value
-optimizer_search_depth Value
-optimizer_switch Value
-pid_file Value
-plugin_dir Value
-port Value
-preload_buffer_size Value
-profiling Value
-profiling_history_size Value
-profiling_server Value
-profiling_use_getrusage Value
-protocol_version Value
-pseudo_thread_id Value
-query_alloc_block_size Value
-query_cache_limit Value
-query_cache_min_res_unit Value
-query_cache_size Value
-query_cache_strip_comments Value
-query_cache_type Value
-query_cache_wlock_invalidate Value
-query_prealloc_size Value
-query_response_time_range_base Value
-rand_seed1 Value
-rand_seed2 Value
-range_alloc_block_size Value
-read_buffer_size Value
-read_only Value
-read_rnd_buffer_size Value
-relay_log Value
-relay_log_index Value
-relay_log_info_file Value
-relay_log_purge Value
-relay_log_space_limit Value
-report_host Value
-report_password Value
-report_port Value
-report_user Value
-rpl_recovery_rank Value
-secure_auth Value
-secure_file_priv Value
-server_id Value
-skip_external_locking Value
-skip_name_resolve Value
-skip_networking Value
-skip_show_database Value
-slave_compressed_protocol Value
-slave_exec_mode Value
-slave_load_tmpdir Value
-slave_net_timeout Value
-slave_skip_errors Value
-slave_transaction_retries Value
-slow_launch_time Value
-slow_query_log Value
-slow_query_log_file Value
-slow_query_log_microseconds_timestamp Value
-socket Value
-sort_buffer_size Value
-sql_auto_is_null Value
-sql_big_selects Value
-sql_big_tables Value
-sql_buffer_result Value
-sql_log_bin Value
-sql_log_off Value
-sql_log_update Value
-sql_low_priority_updates Value
-sql_max_join_size Value
-sql_mode Value
-sql_notes Value
-sql_quote_show_create Value
-sql_safe_updates Value
-sql_select_limit Value
-sql_slave_skip_counter Value
-sql_warnings Value
-ssl_ca Value
-ssl_capath Value
-ssl_cert Value
-ssl_cipher Value
-ssl_key Value
-storage_engine Value
-suppress_log_warning_1592 Value
-sync_binlog Value
-sync_frm Value
-system_time_zone Value
-table_definition_cache Value
-table_lock_wait_timeout Value
-table_open_cache Value
-table_type Value
-thread_cache_size Value
-thread_handling Value
-thread_stack Value
-thread_statistics Value
-time_format Value
-time_zone Value
-timed_mutexes Value
-timestamp Value
-tmp_table_size Value
-tmpdir Value
-transaction_alloc_block_size Value
-transaction_prealloc_size Value
-tx_isolation Value
-unique_checks Value
-updatable_views_with_limit Value
-use_global_log_slow_control Value
-use_global_long_query_time Value
-userstat_running Value
-version Value
-version_comment Value
-version_compile_machine Value
-version_compile_os Value
-wait_timeout Value
-warning_count Value
diff --git a/mysql-test/suite/percona/percona_server_variables.test b/mysql-test/suite/percona/percona_server_variables.test
deleted file mode 100644
index 2e158ed2755..00000000000
--- a/mysql-test/suite/percona/percona_server_variables.test
+++ /dev/null
@@ -1,8 +0,0 @@
---source include/have_response_time_distribution.inc
---source include/have_innodb.inc
---source include/have_debug.inc
-
-#check the list of variable names
---replace_column 2 Value
-show variables;
-
diff --git a/mysql-test/suite/percona/percona_server_variables_debug.result b/mysql-test/suite/percona/percona_server_variables_debug.result
new file mode 100644
index 00000000000..ea1c02e7716
--- /dev/null
+++ b/mysql-test/suite/percona/percona_server_variables_debug.result
@@ -0,0 +1,380 @@
+SELECT Variable_name FROM INFORMATION_SCHEMA.SESSION_VARIABLES ORDER BY 1;
+Variable_name
+AUTOCOMMIT
+AUTOMATIC_SP_PRIVILEGES
+AUTO_INCREMENT_INCREMENT
+AUTO_INCREMENT_OFFSET
+BACK_LOG
+BASEDIR
+BIG_TABLES
+BINLOG_CACHE_SIZE
+BINLOG_DIRECT_NON_TRANSACTIONAL_UPDATES
+BINLOG_FORMAT
+BINLOG_STMT_CACHE_SIZE
+BULK_INSERT_BUFFER_SIZE
+CHARACTER_SETS_DIR
+CHARACTER_SET_CLIENT
+CHARACTER_SET_CONNECTION
+CHARACTER_SET_DATABASE
+CHARACTER_SET_FILESYSTEM
+CHARACTER_SET_RESULTS
+CHARACTER_SET_SERVER
+CHARACTER_SET_SYSTEM
+COLLATION_CONNECTION
+COLLATION_DATABASE
+COLLATION_SERVER
+COMPLETION_TYPE
+CONCURRENT_INSERT
+CONNECT_TIMEOUT
+DATADIR
+DATETIME_FORMAT
+DATE_FORMAT
+DEBUG
+DEBUG_SYNC
+DEFAULT_STORAGE_ENGINE
+DEFAULT_WEEK_FORMAT
+DELAYED_INSERT_LIMIT
+DELAYED_INSERT_TIMEOUT
+DELAYED_QUEUE_SIZE
+DELAY_KEY_WRITE
+DIV_PRECISION_INCREMENT
+ENGINE_CONDITION_PUSHDOWN
+ERROR_COUNT
+EVENT_SCHEDULER
+EXPAND_FAST_INDEX_CREATION
+EXPIRE_LOGS_DAYS
+EXTERNAL_USER
+FAST_INDEX_CREATION
+FLUSH
+FLUSH_TIME
+FOREIGN_KEY_CHECKS
+FT_BOOLEAN_SYNTAX
+FT_MAX_WORD_LEN
+FT_MIN_WORD_LEN
+FT_QUERY_EXPANSION_LIMIT
+FT_STOPWORD_FILE
+GENERAL_LOG
+GENERAL_LOG_FILE
+GROUP_CONCAT_MAX_LEN
+HAVE_COMPRESS
+HAVE_CRYPT
+HAVE_CSV
+HAVE_DYNAMIC_LOADING
+HAVE_GEOMETRY
+HAVE_INNODB
+HAVE_NDBCLUSTER
+HAVE_OPENSSL
+HAVE_PARTITIONING
+HAVE_PROFILING
+HAVE_QUERY_CACHE
+HAVE_RESPONSE_TIME_DISTRIBUTION
+HAVE_RTREE_KEYS
+HAVE_SSL
+HAVE_SYMLINK
+HOSTNAME
+IDENTITY
+IGNORE_BUILTIN_INNODB
+INIT_CONNECT
+INIT_FILE
+INIT_SLAVE
+INNODB_ADAPTIVE_FLUSHING
+INNODB_ADAPTIVE_FLUSHING_METHOD
+INNODB_ADAPTIVE_HASH_INDEX
+INNODB_ADAPTIVE_HASH_INDEX_PARTITIONS
+INNODB_ADDITIONAL_MEM_POOL_SIZE
+INNODB_AUTOEXTEND_INCREMENT
+INNODB_AUTOINC_LOCK_MODE
+INNODB_BLOCKING_BUFFER_POOL_RESTORE
+INNODB_BUFFER_POOL_INSTANCES
+INNODB_BUFFER_POOL_RESTORE_AT_STARTUP
+INNODB_BUFFER_POOL_SHM_CHECKSUM
+INNODB_BUFFER_POOL_SHM_KEY
+INNODB_BUFFER_POOL_SIZE
+INNODB_CHANGE_BUFFERING
+INNODB_CHANGE_BUFFERING_DEBUG
+INNODB_CHECKPOINT_AGE_TARGET
+INNODB_CHECKSUMS
+INNODB_COMMIT_CONCURRENCY
+INNODB_CONCURRENCY_TICKETS
+INNODB_CORRUPT_TABLE_ACTION
+INNODB_DATA_FILE_PATH
+INNODB_DATA_HOME_DIR
+INNODB_DICT_SIZE_LIMIT
+INNODB_DOUBLEWRITE
+INNODB_DOUBLEWRITE_FILE
+INNODB_FAKE_CHANGES
+INNODB_FAST_CHECKSUM
+INNODB_FAST_SHUTDOWN
+INNODB_FILE_FORMAT
+INNODB_FILE_FORMAT_CHECK
+INNODB_FILE_FORMAT_MAX
+INNODB_FILE_PER_TABLE
+INNODB_FLUSH_LOG_AT_TRX_COMMIT
+INNODB_FLUSH_METHOD
+INNODB_FLUSH_NEIGHBOR_PAGES
+INNODB_FORCE_LOAD_CORRUPTED
+INNODB_FORCE_RECOVERY
+INNODB_IBUF_ACCEL_RATE
+INNODB_IBUF_ACTIVE_CONTRACT
+INNODB_IBUF_MAX_SIZE
+INNODB_IMPORT_TABLE_FROM_XTRABACKUP
+INNODB_IO_CAPACITY
+INNODB_KILL_IDLE_TRANSACTION
+INNODB_LARGE_PREFIX
+INNODB_LAZY_DROP_TABLE
+INNODB_LOCKS_UNSAFE_FOR_BINLOG
+INNODB_LOCK_WAIT_TIMEOUT
+INNODB_LOG_BLOCK_SIZE
+INNODB_LOG_BUFFER_SIZE
+INNODB_LOG_FILES_IN_GROUP
+INNODB_LOG_FILE_SIZE
+INNODB_LOG_GROUP_HOME_DIR
+INNODB_MAX_DIRTY_PAGES_PCT
+INNODB_MAX_PURGE_LAG
+INNODB_MIRRORED_LOG_GROUPS
+INNODB_OLD_BLOCKS_PCT
+INNODB_OLD_BLOCKS_TIME
+INNODB_OPEN_FILES
+INNODB_PAGE_SIZE
+INNODB_PURGE_BATCH_SIZE
+INNODB_PURGE_THREADS
+INNODB_RANDOM_READ_AHEAD
+INNODB_READ_AHEAD
+INNODB_READ_AHEAD_THRESHOLD
+INNODB_READ_IO_THREADS
+INNODB_RECOVERY_STATS
+INNODB_RECOVERY_UPDATE_RELAY_LOG
+INNODB_REPLICATION_DELAY
+INNODB_ROLLBACK_ON_TIMEOUT
+INNODB_ROLLBACK_SEGMENTS
+INNODB_SHOW_LOCKS_HELD
+INNODB_SHOW_VERBOSE_LOCKS
+INNODB_SPIN_WAIT_DELAY
+INNODB_STATS_AUTO_UPDATE
+INNODB_STATS_METHOD
+INNODB_STATS_ON_METADATA
+INNODB_STATS_SAMPLE_PAGES
+INNODB_STATS_UPDATE_NEED_LOCK
+INNODB_STRICT_MODE
+INNODB_SUPPORT_XA
+INNODB_SYNC_SPIN_LOOPS
+INNODB_TABLE_LOCKS
+INNODB_THREAD_CONCURRENCY
+INNODB_THREAD_CONCURRENCY_TIMER_BASED
+INNODB_THREAD_SLEEP_DELAY
+INNODB_USE_GLOBAL_FLUSH_LOG_AT_TRX_COMMIT
+INNODB_USE_NATIVE_AIO
+INNODB_USE_SYS_MALLOC
+INNODB_USE_SYS_STATS_TABLE
+INNODB_VERSION
+INNODB_WRITE_IO_THREADS
+INSERT_ID
+INTERACTIVE_TIMEOUT
+JOIN_BUFFER_SIZE
+KEEP_FILES_ON_CREATE
+KEY_BUFFER_SIZE
+KEY_CACHE_AGE_THRESHOLD
+KEY_CACHE_BLOCK_SIZE
+KEY_CACHE_DIVISION_LIMIT
+LARGE_FILES_SUPPORT
+LARGE_PAGES
+LARGE_PAGE_SIZE
+LAST_INSERT_ID
+LC_MESSAGES
+LC_MESSAGES_DIR
+LC_TIME_NAMES
+LICENSE
+LOCAL_INFILE
+LOCKED_IN_MEMORY
+LOCK_WAIT_TIMEOUT
+LOG
+LOG_BIN
+LOG_BIN_TRUST_FUNCTION_CREATORS
+LOG_ERROR
+LOG_OUTPUT
+LOG_QUERIES_NOT_USING_INDEXES
+LOG_SLAVE_UPDATES
+LOG_SLOW_ADMIN_STATEMENTS
+LOG_SLOW_FILTER
+LOG_SLOW_QUERIES
+LOG_SLOW_RATE_LIMIT
+LOG_SLOW_SLAVE_STATEMENTS
+LOG_SLOW_SP_STATEMENTS
+LOG_SLOW_VERBOSITY
+LOG_WARNINGS
+LOG_WARNINGS_SUPPRESS
+LONG_QUERY_TIME
+LOWER_CASE_FILE_SYSTEM
+LOWER_CASE_TABLE_NAMES
+LOW_PRIORITY_UPDATES
+MAX_ALLOWED_PACKET
+MAX_BINLOG_CACHE_SIZE
+MAX_BINLOG_SIZE
+MAX_BINLOG_STMT_CACHE_SIZE
+MAX_CONNECTIONS
+MAX_CONNECT_ERRORS
+MAX_DELAYED_THREADS
+MAX_ERROR_COUNT
+MAX_HEAP_TABLE_SIZE
+MAX_INSERT_DELAYED_THREADS
+MAX_JOIN_SIZE
+MAX_LENGTH_FOR_SORT_DATA
+MAX_LONG_DATA_SIZE
+MAX_PREPARED_STMT_COUNT
+MAX_RELAY_LOG_SIZE
+MAX_SEEKS_FOR_KEY
+MAX_SORT_LENGTH
+MAX_SP_RECURSION_DEPTH
+MAX_TMP_TABLES
+MAX_USER_CONNECTIONS
+MAX_WRITE_LOCK_COUNT
+MIN_EXAMINED_ROW_LIMIT
+MULTI_RANGE_COUNT
+MYISAM_DATA_POINTER_SIZE
+MYISAM_MAX_SORT_FILE_SIZE
+MYISAM_MMAP_SIZE
+MYISAM_RECOVER_OPTIONS
+MYISAM_REPAIR_THREADS
+MYISAM_SORT_BUFFER_SIZE
+MYISAM_STATS_METHOD
+MYISAM_USE_MMAP
+NET_BUFFER_LENGTH
+NET_READ_TIMEOUT
+NET_RETRY_COUNT
+NET_WRITE_TIMEOUT
+NEW
+OLD
+OLD_ALTER_TABLE
+OLD_PASSWORDS
+OPEN_FILES_LIMIT
+OPTIMIZER_FIX
+OPTIMIZER_PRUNE_LEVEL
+OPTIMIZER_SEARCH_DEPTH
+OPTIMIZER_SWITCH
+PERFORMANCE_SCHEMA
+PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_LONG_SIZE
+PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_SIZE
+PERFORMANCE_SCHEMA_MAX_COND_CLASSES
+PERFORMANCE_SCHEMA_MAX_COND_INSTANCES
+PERFORMANCE_SCHEMA_MAX_FILE_CLASSES
+PERFORMANCE_SCHEMA_MAX_FILE_HANDLES
+PERFORMANCE_SCHEMA_MAX_FILE_INSTANCES
+PERFORMANCE_SCHEMA_MAX_MUTEX_CLASSES
+PERFORMANCE_SCHEMA_MAX_MUTEX_INSTANCES
+PERFORMANCE_SCHEMA_MAX_RWLOCK_CLASSES
+PERFORMANCE_SCHEMA_MAX_RWLOCK_INSTANCES
+PERFORMANCE_SCHEMA_MAX_TABLE_HANDLES
+PERFORMANCE_SCHEMA_MAX_TABLE_INSTANCES
+PERFORMANCE_SCHEMA_MAX_THREAD_CLASSES
+PERFORMANCE_SCHEMA_MAX_THREAD_INSTANCES
+PID_FILE
+PLUGIN_DIR
+PORT
+PRELOAD_BUFFER_SIZE
+PROFILING
+PROFILING_HISTORY_SIZE
+PROTOCOL_VERSION
+PROXY_USER
+PSEUDO_THREAD_ID
+QUERY_ALLOC_BLOCK_SIZE
+QUERY_CACHE_LIMIT
+QUERY_CACHE_MIN_RES_UNIT
+QUERY_CACHE_SIZE
+QUERY_CACHE_STRIP_COMMENTS
+QUERY_CACHE_TYPE
+QUERY_CACHE_WLOCK_INVALIDATE
+QUERY_EXEC_TIME
+QUERY_PREALLOC_SIZE
+QUERY_RESPONSE_TIME_RANGE_BASE
+QUERY_RESPONSE_TIME_STATS
+RAND_SEED1
+RAND_SEED2
+RANGE_ALLOC_BLOCK_SIZE
+READ_BUFFER_SIZE
+READ_ONLY
+READ_RND_BUFFER_SIZE
+RELAY_LOG
+RELAY_LOG_INDEX
+RELAY_LOG_INFO_FILE
+RELAY_LOG_PURGE
+RELAY_LOG_RECOVERY
+RELAY_LOG_SPACE_LIMIT
+REPORT_HOST
+REPORT_PASSWORD
+REPORT_PORT
+REPORT_USER
+RPL_RECOVERY_RANK
+SECURE_AUTH
+SECURE_FILE_PRIV
+SERVER_ID
+SKIP_EXTERNAL_LOCKING
+SKIP_NAME_RESOLVE
+SKIP_NETWORKING
+SKIP_SHOW_DATABASE
+SLAVE_COMPRESSED_PROTOCOL
+SLAVE_EXEC_MODE
+SLAVE_LOAD_TMPDIR
+SLAVE_NET_TIMEOUT
+SLAVE_SKIP_ERRORS
+SLAVE_TRANSACTION_RETRIES
+SLAVE_TYPE_CONVERSIONS
+SLOW_LAUNCH_TIME
+SLOW_QUERY_LOG
+SLOW_QUERY_LOG_FILE
+SLOW_QUERY_LOG_TIMESTAMP_ALWAYS
+SLOW_QUERY_LOG_TIMESTAMP_PRECISION
+SLOW_QUERY_LOG_USE_GLOBAL_CONTROL
+SOCKET
+SORT_BUFFER_SIZE
+SQL_AUTO_IS_NULL
+SQL_BIG_SELECTS
+SQL_BIG_TABLES
+SQL_BUFFER_RESULT
+SQL_LOG_BIN
+SQL_LOG_OFF
+SQL_LOW_PRIORITY_UPDATES
+SQL_MAX_JOIN_SIZE
+SQL_MODE
+SQL_NOTES
+SQL_QUOTE_SHOW_CREATE
+SQL_SAFE_UPDATES
+SQL_SELECT_LIMIT
+SQL_SLAVE_SKIP_COUNTER
+SQL_WARNINGS
+SSL_CA
+SSL_CAPATH
+SSL_CERT
+SSL_CIPHER
+SSL_KEY
+STORAGE_ENGINE
+SYNC_BINLOG
+SYNC_FRM
+SYNC_MASTER_INFO
+SYNC_RELAY_LOG
+SYNC_RELAY_LOG_INFO
+SYSTEM_TIME_ZONE
+TABLE_DEFINITION_CACHE
+TABLE_OPEN_CACHE
+THREAD_CACHE_SIZE
+THREAD_CONCURRENCY
+THREAD_HANDLING
+THREAD_STACK
+THREAD_STATISTICS
+TIMED_MUTEXES
+TIMESTAMP
+TIME_FORMAT
+TIME_ZONE
+TMPDIR
+TMP_TABLE_SIZE
+TRANSACTION_ALLOC_BLOCK_SIZE
+TRANSACTION_PREALLOC_SIZE
+TX_ISOLATION
+UNIQUE_CHECKS
+UPDATABLE_VIEWS_WITH_LIMIT
+USERSTAT
+VERSION
+VERSION_COMMENT
+VERSION_COMPILE_MACHINE
+VERSION_COMPILE_OS
+WAIT_TIMEOUT
+WARNING_COUNT
diff --git a/mysql-test/suite/percona/percona_server_variables_debug.test b/mysql-test/suite/percona/percona_server_variables_debug.test
new file mode 100644
index 00000000000..971f6bae689
--- /dev/null
+++ b/mysql-test/suite/percona/percona_server_variables_debug.test
@@ -0,0 +1,2 @@
+--source include/have_debug.inc
+--source percona_server_variables.inc
diff --git a/mysql-test/suite/percona/percona_server_variables_release.result b/mysql-test/suite/percona/percona_server_variables_release.result
new file mode 100644
index 00000000000..e5965cf7e5e
--- /dev/null
+++ b/mysql-test/suite/percona/percona_server_variables_release.result
@@ -0,0 +1,376 @@
+SELECT Variable_name FROM INFORMATION_SCHEMA.SESSION_VARIABLES ORDER BY 1;
+Variable_name
+AUTOCOMMIT
+AUTOMATIC_SP_PRIVILEGES
+AUTO_INCREMENT_INCREMENT
+AUTO_INCREMENT_OFFSET
+BACK_LOG
+BASEDIR
+BIG_TABLES
+BINLOG_CACHE_SIZE
+BINLOG_DIRECT_NON_TRANSACTIONAL_UPDATES
+BINLOG_FORMAT
+BINLOG_STMT_CACHE_SIZE
+BULK_INSERT_BUFFER_SIZE
+CHARACTER_SETS_DIR
+CHARACTER_SET_CLIENT
+CHARACTER_SET_CONNECTION
+CHARACTER_SET_DATABASE
+CHARACTER_SET_FILESYSTEM
+CHARACTER_SET_RESULTS
+CHARACTER_SET_SERVER
+CHARACTER_SET_SYSTEM
+COLLATION_CONNECTION
+COLLATION_DATABASE
+COLLATION_SERVER
+COMPLETION_TYPE
+CONCURRENT_INSERT
+CONNECT_TIMEOUT
+DATADIR
+DATETIME_FORMAT
+DATE_FORMAT
+DEFAULT_STORAGE_ENGINE
+DEFAULT_WEEK_FORMAT
+DELAYED_INSERT_LIMIT
+DELAYED_INSERT_TIMEOUT
+DELAYED_QUEUE_SIZE
+DELAY_KEY_WRITE
+DIV_PRECISION_INCREMENT
+ENGINE_CONDITION_PUSHDOWN
+ERROR_COUNT
+EVENT_SCHEDULER
+EXPAND_FAST_INDEX_CREATION
+EXPIRE_LOGS_DAYS
+EXTERNAL_USER
+FAST_INDEX_CREATION
+FLUSH
+FLUSH_TIME
+FOREIGN_KEY_CHECKS
+FT_BOOLEAN_SYNTAX
+FT_MAX_WORD_LEN
+FT_MIN_WORD_LEN
+FT_QUERY_EXPANSION_LIMIT
+FT_STOPWORD_FILE
+GENERAL_LOG
+GENERAL_LOG_FILE
+GROUP_CONCAT_MAX_LEN
+HAVE_COMPRESS
+HAVE_CRYPT
+HAVE_CSV
+HAVE_DYNAMIC_LOADING
+HAVE_GEOMETRY
+HAVE_INNODB
+HAVE_NDBCLUSTER
+HAVE_OPENSSL
+HAVE_PARTITIONING
+HAVE_PROFILING
+HAVE_QUERY_CACHE
+HAVE_RESPONSE_TIME_DISTRIBUTION
+HAVE_RTREE_KEYS
+HAVE_SSL
+HAVE_SYMLINK
+HOSTNAME
+IDENTITY
+IGNORE_BUILTIN_INNODB
+INIT_CONNECT
+INIT_FILE
+INIT_SLAVE
+INNODB_ADAPTIVE_FLUSHING
+INNODB_ADAPTIVE_FLUSHING_METHOD
+INNODB_ADAPTIVE_HASH_INDEX
+INNODB_ADAPTIVE_HASH_INDEX_PARTITIONS
+INNODB_ADDITIONAL_MEM_POOL_SIZE
+INNODB_AUTOEXTEND_INCREMENT
+INNODB_AUTOINC_LOCK_MODE
+INNODB_BLOCKING_BUFFER_POOL_RESTORE
+INNODB_BUFFER_POOL_INSTANCES
+INNODB_BUFFER_POOL_RESTORE_AT_STARTUP
+INNODB_BUFFER_POOL_SHM_CHECKSUM
+INNODB_BUFFER_POOL_SHM_KEY
+INNODB_BUFFER_POOL_SIZE
+INNODB_CHANGE_BUFFERING
+INNODB_CHECKPOINT_AGE_TARGET
+INNODB_CHECKSUMS
+INNODB_COMMIT_CONCURRENCY
+INNODB_CONCURRENCY_TICKETS
+INNODB_CORRUPT_TABLE_ACTION
+INNODB_DATA_FILE_PATH
+INNODB_DATA_HOME_DIR
+INNODB_DICT_SIZE_LIMIT
+INNODB_DOUBLEWRITE
+INNODB_DOUBLEWRITE_FILE
+INNODB_FAKE_CHANGES
+INNODB_FAST_CHECKSUM
+INNODB_FAST_SHUTDOWN
+INNODB_FILE_FORMAT
+INNODB_FILE_FORMAT_CHECK
+INNODB_FILE_FORMAT_MAX
+INNODB_FILE_PER_TABLE
+INNODB_FLUSH_LOG_AT_TRX_COMMIT
+INNODB_FLUSH_METHOD
+INNODB_FLUSH_NEIGHBOR_PAGES
+INNODB_FORCE_LOAD_CORRUPTED
+INNODB_FORCE_RECOVERY
+INNODB_IBUF_ACCEL_RATE
+INNODB_IBUF_ACTIVE_CONTRACT
+INNODB_IBUF_MAX_SIZE
+INNODB_IMPORT_TABLE_FROM_XTRABACKUP
+INNODB_IO_CAPACITY
+INNODB_KILL_IDLE_TRANSACTION
+INNODB_LARGE_PREFIX
+INNODB_LAZY_DROP_TABLE
+INNODB_LOCKS_UNSAFE_FOR_BINLOG
+INNODB_LOCK_WAIT_TIMEOUT
+INNODB_LOG_BLOCK_SIZE
+INNODB_LOG_BUFFER_SIZE
+INNODB_LOG_FILES_IN_GROUP
+INNODB_LOG_FILE_SIZE
+INNODB_LOG_GROUP_HOME_DIR
+INNODB_MAX_DIRTY_PAGES_PCT
+INNODB_MAX_PURGE_LAG
+INNODB_MIRRORED_LOG_GROUPS
+INNODB_OLD_BLOCKS_PCT
+INNODB_OLD_BLOCKS_TIME
+INNODB_OPEN_FILES
+INNODB_PAGE_SIZE
+INNODB_PURGE_BATCH_SIZE
+INNODB_PURGE_THREADS
+INNODB_RANDOM_READ_AHEAD
+INNODB_READ_AHEAD
+INNODB_READ_AHEAD_THRESHOLD
+INNODB_READ_IO_THREADS
+INNODB_RECOVERY_STATS
+INNODB_RECOVERY_UPDATE_RELAY_LOG
+INNODB_REPLICATION_DELAY
+INNODB_ROLLBACK_ON_TIMEOUT
+INNODB_ROLLBACK_SEGMENTS
+INNODB_SHOW_LOCKS_HELD
+INNODB_SHOW_VERBOSE_LOCKS
+INNODB_SPIN_WAIT_DELAY
+INNODB_STATS_AUTO_UPDATE
+INNODB_STATS_METHOD
+INNODB_STATS_ON_METADATA
+INNODB_STATS_SAMPLE_PAGES
+INNODB_STATS_UPDATE_NEED_LOCK
+INNODB_STRICT_MODE
+INNODB_SUPPORT_XA
+INNODB_SYNC_SPIN_LOOPS
+INNODB_TABLE_LOCKS
+INNODB_THREAD_CONCURRENCY
+INNODB_THREAD_CONCURRENCY_TIMER_BASED
+INNODB_THREAD_SLEEP_DELAY
+INNODB_USE_GLOBAL_FLUSH_LOG_AT_TRX_COMMIT
+INNODB_USE_NATIVE_AIO
+INNODB_USE_SYS_MALLOC
+INNODB_USE_SYS_STATS_TABLE
+INNODB_VERSION
+INNODB_WRITE_IO_THREADS
+INSERT_ID
+INTERACTIVE_TIMEOUT
+JOIN_BUFFER_SIZE
+KEEP_FILES_ON_CREATE
+KEY_BUFFER_SIZE
+KEY_CACHE_AGE_THRESHOLD
+KEY_CACHE_BLOCK_SIZE
+KEY_CACHE_DIVISION_LIMIT
+LARGE_FILES_SUPPORT
+LARGE_PAGES
+LARGE_PAGE_SIZE
+LAST_INSERT_ID
+LC_MESSAGES
+LC_MESSAGES_DIR
+LC_TIME_NAMES
+LICENSE
+LOCAL_INFILE
+LOCKED_IN_MEMORY
+LOCK_WAIT_TIMEOUT
+LOG
+LOG_BIN
+LOG_BIN_TRUST_FUNCTION_CREATORS
+LOG_ERROR
+LOG_OUTPUT
+LOG_QUERIES_NOT_USING_INDEXES
+LOG_SLAVE_UPDATES
+LOG_SLOW_ADMIN_STATEMENTS
+LOG_SLOW_FILTER
+LOG_SLOW_QUERIES
+LOG_SLOW_RATE_LIMIT
+LOG_SLOW_SLAVE_STATEMENTS
+LOG_SLOW_SP_STATEMENTS
+LOG_SLOW_VERBOSITY
+LOG_WARNINGS
+LOG_WARNINGS_SUPPRESS
+LONG_QUERY_TIME
+LOWER_CASE_FILE_SYSTEM
+LOWER_CASE_TABLE_NAMES
+LOW_PRIORITY_UPDATES
+MAX_ALLOWED_PACKET
+MAX_BINLOG_CACHE_SIZE
+MAX_BINLOG_SIZE
+MAX_BINLOG_STMT_CACHE_SIZE
+MAX_CONNECTIONS
+MAX_CONNECT_ERRORS
+MAX_DELAYED_THREADS
+MAX_ERROR_COUNT
+MAX_HEAP_TABLE_SIZE
+MAX_INSERT_DELAYED_THREADS
+MAX_JOIN_SIZE
+MAX_LENGTH_FOR_SORT_DATA
+MAX_LONG_DATA_SIZE
+MAX_PREPARED_STMT_COUNT
+MAX_RELAY_LOG_SIZE
+MAX_SEEKS_FOR_KEY
+MAX_SORT_LENGTH
+MAX_SP_RECURSION_DEPTH
+MAX_TMP_TABLES
+MAX_USER_CONNECTIONS
+MAX_WRITE_LOCK_COUNT
+MIN_EXAMINED_ROW_LIMIT
+MULTI_RANGE_COUNT
+MYISAM_DATA_POINTER_SIZE
+MYISAM_MAX_SORT_FILE_SIZE
+MYISAM_MMAP_SIZE
+MYISAM_RECOVER_OPTIONS
+MYISAM_REPAIR_THREADS
+MYISAM_SORT_BUFFER_SIZE
+MYISAM_STATS_METHOD
+MYISAM_USE_MMAP
+NET_BUFFER_LENGTH
+NET_READ_TIMEOUT
+NET_RETRY_COUNT
+NET_WRITE_TIMEOUT
+NEW
+OLD
+OLD_ALTER_TABLE
+OLD_PASSWORDS
+OPEN_FILES_LIMIT
+OPTIMIZER_FIX
+OPTIMIZER_PRUNE_LEVEL
+OPTIMIZER_SEARCH_DEPTH
+OPTIMIZER_SWITCH
+PERFORMANCE_SCHEMA
+PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_LONG_SIZE
+PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_SIZE
+PERFORMANCE_SCHEMA_MAX_COND_CLASSES
+PERFORMANCE_SCHEMA_MAX_COND_INSTANCES
+PERFORMANCE_SCHEMA_MAX_FILE_CLASSES
+PERFORMANCE_SCHEMA_MAX_FILE_HANDLES
+PERFORMANCE_SCHEMA_MAX_FILE_INSTANCES
+PERFORMANCE_SCHEMA_MAX_MUTEX_CLASSES
+PERFORMANCE_SCHEMA_MAX_MUTEX_INSTANCES
+PERFORMANCE_SCHEMA_MAX_RWLOCK_CLASSES
+PERFORMANCE_SCHEMA_MAX_RWLOCK_INSTANCES
+PERFORMANCE_SCHEMA_MAX_TABLE_HANDLES
+PERFORMANCE_SCHEMA_MAX_TABLE_INSTANCES
+PERFORMANCE_SCHEMA_MAX_THREAD_CLASSES
+PERFORMANCE_SCHEMA_MAX_THREAD_INSTANCES
+PID_FILE
+PLUGIN_DIR
+PORT
+PRELOAD_BUFFER_SIZE
+PROFILING
+PROFILING_HISTORY_SIZE
+PROTOCOL_VERSION
+PROXY_USER
+PSEUDO_THREAD_ID
+QUERY_ALLOC_BLOCK_SIZE
+QUERY_CACHE_LIMIT
+QUERY_CACHE_MIN_RES_UNIT
+QUERY_CACHE_SIZE
+QUERY_CACHE_STRIP_COMMENTS
+QUERY_CACHE_TYPE
+QUERY_CACHE_WLOCK_INVALIDATE
+QUERY_PREALLOC_SIZE
+QUERY_RESPONSE_TIME_RANGE_BASE
+QUERY_RESPONSE_TIME_STATS
+RAND_SEED1
+RAND_SEED2
+RANGE_ALLOC_BLOCK_SIZE
+READ_BUFFER_SIZE
+READ_ONLY
+READ_RND_BUFFER_SIZE
+RELAY_LOG
+RELAY_LOG_INDEX
+RELAY_LOG_INFO_FILE
+RELAY_LOG_PURGE
+RELAY_LOG_RECOVERY
+RELAY_LOG_SPACE_LIMIT
+REPORT_HOST
+REPORT_PASSWORD
+REPORT_PORT
+REPORT_USER
+RPL_RECOVERY_RANK
+SECURE_AUTH
+SECURE_FILE_PRIV
+SERVER_ID
+SKIP_EXTERNAL_LOCKING
+SKIP_NAME_RESOLVE
+SKIP_NETWORKING
+SKIP_SHOW_DATABASE
+SLAVE_COMPRESSED_PROTOCOL
+SLAVE_EXEC_MODE
+SLAVE_LOAD_TMPDIR
+SLAVE_NET_TIMEOUT
+SLAVE_SKIP_ERRORS
+SLAVE_TRANSACTION_RETRIES
+SLAVE_TYPE_CONVERSIONS
+SLOW_LAUNCH_TIME
+SLOW_QUERY_LOG
+SLOW_QUERY_LOG_FILE
+SLOW_QUERY_LOG_TIMESTAMP_ALWAYS
+SLOW_QUERY_LOG_TIMESTAMP_PRECISION
+SLOW_QUERY_LOG_USE_GLOBAL_CONTROL
+SOCKET
+SORT_BUFFER_SIZE
+SQL_AUTO_IS_NULL
+SQL_BIG_SELECTS
+SQL_BIG_TABLES
+SQL_BUFFER_RESULT
+SQL_LOG_BIN
+SQL_LOG_OFF
+SQL_LOW_PRIORITY_UPDATES
+SQL_MAX_JOIN_SIZE
+SQL_MODE
+SQL_NOTES
+SQL_QUOTE_SHOW_CREATE
+SQL_SAFE_UPDATES
+SQL_SELECT_LIMIT
+SQL_SLAVE_SKIP_COUNTER
+SQL_WARNINGS
+SSL_CA
+SSL_CAPATH
+SSL_CERT
+SSL_CIPHER
+SSL_KEY
+STORAGE_ENGINE
+SYNC_BINLOG
+SYNC_FRM
+SYNC_MASTER_INFO
+SYNC_RELAY_LOG
+SYNC_RELAY_LOG_INFO
+SYSTEM_TIME_ZONE
+TABLE_DEFINITION_CACHE
+TABLE_OPEN_CACHE
+THREAD_CACHE_SIZE
+THREAD_CONCURRENCY
+THREAD_HANDLING
+THREAD_STACK
+THREAD_STATISTICS
+TIMED_MUTEXES
+TIMESTAMP
+TIME_FORMAT
+TIME_ZONE
+TMPDIR
+TMP_TABLE_SIZE
+TRANSACTION_ALLOC_BLOCK_SIZE
+TRANSACTION_PREALLOC_SIZE
+TX_ISOLATION
+UNIQUE_CHECKS
+UPDATABLE_VIEWS_WITH_LIMIT
+USERSTAT
+VERSION
+VERSION_COMMENT
+VERSION_COMPILE_MACHINE
+VERSION_COMPILE_OS
+WAIT_TIMEOUT
+WARNING_COUNT
diff --git a/mysql-test/suite/percona/percona_server_variables_release.test b/mysql-test/suite/percona/percona_server_variables_release.test
new file mode 100644
index 00000000000..b145843ab22
--- /dev/null
+++ b/mysql-test/suite/percona/percona_server_variables_release.test
@@ -0,0 +1,2 @@
+--source include/have_nodebug.inc
+--source percona_server_variables.inc
diff --git a/mysql-test/suite/percona/percona_slow_extended-slow_query_log_timestamp_always-cl-master.opt b/mysql-test/suite/percona/percona_slow_extended-slow_query_log_timestamp_always-cl-master.opt
new file mode 100644
index 00000000000..233b50a1f89
--- /dev/null
+++ b/mysql-test/suite/percona/percona_slow_extended-slow_query_log_timestamp_always-cl-master.opt
@@ -0,0 +1 @@
+--slow_query_log_timestamp_always
diff --git a/mysql-test/suite/percona/percona_slow_extended-slow_query_log_timestamp_always-cl.result b/mysql-test/suite/percona/percona_slow_extended-slow_query_log_timestamp_always-cl.result
new file mode 100644
index 00000000000..13684fad10c
--- /dev/null
+++ b/mysql-test/suite/percona/percona_slow_extended-slow_query_log_timestamp_always-cl.result
@@ -0,0 +1,3 @@
+show global variables like 'slow_query_log_timestamp_always';
+Variable_name Value
+slow_query_log_timestamp_always ON
diff --git a/mysql-test/suite/percona/percona_slow_extended-slow_query_log_timestamp_always-cl.test b/mysql-test/suite/percona/percona_slow_extended-slow_query_log_timestamp_always-cl.test
new file mode 100644
index 00000000000..e73c4202869
--- /dev/null
+++ b/mysql-test/suite/percona/percona_slow_extended-slow_query_log_timestamp_always-cl.test
@@ -0,0 +1 @@
+show global variables like 'slow_query_log_timestamp_always';
diff --git a/mysql-test/suite/percona/percona_slow_extended-use_global_control-master.opt b/mysql-test/suite/percona/percona_slow_extended-use_global_control-master.opt
new file mode 100644
index 00000000000..bd62c08c475
--- /dev/null
+++ b/mysql-test/suite/percona/percona_slow_extended-use_global_control-master.opt
@@ -0,0 +1 @@
+--slow-query-log-file=percona_slow_query_log-control_global_slow.log --long-query-time=1
diff --git a/mysql-test/suite/percona/percona_slow_extended-use_global_control.result b/mysql-test/suite/percona/percona_slow_extended-use_global_control.result
new file mode 100644
index 00000000000..699c95e9671
--- /dev/null
+++ b/mysql-test/suite/percona/percona_slow_extended-use_global_control.result
@@ -0,0 +1,12 @@
+SELECT sleep(2);
+sleep(2)
+0
+set global log_slow_verbosity=innodb;
+set global slow_query_log_use_global_control="log_slow_verbosity,long_query_time";
+SELECT sleep(2);
+sleep(2)
+0
+set global slow_query_log_use_global_control='';
+set global log_slow_verbosity='';
+FLUSH LOGS;
+1
diff --git a/mysql-test/suite/percona/percona_slow_extended-use_global_control.test b/mysql-test/suite/percona/percona_slow_extended-use_global_control.test
new file mode 100644
index 00000000000..199b652561c
--- /dev/null
+++ b/mysql-test/suite/percona/percona_slow_extended-use_global_control.test
@@ -0,0 +1,12 @@
+source include/have_xtradb.inc;
+SELECT sleep(2);
+set global log_slow_verbosity=innodb;
+set global slow_query_log_use_global_control="log_slow_verbosity,long_query_time";
+SELECT sleep(2);
+set global slow_query_log_use_global_control='';
+set global log_slow_verbosity='';
+
+FLUSH LOGS;
+--let grep_file = $MYSQLTEST_VARDIR/mysqld.1/data/percona_slow_query_log-control_global_slow.log
+--let grep_pattern = No InnoDB statistics available for this query
+--source grep.inc
diff --git a/mysql-test/suite/percona/percona_suppress_log_warning_1592.result b/mysql-test/suite/percona/percona_suppress_log_warning_1592.result
deleted file mode 100644
index 4715499b08f..00000000000
--- a/mysql-test/suite/percona/percona_suppress_log_warning_1592.result
+++ /dev/null
@@ -1,28 +0,0 @@
-SET @old_log_warnings = @@log_warnings;
-SET @old_suppress_log_warning_1592 = @@suppress_log_warning_1592;
-DROP TABLE IF EXISTS t1;
-CREATE TABLE t1 (a VARCHAR(36), b VARCHAR(20));
-SET GLOBAL SUPPRESS_LOG_WARNING_1592 = 0;
-SET GLOBAL LOG_WARNINGS = 0;
-INSERT INTO t1 VALUES(UUID(), 'suppress_1592');
-Warnings:
-Note 1592 Statement may not be safe to log in statement format.
-SET GLOBAL LOG_WARNINGS = 1;
-INSERT INTO t1 VALUES(UUID(), 'suppress_1592');
-Warnings:
-Note 1592 Statement may not be safe to log in statement format.
-SET GLOBAL SUPPRESS_LOG_WARNING_1592 = 1;
-SET GLOBAL LOG_WARNINGS = 0;
-INSERT INTO t1 VALUES(UUID(), 'suppress_1592');
-Warnings:
-Note 1592 Statement may not be safe to log in statement format.
-SET GLOBAL LOG_WARNINGS = 1;
-INSERT INTO t1 VALUES(UUID(), 'suppress_1592');
-Warnings:
-Note 1592 Statement may not be safe to log in statement format.
-DROP TABLE t1;
-SET GLOBAL log_warnings = @old_log_warnings;
-SET GLOBAL suppress_log_warning_1592 = @old_suppress_log_warning_1592;
-# Count the number of times the "Unsafe" message was printed
-# to the error log.
-Occurrences: 1
diff --git a/mysql-test/suite/percona/percona_xtradb_admin_command.test b/mysql-test/suite/percona/percona_xtradb_admin_command.test
index 5dc3fb2b33a..b675c2afa21 100644
--- a/mysql-test/suite/percona/percona_xtradb_admin_command.test
+++ b/mysql-test/suite/percona/percona_xtradb_admin_command.test
@@ -1,3 +1,3 @@
---source include/have_innodb.inc
+--source include/have_xtradb.inc
select * from information_schema.XTRADB_ADMIN_COMMAND;
select * from information_schema.XTRADB_ADMIN_COMMAND /*!XTRA_HELLO*/;
diff --git a/mysql-test/suite/percona/percona_xtradb_bug317074.result b/mysql-test/suite/percona/percona_xtradb_bug317074.result
index 82a98844652..7c1876fb7bf 100644
--- a/mysql-test/suite/percona/percona_xtradb_bug317074.result
+++ b/mysql-test/suite/percona/percona_xtradb_bug317074.result
@@ -1,4 +1,5 @@
SET @old_innodb_file_format=@@innodb_file_format;
+SET @old_innodb_file_format_max=@@innodb_file_format_max;
SET @old_innodb_file_per_table=@@innodb_file_per_table;
SET GLOBAL innodb_file_format='Barracuda';
SET GLOBAL innodb_file_per_table=ON;
diff --git a/mysql-test/suite/percona/percona_xtradb_bug317074.test b/mysql-test/suite/percona/percona_xtradb_bug317074.test
index abf5d8ee1f6..5f9db073060 100644
--- a/mysql-test/suite/percona/percona_xtradb_bug317074.test
+++ b/mysql-test/suite/percona/percona_xtradb_bug317074.test
@@ -1,8 +1,8 @@
--- source include/have_innodb.inc
+-- source include/have_xtradb.inc
SET @old_innodb_file_format=@@innodb_file_format;
+SET @old_innodb_file_format_max=@@innodb_file_format_max;
SET @old_innodb_file_per_table=@@innodb_file_per_table;
-let $innodb_file_format_check_orig=`select @@innodb_file_format_check`;
SET GLOBAL innodb_file_format='Barracuda';
SET GLOBAL innodb_file_per_table=ON;
@@ -44,5 +44,5 @@ ALTER TABLE test1 ENGINE=MyISAM;
DROP TABLE test1;
SET GLOBAL innodb_file_format=@old_innodb_file_format;
+SET GLOBAL innodb_file_format_max=@old_innodb_file_format_max;
SET GLOBAL innodb_file_per_table=@old_innodb_file_per_table;
-eval set global innodb_file_format_check=$innodb_file_format_check_orig;
diff --git a/mysql-test/suite/percona/profiling_slow.patch/percona_bug643149.result b/mysql-test/suite/percona/profiling_slow.patch/percona_bug643149.result
index c2a15c97e8c..1a447a194e7 100644
--- a/mysql-test/suite/percona/profiling_slow.patch/percona_bug643149.result
+++ b/mysql-test/suite/percona/profiling_slow.patch/percona_bug643149.result
@@ -1,16 +1,21 @@
SET @old_slow_query_log_file=@@global.slow_query_log_file;
SET GLOBAL slow_query_log=on;
-SET LOCAL profiling_server=on;
-SET LOCAL long_query_time=1;
+SET LOCAL log_slow_verbosity='profiling';
+SET LOCAL long_query_time=0;
SET GLOBAL slow_query_log_file='MYSQLTEST_VARDIR/percona_bug643149_slow.log';;
-SELECT SLEEP(2);
-SLEEP(2)
-0
-# Time: X X:X:X
+SELECT 1;
+1
+1
# User@Host: root[root] @ localhost []
-# Thread_id: X Schema: test Last_errno: X Killed: X
-# Query_time: X.X Lock_time: X.X Rows_sent: X Rows_examined: X Rows_affected: X Rows_read: X
-# Bytes_sent: X Tmp_tables: X Tmp_disk_tables: X Tmp_table_sizes: X
-# Profile_starting: X.X Profile_starting_cpu: X.X Profile_checking_permissions: X.X Profile_checking_permissions_cpu: X.X Profile_Opening_tables: X.X Profile_Opening_tables_cpu: X.X Profile_init: X.X Profile_init_cpu: X.X Profile_optimizing: X.X Profile_optimizing_cpu: X.X Profile_executing: X.X Profile_executing_cpu: X.X Profile_User_sleep: X.X Profile_User_sleep_cpu: X.X Profile_end: X.X Profile_end_cpu: X.X Profile_query_end: X.X Profile_query_end_cpu: X.X Profile_freeing_items: X.X Profile_freeing_items_cpu: X.X Profile_logging_slow_query: X.X Profile_logging_slow_query_cpu: X.X
+# Thread_id: X Schema: test Last_errno: X Killed: X
+# Query_time: X.X Lock_time: X.X Rows_sent: X Rows_examined: X Rows_affected: X Rows_read: X
+# Bytes_sent: X Tmp_tables: X Tmp_disk_tables: X Tmp_table_sizes: X
+# Profile_starting: X.X Profile_starting_cpu: X.X Profile_Opening_tables: X.X Profile_Opening_tables_cpu: X.X Profile_query_end: X.X Profile_query_end_cpu: X.X Profile_closing_tables: X.X Profile_closing_tables_cpu: X.X Profile_freeing_items: X.X Profile_freeing_items_cpu: X.X Profile_logging_slow_query: X.X Profile_logging_slow_query_cpu: X.X
+# Profile_total: X.X Profile_total_cpu: X.X
+# User@Host: root[root] @ localhost []
+# Thread_id: X Schema: test Last_errno: X Killed: X
+# Query_time: X.X Lock_time: X.X Rows_sent: X Rows_examined: X Rows_affected: X Rows_read: X
+# Bytes_sent: X Tmp_tables: X Tmp_disk_tables: X Tmp_table_sizes: X
+# Profile_starting: X.X Profile_starting_cpu: X.X Profile_checking_permissions: X.X Profile_checking_permissions_cpu: X.X Profile_Opening_tables: X.X Profile_Opening_tables_cpu: X.X Profile_init: X.X Profile_init_cpu: X.X Profile_optimizing: X.X Profile_optimizing_cpu: X.X Profile_executing: X.X Profile_executing_cpu: X.X Profile_end: X.X Profile_end_cpu: X.X Profile_query_end: X.X Profile_query_end_cpu: X.X Profile_closing_tables: X.X Profile_closing_tables_cpu: X.X Profile_freeing_items: X.X Profile_freeing_items_cpu: X.X Profile_logging_slow_query: X.X Profile_logging_slow_query_cpu: X.X
# Profile_total: X.X Profile_total_cpu: X.X
SET GLOBAL slow_query_log_file=@old_slow_query_log_file;
diff --git a/mysql-test/suite/percona/profiling_slow.patch/percona_bug643149.test b/mysql-test/suite/percona/profiling_slow.patch/percona_bug643149.test
index b4a9ac7bc65..fa31b169a19 100644
--- a/mysql-test/suite/percona/profiling_slow.patch/percona_bug643149.test
+++ b/mysql-test/suite/percona/profiling_slow.patch/percona_bug643149.test
@@ -9,20 +9,19 @@
# If this bug is fixed please
# 1. try this test with "let $fixed_bug38124 = 0;"
# 2. remove all workarounds if 1. was successful.
+--source include/have_profiling.inc
let $fixed_bug38124 = 0;
SET @old_slow_query_log_file=@@global.slow_query_log_file;
SET GLOBAL slow_query_log=on;
-SET LOCAL profiling_server=on;
-SET LOCAL long_query_time=1;
+SET LOCAL log_slow_verbosity='profiling';
+SET LOCAL long_query_time=0;
let slogfile=$MYSQLTEST_VARDIR/percona_bug643149_slow.log;
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--eval SET GLOBAL slow_query_log_file='$slogfile';
---disable_ps_protocol
-SELECT SLEEP(2);
---enable_ps_protocol
+SELECT 1;
perl;
$slogfile= $ENV{'slogfile'};
@@ -31,8 +30,8 @@ perl;
die("Unable to read slow query log file $slogfile: $!\n");
while(<FILE>) {
next if (!/^#/);
+ next if (/^# Time:/);
s/[0-9]+/X/g;
- s/ +/ /g;
print;
}
diff --git a/mysql-test/suite/percona/query_cache_enhance.patch/percona_query_cache_with_comments.inc b/mysql-test/suite/percona/query_cache_enhance.patch/percona_query_cache_with_comments.inc
index bed87bd4c22..d55e52d5b64 100644
--- a/mysql-test/suite/percona/query_cache_enhance.patch/percona_query_cache_with_comments.inc
+++ b/mysql-test/suite/percona/query_cache_enhance.patch/percona_query_cache_with_comments.inc
@@ -1,95 +1,95 @@
---source include/percona_query_cache_with_comments_clear.inc
+--source percona_query_cache_with_comments_clear.inc
let $query=/* with comment first */select * from t1;
eval $query;
---source include/percona_query_cache_with_comments_eval.inc
+--source percona_query_cache_with_comments_eval.inc
let $query=# with comment first
select * from t1;
---source include/percona_query_cache_with_comments_eval.inc
+--source percona_query_cache_with_comments_eval.inc
let $query=-- with comment first
select * from t1;
---source include/percona_query_cache_with_comments_eval.inc
+--source percona_query_cache_with_comments_eval.inc
let $query=/* with comment first and "quote" */select * from t1;
---source include/percona_query_cache_with_comments_eval.inc
+--source percona_query_cache_with_comments_eval.inc
let $query=# with comment first and "quote"
select * from t1;
---source include/percona_query_cache_with_comments_eval.inc
+--source percona_query_cache_with_comments_eval.inc
let $query=-- with comment first and "quote"
select * from t1;
---source include/percona_query_cache_with_comments_eval.inc
+--source percona_query_cache_with_comments_eval.inc
let $query=
/* with comment and whitespaces first */select * from t1;
---source include/percona_query_cache_with_comments_eval.inc
+--source percona_query_cache_with_comments_eval.inc
let $query=
# with comment and whitespaces first
select * from t1;
---source include/percona_query_cache_with_comments_eval.inc
+--source percona_query_cache_with_comments_eval.inc
let $query=
-- with comment and whitespaces first
select * from t1;
---source include/percona_query_cache_with_comments_eval.inc
+--source percona_query_cache_with_comments_eval.inc
let $internal=* internal comment *;
let $query=select * /$internal/ from t1;
---source include/percona_query_cache_with_comments_eval.inc
+--source percona_query_cache_with_comments_eval.inc
let $query=select */$internal/ from t1;
---source include/percona_query_cache_with_comments_eval.inc
+--source percona_query_cache_with_comments_eval.inc
let $query=select */$internal/from t1;
---source include/percona_query_cache_with_comments_eval.inc
+--source percona_query_cache_with_comments_eval.inc
let $internal=* internal comment with "quote" *;
let $query=select * /$internal/ from t1;
---source include/percona_query_cache_with_comments_eval.inc
+--source percona_query_cache_with_comments_eval.inc
let $query=select */$internal/ from t1;
---source include/percona_query_cache_with_comments_eval.inc
+--source percona_query_cache_with_comments_eval.inc
let $query=select */$internal/from t1;
---source include/percona_query_cache_with_comments_eval.inc
+--source percona_query_cache_with_comments_eval.inc
let $query=select * from t1
;
---source include/percona_query_cache_with_comments_eval.inc
+--source percona_query_cache_with_comments_eval.inc
let $query=select * from t1 ;
---source include/percona_query_cache_with_comments_eval.inc
+--source percona_query_cache_with_comments_eval.inc
let $query=select * from t1 ;
---source include/percona_query_cache_with_comments_eval.inc
+--source percona_query_cache_with_comments_eval.inc
let $query=select * from t1
/* comment in the end */;
---source include/percona_query_cache_with_comments_eval.inc
+--source percona_query_cache_with_comments_eval.inc
let $query=select * from t1
/* *\/ */;
---source include/percona_query_cache_with_comments_eval.inc
+--source percona_query_cache_with_comments_eval.inc
let $query=select * from t1
/* comment in the end */
;
---source include/percona_query_cache_with_comments_eval.inc
+--source percona_query_cache_with_comments_eval.inc
let $query=select * from t1 #comment in the end;
---source include/percona_query_cache_with_comments_eval.inc
+--source percona_query_cache_with_comments_eval.inc
let $query=select * from t1 #comment in the end
;
---source include/percona_query_cache_with_comments_eval.inc
+--source percona_query_cache_with_comments_eval.inc
let $query=select * from t1 -- comment in the end;
---source include/percona_query_cache_with_comments_eval.inc
+--source percona_query_cache_with_comments_eval.inc
let $query=select * from t1 -- comment in the end
;
---source include/percona_query_cache_with_comments_eval.inc
+--source percona_query_cache_with_comments_eval.inc
let $query=select ' \' ' from t1;
---source include/percona_query_cache_with_comments_eval.inc
+--source percona_query_cache_with_comments_eval.inc
diff --git a/mysql-test/suite/percona/query_cache_enhance.patch/percona_query_cache_with_comments_begin.inc b/mysql-test/suite/percona/query_cache_enhance.patch/percona_query_cache_with_comments_begin.inc
index 38bfce20263..6bfd2bfbc83 100644
--- a/mysql-test/suite/percona/query_cache_enhance.patch/percona_query_cache_with_comments_begin.inc
+++ b/mysql-test/suite/percona/query_cache_enhance.patch/percona_query_cache_with_comments_begin.inc
@@ -9,4 +9,4 @@ drop table if exists t1;
create table t1 (a int not null);
insert into t1 values (1),(2),(3);
---source include/percona_query_cache_with_comments_clear.inc
+--source percona_query_cache_with_comments_clear.inc
diff --git a/mysql-test/suite/percona/query_cache_enhance.patch/percona_query_cache_with_comments_eval.inc b/mysql-test/suite/percona/query_cache_enhance.patch/percona_query_cache_with_comments_eval.inc
index a409786d554..f0c200245e0 100644
--- a/mysql-test/suite/percona/query_cache_enhance.patch/percona_query_cache_with_comments_eval.inc
+++ b/mysql-test/suite/percona/query_cache_enhance.patch/percona_query_cache_with_comments_eval.inc
@@ -1,7 +1,7 @@
echo -----------------------------------------------------;
echo $query;
echo -----------------------------------------------------;
---source include/percona_query_cache_with_comments_show.inc
+--source percona_query_cache_with_comments_show.inc
eval $query;
eval $query;
---source include/percona_query_cache_with_comments_show.inc
+--source percona_query_cache_with_comments_show.inc
diff --git a/mysql-test/suite/percona/query_cache_enhance.patch/percona_status_wait_query_cache_mutex.result b/mysql-test/suite/percona/query_cache_enhance.patch/percona_status_wait_query_cache_mutex.result
index 348dcef4d30..678ed685a5b 100644
--- a/mysql-test/suite/percona/query_cache_enhance.patch/percona_status_wait_query_cache_mutex.result
+++ b/mysql-test/suite/percona/query_cache_enhance.patch/percona_status_wait_query_cache_mutex.result
@@ -1,4 +1,4 @@
-set GLOBAL query_cache_size=1355776;
+SET GLOBAL query_cache_size=1355776;
flush query cache;
flush query cache;
reset query cache;
@@ -8,20 +8,16 @@ CREATE TABLE t(id INT, number INT);
INSERT INTO t VALUES (0,1);
INSERT INTO t VALUES (1,2);
INSERT INTO t VALUES (2,3);
+SET SESSION debug="+d,status_waiting_on_query_cache_mutex_sleep";
+SET DEBUG_SYNC='status_waiting_on_query_cache_mutex SIGNAL thread_ready';
SELECT number from t where id > 0;
-number
-2
-3
-SET SESSION debug="+d,status_wait_query_cache_mutex_sleep";
-SELECT number from t where id > 0;
-SET SESSION debug="+d,status_wait_query_cache_mutex_sleep";
-SELECT number from t where id > 0;
-SET SESSION debug="+d,status_wait_query_cache_mutex_sleep";
SHOW PROCESSLIST;
-Id User Host db Command Time State Info
-Id root localhost test Sleep Time NULL
-Id root localhost test Query Time Waiting on query cache mutex SELECT number from t where id > 0
-Id root localhost test Query Time Waiting on query cache mutex SELECT number from t where id > 0
-Id root localhost test Query Time NULL SHOW PROCESSLIST
+Id User Host db Command Time State Info Rows_sent Rows_examined Rows_read
+### root ### test Query ### NULL SHOW PROCESSLIST ### ### ###
+### root ### test Query ### Waiting on query cache mutex SELECT number from t where id > 0 ### ### ###
+SELECT id, info, state FROM INFORMATION_SCHEMA.PROCESSLIST ORDER BY id;
+id info state
+### SELECT id, info, state FROM INFORMATION_SCHEMA.PROCESSLIST ORDER BY id executing
+### SELECT number from t where id > 0 Waiting on query cache mutex
DROP TABLE t;
-set GLOBAL query_cache_size=0;
+SET GLOBAL query_cache_size=0;
diff --git a/mysql-test/suite/percona/query_cache_enhance.patch/percona_status_wait_query_cache_mutex.test b/mysql-test/suite/percona/query_cache_enhance.patch/percona_status_wait_query_cache_mutex.test
index 3bbfe0edca9..1e586ca4e7a 100644
--- a/mysql-test/suite/percona/query_cache_enhance.patch/percona_status_wait_query_cache_mutex.test
+++ b/mysql-test/suite/percona/query_cache_enhance.patch/percona_status_wait_query_cache_mutex.test
@@ -1,6 +1,7 @@
--source include/have_query_cache.inc
--source include/have_debug.inc
-set GLOBAL query_cache_size=1355776;
+--source include/have_debug_sync.inc
+SET GLOBAL query_cache_size=1355776;
--source include/percona_query_cache_with_comments_clear.inc
-- disable_warnings
@@ -10,28 +11,21 @@ CREATE TABLE t(id INT, number INT);
INSERT INTO t VALUES (0,1);
INSERT INTO t VALUES (1,2);
INSERT INTO t VALUES (2,3);
-SELECT number from t where id > 0;
---connect (conn0,localhost,root,,)
---connect (conn1,localhost,root,,)
---connect (conn2,localhost,root,,)
---connection conn0
---error 0, ER_UNKNOWN_SYSTEM_VARIABLE
-SET SESSION debug="+d,status_wait_query_cache_mutex_sleep";
-SEND SELECT number from t where id > 0;
-SLEEP 1.0;
+--connect (conn,localhost,root,,)
---connection conn1
---error 0, ER_UNKNOWN_SYSTEM_VARIABLE
-SET SESSION debug="+d,status_wait_query_cache_mutex_sleep";
+--connection conn
+SET SESSION debug="+d,status_waiting_on_query_cache_mutex_sleep";
+SET DEBUG_SYNC='status_waiting_on_query_cache_mutex SIGNAL thread_ready';
SEND SELECT number from t where id > 0;
-SLEEP 1.0;
---connection conn2
---error 0, ER_UNKNOWN_SYSTEM_VARIABLE
-SET SESSION debug="+d,status_wait_query_cache_mutex_sleep";
---replace_column 1 Id 6 Time
+--connection default
+--replace_column 1 ### 3 ### 6 ### 9 ### 10 ### 11 ###
SHOW PROCESSLIST;
+--replace_column 1 ###
+SELECT id, info, state FROM INFORMATION_SCHEMA.PROCESSLIST ORDER BY id;
+
+--disconnect conn
DROP TABLE t;
-set GLOBAL query_cache_size=0;
+SET GLOBAL query_cache_size=0;
diff --git a/mysql-test/suite/percona/query_response_time-replication.inc b/mysql-test/suite/percona/query_response_time-replication.inc
new file mode 100644
index 00000000000..9bd811a9a1b
--- /dev/null
+++ b/mysql-test/suite/percona/query_response_time-replication.inc
@@ -0,0 +1,57 @@
+connection master;
+
+CREATE TABLE t(id INT);
+
+connection slave;
+SET GLOBAL query_exec_time = 0.1;
+--source include/restart_slave_sql.inc
+
+connection slave;
+
+SET SESSION query_exec_time=0.1;
+
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+--eval SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=$base
+FLUSH QUERY_RESPONSE_TIME;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
+
+connection master;
+
+SET SESSION query_exec_time = 0.31; INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.32; INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.33; INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.34; INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.35; INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.36; INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.37; INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.38; INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.39; INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.4; INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.1; INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.2; INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.3; INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.5; INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 1.4; INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 0.5; INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 2.1; INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 2.3; INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 2.5; INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 3.1; INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 4.1; INSERT INTO t VALUES(1);
+SET SESSION query_exec_time = 5.1; INSERT INTO t VALUES(1);
+
+sync_slave_with_master;
+
+connection slave;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
+SHOW QUERY_RESPONSE_TIME;
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+
+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=default;
+
+connection master;
+DROP TABLE t;
+
+sync_slave_with_master;
diff --git a/mysql-test/suite/percona/query_response_time-stored.inc b/mysql-test/suite/percona/query_response_time-stored.inc
new file mode 100644
index 00000000000..a1fc8912aab
--- /dev/null
+++ b/mysql-test/suite/percona/query_response_time-stored.inc
@@ -0,0 +1,37 @@
+SET SESSION query_exec_time=0.1;
+
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+EVAL SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=$base;
+FLUSH QUERY_RESPONSE_TIME;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
+
+CALL test_f(0.31);
+CALL test_f(0.32);
+CALL test_f(0.33);
+CALL test_f(0.34);
+CALL test_f(0.35);
+CALL test_f(0.36);
+CALL test_f(0.37);
+CALL test_f(0.38);
+CALL test_f(0.39);
+CALL test_f(0.4);
+CALL test_f(1.1);
+CALL test_f(1.2);
+CALL test_f(1.3);
+CALL test_f(1.5);
+CALL test_f(1.4);
+CALL test_f(0.5);
+CALL test_f(2.1);
+CALL test_f(2.3);
+CALL test_f(2.5);
+CALL test_f(3.1);
+CALL test_f(4.1);
+CALL test_f(5.1);
+
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+
+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
+SHOW QUERY_RESPONSE_TIME;
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+
+SET SESSION query_exec_time=default;
diff --git a/mysql-test/suite/percona/query_response_time.inc b/mysql-test/suite/percona/query_response_time.inc
new file mode 100644
index 00000000000..734d3f5a262
--- /dev/null
+++ b/mysql-test/suite/percona/query_response_time.inc
@@ -0,0 +1,43 @@
+SET SESSION query_exec_time=0.1;
+
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+EVAL SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=$base;
+FLUSH QUERY_RESPONSE_TIME;
+# Following two queries check works of FLUSH and
+# respecting of "QUERY_RESPONSE_TIME_STATS" variable (see launchpad bug #855312)
+SHOW QUERY_RESPONSE_TIME;
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
+
+SET SESSION query_exec_time=0.31; SELECT 1;
+SET SESSION query_exec_time=0.32; SELECT 1;
+SET SESSION query_exec_time=0.33; SELECT 1;
+SET SESSION query_exec_time=0.34; SELECT 1;
+SET SESSION query_exec_time=0.35; SELECT 1;
+SET SESSION query_exec_time=0.36; SELECT 1;
+SET SESSION query_exec_time=0.37; SELECT 1;
+SET SESSION query_exec_time=0.38; SELECT 1;
+SET SESSION query_exec_time=0.39; SELECT 1;
+SET SESSION query_exec_time=0.4; SELECT 1;
+SET SESSION query_exec_time=1.1; SELECT 1;
+SET SESSION query_exec_time=1.2; SELECT 1;
+SET SESSION query_exec_time=1.3; SELECT 1;
+SET SESSION query_exec_time=1.5; SELECT 1;
+SET SESSION query_exec_time=1.4; SELECT 1;
+SET SESSION query_exec_time=0.5; SELECT 1;
+SET SESSION query_exec_time=2.1; SELECT 1;
+SET SESSION query_exec_time=2.3; SELECT 1;
+SET SESSION query_exec_time=2.5; SELECT 1;
+SET SESSION query_exec_time=3.1; SELECT 1;
+SET SESSION query_exec_time=4.1; SELECT 1;
+SET SESSION query_exec_time=5.1; SELECT 1;
+
+SET SESSION query_exec_time=0.1;
+
+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
+
+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
+SHOW QUERY_RESPONSE_TIME;
+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+
+SET SESSION query_exec_time=default;
diff --git a/mysql-test/suite/percona/show_slave_status_nolock.patch/percona_show_slave_status_nolock.result b/mysql-test/suite/percona/show_slave_status_nolock.patch/percona_show_slave_status_nolock.result
index 15cefd67c1e..b98e4a93953 100644
--- a/mysql-test/suite/percona/show_slave_status_nolock.patch/percona_show_slave_status_nolock.result
+++ b/mysql-test/suite/percona/show_slave_status_nolock.patch/percona_show_slave_status_nolock.result
@@ -1,21 +1,69 @@
include/master-slave.inc
[connection master]
+call mtr.add_suppression("Slave SQL: Request to stop slave SQL Thread received while applying a group that has non-transactional changes");
+include/rpl_connect.inc [creating slave_lock]
+include/rpl_connect.inc [creating slave_nolock]
+[master]
DROP TABLE IF EXISTS t;
CREATE TABLE t(id INT);
-INSERT INTO t SELECT SLEEP(10);
+[slave]
+SET DEBUG_SYNC='RESET';
+SET GLOBAL DEBUG="+d,after_mysql_insert,after_show_slave_status";
+[master]
+INSERT INTO t VALUES(0);
+[slave]
+check 'SHOW SLAVE STATUS' and 'SHOW SLAVE STATUS NOLOCK' - both should work fine
+
+[slave_lock]
+SHOW SLAVE STATUS;
+SET DEBUG_SYNC='now WAIT_FOR signal.after_show_slave_status TIMEOUT 1';
+SIGNAL after SHOW SLAVE STATUS is 'signal.after_show_slave_status'
+[slave]
+SET DEBUG_SYNC='now SIGNAL signal.empty';
+[slave_nolock]
+SHOW SLAVE STATUS NOLOCK;
+SET DEBUG_SYNC='now WAIT_FOR signal.after_show_slave_status TIMEOUT 1';
+# should be 'signal.after_show_slave_status'
+SIGNAL after SHOW SLAVE STATUS NOLOCK is 'signal.after_show_slave_status'
+[slave]
+SET DEBUG_SYNC='now SIGNAL signal.continue';
+[slave]
+SET DEBUG_SYNC='now SIGNAL signal.empty';
+
+[master]
+INSERT INTO t VALUES(1);
+[slave]
+include/rpl_connect.inc [creating slave_stop]
+[slave_stop]
STOP SLAVE;
-Warnings:
-Note 1592 Statement may not be safe to log in statement format.
-master count(*)
-master 1
-slave count(*)
-slave 0
+[slave]
+check 'SHOW SLAVE STATUS' and 'SHOW SLAVE STATUS NOLOCK' - just NOLOCK version should works fine
+
+[slave_lock]
+SHOW SLAVE STATUS;
+SET DEBUG_SYNC='now WAIT_FOR signal.after_show_slave_status TIMEOUT 1';
+SIGNAL after SHOW SLAVE STATUS is 'signal.empty'
+[slave]
+SET DEBUG_SYNC='now SIGNAL signal.empty';
+[slave_nolock]
SHOW SLAVE STATUS NOLOCK;
+SET DEBUG_SYNC='now WAIT_FOR signal.after_show_slave_status TIMEOUT 1';
+# should be 'signal.after_show_slave_status'
+SIGNAL after SHOW SLAVE STATUS NOLOCK is 'signal.after_show_slave_status'
+[slave]
+SET DEBUG_SYNC='now SIGNAL signal.continue';
+[slave]
+SET DEBUG_SYNC='now SIGNAL signal.empty';
+
+[slave_stop]
include/wait_for_slave_to_stop.inc
START SLAVE;
include/wait_for_slave_to_start.inc
-slave count(*)
-slave 1
+[master]
+SET DEBUG_SYNC='RESET';
+[slave]
+SET GLOBAL DEBUG='';
+SET DEBUG_SYNC='RESET';
+[master]
DROP TABLE t;
-STOP SLAVE;
-include/wait_for_slave_to_stop.inc
+include/rpl_end.inc
diff --git a/mysql-test/suite/percona/show_slave_status_nolock.patch/percona_show_slave_status_nolock.test b/mysql-test/suite/percona/show_slave_status_nolock.patch/percona_show_slave_status_nolock.test
index d8ae98262ea..df595214ff7 100644
--- a/mysql-test/suite/percona/show_slave_status_nolock.patch/percona_show_slave_status_nolock.test
+++ b/mysql-test/suite/percona/show_slave_status_nolock.patch/percona_show_slave_status_nolock.test
@@ -1,50 +1,90 @@
--source include/master-slave.inc
+--source include/have_debug_sync.inc
--source include/have_binlog_format_statement.inc
+call mtr.add_suppression("Slave SQL: Request to stop slave SQL Thread received while applying a group that has non-transactional changes");
+
+--let $rpl_connection_name=slave_lock
+--let $rpl_server_number=2
+--source include/rpl_connect.inc
+
+--let $rpl_connection_name=slave_nolock
+--let $rpl_server_number=2
+--source include/rpl_connect.inc
+
+--let $show_statement= SHOW PROCESSLIST
+--let $field= Info
+
connection master;
- --disable_warnings
- DROP TABLE IF EXISTS t;
- --enable_warnings
- CREATE TABLE t(id INT);
- sync_slave_with_master;
+--echo [master]
+--disable_warnings
+DROP TABLE IF EXISTS t;
+--enable_warnings
+CREATE TABLE t(id INT);
+sync_slave_with_master;
+
+connection slave;
+--echo [slave]
+SET DEBUG_SYNC='RESET';
+SET GLOBAL DEBUG="+d,after_mysql_insert,after_show_slave_status";
connection master;
- send INSERT INTO t SELECT SLEEP(10);
+--echo [master]
+INSERT INTO t VALUES(0);
connection slave;
- sleep 15;
- send STOP SLAVE;
+--echo [slave]
+--let $condition= 'INSERT INTO t VALUES(0)'
+--source include/wait_show_condition.inc
+
+--echo check 'SHOW SLAVE STATUS' and 'SHOW SLAVE STATUS NOLOCK' - both should work fine
+--source include/percona_show_slave_status_nolock.inc
connection master;
- reap;
+--echo [master]
+INSERT INTO t VALUES(1);
- --disable_query_log
- select "master",count(*) from t;
- --enable_query_log
+connection slave;
+--echo [slave]
+--let $condition= 'INSERT INTO t VALUES(1)'
+--source include/wait_show_condition.inc
-connection slave1;
- --disable_query_log
- select "slave",count(*) from t;
- --enable_query_log
+--let $rpl_connection_name=slave_stop
+--let $rpl_server_number=2
+--source include/rpl_connect.inc
- --disable_result_log
- SHOW SLAVE STATUS NOLOCK;
- --enable_result_log
+connection slave_stop;
+--echo [slave_stop]
+send STOP SLAVE;
connection slave;
- reap;
+--echo [slave]
+--let $condition= 'STOP SLAVE'
+--source include/wait_show_condition.inc
+
+--echo check 'SHOW SLAVE STATUS' and 'SHOW SLAVE STATUS NOLOCK' - just NOLOCK version should works fine
+--source include/percona_show_slave_status_nolock.inc
+
+
+connection slave_stop;
+--echo [slave_stop]
+reap;
+--source include/wait_for_slave_to_stop.inc
+START SLAVE;
+--source include/wait_for_slave_to_start.inc
- --source include/wait_for_slave_to_stop.inc
- START SLAVE;
- --source include/wait_for_slave_to_start.inc
+connection master;
+--echo [master]
+SET DEBUG_SYNC='RESET';
- --disable_query_log
- select "slave",count(*) from t;
- --enable_query_log
+connection slave;
+--echo [slave]
+SET GLOBAL DEBUG='';
+SET DEBUG_SYNC='RESET';
connection master;
- DROP TABLE t;
+--echo [master]
+DROP TABLE t;
sync_slave_with_master;
-STOP SLAVE;
---source include/wait_for_slave_to_stop.inc
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-log_slow_filter-master.opt b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-log_slow_filter-master.opt
index 660c51a0b7c..865dc70ba38 100644
--- a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-log_slow_filter-master.opt
+++ b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-log_slow_filter-master.opt
@@ -1 +1 @@
---slow-query-log-file=percona_slow_query_log-log_slow_filter.log --long-query-time=1
+--slow-query-log-file=percona_slow_query_log-log_slow_filter.log --long-query-time=1 --slow_query_log=OFF
diff --git a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-log_slow_filter.result b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-log_slow_filter.result
index 19643db3819..2f22ef5457b 100644
--- a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-log_slow_filter.result
+++ b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-log_slow_filter.result
@@ -1,4 +1,3 @@
-SET GLOBAL SLOW_QUERY_LOG=OFF;
drop table if exists t;
# Create test table
create table t(id INT PRIMARY KEY) engine=InnoDB;
@@ -20,6 +19,7 @@ sleep(2)
SELECT sleep(2);
sleep(2)
0
+SET GLOBAL SLOW_QUERY_LOG=OFF;
drop table if exists t;
FLUSH LOGS;
2
diff --git a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-log_slow_filter.test b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-log_slow_filter.test
index c9efa2d8a48..292c1651e34 100644
--- a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-log_slow_filter.test
+++ b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-log_slow_filter.test
@@ -1,6 +1,4 @@
-source include/have_innodb.inc;
-
-SET GLOBAL SLOW_QUERY_LOG=OFF;
+source include/have_xtradb.inc;
--disable_warnings
drop table if exists t;
@@ -22,6 +20,8 @@ set log_slow_filter=full_join;
SELECT sleep(2) union select t2.id from t as t1,t as t2;
SELECT sleep(2);
+SET GLOBAL SLOW_QUERY_LOG=OFF;
+
--disable_warnings
drop table if exists t;
--enable_warnings
@@ -29,4 +29,4 @@ drop table if exists t;
FLUSH LOGS;
--let grep_file = $MYSQLTEST_VARDIR/mysqld.1/data/percona_slow_query_log-log_slow_filter.log
--let grep_pattern = Query_time
---source include/grep.inc
+--source grep.inc
diff --git a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-log_slow_verbosity.test b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-log_slow_verbosity.test
index 4fb854d6de6..e95ab54af61 100644
--- a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-log_slow_verbosity.test
+++ b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-log_slow_verbosity.test
@@ -1,4 +1,4 @@
-source include/have_innodb.inc;
+source include/have_xtradb.inc;
SELECT sleep(2);
@@ -9,4 +9,4 @@ SELECT sleep(2);
FLUSH LOGS;
--let grep_file = $MYSQLTEST_VARDIR/mysqld.1/data/percona_slow_query_log-log_slow_verbosity.log
--let grep_pattern = No InnoDB statistics available for this query
---source include/grep.inc
+--source grep.inc
diff --git a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-long_query_time-master.opt b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-long_query_time-master.opt
index 8064e04b846..62e1e981558 100644
--- a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-long_query_time-master.opt
+++ b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-long_query_time-master.opt
@@ -1 +1 @@
---slow-query-log-file=percona_slow_query_log-long_query_time.log --long-query-time=2
+--slow-query-log-file=percona_slow_query_log-long_query_time.log --long-query-time=2 --slow-query-log=OFF
diff --git a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-long_query_time.result b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-long_query_time.result
index 0b72a23dd1b..f2da4e4d9d6 100644
--- a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-long_query_time.result
+++ b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-long_query_time.result
@@ -1,3 +1,4 @@
+SET GLOBAL SLOW_QUERY_LOG=ON;
SELECT sleep(1);
sleep(1)
0
@@ -18,5 +19,6 @@ SELECT sleep(5);
sleep(5)
0
set long_query_time=2;
+SET GLOBAL SLOW_QUERY_LOG=OFF;
FLUSH LOGS;
3
diff --git a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-long_query_time.test b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-long_query_time.test
index 1d4babd6402..716cc7cb0c3 100644
--- a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-long_query_time.test
+++ b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-long_query_time.test
@@ -1,4 +1,6 @@
-source include/have_innodb.inc;
+source include/have_xtradb.inc;
+
+SET GLOBAL SLOW_QUERY_LOG=ON;
SELECT sleep(1);
SELECT sleep(3);
@@ -12,8 +14,10 @@ SELECT sleep(5);
set long_query_time=2;
+SET GLOBAL SLOW_QUERY_LOG=OFF;
+
FLUSH LOGS;
--let grep_file = $MYSQLTEST_VARDIR/mysqld.1/data/percona_slow_query_log-long_query_time.log
--let grep_pattern = Query_time
---source include/grep.inc
+--source grep.inc
diff --git a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-microseconds_in_slow_extended-master.opt b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-microseconds_in_slow_extended-master.opt
index 37a30b1384f..ca486d356f5 100644
--- a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-microseconds_in_slow_extended-master.opt
+++ b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-microseconds_in_slow_extended-master.opt
@@ -1 +1 @@
---slow-query-log-file=percona_slow_query_log-microseconds_in_slow_query_log.log --long-query-time=1
+--slow-query-log-file=percona_slow_query_log-microseconds_in_slow_query_log.log --long-query-time=1 --slow_query_log=OFF
diff --git a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-microseconds_in_slow_extended.result b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-microseconds_in_slow_extended.result
index 7eb925618b7..ce27c518efe 100644
--- a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-microseconds_in_slow_extended.result
+++ b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-microseconds_in_slow_extended.result
@@ -1,11 +1,13 @@
+SET GLOBAL SLOW_QUERY_LOG=ON;
SELECT sleep(2);
sleep(2)
0
-set global slow_query_log_microseconds_timestamp=ON;
+set global slow_query_log_timestamp_precision='microsecond';
SELECT sleep(2);
sleep(2)
0
-set global slow_query_log_microseconds_timestamp=OFF;
+set global slow_query_log_timestamp_precision='second';
+SET GLOBAL SLOW_QUERY_LOG=OFF;
FLUSH LOGS;
1
2
diff --git a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-microseconds_in_slow_extended.test b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-microseconds_in_slow_extended.test
index 80fa6834150..4b437b21e4c 100644
--- a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-microseconds_in_slow_extended.test
+++ b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-microseconds_in_slow_extended.test
@@ -1,19 +1,23 @@
-source include/have_innodb.inc;
+source include/have_xtradb.inc;
+
+SET GLOBAL SLOW_QUERY_LOG=ON;
SELECT sleep(2);
-set global slow_query_log_microseconds_timestamp=ON;
+set global slow_query_log_timestamp_precision='microsecond';
SELECT sleep(2);
-set global slow_query_log_microseconds_timestamp=OFF;
+set global slow_query_log_timestamp_precision='second';
+
+SET GLOBAL SLOW_QUERY_LOG=OFF;
FLUSH LOGS;
--let grep_file = $MYSQLTEST_VARDIR/mysqld.1/data/percona_slow_query_log-microseconds_in_slow_query_log.log
--let grep_pattern = # Time: [0-9]+[ ]+[0-9]+:[0-9]+:[0-9]+.[0-9]+
---source include/grep.inc
+--source grep.inc
--let grep_file = $MYSQLTEST_VARDIR/mysqld.1/data/percona_slow_query_log-microseconds_in_slow_query_log.log
--let grep_pattern = # Time: [0-9]+[ ]+[0-9]+:[0-9]+:[0-9]+
---source include/grep.inc
+--source grep.inc
diff --git a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-min_examined_row_limit-master.opt b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-min_examined_row_limit-master.opt
index d3f4e7eeb03..c1cf3ebdb30 100644
--- a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-min_examined_row_limit-master.opt
+++ b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-min_examined_row_limit-master.opt
@@ -1 +1 @@
---slow-query-log-file=percona_slow_query_log-min_examined_row_limit.log --long-query-time=1
+--slow-query-log-file=percona_slow_query_log-min_examined_row_limit.log --long-query-time=1 --slow-query-log=OFF
diff --git a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-min_examined_row_limit.result b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-min_examined_row_limit.result
index 5c299bd3e5c..1e8bc0723ac 100644
--- a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-min_examined_row_limit.result
+++ b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-min_examined_row_limit.result
@@ -1,4 +1,3 @@
-SET GLOBAL SLOW_QUERY_LOG=OFF;
drop table if exists t;
# Create test table
create table t(id INT PRIMARY KEY) engine=InnoDB;
@@ -20,6 +19,7 @@ sleep(2)
SELECT sleep(2);
sleep(2)
0
+SET GLOBAL SLOW_QUERY_LOG=OFF;
drop table if exists t;
FLUSH LOGS;
2
diff --git a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-min_examined_row_limit.test b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-min_examined_row_limit.test
index 861a8f17cce..ca68658a6c5 100644
--- a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-min_examined_row_limit.test
+++ b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-min_examined_row_limit.test
@@ -1,6 +1,4 @@
-source include/have_innodb.inc;
-
-SET GLOBAL SLOW_QUERY_LOG=OFF;
+source include/have_xtradb.inc;
--disable_warnings
drop table if exists t;
@@ -22,6 +20,8 @@ set min_examined_row_limit=5;
SELECT sleep(2) union select t2.id from t as t1,t as t2;
SELECT sleep(2);
+SET GLOBAL SLOW_QUERY_LOG=OFF;
+
--disable_warnings
drop table if exists t;
--enable_warnings
@@ -29,4 +29,4 @@ drop table if exists t;
FLUSH LOGS;
--let grep_file = $MYSQLTEST_VARDIR/mysqld.1/data/percona_slow_query_log-min_examined_row_limit.log
--let grep_pattern = Query_time
---source include/grep.inc
+--source grep.inc
diff --git a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slave_innodb_stats.result b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slave_innodb_stats.result
index c2292c4d2ac..51993e767c2 100644
--- a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slave_innodb_stats.result
+++ b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slave_innodb_stats.result
@@ -18,3 +18,5 @@ INSERT INTO t SELECT t.id,t.data from t;
DROP TABLE IF EXISTS t;
FLUSH LOGS;
4
+STOP SLAVE;
+include/wait_for_slave_to_stop.inc
diff --git a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slave_innodb_stats.test b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slave_innodb_stats.test
index 27e34ec71ad..b0a6c98870c 100644
--- a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slave_innodb_stats.test
+++ b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slave_innodb_stats.test
@@ -1,5 +1,5 @@
-- source include/have_binlog_format_mixed_or_statement.inc
--- source include/have_innodb.inc
+-- source include/have_xtradb.inc
-- source include/master-slave.inc
connection master;
@@ -45,4 +45,7 @@ connection slave;
FLUSH LOGS;
--let grep_file = $MYSQLTEST_VARDIR/mysqld.2/mysqld-slow.log
--let grep_pattern = InnoDB_IO_r_ops
---source include/grep.inc
+--source grep.inc
+
+STOP SLAVE;
+-- source include/wait_for_slave_to_stop.inc
diff --git a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slave_statements-and-use_global_long_query_time.result b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slave_statements-and-use_global_long_query_time.result
index e96126e34c7..e5f4568dd58 100644
--- a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slave_statements-and-use_global_long_query_time.result
+++ b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slave_statements-and-use_global_long_query_time.result
@@ -1,14 +1,10 @@
-# Activate master-slave replication
include/master-slave.inc
[connection master]
-# Make table t for test
DROP TABLE IF EXISTS t;
CREATE TABLE t(id INT);
-# Start slave replication
START SLAVE;
include/wait_for_slave_to_start.inc
INSERT INTO t VALUES (1);
-# Read and change log_slow_slave_statements to ON on slave
show variables like 'log_slow_slave_statements';
Variable_name Value
log_slow_slave_statements OFF
@@ -17,7 +13,6 @@ show variables like 'log_slow_slave_statements';
Variable_name Value
log_slow_slave_statements ON
INSERT INTO t VALUES (2);
-# Restart slave
STOP SLAVE;
include/wait_for_slave_to_stop.inc
START SLAVE;
@@ -29,9 +24,9 @@ long_query_time 1.000000
show global variables like 'long_query_time';
Variable_name Value
long_query_time 1.000000
-show global variables like 'use_global_long_query_time';
+show global variables like 'slow_query_log_use_global_control';
Variable_name Value
-use_global_long_query_time OFF
+slow_query_log_use_global_control
set global long_query_time=0;
show variables like 'long_query_time';
Variable_name Value
@@ -39,9 +34,9 @@ long_query_time 1.000000
show global variables like 'long_query_time';
Variable_name Value
long_query_time 0.000000
-show global variables like 'use_global_long_query_time';
+show global variables like 'slow_query_log_use_global_control';
Variable_name Value
-use_global_long_query_time OFF
+slow_query_log_use_global_control
INSERT INTO t VALUES (4);
show variables like 'long_query_time';
Variable_name Value
@@ -49,19 +44,19 @@ long_query_time 1.000000
show global variables like 'long_query_time';
Variable_name Value
long_query_time 0.000000
-show global variables like 'use_global_long_query_time';
+show global variables like 'slow_query_log_use_global_control';
Variable_name Value
-use_global_long_query_time OFF
-set global use_global_long_query_time=1;
+slow_query_log_use_global_control
+set global slow_query_log_use_global_control='long_query_time';
show variables like 'long_query_time';
Variable_name Value
long_query_time 0.000000
show global variables like 'long_query_time';
Variable_name Value
long_query_time 0.000000
-show global variables like 'use_global_long_query_time';
+show global variables like 'slow_query_log_use_global_control';
Variable_name Value
-use_global_long_query_time ON
+slow_query_log_use_global_control long_query_time
INSERT INTO t VALUES (5);
show variables like 'long_query_time';
Variable_name Value
@@ -69,11 +64,11 @@ long_query_time 0.000000
show global variables like 'long_query_time';
Variable_name Value
long_query_time 0.000000
-show global variables like 'use_global_long_query_time';
+show global variables like 'slow_query_log_use_global_control';
Variable_name Value
-use_global_long_query_time ON
+slow_query_log_use_global_control long_query_time
set global long_query_time=1;
-set global use_global_long_query_time=0;
+set global slow_query_log_use_global_control='';
FLUSH LOGS;
# Analyse master slow_query_log
0
diff --git a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slave_statements-and-use_global_long_query_time.test b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slave_statements-and-use_global_long_query_time.test
index 755b83fa93b..c718b2c3d28 100644
--- a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slave_statements-and-use_global_long_query_time.test
+++ b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slave_statements-and-use_global_long_query_time.test
@@ -1,68 +1,62 @@
-- source include/have_binlog_format_mixed_or_statement.inc
--- echo # Activate master-slave replication
-- source include/master-slave.inc
connection master;
--- echo # Make table t for test
-- disable_warnings
DROP TABLE IF EXISTS t;
-- enable_warnings
CREATE TABLE t(id INT);
-
--- echo # Start slave replication
-- disable_warnings
connection slave;
START SLAVE;
-- source include/wait_for_slave_to_start.inc
-- enable_warnings
-#-- echo # Make insert(1) on master
connection master;
INSERT INTO t VALUES (1);
sync_slave_with_master;
+
connection slave;
--- echo # Read and change log_slow_slave_statements to ON on slave
show variables like 'log_slow_slave_statements';
set global log_slow_slave_statements=ON;
show variables like 'log_slow_slave_statements';
-#-- echo # Make insert(2) on master
connection master;
INSERT INTO t VALUES (2);
sync_slave_with_master;
connection slave;
--- echo # Restart slave
+
STOP SLAVE;
-- source include/wait_for_slave_to_stop.inc
START SLAVE;
-- source include/wait_for_slave_to_start.inc
-#-- echo # Make insert(3) on master
connection master;
INSERT INTO t VALUES (3);
sync_slave_with_master;
+
connection slave;
show variables like 'long_query_time';
show global variables like 'long_query_time';
-show global variables like 'use_global_long_query_time';
+show global variables like 'slow_query_log_use_global_control';
set global long_query_time=0;
show variables like 'long_query_time';
show global variables like 'long_query_time';
-show global variables like 'use_global_long_query_time';
+show global variables like 'slow_query_log_use_global_control';
-#-- echo # Make insert(4) on master
connection master;
INSERT INTO t VALUES (4);
sync_slave_with_master;
+
connection slave;
show variables like 'long_query_time';
show global variables like 'long_query_time';
-show global variables like 'use_global_long_query_time';
-set global use_global_long_query_time=1;
+show global variables like 'slow_query_log_use_global_control';
+set global slow_query_log_use_global_control='long_query_time';
show variables like 'long_query_time';
show global variables like 'long_query_time';
-show global variables like 'use_global_long_query_time';
+show global variables like 'slow_query_log_use_global_control';
#-- echo # Make insert(5) on master
connection master;
@@ -71,9 +65,9 @@ sync_slave_with_master;
connection slave;
show variables like 'long_query_time';
show global variables like 'long_query_time';
-show global variables like 'use_global_long_query_time';
+show global variables like 'slow_query_log_use_global_control';
set global long_query_time=1;
-set global use_global_long_query_time=0;
+set global slow_query_log_use_global_control='';
connection master;
FLUSH LOGS;
@@ -85,7 +79,7 @@ while($i)
{
--let grep_file = $MYSQLTEST_VARDIR/mysqld.1/data/percona_log_slow_slave_statements-master.log
--let grep_pattern = INSERT INTO t VALUES \($k\)
- --source include/grep.inc
+ --source grep.inc
dec $i;
inc $k;
}
@@ -100,7 +94,7 @@ while($i)
{
--let grep_file = $MYSQLTEST_VARDIR/mysqld.2/data/percona_log_slow_slave_statements-slave.log
--let grep_pattern = INSERT INTO t VALUES \($k\)
- --source include/grep.inc
+ --source grep.inc
dec $i;
inc $k;
}
@@ -108,9 +102,6 @@ set global log_slow_slave_statements=OFF;
connection master;
DROP TABLE t;
-
sync_slave_with_master;
-connection slave;
-
STOP SLAVE;
-- source include/wait_for_slave_to_stop.inc
diff --git a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slave_statements.result b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slave_statements.result
index 6563d6d863e..0548dc370b4 100644
--- a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slave_statements.result
+++ b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slave_statements.result
@@ -1,16 +1,10 @@
-# Activate master-slave replication
include/master-slave.inc
[connection master]
-# Make table t for test
DROP TABLE IF EXISTS t;
CREATE TABLE t(id INT);
-# Start slave replication
START SLAVE;
include/wait_for_slave_to_start.inc
INSERT INTO t VALUES (1);
-# Read information about master binlog
-# Sync(1) slave thread
-# Read and change log_slow_slave_statements to ON on slave
show variables like 'log_slow_slave_statements';
Variable_name Value
log_slow_slave_statements OFF
@@ -19,17 +13,25 @@ show variables like 'log_slow_slave_statements';
Variable_name Value
log_slow_slave_statements ON
INSERT INTO t VALUES (2);
-# Read information about master binlog
-# Sync slave(2) thread
-# Restart slave
+show variables like 'log_slow_slave_statements';
+Variable_name Value
+log_slow_slave_statements ON
+set global log_slow_slave_statements=ON;
+show variables like 'log_slow_slave_statements';
+Variable_name Value
+log_slow_slave_statements ON
STOP SLAVE;
include/wait_for_slave_to_stop.inc
START SLAVE;
include/wait_for_slave_to_start.inc
+show variables like 'log_slow_slave_statements';
+Variable_name Value
+log_slow_slave_statements ON
+set global log_slow_slave_statements=ON;
+show variables like 'log_slow_slave_statements';
+Variable_name Value
+log_slow_slave_statements ON
INSERT INTO t VALUES (3);
-# Read information about master binlog
-# Sync(3) slave thread
-# Read and change log_slow_slave_statements to OFF on slave
show variables like 'log_slow_slave_statements';
Variable_name Value
log_slow_slave_statements ON
@@ -38,17 +40,17 @@ show variables like 'log_slow_slave_statements';
Variable_name Value
log_slow_slave_statements OFF
INSERT INTO t VALUES (4);
-# Read information about master binlog
-# Sync slave(4) thread
-# Restart slave
+show variables like 'log_slow_slave_statements';
+Variable_name Value
+log_slow_slave_statements OFF
STOP SLAVE;
include/wait_for_slave_to_stop.inc
START SLAVE;
include/wait_for_slave_to_start.inc
+show variables like 'log_slow_slave_statements';
+Variable_name Value
+log_slow_slave_statements OFF
INSERT INTO t VALUES (5);
-# Read information about master binlog
-# Sync slave(5) thread
-# Read and change log_slow_slave_statements to ON on slave
show variables like 'log_slow_slave_statements';
Variable_name Value
log_slow_slave_statements OFF
@@ -57,16 +59,17 @@ show variables like 'log_slow_slave_statements';
Variable_name Value
log_slow_slave_statements ON
INSERT INTO t VALUES (6);
-# Read information about master binlog
-# Sync slave(6) thread
-# Restart slave
+show variables like 'log_slow_slave_statements';
+Variable_name Value
+log_slow_slave_statements ON
STOP SLAVE;
include/wait_for_slave_to_stop.inc
START SLAVE;
include/wait_for_slave_to_start.inc
+show variables like 'log_slow_slave_statements';
+Variable_name Value
+log_slow_slave_statements ON
INSERT INTO t VALUES (7);
-# Read information about master binlog
-# Sync slave(7) thread
FLUSH LOGS;
# Analyse master slow_query_log
1
@@ -87,7 +90,5 @@ FLUSH LOGS;
1
set global log_slow_slave_statements=OFF;
DROP TABLE t;
-# Read information about master binlog
-# Sync slave(8) thread
STOP SLAVE;
include/wait_for_slave_to_stop.inc
diff --git a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slave_statements.test b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slave_statements.test
index bdf37533933..88c74bab69b 100644
--- a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slave_statements.test
+++ b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slave_statements.test
@@ -1,126 +1,98 @@
--- source include/have_binlog_format_mixed_or_statement.inc
--- echo # Activate master-slave replication
+-- source include/have_binlog_format_statement.inc
-- source include/master-slave.inc
connection master;
--- echo # Make table t for test
-- disable_warnings
DROP TABLE IF EXISTS t;
-- enable_warnings
-CREATE TABLE t(id INT);
+CREATE TABLE t(id INT);
--- echo # Start slave replication
-- disable_warnings
connection slave;
START SLAVE;
-- source include/wait_for_slave_to_start.inc
-- enable_warnings
-#-- echo # Make insert(1) on master
connection master;
INSERT INTO t VALUES (1);
--- echo # Read information about master binlog
-let $binlog_file = query_get_value(SHOW MASTER STATUS,File,1);
-let $binlog_position = query_get_value(SHOW MASTER STATUS,Position,1);
+sync_slave_with_master;
--- echo # Sync(1) slave thread
connection slave;
-let $sync_result = `SELECT MASTER_POS_WAIT('$binlog_file',$binlog_position)`;
-
--- echo # Read and change log_slow_slave_statements to ON on slave
show variables like 'log_slow_slave_statements';
set global log_slow_slave_statements=ON;
show variables like 'log_slow_slave_statements';
-#-- echo # Make insert(2) on master
connection master;
INSERT INTO t VALUES (2);
--- echo # Read information about master binlog
-let $binlog_file = query_get_value(SHOW MASTER STATUS,File,1);
-let $binlog_position = query_get_value(SHOW MASTER STATUS,Position,1);
+sync_slave_with_master;
--- echo # Sync slave(2) thread
connection slave;
-let $sync_result = `SELECT MASTER_POS_WAIT('$binlog_file',$binlog_position)`;
--- echo # Restart slave
+show variables like 'log_slow_slave_statements';
+set global log_slow_slave_statements=ON;
+show variables like 'log_slow_slave_statements';
+
STOP SLAVE;
-- source include/wait_for_slave_to_stop.inc
START SLAVE;
-- source include/wait_for_slave_to_start.inc
-#-- echo # Make insert(3) on master
+connection slave;
+show variables like 'log_slow_slave_statements';
+set global log_slow_slave_statements=ON;
+show variables like 'log_slow_slave_statements';
+
connection master;
INSERT INTO t VALUES (3);
--- echo # Read information about master binlog
-let $binlog_file = query_get_value(SHOW MASTER STATUS,File,1);
-let $binlog_position = query_get_value(SHOW MASTER STATUS,Position,1);
+sync_slave_with_master;
--- echo # Sync(3) slave thread
connection slave;
-let $sync_result = `SELECT MASTER_POS_WAIT('$binlog_file',$binlog_position)`;
--- echo # Read and change log_slow_slave_statements to OFF on slave
show variables like 'log_slow_slave_statements';
set global log_slow_slave_statements=OFF;
show variables like 'log_slow_slave_statements';
-#-- echo # Make insert(4) on master
connection master;
INSERT INTO t VALUES (4);
--- echo # Read information about master binlog
-let $binlog_file = query_get_value(SHOW MASTER STATUS,File,1);
-let $binlog_position = query_get_value(SHOW MASTER STATUS,Position,1);
+sync_slave_with_master;
--- echo # Sync slave(4) thread
connection slave;
-let $sync_result = `SELECT MASTER_POS_WAIT('$binlog_file',$binlog_position)`;
--- echo # Restart slave
+show variables like 'log_slow_slave_statements';
+
STOP SLAVE;
-- source include/wait_for_slave_to_stop.inc
START SLAVE;
-- source include/wait_for_slave_to_start.inc
-#-- echo # Make insert(5) on master
+connection slave;
+show variables like 'log_slow_slave_statements';
+
connection master;
INSERT INTO t VALUES (5);
--- echo # Read information about master binlog
-let $binlog_file = query_get_value(SHOW MASTER STATUS,File,1);
-let $binlog_position = query_get_value(SHOW MASTER STATUS,Position,1);
+sync_slave_with_master;
--- echo # Sync slave(5) thread
connection slave;
-let $sync_result = `SELECT MASTER_POS_WAIT('$binlog_file',$binlog_position)`;
--- echo # Read and change log_slow_slave_statements to ON on slave
show variables like 'log_slow_slave_statements';
set global log_slow_slave_statements=ON;
show variables like 'log_slow_slave_statements';
-#-- echo # Make insert(6) on master
connection master;
INSERT INTO t VALUES (6);
--- echo # Read information about master binlog
-let $binlog_file = query_get_value(SHOW MASTER STATUS,File,1);
-let $binlog_position = query_get_value(SHOW MASTER STATUS,Position,1);
+sync_slave_with_master;
--- echo # Sync slave(6) thread
connection slave;
-let $sync_result = `SELECT MASTER_POS_WAIT('$binlog_file',$binlog_position)`;
--- echo # Restart slave
+show variables like 'log_slow_slave_statements';
+
STOP SLAVE;
-- source include/wait_for_slave_to_stop.inc
START SLAVE;
-- source include/wait_for_slave_to_start.inc
-#-- echo # Make insert(7) on master
+connection slave;
+show variables like 'log_slow_slave_statements';
+
connection master;
INSERT INTO t VALUES (7);
--- echo # Read information about master binlog
-let $binlog_file = query_get_value(SHOW MASTER STATUS,File,1);
-let $binlog_position = query_get_value(SHOW MASTER STATUS,Position,1);
-
--- echo # Sync slave(7) thread
-connection slave;
-let $sync_result = `SELECT MASTER_POS_WAIT('$binlog_file',$binlog_position)`;
+sync_slave_with_master;
connection master;
FLUSH LOGS;
@@ -132,7 +104,7 @@ while($i)
{
--let grep_file = $MYSQLTEST_VARDIR/mysqld.1/data/percona_log_slow_slave_statements-master.log
--let grep_pattern = INSERT INTO t VALUES \($k\)
- --source include/grep.inc
+ --source grep.inc
dec $i;
inc $k;
}
@@ -147,7 +119,7 @@ while($i)
{
--let grep_file = $MYSQLTEST_VARDIR/mysqld.2/data/percona_log_slow_slave_statements-slave.log
--let grep_pattern = INSERT INTO t VALUES \($k\)
- --source include/grep.inc
+ --source grep.inc
dec $i;
inc $k;
}
@@ -155,14 +127,7 @@ set global log_slow_slave_statements=OFF;
connection master;
DROP TABLE t;
-
--- echo # Read information about master binlog
-let $binlog_file = query_get_value(SHOW MASTER STATUS,File,1);
-let $binlog_position = query_get_value(SHOW MASTER STATUS,Position,1);
-
--- echo # Sync slave(8) thread
-connection slave;
-let $sync_result = `SELECT MASTER_POS_WAIT('$binlog_file',$binlog_position)`;
+sync_slave_with_master;
STOP SLAVE;
-- source include/wait_for_slave_to_stop.inc
diff --git a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slow_query_log_microseconds_timestamp-cl-master.opt b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slow_query_log_microseconds_timestamp-cl-master.opt
index 597ad08f268..c3ebcd95326 100644
--- a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slow_query_log_microseconds_timestamp-cl-master.opt
+++ b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slow_query_log_microseconds_timestamp-cl-master.opt
@@ -1 +1 @@
---slow_query_log_microseconds_timestamp
+--slow_query_log_timestamp_precision='microsecond'
diff --git a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slow_query_log_microseconds_timestamp-cl.result b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slow_query_log_microseconds_timestamp-cl.result
index 4f3357f95bb..5355922bb45 100644
--- a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slow_query_log_microseconds_timestamp-cl.result
+++ b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slow_query_log_microseconds_timestamp-cl.result
@@ -1,3 +1,3 @@
-show global variables like 'slow_query_log_microseconds_timestamp';
+show global variables like 'slow_query_log_timestamp_precision';
Variable_name Value
-slow_query_log_microseconds_timestamp ON
+slow_query_log_timestamp_precision microsecond
diff --git a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slow_query_log_microseconds_timestamp-cl.test b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slow_query_log_microseconds_timestamp-cl.test
index d568f4eb816..8f6291e9897 100644
--- a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slow_query_log_microseconds_timestamp-cl.test
+++ b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-slow_query_log_microseconds_timestamp-cl.test
@@ -1 +1 @@
-show global variables like 'slow_query_log_microseconds_timestamp';
+show global variables like 'slow_query_log_timestamp_precision';
diff --git a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-use_global_long_query_time-master.opt b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-use_global_long_query_time-master.opt
index 5e6a2405b02..16b6ca5b714 100644
--- a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-use_global_long_query_time-master.opt
+++ b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-use_global_long_query_time-master.opt
@@ -1 +1 @@
---slow-query-log-file=percona_slow_query_log-use_global_long_query_time.log --long-query-time=2 --use_global_log_slow_control=long_query_time --use_global_long_query_time=1
+--slow-query-log-file=percona_slow_query_log-use_global_long_query_time.log --long-query-time=2 --slow_query_log_use_global_control=long_query_time --slow-query-log=OFF
diff --git a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-use_global_long_query_time.result b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-use_global_long_query_time.result
index c0333e4b59b..e89edf0430f 100644
--- a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-use_global_long_query_time.result
+++ b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-use_global_long_query_time.result
@@ -1,3 +1,4 @@
+SET GLOBAL SLOW_QUERY_LOG=ON;
SELECT sleep(1);
sleep(1)
0
@@ -8,7 +9,7 @@ SELECT sleep(5);
sleep(5)
0
set global long_query_time=4;
-set global use_global_long_query_time=1;
+set global slow_query_log_use_global_control='long_query_time';
SELECT sleep(1);
sleep(1)
0
@@ -19,41 +20,27 @@ SELECT sleep(5);
sleep(5)
0
set global long_query_time=2;
-set global use_global_long_query_time=0;
+set global slow_query_log_use_global_control='';
+SET GLOBAL SLOW_QUERY_LOG=OFF;
FLUSH LOGS;
3
-show global variables like 'use_global_log_slow_control';
+show global variables like 'slow_query_log_use_global_control';
Variable_name Value
-use_global_log_slow_control none
-show global variables like 'use_global_long_query_time';
+slow_query_log_use_global_control
+set global slow_query_log_use_global_control='long_query_time';
+show global variables like 'slow_query_log_use_global_control';
Variable_name Value
-use_global_long_query_time OFF
-set global use_global_log_slow_control = long_query_time;
-show global variables like 'use_global_log_slow_control';
+slow_query_log_use_global_control long_query_time
+set global slow_query_log_use_global_control='log_slow_filter,long_query_time';
+show global variables like 'slow_query_log_use_global_control';
Variable_name Value
-use_global_log_slow_control long_query_time
-show global variables like 'use_global_long_query_time';
+slow_query_log_use_global_control log_slow_filter,long_query_time
+set global slow_query_log_use_global_control='log_slow_filter';
+show global variables like 'slow_query_log_use_global_control';
Variable_name Value
-use_global_long_query_time ON
-set global use_global_log_slow_control = log_slow_filter;
-show global variables like 'use_global_log_slow_control';
+slow_query_log_use_global_control log_slow_filter
+set global slow_query_log_use_global_control='';
+show global variables like 'slow_query_log_use_global_control';
Variable_name Value
-use_global_log_slow_control log_slow_filter
-show global variables like 'use_global_long_query_time';
-Variable_name Value
-use_global_long_query_time OFF
-set global use_global_long_query_time = ON;
-show global variables like 'use_global_log_slow_control';
-Variable_name Value
-use_global_log_slow_control log_slow_filter,long_query_time
-show global variables like 'use_global_long_query_time';
-Variable_name Value
-use_global_long_query_time ON
-set global use_global_long_query_time = OFF;
-show global variables like 'use_global_log_slow_control';
-Variable_name Value
-use_global_log_slow_control log_slow_filter
-show global variables like 'use_global_long_query_time';
-Variable_name Value
-use_global_long_query_time OFF
-set global use_global_log_slow_control = long_query_time;
+slow_query_log_use_global_control
+set global slow_query_log_use_global_control='long_query_time';
diff --git a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-use_global_long_query_time.test b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-use_global_long_query_time.test
index a3d74036bfe..61b2dabd23d 100644
--- a/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-use_global_long_query_time.test
+++ b/mysql-test/suite/percona/slow_extended.patch/percona_slow_extended-use_global_long_query_time.test
@@ -1,41 +1,40 @@
-source include/have_innodb.inc;
+source include/have_xtradb.inc;
+
+SET GLOBAL SLOW_QUERY_LOG=ON;
SELECT sleep(1);
SELECT sleep(3);
SELECT sleep(5);
set global long_query_time=4;
-set global use_global_long_query_time=1;
+set global slow_query_log_use_global_control='long_query_time';
SELECT sleep(1);
SELECT sleep(3);
SELECT sleep(5);
set global long_query_time=2;
-set global use_global_long_query_time=0;
+set global slow_query_log_use_global_control='';
+
+SET GLOBAL SLOW_QUERY_LOG=OFF;
FLUSH LOGS;
--let grep_file = $MYSQLTEST_VARDIR/mysqld.1/data/percona_slow_query_log-use_global_long_query_time.log
--let grep_pattern = Query_time
---source include/grep.inc
+--source grep.inc
-show global variables like 'use_global_log_slow_control';
-show global variables like 'use_global_long_query_time';
+show global variables like 'slow_query_log_use_global_control';
-set global use_global_log_slow_control = long_query_time;
-show global variables like 'use_global_log_slow_control';
-show global variables like 'use_global_long_query_time';
+set global slow_query_log_use_global_control='long_query_time';
+show global variables like 'slow_query_log_use_global_control';
-set global use_global_log_slow_control = log_slow_filter;
-show global variables like 'use_global_log_slow_control';
-show global variables like 'use_global_long_query_time';
+set global slow_query_log_use_global_control='log_slow_filter,long_query_time';
+show global variables like 'slow_query_log_use_global_control';
-set global use_global_long_query_time = ON;
-show global variables like 'use_global_log_slow_control';
-show global variables like 'use_global_long_query_time';
+set global slow_query_log_use_global_control='log_slow_filter';
+show global variables like 'slow_query_log_use_global_control';
-set global use_global_long_query_time = OFF;
-show global variables like 'use_global_log_slow_control';
-show global variables like 'use_global_long_query_time';
+set global slow_query_log_use_global_control='';
+show global variables like 'slow_query_log_use_global_control';
-set global use_global_log_slow_control = long_query_time;
+set global slow_query_log_use_global_control='long_query_time';
diff --git a/mysql-test/suite/percona/userstat_bug602047.result b/mysql-test/suite/percona/userstat_bug602047.result
index bc14ca3362a..966439b817d 100644
--- a/mysql-test/suite/percona/userstat_bug602047.result
+++ b/mysql-test/suite/percona/userstat_bug602047.result
@@ -1,6 +1,5 @@
DROP TABLE IF EXISTS t1;
-SET @userstat_running_old= @@userstat_running;
-SET GLOBAL userstat_running=ON;
+SET GLOBAL userstat=ON;
CREATE TABLE t1 ( id int(10), PRIMARY KEY (id)) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
SELECT COUNT(*) FROM t1;
@@ -12,5 +11,5 @@ ROWS_READ
SELECT ROWS_READ FROM information_schema.index_statistics WHERE TABLE_NAME='t1';
ROWS_READ
10
-SET GLOBAL userstat_running= @userstat_running_old;
+SET GLOBAL userstat=OFF;
DROP TABLE t1;
diff --git a/mysql-test/suite/percona/userstat_bug602047.test b/mysql-test/suite/percona/userstat_bug602047.test
index 37c08d32bf0..31fc36b80e2 100644
--- a/mysql-test/suite/percona/userstat_bug602047.test
+++ b/mysql-test/suite/percona/userstat_bug602047.test
@@ -1,13 +1,12 @@
---source include/have_innodb.inc
+--source include/have_xtradb.inc
--disable_warnings
DROP TABLE IF EXISTS t1;
--enable_warnings
-SET @userstat_running_old= @@userstat_running;
-SET GLOBAL userstat_running=ON;
+SET GLOBAL userstat=ON;
CREATE TABLE t1 ( id int(10), PRIMARY KEY (id)) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
SELECT COUNT(*) FROM t1;
SELECT ROWS_READ FROM information_schema.table_statistics WHERE TABLE_NAME='t1';
SELECT ROWS_READ FROM information_schema.index_statistics WHERE TABLE_NAME='t1';
-SET GLOBAL userstat_running= @userstat_running_old;
+SET GLOBAL userstat=OFF;
DROP TABLE t1;