]> git.pld-linux.org Git - packages/mysql.git/blobdiff - response_time_distribution.patch
fox for bug #62472 (mysqlhotcopy errors on databases containing MyISAM)
[packages/mysql.git] / response_time_distribution.patch
index 94d865cb3097a1049151f9d563d8cb65dd4ecee8..603c8e802695d3967c7067fdcc563954ee4c464a 100644 (file)
@@ -5,9 +5,8 @@
 #!!! notice !!!
 # Any small change to this file in the main branch
 # should be done or reviewed by the maintainer!
-diff -ruN a/CMakeLists.txt b/CMakeLists.txt
---- a/CMakeLists.txt   2010-12-03 20:58:24.000000000 +0300
-+++ b/CMakeLists.txt   2011-01-16 20:11:28.000000000 +0300
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
 @@ -165,7 +165,12 @@
  OPTION (WITH_UNIT_TESTS "Compile MySQL with unit tests" ON)
  MARK_AS_ADVANCED(CYBOZU BACKUP_TEST WITHOUT_SERVER DISABLE_SHARED)
@@ -22,10 +21,9 @@ diff -ruN a/CMakeLists.txt b/CMakeLists.txt
  OPTION(ENABLE_DEBUG_SYNC "Enable debug sync (debug builds only)" ON) 
  IF(ENABLE_DEBUG_SYNC) 
    SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DENABLED_DEBUG_SYNC") 
-diff -ruN a/include/mysql_com.h b/include/mysql_com.h
---- a/include/mysql_com.h      2010-12-03 20:58:24.000000000 +0300
-+++ b/include/mysql_com.h      2011-01-16 18:53:58.000000000 +0300
-@@ -137,10 +137,11 @@
+--- a/include/mysql_com.h
++++ b/include/mysql_com.h
+@@ -141,10 +141,11 @@
  #define REFRESH_FAST          32768   /* Intern flag */
  
  /* RESET (remove all queries) from query cache */
@@ -41,9 +39,2841 @@ diff -ruN a/include/mysql_com.h b/include/mysql_com.h
  
  #define CLIENT_LONG_PASSWORD  1       /* new more secure passwords */
  #define CLIENT_FOUND_ROWS     2       /* Found instead of affected rows */
-diff -ruN a/patch_info/response-time-distribution.info b/patch_info/response-time-distribution.info
---- a/patch_info/response-time-distribution.info       1970-01-01 03:00:00.000000000 +0300
-+++ b/patch_info/response-time-distribution.info       2011-01-16 18:53:59.000000000 +0300
+--- /dev/null
++++ b/mysql-test/include/have_response_time_distribution.inc
+@@ -0,0 +1,4 @@
++-- require r/have_response_time_distribution.require
++disable_query_log;
++show variables like 'have_response_time_distribution';
++enable_query_log;
+--- /dev/null
++++ b/mysql-test/include/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;
+--- /dev/null
++++ b/mysql-test/include/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;
+--- /dev/null
++++ b/mysql-test/include/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;
+--- /dev/null
++++ b/mysql-test/r/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.000000        0             0.000000
++2097152.000000        0             0.000000
++4194304.000000        0             0.000000
++8388608.000000        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.000000        0             0.000000
++2097152.000000        0             0.000000
++4194304.000000        0             0.000000
++8388608.000000        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.000000        0             0.000000
++2097152.000000        0             0.000000
++4194304.000000        0             0.000000
++8388608.000000        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.000000        0             0.000000
++2097152.000000        0             0.000000
++4194304.000000        0             0.000000
++8388608.000000        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.000000        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.000000        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.000000        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.000000        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.000000        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.000000        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.000000        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.000000        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.000000        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.000000        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;
+--- /dev/null
++++ b/mysql-test/r/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.000000        0             0.000000
++2097152.000000        0             0.000000
++4194304.000000        0             0.000000
++8388608.000000        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.000000        0             0.000000
++2097152.000000        0             0.000000
++4194304.000000        0             0.000000
++8388608.000000        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.000000        0             0.000000
++2097152.000000        0             0.000000
++4194304.000000        0             0.000000
++8388608.000000        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.000000        0             0.000000
++2097152.000000        0             0.000000
++4194304.000000        0             0.000000
++8388608.000000        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.000000        0             0.000000
++2097152.000000        0             0.000000
++4194304.000000        0             0.000000
++8388608.000000        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.000000        0             0.000000
++2097152.000000        0             0.000000
++4194304.000000        0             0.000000
++8388608.000000        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.000000        0             0.000000
++2097152.000000        0             0.000000
++4194304.000000        0             0.000000
++8388608.000000        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.000000        0             0.000000
++2097152.000000        0             0.000000
++4194304.000000        0             0.000000
++8388608.000000        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.000000        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.000000        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.000000        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.000000        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.000000        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.000000        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.000000        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.000000        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.000000        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.000000        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.000000        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.000000        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.000000        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.000000        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.000000        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.000000        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.000000        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.000000        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.000000        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.000000        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;
+--- /dev/null
++++ b/mysql-test/r/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.000000        0             0.000000
++2097152.000000        0             0.000000
++4194304.000000        0             0.000000
++8388608.000000        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.000000        0             0.000000
++2097152.000000        0             0.000000
++4194304.000000        0             0.000000
++8388608.000000        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.000000        0             0.000000
++2097152.000000        0             0.000000
++4194304.000000        0             0.000000
++8388608.000000        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.000000        0             0.000000
++2097152.000000        0             0.000000
++4194304.000000        0             0.000000
++8388608.000000        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.000000        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.000000        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.000000        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.000000        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.000000        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.000000        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.000000        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.000000        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.000000        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.000000        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;
+--- /dev/null
++++ b/mysql-test/t/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;
+--- /dev/null
++++ b/mysql-test/t/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;
+--- /dev/null
++++ b/mysql-test/t/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;
+--- /dev/null
++++ b/patch_info/response-time-distribution.info
 @@ -0,0 +1,9 @@
 +File=response-time-distribution.patch
 +Name=Response time distribution
@@ -54,10 +2884,9 @@ diff -ruN a/patch_info/response-time-distribution.info b/patch_info/response-tim
 +Changelog
 +2010-07-02 first version avaliable
 +2010-09-15 add column 'total'
-diff -ruN a/sql/CMakeLists.txt b/sql/CMakeLists.txt
---- a/sql/CMakeLists.txt       2010-12-03 20:58:26.000000000 +0300
-+++ b/sql/CMakeLists.txt       2011-01-16 18:53:59.000000000 +0300
-@@ -51,7 +51,7 @@
+--- a/sql/CMakeLists.txt
++++ b/sql/CMakeLists.txt
+@@ -52,7 +52,7 @@
                 message.h mf_iocache.cc my_decimal.cc ../sql-common/my_time.c
                 mysqld.cc net_serv.cc  keycaches.cc
                 ../sql-common/client_plugin.c
@@ -66,7 +2895,7 @@ diff -ruN a/sql/CMakeLists.txt b/sql/CMakeLists.txt
                 ../sql-common/pack.c parse_file.cc password.c procedure.cc 
                 protocol.cc records.cc repl_failsafe.cc rpl_filter.cc set_var.cc 
                 slave.cc sp.cc sp_cache.cc sp_head.cc sp_pcontext.cc 
-@@ -59,7 +59,7 @@
+@@ -60,7 +60,7 @@
                 sql_cache.cc sql_class.cc sql_client.cc sql_crypt.cc sql_crypt.h 
                 sql_cursor.cc sql_db.cc sql_delete.cc sql_derived.cc sql_do.cc 
                 sql_error.cc sql_handler.cc sql_help.cc sql_insert.cc sql_lex.cc 
@@ -75,10 +2904,9 @@ diff -ruN a/sql/CMakeLists.txt b/sql/CMakeLists.txt
                 sql_partition.cc sql_plugin.cc sql_prepare.cc sql_rename.cc 
                 debug_sync.cc debug_sync.h
                 sql_repl.cc sql_select.cc sql_show.cc sql_state.c sql_string.cc 
-diff -ruN a/sql/handler.h b/sql/handler.h
---- a/sql/handler.h    2011-01-16 18:53:33.000000000 +0300
-+++ b/sql/handler.h    2011-01-16 18:54:00.000000000 +0300
-@@ -580,6 +580,7 @@
+--- a/sql/handler.h
++++ b/sql/handler.h
+@@ -581,6 +581,7 @@
    SCH_PROFILES,
    SCH_REFERENTIAL_CONSTRAINTS,
    SCH_PROCEDURES,
@@ -86,9 +2914,8 @@ diff -ruN a/sql/handler.h b/sql/handler.h
    SCH_SCHEMATA,
    SCH_SCHEMA_PRIVILEGES,
    SCH_SESSION_STATUS,
-diff -ruN a/sql/lex.h b/sql/lex.h
---- a/sql/lex.h        2010-12-03 20:58:26.000000000 +0300
-+++ b/sql/lex.h        2011-01-16 18:54:01.000000000 +0300
+--- a/sql/lex.h
++++ b/sql/lex.h
 @@ -426,6 +426,7 @@
    { "PURGE",          SYM(PURGE)},
    { "QUARTER",          SYM(QUARTER_SYM)},
@@ -97,9 +2924,8 @@ diff -ruN a/sql/lex.h b/sql/lex.h
    { "QUICK",          SYM(QUICK)},
    { "RANGE",            SYM(RANGE_SYM)},
    { "READ",           SYM(READ_SYM)},
-diff -ruN a/sql/mysqld.cc b/sql/mysqld.cc
---- a/sql/mysqld.cc    2011-01-16 18:53:35.000000000 +0300
-+++ b/sql/mysqld.cc    2011-01-17 02:22:27.000000000 +0300
+--- a/sql/mysqld.cc
++++ b/sql/mysqld.cc
 @@ -69,6 +69,8 @@
  #include "debug_sync.h"
  #include "sql_callback.h"
@@ -109,7 +2935,7 @@ diff -ruN a/sql/mysqld.cc b/sql/mysqld.cc
  #ifdef WITH_PERFSCHEMA_STORAGE_ENGINE
  #include "../storage/perfschema/pfs_server.h"
  #endif /* WITH_PERFSCHEMA_STORAGE_ENGINE */
-@@ -603,7 +605,7 @@
+@@ -615,7 +617,7 @@
  MY_LOCALE *my_default_lc_messages;
  MY_LOCALE *my_default_lc_time_names;
  
@@ -118,7 +2944,7 @@ diff -ruN a/sql/mysqld.cc b/sql/mysqld.cc
  SHOW_COMP_OPTION have_geometry, have_rtree_keys;
  SHOW_COMP_OPTION have_crypt, have_compress;
  SHOW_COMP_OPTION have_profiling;
-@@ -904,6 +906,10 @@
+@@ -917,6 +919,10 @@
  my_bool opt_enable_shared_memory;
  HANDLE smem_event_connect_request= 0;
  #endif
@@ -129,7 +2955,7 @@ diff -ruN a/sql/mysqld.cc b/sql/mysqld.cc
  
  my_bool opt_use_ssl  = 0;
  char *opt_ssl_ca= NULL, *opt_ssl_capath= NULL, *opt_ssl_cert= NULL,
-@@ -1472,6 +1478,9 @@
+@@ -1488,6 +1494,9 @@
    my_free(opt_bin_logname);
    bitmap_free(&temp_pool);
    free_max_user_conn();
@@ -139,7 +2965,7 @@ diff -ruN a/sql/mysqld.cc b/sql/mysqld.cc
  #ifdef HAVE_REPLICATION
    end_slave_list();
  #endif
-@@ -3925,6 +3934,9 @@
+@@ -3860,6 +3869,9 @@
    if (!DEFAULT_ERRMSGS[0][0])
      unireg_abort(1);  
  
@@ -149,7 +2975,7 @@ diff -ruN a/sql/mysqld.cc b/sql/mysqld.cc
    /* We have to initialize the storage engines before CSV logging */
    if (ha_init())
    {
-@@ -6797,6 +6809,11 @@
+@@ -6773,6 +6785,11 @@
  #else
    have_query_cache=SHOW_OPTION_NO;
  #endif
@@ -161,9 +2987,8 @@ diff -ruN a/sql/mysqld.cc b/sql/mysqld.cc
  #ifdef HAVE_SPATIAL
    have_geometry=SHOW_OPTION_YES;
  #else
-diff -ruN a/sql/mysqld.h b/sql/mysqld.h
---- a/sql/mysqld.h     2011-01-16 18:53:35.000000000 +0300
-+++ b/sql/mysqld.h     2011-01-17 02:08:20.000000000 +0300
+--- a/sql/mysqld.h
++++ b/sql/mysqld.h
 @@ -98,6 +98,10 @@
  extern bool opt_disable_networking, opt_skip_show_db;
  extern bool opt_skip_name_resolve;
@@ -175,15 +3000,10 @@ diff -ruN a/sql/mysqld.h b/sql/mysqld.h
  extern my_bool opt_character_set_client_handshake;
  extern bool volatile abort_loop;
  extern bool in_bootstrap;
-diff -ruN a/sql/query_response_time.cc b/sql/query_response_time.cc
---- a/sql/query_response_time.cc       1970-01-01 03:00:00.000000000 +0300
-+++ b/sql/query_response_time.cc       2011-01-17 02:13:08.000000000 +0300
-@@ -0,0 +1,372 @@
+--- /dev/null
++++ b/sql/query_response_time.cc
+@@ -0,0 +1,302 @@
 +#include "mysql_version.h"
-+#ifdef __FreeBSD__
-+#include <sys/types.h>
-+#include <machine/atomic.h>
-+#endif // __FreeBSD__
 +#include "my_global.h"
 +#ifdef HAVE_RESPONSE_TIME_DISTRIBUTION
 +#include "mysql_com.h"
@@ -201,7 +3021,6 @@ diff -ruN a/sql/query_response_time.cc b/sql/query_response_time.cc
 +#define MAXIMUM_BASE QRT_MAXIMUM_BASE
 +#define POSITIVE_POWER_FILLER QRT_POSITIVE_POWER_FILLER
 +#define NEGATIVE_POWER_FILLER QRT_NEGATIVE_POWER_FILLER
-+#define STRING_OVERFLOW QRT_STRING_OVERFLOW
 +#define TIME_OVERFLOW   QRT_TIME_OVERFLOW
 +#define DEFAULT_BASE    QRT_DEFAULT_BASE
 +
@@ -322,136 +3141,71 @@ diff -ruN a/sql/query_response_time.cc b/sql/query_response_time.cc
 +  ulonglong m_bound[OVERALL_POWER_COUNT];
 +};
 +
-+void print_time(char* buffer, std::size_t buffer_size, std::size_t string_positive_power_length, const char* format, uint64 value)
++static
++void print_time(char* buffer, std::size_t buffer_size, const char* format,
++                uint64 value)
 +{
-+  memset(buffer,'X',buffer_size);
-+  buffer[string_positive_power_length]= '.';
 +  ulonglong second=      (value / MILLION);
 +  ulonglong microsecond= (value % MILLION);
-+  std::size_t result_length= snprintf(buffer,buffer_size,format,second,microsecond);
-+  if(result_length < 0)
-+  {
-+    assert(sizeof(STRING_OVERFLOW) <= buffer_size);
-+    memcpy(buffer, STRING_OVERFLOW, sizeof(STRING_OVERFLOW));
-+    return;
-+  }
-+  buffer[result_length]= 0;
-+}
-+#ifdef __x86_64__
-+typedef uint64 TimeCounter;
-+void add_time_atomic(TimeCounter* counter, uint64 time)
-+{
-+  __sync_fetch_and_add(counter,time);  
-+}
-+#endif // __x86_64__
-+#ifdef __i386__
-+inline uint32 get_high(uint64 value)
-+{
-+  return ((value >> 32) << 32);
-+}
-+inline uint32 get_low(uint64 value)
-+{
-+  return ((value << 32) >> 32);
-+}
-+#ifdef __FreeBSD__
-+inline bool compare_and_swap(volatile uint32 *target, uint32 old, uint32 new_value)
-+{
-+  return atomic_cmpset_32(target,old,new_value);
++  my_snprintf(buffer, buffer_size, format, second, microsecond);
 +}
-+#else // __FreeBSD__
-+inline bool compare_and_swap(volatile uint32* target, uint32 old, uint32 new_value)
-+{
-+  return __sync_bool_compare_and_swap(target,old,new_value);
-+}
-+#endif // __FreeBSD__
-+class TimeCounter
++
++class time_collector
 +{
 +public:
-+  TimeCounter& operator=(uint64 time)
++  time_collector(utility& u) : m_utility(&u)
 +  {
-+    this->m_high= get_high(time);
-+    this->m_low=  get_low(time);
-+    return *this;
++    my_atomic_rwlock_init(&time_collector_lock);
 +  }
-+  operator uint64() const
++  ~time_collector()
 +  {
-+    return ((static_cast<uint64>(m_high) << 32) + static_cast<uint64>(m_low));
++    my_atomic_rwlock_destroy(&time_collector_lock);
 +  }
-+  void add(uint64 time)
++  uint32 count(uint index) const
 +  {
-+    uint32 time_high = get_high(time);
-+    uint32 time_low  = get_low(time);
-+    uint64 time_low64= time_low;
-+    while(true)
-+    {
-+      uint32 old_low= this->m_low;
-+      uint64 old_low64= old_low;
-+
-+      uint64 new_low64= old_low64 + time_low64;
-+      uint32 new_low= (get_low(new_low64));
-+      bool add_high= (get_high(new_low64) != 0);
-+
-+      if(!compare_and_swap(&m_low,old_low,new_low))
-+      {
-+      continue;
-+      }
-+      if(add_high)
-+      {
-+      ++time_high;
-+      }
-+      if(time_high > 0)
-+      {
-+        __sync_fetch_and_add(&m_high,time_high);
-+      }
-+      break;
-+    }
++    my_atomic_rwlock_rdlock(&time_collector_lock);
++    uint32 result= my_atomic_load32((int32*)&m_count[index]);
++    my_atomic_rwlock_rdunlock(&time_collector_lock);
++    return result;
 +  }
-+private:
-+  uint32 m_low;
-+  uint32 m_high;
-+};
-+void add_time_atomic(TimeCounter* counter, uint64 time)
-+{
-+  counter->add(time);
-+}
-+#endif // __i386__
-+
-+class time_collector
-+{
-+public:
-+  time_collector(utility& u) : m_utility(&u)
++  uint64 total(uint index) const
 +  {
++    my_atomic_rwlock_rdlock(&time_collector_lock);
++    uint64 result= my_atomic_load64((int64*)&m_total[index]);
++    my_atomic_rwlock_rdunlock(&time_collector_lock);
++    return result;
 +  }
-+  uint32 count(uint index) const { return m_count[index]; }
-+  uint64 total(uint index) const { return m_total[index]; }
 +public:
 +  void flush()
 +  {
-+    memset(&m_count,0,sizeof(m_count));
++    my_atomic_rwlock_wrlock(&time_collector_lock);
++    memset((void*)&m_count,0,sizeof(m_count));
 +    memset((void*)&m_total,0,sizeof(m_total));
++    my_atomic_rwlock_wrunlock(&time_collector_lock);
 +  }
 +  void collect(uint64 time)
 +  {
-+    bool no_collect= false;
-+    DBUG_EXECUTE_IF("response_time_distribution_log_only_more_300_milliseconds", {   \
-+        no_collect= time < 300 * 1000; \
-+      });
-+    if(no_collect) return;
 +    int i= 0;
 +    for(int count= m_utility->bound_count(); count > i; ++i)
 +    {
 +      if(m_utility->bound(i) > time)
 +      {
-+        __sync_fetch_and_add(&(m_count[i]),(uint32)1);
-+       add_time_atomic(&(m_total[i]),time);
++        my_atomic_rwlock_wrlock(&time_collector_lock);
++        my_atomic_add32((int32*)(&m_count[i]), 1);
++        my_atomic_add64((int64*)(&m_total[i]), time);
++        my_atomic_rwlock_wrunlock(&time_collector_lock);
 +        break;
 +      }
 +    }
 +  }
 +private:
 +  utility* m_utility;
++  /* The lock for atomic operations on m_count and m_total.  Only actually
++  used on architectures that do not have atomic implementation of atomic
++  operations. */
++  my_atomic_rwlock_t time_collector_lock;
 +  uint32   m_count[OVERALL_POWER_COUNT + 1];
-+  TimeCounter m_total[OVERALL_POWER_COUNT + 1];
++  uint64   m_total[OVERALL_POWER_COUNT + 1];
 +};
 +
 +class collector
@@ -486,8 +3240,8 @@ diff -ruN a/sql/query_response_time.cc b/sql/query_response_time.cc
 +      }
 +      else
 +      {
-+        print_time(time,sizeof(time),TIME_STRING_POSITIVE_POWER_LENGTH,TIME_STRING_FORMAT,this->bound(i));
-+        print_time(total,sizeof(total),TOTAL_STRING_POSITIVE_POWER_LENGTH,TOTAL_STRING_FORMAT,this->total(i));
++        print_time(time, sizeof(time), TIME_STRING_FORMAT, this->bound(i));
++        print_time(total, sizeof(total), TOTAL_STRING_FORMAT, this->total(i));
 +      }
 +      fields[0]->store(time,strlen(time),system_charset_info);
 +      fields[1]->store(this->count(i));
@@ -551,10 +3305,9 @@ diff -ruN a/sql/query_response_time.cc b/sql/query_response_time.cc
 +  return query_response_time::g_collector.fill(thd,tables,cond);
 +}
 +#endif // HAVE_RESPONSE_TIME_DISTRIBUTION
-diff -ruN a/sql/query_response_time.h b/sql/query_response_time.h
---- a/sql/query_response_time.h        1970-01-01 03:00:00.000000000 +0300
-+++ b/sql/query_response_time.h        2011-01-17 02:13:34.000000000 +0300
-@@ -0,0 +1,71 @@
+--- /dev/null
++++ b/sql/query_response_time.h
+@@ -0,0 +1,64 @@
 +#ifndef QUERY_RESPONSE_TIME_H
 +#define QUERY_RESPONSE_TIME_H
 +
@@ -587,18 +3340,13 @@ diff -ruN a/sql/query_response_time.h b/sql/query_response_time.h
 +  and number 7234 result is:
 +  '   7234'
 +*/
-+#define QRT_POSITIVE_POWER_FILLER " "
++#define QRT_POSITIVE_POWER_FILLER ""
 +/*
 +  Filler for fractional number. Similiary to whole number
 +*/
 +#define QRT_NEGATIVE_POWER_FILLER "0"
 +
 +/*
-+  Message if string overflow (string overflow - internal error, this string say about bug in QRT)
-+*/
-+#define QRT_STRING_OVERFLOW "TOO BIG STRING"
-+
-+/*
 +  Message if time too big for statistic collecting (very long query)
 +*/
 +#define QRT_TIME_OVERFLOW "TOO LONG"
@@ -607,13 +3355,11 @@ diff -ruN a/sql/query_response_time.h b/sql/query_response_time.h
 +
 +#define QRT_TIME_STRING_LENGTH                                \
 +  max( (QRT_TIME_STRING_POSITIVE_POWER_LENGTH + 1 /* '.' */ + 6 /*QRT_TIME_STRING_NEGATIVE_POWER_LENGTH*/), \
-+       max( (sizeof(QRT_TIME_OVERFLOW) - 1),          \
-+          (sizeof(QRT_STRING_OVERFLOW) - 1) ) )
++       (sizeof(QRT_TIME_OVERFLOW) - 1) )
 +
 +#define QRT_TOTAL_STRING_LENGTH                               \
 +  max( (QRT_TOTAL_STRING_POSITIVE_POWER_LENGTH + 1 /* '.' */ + 6 /*QRT_TOTAL_STRING_NEGATIVE_POWER_LENGTH*/), \
-+       max( (sizeof(QRT_TIME_OVERFLOW) - 1),          \
-+          (sizeof(QRT_STRING_OVERFLOW) - 1) ) )
++       (sizeof(QRT_TIME_OVERFLOW) - 1) )
 +
 +extern ST_SCHEMA_TABLE query_response_time_table;
 +
@@ -626,10 +3372,9 @@ diff -ruN a/sql/query_response_time.h b/sql/query_response_time.h
 +#endif // HAVE_RESPONSE_TIME_DISTRIBUTION
 +
 +#endif // QUERY_RESPONSE_TIME_H
-diff -ruN a/sql/set_var.h b/sql/set_var.h
---- a/sql/set_var.h    2010-12-03 20:58:26.000000000 +0300
-+++ b/sql/set_var.h    2011-01-17 02:20:59.000000000 +0300
-@@ -293,6 +293,7 @@
+--- a/sql/set_var.h
++++ b/sql/set_var.h
+@@ -294,6 +294,7 @@
  
  extern SHOW_COMP_OPTION have_ssl, have_symlink, have_dlopen;
  extern SHOW_COMP_OPTION have_query_cache;
@@ -637,9 +3382,8 @@ diff -ruN a/sql/set_var.h b/sql/set_var.h
  extern SHOW_COMP_OPTION have_geometry, have_rtree_keys;
  extern SHOW_COMP_OPTION have_crypt;
  extern SHOW_COMP_OPTION have_compress;
-diff -ruN a/sql/sql_parse.cc b/sql/sql_parse.cc
---- a/sql/sql_parse.cc 2011-01-16 18:53:35.000000000 +0300
-+++ b/sql/sql_parse.cc 2011-01-17 02:15:09.000000000 +0300
+--- a/sql/sql_parse.cc
++++ b/sql/sql_parse.cc
 @@ -88,6 +88,7 @@
  #include "sp_cache.h"
  #include "events.h"
@@ -648,56 +3392,20 @@ diff -ruN a/sql/sql_parse.cc b/sql/sql_parse.cc
  #include "transaction.h"
  #include "sql_audit.h"
  #include "sql_prepare.h"
-@@ -1483,22 +1484,36 @@
-     Do not log administrative statements unless the appropriate option is
-     set.
-   */
-+  #ifdef HAVE_RESPONSE_TIME_DISTRIBUTION
-+  if (opt_query_response_time_stats || thd->enable_slow_log)
-+#else // HAVE_RESPONSE_TIME_DISTRIBUTION
-   if (thd->enable_slow_log)
-+#endif // HAVE_RESPONSE_TIME_DISTRIBUTION
-   {
--    ulonglong end_utime_of_query= thd->current_utime();
--    thd_proc_info(thd, "logging slow query");
--
--    if (((thd->server_status & SERVER_QUERY_WAS_SLOW) ||
--         ((thd->server_status &
--           (SERVER_QUERY_NO_INDEX_USED | SERVER_QUERY_NO_GOOD_INDEX_USED)) &&
--          opt_log_queries_not_using_indexes &&
--           !(sql_command_flags[thd->lex->sql_command] & CF_STATUS_COMMAND))) &&
--        thd->examined_row_count >= thd->variables.min_examined_row_limit)
-+    ulonglong end_utime_of_query   = thd->current_utime();
-+    ulonglong query_execution_time = end_utime_of_query - thd->utime_after_lock;
+@@ -1518,6 +1519,12 @@
+   ulonglong end_utime_of_query= thd->current_utime();
+   ulonglong query_exec_time= get_query_exec_time(thd, end_utime_of_query);
 +#ifdef HAVE_RESPONSE_TIME_DISTRIBUTION
-+    if(opt_query_response_time_stats)
-+    {
-+      query_response_time_collect(query_execution_time);
-+    }
-+#endif // HAVE_RESPONSE_TIME_DISTRIBUTION
-+    if (thd->enable_slow_log)
-     {
-       thd_proc_info(thd, "logging slow query");
--      thd->status_var.long_query_count++;
--      slow_log_print(thd, thd->query(), thd->query_length(), 
--                     end_utime_of_query);
-+
-+      if (((thd->server_status & SERVER_QUERY_WAS_SLOW) ||
-+           ((thd->server_status &
-+             (SERVER_QUERY_NO_INDEX_USED | SERVER_QUERY_NO_GOOD_INDEX_USED)) &&
-+            opt_log_queries_not_using_indexes &&
-+             !(sql_command_flags[thd->lex->sql_command] & CF_STATUS_COMMAND))) &&
-+          thd->examined_row_count >= thd->variables.min_examined_row_limit)
-+      {
-+        thd_proc_info(thd, "logging slow query");
-+        thd->status_var.long_query_count++;
-+        slow_log_print(thd, thd->query(), thd->query_length(), 
-+                       end_utime_of_query);
-+      }
-     }
-   }
-   DBUG_VOID_RETURN;
-@@ -1617,6 +1632,7 @@
++  if (opt_query_response_time_stats)
++  {
++    query_response_time_collect(query_exec_time);
++  }
++#endif
+   /*
+     Low long_query_time value most likely means user is debugging stuff and even
+@@ -1682,6 +1689,7 @@
    case SCH_CHARSETS:
    case SCH_ENGINES:
    case SCH_COLLATIONS:
@@ -705,9 +3413,8 @@ diff -ruN a/sql/sql_parse.cc b/sql/sql_parse.cc
    case SCH_COLLATION_CHARACTER_SET_APPLICABILITY:
    case SCH_USER_PRIVILEGES:
    case SCH_SCHEMA_PRIVILEGES:
-diff -ruN a/sql/sql_reload.cc b/sql/sql_reload.cc
---- a/sql/sql_reload.cc        2010-12-03 20:58:26.000000000 +0300
-+++ b/sql/sql_reload.cc        2011-01-17 02:16:19.000000000 +0300
+--- a/sql/sql_reload.cc
++++ b/sql/sql_reload.cc
 @@ -25,7 +25,7 @@
  #include "hostname.h"    // hostname_cache_refresh
  #include "sql_repl.h"    // reset_master, reset_slave
@@ -717,7 +3424,7 @@ diff -ruN a/sql/sql_reload.cc b/sql/sql_reload.cc
  
  /**
    Reload/resets privileges and the different caches.
-@@ -282,6 +282,12 @@
+@@ -322,6 +322,12 @@
  #endif
   if (options & REFRESH_USER_RESOURCES)
     reset_mqh((LEX_USER *) NULL, 0);             /* purecov: inspected */
@@ -730,9 +3437,8 @@ diff -ruN a/sql/sql_reload.cc b/sql/sql_reload.cc
   if (*write_to_binlog != -1)
     *write_to_binlog= tmp_write_to_binlog;
   /*
-diff -ruN a/sql/sql_show.cc b/sql/sql_show.cc
---- a/sql/sql_show.cc  2011-01-16 18:53:35.000000000 +0300
-+++ b/sql/sql_show.cc  2011-01-17 02:17:44.000000000 +0300
+--- a/sql/sql_show.cc
++++ b/sql/sql_show.cc
 @@ -50,6 +50,7 @@
  #include "event_data_objects.h"
  #endif
@@ -741,7 +3447,7 @@ diff -ruN a/sql/sql_show.cc b/sql/sql_show.cc
  #include "lock.h"                           // MYSQL_OPEN_IGNORE_FLUSH
  #include "debug_sync.h"
  #include "datadict.h"   // dd_frm_type()
-@@ -7688,6 +7689,14 @@
+@@ -7888,6 +7889,14 @@
  
  */
  
@@ -756,7 +3462,7 @@ diff -ruN a/sql/sql_show.cc b/sql/sql_show.cc
  ST_SCHEMA_TABLE schema_tables[]=
  {
    {"CHARACTER_SETS", charsets_fields_info, create_schema_table, 
-@@ -7741,6 +7750,13 @@
+@@ -7941,6 +7950,13 @@
     1, 9, 0, OPTIMIZE_I_S_TABLE|OPEN_TABLE_ONLY},
    {"ROUTINES", proc_fields_info, create_schema_table, 
     fill_schema_proc, make_proc_old_format, 0, -1, -1, 0, 0},
@@ -770,10 +3476,9 @@ diff -ruN a/sql/sql_show.cc b/sql/sql_show.cc
    {"SCHEMATA", schema_fields_info, create_schema_table,
     fill_schema_schemata, make_schemata_old_format, 0, 1, -1, 0, 0},
    {"SCHEMA_PRIVILEGES", schema_privileges_fields_info, create_schema_table,
-diff -ruN a/sql/sql_yacc.yy b/sql/sql_yacc.yy
---- a/sql/sql_yacc.yy  2011-01-16 18:53:34.000000000 +0300
-+++ b/sql/sql_yacc.yy  2011-01-17 02:19:03.000000000 +0300
-@@ -1193,6 +1193,7 @@
+--- a/sql/sql_yacc.yy
++++ b/sql/sql_yacc.yy
+@@ -1194,6 +1194,7 @@
  %token  PURGE
  %token  QUARTER_SYM
  %token  QUERY_SYM
@@ -781,7 +3486,7 @@ diff -ruN a/sql/sql_yacc.yy b/sql/sql_yacc.yy
  %token  QUICK
  %token  RANGE_SYM                     /* SQL-2003-R */
  %token  READS_SYM                     /* SQL-2003-R */
-@@ -11089,6 +11090,15 @@
+@@ -11105,6 +11106,15 @@
            {
              Lex->sql_command = SQLCOM_SHOW_SLAVE_STAT;
            }
@@ -797,10 +3502,10 @@ diff -ruN a/sql/sql_yacc.yy b/sql/sql_yacc.yy
          | CREATE PROCEDURE_SYM sp_name
            {
              LEX *lex= Lex;
-@@ -11325,6 +11335,12 @@
-           { Lex->type|= REFRESH_STATUS; }
-         | SLAVE
-           { Lex->type|= REFRESH_SLAVE; }
+@@ -11344,6 +11354,12 @@
+             Lex->type|= REFRESH_SLAVE;
+             Lex->reset_slave_info.all= false;
+           }
 +        | QUERY_RESPONSE_TIME_SYM
 +          { 
 +#ifdef HAVE_RESPONSE_TIME_DISTRIBUTION
@@ -810,7 +3515,7 @@ diff -ruN a/sql/sql_yacc.yy b/sql/sql_yacc.yy
          | MASTER_SYM
            { Lex->type|= REFRESH_MASTER; }
          | DES_KEY_FILE
-@@ -12610,6 +12626,7 @@
+@@ -12651,6 +12667,7 @@
          | PROXY_SYM                {}
          | QUARTER_SYM              {}
          | QUERY_SYM                {}
@@ -818,18 +3523,17 @@ diff -ruN a/sql/sql_yacc.yy b/sql/sql_yacc.yy
          | QUICK                    {}
          | READ_ONLY_SYM            {}
          | REBUILD_SYM              {}
-diff -ruN a/sql/sys_vars.cc b/sql/sys_vars.cc
---- a/sql/sys_vars.cc  2011-01-16 18:53:35.000000000 +0300
-+++ b/sql/sys_vars.cc  2011-01-17 02:19:53.000000000 +0300
-@@ -49,6 +49,7 @@
- #include "../storage/perfschema/pfs_server.h"
- #endif /* WITH_PERFSCHEMA_STORAGE_ENGINE */
+--- a/sql/sys_vars.cc
++++ b/sql/sys_vars.cc
+@@ -51,6 +51,7 @@
+ TYPELIB bool_typelib={ array_elements(bool_values)-1, "", bool_values, 0 };
  
 +#include "query_response_time.h" 
  /*
    This forward declaration is needed because including sql_base.h
    causes further includes.  [TODO] Eliminate this forward declaration
-@@ -1791,6 +1792,26 @@
+@@ -1939,6 +1940,26 @@
         DEFAULT(FALSE));
  #endif /* HAVE_QUERY_CACHE */
  
@@ -856,3 +3560,74 @@ diff -ruN a/sql/sys_vars.cc b/sql/sys_vars.cc
  static Sys_var_mybool Sys_secure_auth(
         "secure_auth",
         "Disallow authentication for accounts that have old (pre-4.1) "
+--- /dev/null
++++ b/mysql-test/r/have_response_time_distribution.require
+@@ -0,0 +1,2 @@
++Variable_name Value
++have_response_time_distribution       YES
+--- a/include/atomic/x86-gcc.h
++++ b/include/atomic/x86-gcc.h
+@@ -108,27 +108,23 @@
+   v=tmp;
+ /*
+-  On some platforms (e.g. Mac OS X and Solaris) the ebx register
+-  is held as a pointer to the global offset table. Thus we're not
+-  allowed to use the b-register on those platforms when compiling
+-  PIC code, to avoid this we push ebx and pop ebx. The new value
+-  is copied directly from memory to avoid problems with a implicit
+-  manipulation of the stack pointer by the push.
+-
+   cmpxchg8b works on both 32-bit platforms and 64-bit platforms but
+   the code here is only used on 32-bit platforms, on 64-bit
+   platforms the much simpler make_atomic_cas_body32 will work
+   fine.
+ */
+-#define make_atomic_cas_body64                                    \
+-  asm volatile ("push %%ebx;"                                     \
+-                "movl (%%ecx), %%ebx;"                            \
+-                "movl 4(%%ecx), %%ecx;"                           \
+-                LOCK_prefix "; cmpxchg8b %0;"                     \
+-                "setz %2; pop %%ebx"                              \
+-                : "=m" (*a), "+A" (*cmp), "=c" (ret)              \
+-                : "c" (&set), "m" (*a)                            \
+-                : "memory", "esp")
++#define make_atomic_cas_body64                                     \
++  asm volatile ("movl %%edi, -4(%%esp);"                           \
++                "leal %0, %%edi;"                                  \
++                "xchgl %%ebx, %%esi;"                              \
++                LOCK_prefix "; cmpxchg8b (%%edi);"                 \
++                "movl %%esi, %%ebx;"                               \
++                "movl -4(%%esp), %%edi;"                           \
++                "setz %1;"                                         \
++                : "+m" (*a), "=q" (ret), "+A" (*cmp)               \
++                : "S" ((int32)(set & 0xFFFFFFFF)),                 \
++                  "c" ((int32)(set >> 32))                         \
++                : "memory", "flags")
+ #endif
+ /*
+--- a/mysql-test/r/mysqld--help-notwin.result
++++ b/mysql-test/r/mysqld--help-notwin.result
+@@ -505,6 +505,12 @@
+  Invalidate queries in query cache on LOCK for write
+  --query-prealloc-size=# 
+  Persistent buffer for query parsing and execution
++ --query-response-time-range-base=# 
++ Select base of log for query_response_time ranges.
++ WARNING: variable change affect only after flush
++ --query-response-time-stats 
++ Enable or disable query response time statisics
++ collecting
+  --range-alloc-block-size=# 
+  Allocation block size for storing ranges during
+  optimization
+@@ -939,6 +945,8 @@
+ query-cache-type ON
+ query-cache-wlock-invalidate FALSE
+ query-prealloc-size 8192
++query-response-time-range-base 10
++query-response-time-stats FALSE
+ range-alloc-block-size 4096
+ read-buffer-size 131072
+ read-only FALSE
This page took 0.176829 seconds and 4 git commands to generate.