Merge lp:~akopytov/percona-server/slow_extended_and_rtd_fixes-5.5 into lp:percona-server/5.5

Proposed by Alexey Kopytov
Status: Merged
Merged at revision: 145
Proposed branch: lp:~akopytov/percona-server/slow_extended_and_rtd_fixes-5.5
Merge into: lp:percona-server/5.5
Diff against target: 6277 lines (+3657/-2233)
7 files modified
patches/log_connection_error.patch (+10/-9)
patches/microsec_process.patch (+5/-5)
patches/mysql-test.diff (+22/-57)
patches/response_time_distribution.patch (+2542/-1123)
patches/series (+1/-1)
patches/slow_extended.patch (+1058/-1019)
patches/userstat.patch (+19/-19)
To merge this branch: bzr merge lp:~akopytov/percona-server/slow_extended_and_rtd_fixes-5.5
Reviewer Review Type Date Requested Status
Oleg Tsarev (community) Approve
Stewart Smith (community) Needs Fixing
Review via email: mp+69409@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Alexey Kopytov (akopytov) wrote :
Revision history for this message
Stewart Smith (stewart) wrote :

a few conflicts with 5.5.14

review: Needs Fixing
Revision history for this message
Alexey Kopytov (akopytov) wrote :

Fixed conflicts with trunk.

Revision history for this message
Alexey Kopytov (akopytov) wrote :
Revision history for this message
Oleg Tsarev (tsarev) wrote :

1. Please remove empty mysql-test/log_connection_error.patch
2. Please remove "diff -ruN ..." strings. Looks like you don't respect quiltrc config file from root of branch

All other looks fine.

review: Needs Fixing
Revision history for this message
Alexey Kopytov (akopytov) wrote :

Removed the empty dir.
The only patches containing "diff -ruN ..." was microsec_process.patch (which I had to revert during a merge, fixed) and innodb_fake_changes.patch which I didn't touch.

Revision history for this message
Oleg Tsarev (tsarev) :
review: Approve
Revision history for this message
Oleg Tsarev (tsarev) wrote :

Ok

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'patches/log_connection_error.patch'
--- patches/log_connection_error.patch 2011-09-03 15:15:31 +0000
+++ patches/log_connection_error.patch 2011-09-07 14:03:34 +0000
@@ -51,7 +51,7 @@
51 goto errorconn;51 goto errorconn;
52--- /dev/null52--- /dev/null
53+++ b/mysql-test/r/percona_log_connection_error.result53+++ b/mysql-test/r/percona_log_connection_error.result
54@@ -0,0 +1,15 @@54@@ -0,0 +1,16 @@
55+SET @old_max_connections = @@max_connections;55+SET @old_max_connections = @@max_connections;
56+SET @old_log_warnings = @@log_warnings;56+SET @old_log_warnings = @@log_warnings;
57+SET GLOBAL max_connections=2;57+SET GLOBAL max_connections=2;
@@ -66,7 +66,8 @@
66+ERROR HY000: Too many connections66+ERROR HY000: Too many connections
67+SET GLOBAL max_connections = @old_max_connections;67+SET GLOBAL max_connections = @old_max_connections;
68+SET GLOBAL log_warnings = @old_log_warnings;68+SET GLOBAL log_warnings = @old_log_warnings;
69+169+[log_grep.inc] file: percona.log_connection_error.err pattern: Too many connections
70+[log_grep.inc] lines: 1
70--- /dev/null71--- /dev/null
71+++ b/mysql-test/t/percona_log_connection_error-master.opt72+++ b/mysql-test/t/percona_log_connection_error-master.opt
72@@ -0,0 +1 @@73@@ -0,0 +1 @@
@@ -121,10 +122,10 @@
121+ # does not know the location of its .err log, use default location122+ # does not know the location of its .err log, use default location
122+ let $log_error_ = $MYSQLTEST_VARDIR/log/mysqld.1.err;123+ let $log_error_ = $MYSQLTEST_VARDIR/log/mysqld.1.err;
123+}124+}
124+# Assign env variable LOG_ERROR125+
125+let LOG_ERROR=$log_error_;126+--let log_error=$log_error_
126+127+--let log_file=percona.log_connection_error.err
127+--let grep_file = $log_error128+--let log_file_full_path=$log_error
128+--let grep_pattern = Too many connections129+--let grep_pattern= Too many connections
129+--source include/grep.inc130+--source include/log_grep.inc
130+exec $cmd;131+
131132
=== modified file 'patches/microsec_process.patch'
--- patches/microsec_process.patch 2011-08-09 20:52:20 +0000
+++ patches/microsec_process.patch 2011-09-07 14:03:34 +0000
@@ -5,8 +5,8 @@
5#!!! notice !!!5#!!! notice !!!
6# Any small change to this file in the main branch6# Any small change to this file in the main branch
7# should be done or reviewed by the maintainer!7# should be done or reviewed by the maintainer!
8--- /dev/null8--- /dev/null 1970-01-01 09:00:00.000000000 +0900
9+++ b/patch_info/microsec_process.info9+++ b/patch_info/microsec_process.info 2010-12-02 20:41:41.616069579 +0900
10@@ -0,0 +1,8 @@10@@ -0,0 +1,8 @@
11+File=microsec_process.patch11+File=microsec_process.patch
12+Name=Adds INFOMATION_SCHEMA.PROCESSLIST with TIME_MS column12+Name=Adds INFOMATION_SCHEMA.PROCESSLIST with TIME_MS column
@@ -16,8 +16,8 @@
16+Comment=16+Comment=
17+2010-0117+2010-01
18+Ported to 5.1.4218+Ported to 5.1.42
19--- a/sql/sql_show.cc19--- a/sql/sql_show.cc 2010-12-02 19:22:40.054024541 +0900
20+++ b/sql/sql_show.cc20+++ b/sql/sql_show.cc 2010-12-02 20:41:41.622941425 +0900
21@@ -1890,7 +1890,8 @@21@@ -1890,7 +1890,8 @@
22 TABLE *table= tables->table;22 TABLE *table= tables->table;
23 CHARSET_INFO *cs= system_charset_info;23 CHARSET_INFO *cs= system_charset_info;
@@ -39,7 +39,7 @@
39 if (schema_table_store_record(thd, table))39 if (schema_table_store_record(thd, table))
40 {40 {
41 mysql_mutex_unlock(&LOCK_thread_count);41 mysql_mutex_unlock(&LOCK_thread_count);
42@@ -7441,6 +7446,8 @@42@@ -7409,6 +7414,8 @@
43 {"STATE", 64, MYSQL_TYPE_STRING, 0, 1, "State", SKIP_OPEN_TABLE},43 {"STATE", 64, MYSQL_TYPE_STRING, 0, 1, "State", SKIP_OPEN_TABLE},
44 {"INFO", PROCESS_LIST_INFO_WIDTH, MYSQL_TYPE_STRING, 0, 1, "Info",44 {"INFO", PROCESS_LIST_INFO_WIDTH, MYSQL_TYPE_STRING, 0, 1, "Info",
45 SKIP_OPEN_TABLE},45 SKIP_OPEN_TABLE},
4646
=== modified file 'patches/mysql-test.diff'
--- patches/mysql-test.diff 2011-09-03 15:15:31 +0000
+++ patches/mysql-test.diff 2011-09-07 14:03:34 +0000
@@ -1247,9 +1247,18 @@
1247 1247
1248 # This is only present in debug builds.1248 # This is only present in debug builds.
1249 delete from t2 where variable_name='innodb_change_buffering_debug';1249 delete from t2 where variable_name='innodb_change_buffering_debug';
1250@@ -77,7 +77,7 @@
1251 where length(variable_name) > 50;
1252
1253 select variable_name as `There should be *no* variables listed below:` from t2
1254- left join t1 on variable_name=test_name where test_name is null;
1255+ left join t1 on variable_name=test_name where test_name is null order by 1;
1256
1257 drop table t1;
1258 drop table t2;
1250--- a/mysql-test/suite/sys_vars/r/all_vars.result1259--- a/mysql-test/suite/sys_vars/r/all_vars.result
1251+++ b/mysql-test/suite/sys_vars/r/all_vars.result1260+++ b/mysql-test/suite/sys_vars/r/all_vars.result
1252@@ -1,8 +1,8 @@1261@@ -1,23 +1,23 @@
1253 create table t1 (test_name text);1262 create table t1 (test_name text);
1254 create table t2 (variable_name text);1263 create table t2 (variable_name text);
1255 load data infile "MYSQLTEST_VARDIR/tmp/sys_vars.all_vars.txt" into table t1;1264 load data infile "MYSQLTEST_VARDIR/tmp/sys_vars.all_vars.txt" into table t1;
@@ -1260,72 +1269,27 @@
1260 delete from t2 where variable_name='innodb_change_buffering_debug';1269 delete from t2 where variable_name='innodb_change_buffering_debug';
1261 update t2 set variable_name= replace(variable_name, "PERFORMANCE_SCHEMA_", "PFS_");1270 update t2 set variable_name= replace(variable_name, "PERFORMANCE_SCHEMA_", "PFS_");
1262 select variable_name as `There should be *no* long test name listed below:` from t21271 select variable_name as `There should be *no* long test name listed below:` from t2
1263@@ -11,13 +11,13 @@1272 where length(variable_name) > 50;
1273 There should be *no* long test name listed below:
1264 select variable_name as `There should be *no* variables listed below:` from t21274 select variable_name as `There should be *no* variables listed below:` from t2
1265 left join t1 on variable_name=test_name where test_name is null;1275-left join t1 on variable_name=test_name where test_name is null;
1276+left join t1 on variable_name=test_name where test_name is null order by 1;
1266 There should be *no* variables listed below:1277 There should be *no* variables listed below:
1267-INNODB_ROLLBACK_SEGMENTS1278-INNODB_ROLLBACK_SEGMENTS
1268-INNODB_STATS_METHOD1279-INNODB_STATS_METHOD
1269 INNODB_FILE_FORMAT_MAX1280 INNODB_FILE_FORMAT_MAX
1281+INNODB_FILE_FORMAT_MAX
1282+INNODB_LARGE_PREFIX
1270 INNODB_LARGE_PREFIX1283 INNODB_LARGE_PREFIX
1271 INNODB_ROLLBACK_SEGMENTS1284 INNODB_ROLLBACK_SEGMENTS
1285+INNODB_ROLLBACK_SEGMENTS
1286+INNODB_STATS_METHOD
1272 INNODB_STATS_METHOD1287 INNODB_STATS_METHOD
1273 INNODB_FILE_FORMAT_MAX1288-INNODB_FILE_FORMAT_MAX
1274 INNODB_LARGE_PREFIX1289-INNODB_LARGE_PREFIX
1275+INNODB_ROLLBACK_SEGMENTS
1276+INNODB_STATS_METHOD
1277 drop table t1;1290 drop table t1;
1278 drop table t2;1291 drop table t2;
1279--- /dev/null1292--- /dev/null
1280+++ b/mysql-test/include/log_grep.inc
1281@@ -0,0 +1,17 @@
1282+--disable_query_log
1283+--echo [log_grep.inc] file: $log_file pattern: $grep_pattern
1284+perl;
1285+ $log_file= $ENV{'log_file'};
1286+ $log_file_full_path= $ENV{'log_file_full_path'};
1287+ $grep_pattern= $ENV{'grep_pattern'};
1288+
1289+ open(FILE, "$log_file_full_path")
1290+ or die("Cannot open file $log_file_full_path: $!\n");
1291+
1292+ $lines = 0;
1293+ while(<FILE>) {
1294+ $lines++ if (/$grep_pattern/);
1295+ }
1296+ close(FILE);
1297+ print "[log_grep.inc] lines: $lines\n";
1298+EOF
1299--- /dev/null
1300+++ b/mysql-test/include/log_start.inc
1301@@ -0,0 +1,16 @@
1302+--let slow_query_log_file_old=`SELECT Variable_value FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE Variable_name = 'slow_query_log_file';`
1303+--let slow_query_log_old=`SELECT Variable_value FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE Variable_name = 'slow_query_log';`
1304+--disable_query_log
1305+--let log_file_full_path = $MYSQLTEST_VARDIR/$log_file
1306+SET GLOBAL slow_query_log=0;
1307+perl;
1308+ $log_file_full_path= $ENV{'log_file_full_path'};
1309+ unlink $log_file_full_path;
1310+ open(FILE, '>', $log_file_full_path)
1311+ or die "Cannot create log file $log_file_full_path, reason: $!";
1312+ close(FILE);
1313+EOF
1314+--echo [log_start.inc] $log_file
1315+EVAL SET GLOBAL slow_query_log_file="$log_file_full_path";
1316+SET GLOBAL slow_query_log=1;
1317+--enable_query_log
1318--- /dev/null
1319+++ b/mysql-test/include/log_stop.inc
1320@@ -0,0 +1,7 @@
1321+--disable_query_log
1322+FLUSH LOGS;
1323+SET GLOBAL slow_query_log=0;
1324+--echo [log_stop.inc] $log_file
1325+EVAL SET GLOBAL slow_query_log_file= "$slow_query_log_file_old";
1326+EVAL SET GLOBAL slow_query_log= $slow_query_log_old ;
1327+--enable_query_log
1328--- /dev/null
1329+++ b/mysql-test/include/percona_server_variables.inc1293+++ b/mysql-test/include/percona_server_variables.inc
1330@@ -0,0 +1,3 @@1294@@ -0,0 +1,3 @@
1331+--source include/have_response_time_distribution.inc1295+--source include/have_response_time_distribution.inc
@@ -1333,7 +1297,7 @@
1333+SELECT Variable_name FROM INFORMATION_SCHEMA.SESSION_VARIABLES ORDER BY 1;1297+SELECT Variable_name FROM INFORMATION_SCHEMA.SESSION_VARIABLES ORDER BY 1;
1334--- /dev/null1298--- /dev/null
1335+++ b/mysql-test/r/percona_server_variables_debug.result1299+++ b/mysql-test/r/percona_server_variables_debug.result
1336@@ -0,0 +1,372 @@1300@@ -0,0 +1,373 @@
1337+SELECT Variable_name FROM INFORMATION_SCHEMA.SESSION_VARIABLES ORDER BY 1;1301+SELECT Variable_name FROM INFORMATION_SCHEMA.SESSION_VARIABLES ORDER BY 1;
1338+Variable_name1302+Variable_name
1339+AUTOCOMMIT1303+AUTOCOMMIT
@@ -1612,6 +1576,7 @@
1612+QUERY_CACHE_STRIP_COMMENTS1576+QUERY_CACHE_STRIP_COMMENTS
1613+QUERY_CACHE_TYPE1577+QUERY_CACHE_TYPE
1614+QUERY_CACHE_WLOCK_INVALIDATE1578+QUERY_CACHE_WLOCK_INVALIDATE
1579+QUERY_EXEC_TIME
1615+QUERY_PREALLOC_SIZE1580+QUERY_PREALLOC_SIZE
1616+QUERY_RESPONSE_TIME_RANGE_BASE1581+QUERY_RESPONSE_TIME_RANGE_BASE
1617+QUERY_RESPONSE_TIME_STATS1582+QUERY_RESPONSE_TIME_STATS
16181583
=== modified file 'patches/response_time_distribution.patch'
--- patches/response_time_distribution.patch 2011-09-03 15:15:31 +0000
+++ patches/response_time_distribution.patch 2011-09-07 14:03:34 +0000
@@ -40,6 +40,2531 @@
40 #define CLIENT_LONG_PASSWORD 1 /* new more secure passwords */40 #define CLIENT_LONG_PASSWORD 1 /* new more secure passwords */
41 #define CLIENT_FOUND_ROWS 2 /* Found instead of affected rows */41 #define CLIENT_FOUND_ROWS 2 /* Found instead of affected rows */
42--- /dev/null42--- /dev/null
43+++ b/mysql-test/include/have_response_time_distribution.inc
44@@ -0,0 +1,4 @@
45+-- require r/have_response_time_distribution.require
46+disable_query_log;
47+show variables like 'have_response_time_distribution';
48+enable_query_log;
49--- /dev/null
50+++ b/mysql-test/include/query_response_time.inc
51@@ -0,0 +1,39 @@
52+SET SESSION query_exec_time=0.1;
53+
54+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
55+EVAL SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=$base;
56+FLUSH QUERY_RESPONSE_TIME;
57+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
58+
59+SET SESSION query_exec_time=0.31; SELECT 1;
60+SET SESSION query_exec_time=0.32; SELECT 1;
61+SET SESSION query_exec_time=0.33; SELECT 1;
62+SET SESSION query_exec_time=0.34; SELECT 1;
63+SET SESSION query_exec_time=0.35; SELECT 1;
64+SET SESSION query_exec_time=0.36; SELECT 1;
65+SET SESSION query_exec_time=0.37; SELECT 1;
66+SET SESSION query_exec_time=0.38; SELECT 1;
67+SET SESSION query_exec_time=0.39; SELECT 1;
68+SET SESSION query_exec_time=0.4; SELECT 1;
69+SET SESSION query_exec_time=1.1; SELECT 1;
70+SET SESSION query_exec_time=1.2; SELECT 1;
71+SET SESSION query_exec_time=1.3; SELECT 1;
72+SET SESSION query_exec_time=1.5; SELECT 1;
73+SET SESSION query_exec_time=1.4; SELECT 1;
74+SET SESSION query_exec_time=0.5; SELECT 1;
75+SET SESSION query_exec_time=2.1; SELECT 1;
76+SET SESSION query_exec_time=2.3; SELECT 1;
77+SET SESSION query_exec_time=2.5; SELECT 1;
78+SET SESSION query_exec_time=3.1; SELECT 1;
79+SET SESSION query_exec_time=4.1; SELECT 1;
80+SET SESSION query_exec_time=5.1; SELECT 1;
81+
82+SET SESSION query_exec_time=0.1;
83+
84+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
85+
86+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
87+SHOW QUERY_RESPONSE_TIME;
88+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
89+
90+SET SESSION query_exec_time=default;
91--- /dev/null
92+++ b/mysql-test/include/query_response_time-replication.inc
93@@ -0,0 +1,57 @@
94+connection master;
95+
96+CREATE TABLE t(id INT);
97+
98+connection slave;
99+SET GLOBAL query_exec_time = 0.1;
100+--source include/restart_slave_sql.inc
101+
102+connection slave;
103+
104+SET SESSION query_exec_time=0.1;
105+
106+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
107+--eval SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=$base
108+FLUSH QUERY_RESPONSE_TIME;
109+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
110+
111+connection master;
112+
113+SET SESSION query_exec_time = 0.31; INSERT INTO t VALUES(1);
114+SET SESSION query_exec_time = 0.32; INSERT INTO t VALUES(1);
115+SET SESSION query_exec_time = 0.33; INSERT INTO t VALUES(1);
116+SET SESSION query_exec_time = 0.34; INSERT INTO t VALUES(1);
117+SET SESSION query_exec_time = 0.35; INSERT INTO t VALUES(1);
118+SET SESSION query_exec_time = 0.36; INSERT INTO t VALUES(1);
119+SET SESSION query_exec_time = 0.37; INSERT INTO t VALUES(1);
120+SET SESSION query_exec_time = 0.38; INSERT INTO t VALUES(1);
121+SET SESSION query_exec_time = 0.39; INSERT INTO t VALUES(1);
122+SET SESSION query_exec_time = 0.4; INSERT INTO t VALUES(1);
123+SET SESSION query_exec_time = 1.1; INSERT INTO t VALUES(1);
124+SET SESSION query_exec_time = 1.2; INSERT INTO t VALUES(1);
125+SET SESSION query_exec_time = 1.3; INSERT INTO t VALUES(1);
126+SET SESSION query_exec_time = 1.5; INSERT INTO t VALUES(1);
127+SET SESSION query_exec_time = 1.4; INSERT INTO t VALUES(1);
128+SET SESSION query_exec_time = 0.5; INSERT INTO t VALUES(1);
129+SET SESSION query_exec_time = 2.1; INSERT INTO t VALUES(1);
130+SET SESSION query_exec_time = 2.3; INSERT INTO t VALUES(1);
131+SET SESSION query_exec_time = 2.5; INSERT INTO t VALUES(1);
132+SET SESSION query_exec_time = 3.1; INSERT INTO t VALUES(1);
133+SET SESSION query_exec_time = 4.1; INSERT INTO t VALUES(1);
134+SET SESSION query_exec_time = 5.1; INSERT INTO t VALUES(1);
135+
136+sync_slave_with_master;
137+
138+connection slave;
139+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
140+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
141+SHOW QUERY_RESPONSE_TIME;
142+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
143+
144+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
145+SET GLOBAL QUERY_RESPONSE_TIME_STATS=default;
146+
147+connection master;
148+DROP TABLE t;
149+
150+sync_slave_with_master;
151--- /dev/null
152+++ b/mysql-test/include/query_response_time-stored.inc
153@@ -0,0 +1,37 @@
154+SET SESSION query_exec_time=0.1;
155+
156+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
157+EVAL SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=$base;
158+FLUSH QUERY_RESPONSE_TIME;
159+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
160+
161+CALL test_f(0.31);
162+CALL test_f(0.32);
163+CALL test_f(0.33);
164+CALL test_f(0.34);
165+CALL test_f(0.35);
166+CALL test_f(0.36);
167+CALL test_f(0.37);
168+CALL test_f(0.38);
169+CALL test_f(0.39);
170+CALL test_f(0.4);
171+CALL test_f(1.1);
172+CALL test_f(1.2);
173+CALL test_f(1.3);
174+CALL test_f(1.5);
175+CALL test_f(1.4);
176+CALL test_f(0.5);
177+CALL test_f(2.1);
178+CALL test_f(2.3);
179+CALL test_f(2.5);
180+CALL test_f(3.1);
181+CALL test_f(4.1);
182+CALL test_f(5.1);
183+
184+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
185+
186+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
187+SHOW QUERY_RESPONSE_TIME;
188+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
189+
190+SET SESSION query_exec_time=default;
191--- /dev/null
192+++ b/mysql-test/r/percona_query_response_time-replication.result
193@@ -0,0 +1,727 @@
194+SET GLOBAL query_exec_time=0.1;
195+include/master-slave.inc
196+[connection master]
197+CREATE TABLE t(id INT);
198+SET GLOBAL query_exec_time = 0.1;
199+include/restart_slave.inc
200+SET SESSION query_exec_time=0.1;
201+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
202+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=1;
203+Warnings:
204+Warning 1292 Truncated incorrect query_response_time_range_base value: '1'
205+FLUSH QUERY_RESPONSE_TIME;
206+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
207+SET SESSION query_exec_time = 0.31;
208+INSERT INTO t VALUES(1);
209+SET SESSION query_exec_time = 0.32;
210+INSERT INTO t VALUES(1);
211+SET SESSION query_exec_time = 0.33;
212+INSERT INTO t VALUES(1);
213+SET SESSION query_exec_time = 0.34;
214+INSERT INTO t VALUES(1);
215+SET SESSION query_exec_time = 0.35;
216+INSERT INTO t VALUES(1);
217+SET SESSION query_exec_time = 0.36;
218+INSERT INTO t VALUES(1);
219+SET SESSION query_exec_time = 0.37;
220+INSERT INTO t VALUES(1);
221+SET SESSION query_exec_time = 0.38;
222+INSERT INTO t VALUES(1);
223+SET SESSION query_exec_time = 0.39;
224+INSERT INTO t VALUES(1);
225+SET SESSION query_exec_time = 0.4;
226+INSERT INTO t VALUES(1);
227+SET SESSION query_exec_time = 1.1;
228+INSERT INTO t VALUES(1);
229+SET SESSION query_exec_time = 1.2;
230+INSERT INTO t VALUES(1);
231+SET SESSION query_exec_time = 1.3;
232+INSERT INTO t VALUES(1);
233+SET SESSION query_exec_time = 1.5;
234+INSERT INTO t VALUES(1);
235+SET SESSION query_exec_time = 1.4;
236+INSERT INTO t VALUES(1);
237+SET SESSION query_exec_time = 0.5;
238+INSERT INTO t VALUES(1);
239+SET SESSION query_exec_time = 2.1;
240+INSERT INTO t VALUES(1);
241+SET SESSION query_exec_time = 2.3;
242+INSERT INTO t VALUES(1);
243+SET SESSION query_exec_time = 2.5;
244+INSERT INTO t VALUES(1);
245+SET SESSION query_exec_time = 3.1;
246+INSERT INTO t VALUES(1);
247+SET SESSION query_exec_time = 4.1;
248+INSERT INTO t VALUES(1);
249+SET SESSION query_exec_time = 5.1;
250+INSERT INTO t VALUES(1);
251+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
252+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
253+Variable_name Value
254+query_response_time_range_base 2
255+SHOW QUERY_RESPONSE_TIME;
256+
257+ 0.000001 2 0.000000
258+ 0.000003 0 0.000000
259+ 0.000007 0 0.000000
260+ 0.000015 0 0.000000
261+ 0.000030 0 0.000000
262+ 0.000061 0 0.000000
263+ 0.000122 0 0.000000
264+ 0.000244 0 0.000000
265+ 0.000488 0 0.000000
266+ 0.000976 0 0.000000
267+ 0.001953 0 0.000000
268+ 0.003906 0 0.000000
269+ 0.007812 0 0.000000
270+ 0.015625 0 0.000000
271+ 0.031250 0 0.000000
272+ 0.062500 0 0.000000
273+ 0.125000 3 0.300000
274+ 0.250000 0 0.000000
275+ 0.500000 30 10.650000
276+ 1.000000 3 1.500000
277+ 2.000000 15 19.500000
278+ 4.000000 12 30.000000
279+ 8.000000 6 27.599997
280+ 16.000000 0 0.000000
281+ 32.000000 0 0.000000
282+ 64.000000 0 0.000000
283+ 128.000000 0 0.000000
284+ 256.000000 0 0.000000
285+ 512.000000 0 0.000000
286+ 1024.000000 0 0.000000
287+ 2048.000000 0 0.000000
288+ 4096.000000 0 0.000000
289+ 8192.000000 0 0.000000
290+ 16384.000000 0 0.000000
291+ 32768.000000 0 0.000000
292+ 65536.000000 0 0.000000
293+ 131072.000000 0 0.000000
294+ 262144.000000 0 0.000000
295+ 524288.000000 0 0.000000
296+ 1048576.00000 0 0.000000
297+ 2097152.00000 0 0.000000
298+ 4194304.00000 0 0.000000
299+ 8388608.00000 0 0.000000
300+TOO LONG 0 TOO LONG
301+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
302+time count total
303+ 0.000001 2 0.000000
304+ 0.000003 0 0.000000
305+ 0.000007 0 0.000000
306+ 0.000015 0 0.000000
307+ 0.000030 0 0.000000
308+ 0.000061 0 0.000000
309+ 0.000122 0 0.000000
310+ 0.000244 0 0.000000
311+ 0.000488 0 0.000000
312+ 0.000976 0 0.000000
313+ 0.001953 0 0.000000
314+ 0.003906 0 0.000000
315+ 0.007812 0 0.000000
316+ 0.015625 0 0.000000
317+ 0.031250 0 0.000000
318+ 0.062500 0 0.000000
319+ 0.125000 4 0.400000
320+ 0.250000 0 0.000000
321+ 0.500000 30 10.650000
322+ 1.000000 3 1.500000
323+ 2.000000 15 19.500000
324+ 4.000000 12 30.000000
325+ 8.000000 6 27.599997
326+ 16.000000 0 0.000000
327+ 32.000000 0 0.000000
328+ 64.000000 0 0.000000
329+ 128.000000 0 0.000000
330+ 256.000000 0 0.000000
331+ 512.000000 0 0.000000
332+ 1024.000000 0 0.000000
333+ 2048.000000 0 0.000000
334+ 4096.000000 0 0.000000
335+ 8192.000000 0 0.000000
336+ 16384.000000 0 0.000000
337+ 32768.000000 0 0.000000
338+ 65536.000000 0 0.000000
339+ 131072.000000 0 0.000000
340+ 262144.000000 0 0.000000
341+ 524288.000000 0 0.000000
342+ 1048576.00000 0 0.000000
343+ 2097152.00000 0 0.000000
344+ 4194304.00000 0 0.000000
345+ 8388608.00000 0 0.000000
346+TOO LONG 0 TOO LONG
347+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
348+SET GLOBAL QUERY_RESPONSE_TIME_STATS=default;
349+DROP TABLE t;
350+CREATE TABLE t(id INT);
351+SET GLOBAL query_exec_time = 0.1;
352+include/restart_slave.inc
353+SET SESSION query_exec_time=0.1;
354+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
355+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=2;
356+FLUSH QUERY_RESPONSE_TIME;
357+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
358+SET SESSION query_exec_time = 0.31;
359+INSERT INTO t VALUES(1);
360+SET SESSION query_exec_time = 0.32;
361+INSERT INTO t VALUES(1);
362+SET SESSION query_exec_time = 0.33;
363+INSERT INTO t VALUES(1);
364+SET SESSION query_exec_time = 0.34;
365+INSERT INTO t VALUES(1);
366+SET SESSION query_exec_time = 0.35;
367+INSERT INTO t VALUES(1);
368+SET SESSION query_exec_time = 0.36;
369+INSERT INTO t VALUES(1);
370+SET SESSION query_exec_time = 0.37;
371+INSERT INTO t VALUES(1);
372+SET SESSION query_exec_time = 0.38;
373+INSERT INTO t VALUES(1);
374+SET SESSION query_exec_time = 0.39;
375+INSERT INTO t VALUES(1);
376+SET SESSION query_exec_time = 0.4;
377+INSERT INTO t VALUES(1);
378+SET SESSION query_exec_time = 1.1;
379+INSERT INTO t VALUES(1);
380+SET SESSION query_exec_time = 1.2;
381+INSERT INTO t VALUES(1);
382+SET SESSION query_exec_time = 1.3;
383+INSERT INTO t VALUES(1);
384+SET SESSION query_exec_time = 1.5;
385+INSERT INTO t VALUES(1);
386+SET SESSION query_exec_time = 1.4;
387+INSERT INTO t VALUES(1);
388+SET SESSION query_exec_time = 0.5;
389+INSERT INTO t VALUES(1);
390+SET SESSION query_exec_time = 2.1;
391+INSERT INTO t VALUES(1);
392+SET SESSION query_exec_time = 2.3;
393+INSERT INTO t VALUES(1);
394+SET SESSION query_exec_time = 2.5;
395+INSERT INTO t VALUES(1);
396+SET SESSION query_exec_time = 3.1;
397+INSERT INTO t VALUES(1);
398+SET SESSION query_exec_time = 4.1;
399+INSERT INTO t VALUES(1);
400+SET SESSION query_exec_time = 5.1;
401+INSERT INTO t VALUES(1);
402+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
403+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
404+Variable_name Value
405+query_response_time_range_base 2
406+SHOW QUERY_RESPONSE_TIME;
407+
408+ 0.000001 2 0.000000
409+ 0.000003 0 0.000000
410+ 0.000007 0 0.000000
411+ 0.000015 0 0.000000
412+ 0.000030 0 0.000000
413+ 0.000061 0 0.000000
414+ 0.000122 0 0.000000
415+ 0.000244 0 0.000000
416+ 0.000488 0 0.000000
417+ 0.000976 0 0.000000
418+ 0.001953 0 0.000000
419+ 0.003906 0 0.000000
420+ 0.007812 0 0.000000
421+ 0.015625 0 0.000000
422+ 0.031250 0 0.000000
423+ 0.062500 0 0.000000
424+ 0.125000 3 0.300000
425+ 0.250000 0 0.000000
426+ 0.500000 30 10.650000
427+ 1.000000 3 1.500000
428+ 2.000000 15 19.500000
429+ 4.000000 12 30.000000
430+ 8.000000 6 27.599997
431+ 16.000000 0 0.000000
432+ 32.000000 0 0.000000
433+ 64.000000 0 0.000000
434+ 128.000000 0 0.000000
435+ 256.000000 0 0.000000
436+ 512.000000 0 0.000000
437+ 1024.000000 0 0.000000
438+ 2048.000000 0 0.000000
439+ 4096.000000 0 0.000000
440+ 8192.000000 0 0.000000
441+ 16384.000000 0 0.000000
442+ 32768.000000 0 0.000000
443+ 65536.000000 0 0.000000
444+ 131072.000000 0 0.000000
445+ 262144.000000 0 0.000000
446+ 524288.000000 0 0.000000
447+ 1048576.00000 0 0.000000
448+ 2097152.00000 0 0.000000
449+ 4194304.00000 0 0.000000
450+ 8388608.00000 0 0.000000
451+TOO LONG 0 TOO LONG
452+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
453+time count total
454+ 0.000001 2 0.000000
455+ 0.000003 0 0.000000
456+ 0.000007 0 0.000000
457+ 0.000015 0 0.000000
458+ 0.000030 0 0.000000
459+ 0.000061 0 0.000000
460+ 0.000122 0 0.000000
461+ 0.000244 0 0.000000
462+ 0.000488 0 0.000000
463+ 0.000976 0 0.000000
464+ 0.001953 0 0.000000
465+ 0.003906 0 0.000000
466+ 0.007812 0 0.000000
467+ 0.015625 0 0.000000
468+ 0.031250 0 0.000000
469+ 0.062500 0 0.000000
470+ 0.125000 4 0.400000
471+ 0.250000 0 0.000000
472+ 0.500000 30 10.650000
473+ 1.000000 3 1.500000
474+ 2.000000 15 19.500000
475+ 4.000000 12 30.000000
476+ 8.000000 6 27.599997
477+ 16.000000 0 0.000000
478+ 32.000000 0 0.000000
479+ 64.000000 0 0.000000
480+ 128.000000 0 0.000000
481+ 256.000000 0 0.000000
482+ 512.000000 0 0.000000
483+ 1024.000000 0 0.000000
484+ 2048.000000 0 0.000000
485+ 4096.000000 0 0.000000
486+ 8192.000000 0 0.000000
487+ 16384.000000 0 0.000000
488+ 32768.000000 0 0.000000
489+ 65536.000000 0 0.000000
490+ 131072.000000 0 0.000000
491+ 262144.000000 0 0.000000
492+ 524288.000000 0 0.000000
493+ 1048576.00000 0 0.000000
494+ 2097152.00000 0 0.000000
495+ 4194304.00000 0 0.000000
496+ 8388608.00000 0 0.000000
497+TOO LONG 0 TOO LONG
498+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
499+SET GLOBAL QUERY_RESPONSE_TIME_STATS=default;
500+DROP TABLE t;
501+CREATE TABLE t(id INT);
502+SET GLOBAL query_exec_time = 0.1;
503+include/restart_slave.inc
504+SET SESSION query_exec_time=0.1;
505+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
506+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=10;
507+FLUSH QUERY_RESPONSE_TIME;
508+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
509+SET SESSION query_exec_time = 0.31;
510+INSERT INTO t VALUES(1);
511+SET SESSION query_exec_time = 0.32;
512+INSERT INTO t VALUES(1);
513+SET SESSION query_exec_time = 0.33;
514+INSERT INTO t VALUES(1);
515+SET SESSION query_exec_time = 0.34;
516+INSERT INTO t VALUES(1);
517+SET SESSION query_exec_time = 0.35;
518+INSERT INTO t VALUES(1);
519+SET SESSION query_exec_time = 0.36;
520+INSERT INTO t VALUES(1);
521+SET SESSION query_exec_time = 0.37;
522+INSERT INTO t VALUES(1);
523+SET SESSION query_exec_time = 0.38;
524+INSERT INTO t VALUES(1);
525+SET SESSION query_exec_time = 0.39;
526+INSERT INTO t VALUES(1);
527+SET SESSION query_exec_time = 0.4;
528+INSERT INTO t VALUES(1);
529+SET SESSION query_exec_time = 1.1;
530+INSERT INTO t VALUES(1);
531+SET SESSION query_exec_time = 1.2;
532+INSERT INTO t VALUES(1);
533+SET SESSION query_exec_time = 1.3;
534+INSERT INTO t VALUES(1);
535+SET SESSION query_exec_time = 1.5;
536+INSERT INTO t VALUES(1);
537+SET SESSION query_exec_time = 1.4;
538+INSERT INTO t VALUES(1);
539+SET SESSION query_exec_time = 0.5;
540+INSERT INTO t VALUES(1);
541+SET SESSION query_exec_time = 2.1;
542+INSERT INTO t VALUES(1);
543+SET SESSION query_exec_time = 2.3;
544+INSERT INTO t VALUES(1);
545+SET SESSION query_exec_time = 2.5;
546+INSERT INTO t VALUES(1);
547+SET SESSION query_exec_time = 3.1;
548+INSERT INTO t VALUES(1);
549+SET SESSION query_exec_time = 4.1;
550+INSERT INTO t VALUES(1);
551+SET SESSION query_exec_time = 5.1;
552+INSERT INTO t VALUES(1);
553+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
554+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
555+Variable_name Value
556+query_response_time_range_base 10
557+SHOW QUERY_RESPONSE_TIME;
558+
559+ 0.000001 2 0.000000
560+ 0.000010 0 0.000000
561+ 0.000100 0 0.000000
562+ 0.001000 0 0.000000
563+ 0.010000 0 0.000000
564+ 0.100000 0 0.000000
565+ 1.000000 36 12.450000
566+ 10.000000 33 77.099997
567+ 100.000000 0 0.000000
568+ 1000.000000 0 0.000000
569+ 10000.000000 0 0.000000
570+ 100000.000000 0 0.000000
571+ 1000000.00000 0 0.000000
572+TOO LONG 0 TOO LONG
573+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
574+time count total
575+ 0.000001 2 0.000000
576+ 0.000010 0 0.000000
577+ 0.000100 0 0.000000
578+ 0.001000 0 0.000000
579+ 0.010000 0 0.000000
580+ 0.100000 0 0.000000
581+ 1.000000 37 12.550000
582+ 10.000000 33 77.099997
583+ 100.000000 0 0.000000
584+ 1000.000000 0 0.000000
585+ 10000.000000 0 0.000000
586+ 100000.000000 0 0.000000
587+ 1000000.00000 0 0.000000
588+TOO LONG 0 TOO LONG
589+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
590+SET GLOBAL QUERY_RESPONSE_TIME_STATS=default;
591+DROP TABLE t;
592+CREATE TABLE t(id INT);
593+SET GLOBAL query_exec_time = 0.1;
594+include/restart_slave.inc
595+SET SESSION query_exec_time=0.1;
596+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
597+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=7;
598+FLUSH QUERY_RESPONSE_TIME;
599+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
600+SET SESSION query_exec_time = 0.31;
601+INSERT INTO t VALUES(1);
602+SET SESSION query_exec_time = 0.32;
603+INSERT INTO t VALUES(1);
604+SET SESSION query_exec_time = 0.33;
605+INSERT INTO t VALUES(1);
606+SET SESSION query_exec_time = 0.34;
607+INSERT INTO t VALUES(1);
608+SET SESSION query_exec_time = 0.35;
609+INSERT INTO t VALUES(1);
610+SET SESSION query_exec_time = 0.36;
611+INSERT INTO t VALUES(1);
612+SET SESSION query_exec_time = 0.37;
613+INSERT INTO t VALUES(1);
614+SET SESSION query_exec_time = 0.38;
615+INSERT INTO t VALUES(1);
616+SET SESSION query_exec_time = 0.39;
617+INSERT INTO t VALUES(1);
618+SET SESSION query_exec_time = 0.4;
619+INSERT INTO t VALUES(1);
620+SET SESSION query_exec_time = 1.1;
621+INSERT INTO t VALUES(1);
622+SET SESSION query_exec_time = 1.2;
623+INSERT INTO t VALUES(1);
624+SET SESSION query_exec_time = 1.3;
625+INSERT INTO t VALUES(1);
626+SET SESSION query_exec_time = 1.5;
627+INSERT INTO t VALUES(1);
628+SET SESSION query_exec_time = 1.4;
629+INSERT INTO t VALUES(1);
630+SET SESSION query_exec_time = 0.5;
631+INSERT INTO t VALUES(1);
632+SET SESSION query_exec_time = 2.1;
633+INSERT INTO t VALUES(1);
634+SET SESSION query_exec_time = 2.3;
635+INSERT INTO t VALUES(1);
636+SET SESSION query_exec_time = 2.5;
637+INSERT INTO t VALUES(1);
638+SET SESSION query_exec_time = 3.1;
639+INSERT INTO t VALUES(1);
640+SET SESSION query_exec_time = 4.1;
641+INSERT INTO t VALUES(1);
642+SET SESSION query_exec_time = 5.1;
643+INSERT INTO t VALUES(1);
644+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
645+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
646+Variable_name Value
647+query_response_time_range_base 7
648+SHOW QUERY_RESPONSE_TIME;
649+
650+ 0.000001 2 0.000000
651+ 0.000008 0 0.000000
652+ 0.000059 0 0.000000
653+ 0.000416 0 0.000000
654+ 0.002915 0 0.000000
655+ 0.020408 0 0.000000
656+ 0.142857 3 0.300000
657+ 1.000000 33 12.150000
658+ 7.000000 33 77.099997
659+ 49.000000 0 0.000000
660+ 343.000000 0 0.000000
661+ 2401.000000 0 0.000000
662+ 16807.000000 0 0.000000
663+ 117649.000000 0 0.000000
664+ 823543.000000 0 0.000000
665+ 5764801.00000 0 0.000000
666+TOO LONG 0 TOO LONG
667+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
668+time count total
669+ 0.000001 2 0.000000
670+ 0.000008 0 0.000000
671+ 0.000059 0 0.000000
672+ 0.000416 0 0.000000
673+ 0.002915 0 0.000000
674+ 0.020408 0 0.000000
675+ 0.142857 4 0.400000
676+ 1.000000 33 12.150000
677+ 7.000000 33 77.099997
678+ 49.000000 0 0.000000
679+ 343.000000 0 0.000000
680+ 2401.000000 0 0.000000
681+ 16807.000000 0 0.000000
682+ 117649.000000 0 0.000000
683+ 823543.000000 0 0.000000
684+ 5764801.00000 0 0.000000
685+TOO LONG 0 TOO LONG
686+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
687+SET GLOBAL QUERY_RESPONSE_TIME_STATS=default;
688+DROP TABLE t;
689+CREATE TABLE t(id INT);
690+SET GLOBAL query_exec_time = 0.1;
691+include/restart_slave.inc
692+SET SESSION query_exec_time=0.1;
693+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
694+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=156;
695+FLUSH QUERY_RESPONSE_TIME;
696+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
697+SET SESSION query_exec_time = 0.31;
698+INSERT INTO t VALUES(1);
699+SET SESSION query_exec_time = 0.32;
700+INSERT INTO t VALUES(1);
701+SET SESSION query_exec_time = 0.33;
702+INSERT INTO t VALUES(1);
703+SET SESSION query_exec_time = 0.34;
704+INSERT INTO t VALUES(1);
705+SET SESSION query_exec_time = 0.35;
706+INSERT INTO t VALUES(1);
707+SET SESSION query_exec_time = 0.36;
708+INSERT INTO t VALUES(1);
709+SET SESSION query_exec_time = 0.37;
710+INSERT INTO t VALUES(1);
711+SET SESSION query_exec_time = 0.38;
712+INSERT INTO t VALUES(1);
713+SET SESSION query_exec_time = 0.39;
714+INSERT INTO t VALUES(1);
715+SET SESSION query_exec_time = 0.4;
716+INSERT INTO t VALUES(1);
717+SET SESSION query_exec_time = 1.1;
718+INSERT INTO t VALUES(1);
719+SET SESSION query_exec_time = 1.2;
720+INSERT INTO t VALUES(1);
721+SET SESSION query_exec_time = 1.3;
722+INSERT INTO t VALUES(1);
723+SET SESSION query_exec_time = 1.5;
724+INSERT INTO t VALUES(1);
725+SET SESSION query_exec_time = 1.4;
726+INSERT INTO t VALUES(1);
727+SET SESSION query_exec_time = 0.5;
728+INSERT INTO t VALUES(1);
729+SET SESSION query_exec_time = 2.1;
730+INSERT INTO t VALUES(1);
731+SET SESSION query_exec_time = 2.3;
732+INSERT INTO t VALUES(1);
733+SET SESSION query_exec_time = 2.5;
734+INSERT INTO t VALUES(1);
735+SET SESSION query_exec_time = 3.1;
736+INSERT INTO t VALUES(1);
737+SET SESSION query_exec_time = 4.1;
738+INSERT INTO t VALUES(1);
739+SET SESSION query_exec_time = 5.1;
740+INSERT INTO t VALUES(1);
741+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
742+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
743+Variable_name Value
744+query_response_time_range_base 156
745+SHOW QUERY_RESPONSE_TIME;
746+
747+ 0.000041 2 0.000000
748+ 0.006410 0 0.000000
749+ 1.000000 36 12.450000
750+ 156.000000 33 77.099997
751+ 24336.000000 0 0.000000
752+ 3796416.00000 0 0.000000
753+TOO LONG 0 TOO LONG
754+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
755+time count total
756+ 0.000041 2 0.000000
757+ 0.006410 0 0.000000
758+ 1.000000 37 12.550000
759+ 156.000000 33 77.099997
760+ 24336.000000 0 0.000000
761+ 3796416.00000 0 0.000000
762+TOO LONG 0 TOO LONG
763+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
764+SET GLOBAL QUERY_RESPONSE_TIME_STATS=default;
765+DROP TABLE t;
766+CREATE TABLE t(id INT);
767+SET GLOBAL query_exec_time = 0.1;
768+include/restart_slave.inc
769+SET SESSION query_exec_time=0.1;
770+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
771+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=1000;
772+FLUSH QUERY_RESPONSE_TIME;
773+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
774+SET SESSION query_exec_time = 0.31;
775+INSERT INTO t VALUES(1);
776+SET SESSION query_exec_time = 0.32;
777+INSERT INTO t VALUES(1);
778+SET SESSION query_exec_time = 0.33;
779+INSERT INTO t VALUES(1);
780+SET SESSION query_exec_time = 0.34;
781+INSERT INTO t VALUES(1);
782+SET SESSION query_exec_time = 0.35;
783+INSERT INTO t VALUES(1);
784+SET SESSION query_exec_time = 0.36;
785+INSERT INTO t VALUES(1);
786+SET SESSION query_exec_time = 0.37;
787+INSERT INTO t VALUES(1);
788+SET SESSION query_exec_time = 0.38;
789+INSERT INTO t VALUES(1);
790+SET SESSION query_exec_time = 0.39;
791+INSERT INTO t VALUES(1);
792+SET SESSION query_exec_time = 0.4;
793+INSERT INTO t VALUES(1);
794+SET SESSION query_exec_time = 1.1;
795+INSERT INTO t VALUES(1);
796+SET SESSION query_exec_time = 1.2;
797+INSERT INTO t VALUES(1);
798+SET SESSION query_exec_time = 1.3;
799+INSERT INTO t VALUES(1);
800+SET SESSION query_exec_time = 1.5;
801+INSERT INTO t VALUES(1);
802+SET SESSION query_exec_time = 1.4;
803+INSERT INTO t VALUES(1);
804+SET SESSION query_exec_time = 0.5;
805+INSERT INTO t VALUES(1);
806+SET SESSION query_exec_time = 2.1;
807+INSERT INTO t VALUES(1);
808+SET SESSION query_exec_time = 2.3;
809+INSERT INTO t VALUES(1);
810+SET SESSION query_exec_time = 2.5;
811+INSERT INTO t VALUES(1);
812+SET SESSION query_exec_time = 3.1;
813+INSERT INTO t VALUES(1);
814+SET SESSION query_exec_time = 4.1;
815+INSERT INTO t VALUES(1);
816+SET SESSION query_exec_time = 5.1;
817+INSERT INTO t VALUES(1);
818+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
819+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
820+Variable_name Value
821+query_response_time_range_base 1000
822+SHOW QUERY_RESPONSE_TIME;
823+
824+ 0.000001 2 0.000000
825+ 0.001000 0 0.000000
826+ 1.000000 36 12.450000
827+ 1000.000000 33 77.099997
828+ 1000000.00000 0 0.000000
829+TOO LONG 0 TOO LONG
830+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
831+time count total
832+ 0.000001 2 0.000000
833+ 0.001000 0 0.000000
834+ 1.000000 37 12.550000
835+ 1000.000000 33 77.099997
836+ 1000000.00000 0 0.000000
837+TOO LONG 0 TOO LONG
838+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
839+SET GLOBAL QUERY_RESPONSE_TIME_STATS=default;
840+DROP TABLE t;
841+CREATE TABLE t(id INT);
842+SET GLOBAL query_exec_time = 0.1;
843+include/restart_slave.inc
844+SET SESSION query_exec_time=0.1;
845+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
846+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=1001;
847+Warnings:
848+Warning 1292 Truncated incorrect query_response_time_range_base value: '1001'
849+FLUSH QUERY_RESPONSE_TIME;
850+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
851+SET SESSION query_exec_time = 0.31;
852+INSERT INTO t VALUES(1);
853+SET SESSION query_exec_time = 0.32;
854+INSERT INTO t VALUES(1);
855+SET SESSION query_exec_time = 0.33;
856+INSERT INTO t VALUES(1);
857+SET SESSION query_exec_time = 0.34;
858+INSERT INTO t VALUES(1);
859+SET SESSION query_exec_time = 0.35;
860+INSERT INTO t VALUES(1);
861+SET SESSION query_exec_time = 0.36;
862+INSERT INTO t VALUES(1);
863+SET SESSION query_exec_time = 0.37;
864+INSERT INTO t VALUES(1);
865+SET SESSION query_exec_time = 0.38;
866+INSERT INTO t VALUES(1);
867+SET SESSION query_exec_time = 0.39;
868+INSERT INTO t VALUES(1);
869+SET SESSION query_exec_time = 0.4;
870+INSERT INTO t VALUES(1);
871+SET SESSION query_exec_time = 1.1;
872+INSERT INTO t VALUES(1);
873+SET SESSION query_exec_time = 1.2;
874+INSERT INTO t VALUES(1);
875+SET SESSION query_exec_time = 1.3;
876+INSERT INTO t VALUES(1);
877+SET SESSION query_exec_time = 1.5;
878+INSERT INTO t VALUES(1);
879+SET SESSION query_exec_time = 1.4;
880+INSERT INTO t VALUES(1);
881+SET SESSION query_exec_time = 0.5;
882+INSERT INTO t VALUES(1);
883+SET SESSION query_exec_time = 2.1;
884+INSERT INTO t VALUES(1);
885+SET SESSION query_exec_time = 2.3;
886+INSERT INTO t VALUES(1);
887+SET SESSION query_exec_time = 2.5;
888+INSERT INTO t VALUES(1);
889+SET SESSION query_exec_time = 3.1;
890+INSERT INTO t VALUES(1);
891+SET SESSION query_exec_time = 4.1;
892+INSERT INTO t VALUES(1);
893+SET SESSION query_exec_time = 5.1;
894+INSERT INTO t VALUES(1);
895+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
896+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
897+Variable_name Value
898+query_response_time_range_base 1000
899+SHOW QUERY_RESPONSE_TIME;
900+
901+ 0.000001 2 0.000000
902+ 0.001000 0 0.000000
903+ 1.000000 36 12.450000
904+ 1000.000000 33 77.099997
905+ 1000000.00000 0 0.000000
906+TOO LONG 0 TOO LONG
907+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
908+time count total
909+ 0.000001 2 0.000000
910+ 0.001000 0 0.000000
911+ 1.000000 37 12.550000
912+ 1000.000000 33 77.099997
913+ 1000000.00000 0 0.000000
914+TOO LONG 0 TOO LONG
915+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
916+SET GLOBAL QUERY_RESPONSE_TIME_STATS=default;
917+DROP TABLE t;
918+include/rpl_end.inc
919+SET GLOBAL query_exec_time=default;
920+SET GLOBAL query_exec_time=default;
921--- /dev/null
922+++ b/mysql-test/r/percona_query_response_time.result
923@@ -0,0 +1,1003 @@
924+SET SESSION query_exec_time=0.1;
925+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
926+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=1;
927+Warnings:
928+Warning 1292 Truncated incorrect query_response_time_range_base value: '1'
929+FLUSH QUERY_RESPONSE_TIME;
930+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
931+SET SESSION query_exec_time=0.31;
932+SELECT 1;
933+1
934+1
935+SET SESSION query_exec_time=0.32;
936+SELECT 1;
937+1
938+1
939+SET SESSION query_exec_time=0.33;
940+SELECT 1;
941+1
942+1
943+SET SESSION query_exec_time=0.34;
944+SELECT 1;
945+1
946+1
947+SET SESSION query_exec_time=0.35;
948+SELECT 1;
949+1
950+1
951+SET SESSION query_exec_time=0.36;
952+SELECT 1;
953+1
954+1
955+SET SESSION query_exec_time=0.37;
956+SELECT 1;
957+1
958+1
959+SET SESSION query_exec_time=0.38;
960+SELECT 1;
961+1
962+1
963+SET SESSION query_exec_time=0.39;
964+SELECT 1;
965+1
966+1
967+SET SESSION query_exec_time=0.4;
968+SELECT 1;
969+1
970+1
971+SET SESSION query_exec_time=1.1;
972+SELECT 1;
973+1
974+1
975+SET SESSION query_exec_time=1.2;
976+SELECT 1;
977+1
978+1
979+SET SESSION query_exec_time=1.3;
980+SELECT 1;
981+1
982+1
983+SET SESSION query_exec_time=1.5;
984+SELECT 1;
985+1
986+1
987+SET SESSION query_exec_time=1.4;
988+SELECT 1;
989+1
990+1
991+SET SESSION query_exec_time=0.5;
992+SELECT 1;
993+1
994+1
995+SET SESSION query_exec_time=2.1;
996+SELECT 1;
997+1
998+1
999+SET SESSION query_exec_time=2.3;
1000+SELECT 1;
1001+1
1002+1
1003+SET SESSION query_exec_time=2.5;
1004+SELECT 1;
1005+1
1006+1
1007+SET SESSION query_exec_time=3.1;
1008+SELECT 1;
1009+1
1010+1
1011+SET SESSION query_exec_time=4.1;
1012+SELECT 1;
1013+1
1014+1
1015+SET SESSION query_exec_time=5.1;
1016+SELECT 1;
1017+1
1018+1
1019+SET SESSION query_exec_time=0.1;
1020+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1021+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1022+Variable_name Value
1023+query_response_time_range_base 2
1024+SHOW QUERY_RESPONSE_TIME;
1025+
1026+ 0.000001 25 0.000000
1027+ 0.000003 0 0.000000
1028+ 0.000007 0 0.000000
1029+ 0.000015 0 0.000000
1030+ 0.000030 0 0.000000
1031+ 0.000061 0 0.000000
1032+ 0.000122 0 0.000000
1033+ 0.000244 0 0.000000
1034+ 0.000488 0 0.000000
1035+ 0.000976 0 0.000000
1036+ 0.001953 0 0.000000
1037+ 0.003906 0 0.000000
1038+ 0.007812 0 0.000000
1039+ 0.015625 0 0.000000
1040+ 0.031250 0 0.000000
1041+ 0.062500 0 0.000000
1042+ 0.125000 2 0.200000
1043+ 0.250000 0 0.000000
1044+ 0.500000 10 3.550000
1045+ 1.000000 1 0.500000
1046+ 2.000000 5 6.500000
1047+ 4.000000 4 10.000000
1048+ 8.000000 2 9.199999
1049+ 16.000000 0 0.000000
1050+ 32.000000 0 0.000000
1051+ 64.000000 0 0.000000
1052+ 128.000000 0 0.000000
1053+ 256.000000 0 0.000000
1054+ 512.000000 0 0.000000
1055+ 1024.000000 0 0.000000
1056+ 2048.000000 0 0.000000
1057+ 4096.000000 0 0.000000
1058+ 8192.000000 0 0.000000
1059+ 16384.000000 0 0.000000
1060+ 32768.000000 0 0.000000
1061+ 65536.000000 0 0.000000
1062+ 131072.000000 0 0.000000
1063+ 262144.000000 0 0.000000
1064+ 524288.000000 0 0.000000
1065+ 1048576.00000 0 0.000000
1066+ 2097152.00000 0 0.000000
1067+ 4194304.00000 0 0.000000
1068+ 8388608.00000 0 0.000000
1069+TOO LONG 0 TOO LONG
1070+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1071+time count total
1072+ 0.000001 25 0.000000
1073+ 0.000003 0 0.000000
1074+ 0.000007 0 0.000000
1075+ 0.000015 0 0.000000
1076+ 0.000030 0 0.000000
1077+ 0.000061 0 0.000000
1078+ 0.000122 0 0.000000
1079+ 0.000244 0 0.000000
1080+ 0.000488 0 0.000000
1081+ 0.000976 0 0.000000
1082+ 0.001953 0 0.000000
1083+ 0.003906 0 0.000000
1084+ 0.007812 0 0.000000
1085+ 0.015625 0 0.000000
1086+ 0.031250 0 0.000000
1087+ 0.062500 0 0.000000
1088+ 0.125000 3 0.300000
1089+ 0.250000 0 0.000000
1090+ 0.500000 10 3.550000
1091+ 1.000000 1 0.500000
1092+ 2.000000 5 6.500000
1093+ 4.000000 4 10.000000
1094+ 8.000000 2 9.199999
1095+ 16.000000 0 0.000000
1096+ 32.000000 0 0.000000
1097+ 64.000000 0 0.000000
1098+ 128.000000 0 0.000000
1099+ 256.000000 0 0.000000
1100+ 512.000000 0 0.000000
1101+ 1024.000000 0 0.000000
1102+ 2048.000000 0 0.000000
1103+ 4096.000000 0 0.000000
1104+ 8192.000000 0 0.000000
1105+ 16384.000000 0 0.000000
1106+ 32768.000000 0 0.000000
1107+ 65536.000000 0 0.000000
1108+ 131072.000000 0 0.000000
1109+ 262144.000000 0 0.000000
1110+ 524288.000000 0 0.000000
1111+ 1048576.00000 0 0.000000
1112+ 2097152.00000 0 0.000000
1113+ 4194304.00000 0 0.000000
1114+ 8388608.00000 0 0.000000
1115+TOO LONG 0 TOO LONG
1116+SET SESSION query_exec_time=default;
1117+SET SESSION query_exec_time=0.1;
1118+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1119+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=2;
1120+FLUSH QUERY_RESPONSE_TIME;
1121+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
1122+SET SESSION query_exec_time=0.31;
1123+SELECT 1;
1124+1
1125+1
1126+SET SESSION query_exec_time=0.32;
1127+SELECT 1;
1128+1
1129+1
1130+SET SESSION query_exec_time=0.33;
1131+SELECT 1;
1132+1
1133+1
1134+SET SESSION query_exec_time=0.34;
1135+SELECT 1;
1136+1
1137+1
1138+SET SESSION query_exec_time=0.35;
1139+SELECT 1;
1140+1
1141+1
1142+SET SESSION query_exec_time=0.36;
1143+SELECT 1;
1144+1
1145+1
1146+SET SESSION query_exec_time=0.37;
1147+SELECT 1;
1148+1
1149+1
1150+SET SESSION query_exec_time=0.38;
1151+SELECT 1;
1152+1
1153+1
1154+SET SESSION query_exec_time=0.39;
1155+SELECT 1;
1156+1
1157+1
1158+SET SESSION query_exec_time=0.4;
1159+SELECT 1;
1160+1
1161+1
1162+SET SESSION query_exec_time=1.1;
1163+SELECT 1;
1164+1
1165+1
1166+SET SESSION query_exec_time=1.2;
1167+SELECT 1;
1168+1
1169+1
1170+SET SESSION query_exec_time=1.3;
1171+SELECT 1;
1172+1
1173+1
1174+SET SESSION query_exec_time=1.5;
1175+SELECT 1;
1176+1
1177+1
1178+SET SESSION query_exec_time=1.4;
1179+SELECT 1;
1180+1
1181+1
1182+SET SESSION query_exec_time=0.5;
1183+SELECT 1;
1184+1
1185+1
1186+SET SESSION query_exec_time=2.1;
1187+SELECT 1;
1188+1
1189+1
1190+SET SESSION query_exec_time=2.3;
1191+SELECT 1;
1192+1
1193+1
1194+SET SESSION query_exec_time=2.5;
1195+SELECT 1;
1196+1
1197+1
1198+SET SESSION query_exec_time=3.1;
1199+SELECT 1;
1200+1
1201+1
1202+SET SESSION query_exec_time=4.1;
1203+SELECT 1;
1204+1
1205+1
1206+SET SESSION query_exec_time=5.1;
1207+SELECT 1;
1208+1
1209+1
1210+SET SESSION query_exec_time=0.1;
1211+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1212+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1213+Variable_name Value
1214+query_response_time_range_base 2
1215+SHOW QUERY_RESPONSE_TIME;
1216+
1217+ 0.000001 25 0.000000
1218+ 0.000003 0 0.000000
1219+ 0.000007 0 0.000000
1220+ 0.000015 0 0.000000
1221+ 0.000030 0 0.000000
1222+ 0.000061 0 0.000000
1223+ 0.000122 0 0.000000
1224+ 0.000244 0 0.000000
1225+ 0.000488 0 0.000000
1226+ 0.000976 0 0.000000
1227+ 0.001953 0 0.000000
1228+ 0.003906 0 0.000000
1229+ 0.007812 0 0.000000
1230+ 0.015625 0 0.000000
1231+ 0.031250 0 0.000000
1232+ 0.062500 0 0.000000
1233+ 0.125000 2 0.200000
1234+ 0.250000 0 0.000000
1235+ 0.500000 10 3.550000
1236+ 1.000000 1 0.500000
1237+ 2.000000 5 6.500000
1238+ 4.000000 4 10.000000
1239+ 8.000000 2 9.199999
1240+ 16.000000 0 0.000000
1241+ 32.000000 0 0.000000
1242+ 64.000000 0 0.000000
1243+ 128.000000 0 0.000000
1244+ 256.000000 0 0.000000
1245+ 512.000000 0 0.000000
1246+ 1024.000000 0 0.000000
1247+ 2048.000000 0 0.000000
1248+ 4096.000000 0 0.000000
1249+ 8192.000000 0 0.000000
1250+ 16384.000000 0 0.000000
1251+ 32768.000000 0 0.000000
1252+ 65536.000000 0 0.000000
1253+ 131072.000000 0 0.000000
1254+ 262144.000000 0 0.000000
1255+ 524288.000000 0 0.000000
1256+ 1048576.00000 0 0.000000
1257+ 2097152.00000 0 0.000000
1258+ 4194304.00000 0 0.000000
1259+ 8388608.00000 0 0.000000
1260+TOO LONG 0 TOO LONG
1261+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1262+time count total
1263+ 0.000001 25 0.000000
1264+ 0.000003 0 0.000000
1265+ 0.000007 0 0.000000
1266+ 0.000015 0 0.000000
1267+ 0.000030 0 0.000000
1268+ 0.000061 0 0.000000
1269+ 0.000122 0 0.000000
1270+ 0.000244 0 0.000000
1271+ 0.000488 0 0.000000
1272+ 0.000976 0 0.000000
1273+ 0.001953 0 0.000000
1274+ 0.003906 0 0.000000
1275+ 0.007812 0 0.000000
1276+ 0.015625 0 0.000000
1277+ 0.031250 0 0.000000
1278+ 0.062500 0 0.000000
1279+ 0.125000 3 0.300000
1280+ 0.250000 0 0.000000
1281+ 0.500000 10 3.550000
1282+ 1.000000 1 0.500000
1283+ 2.000000 5 6.500000
1284+ 4.000000 4 10.000000
1285+ 8.000000 2 9.199999
1286+ 16.000000 0 0.000000
1287+ 32.000000 0 0.000000
1288+ 64.000000 0 0.000000
1289+ 128.000000 0 0.000000
1290+ 256.000000 0 0.000000
1291+ 512.000000 0 0.000000
1292+ 1024.000000 0 0.000000
1293+ 2048.000000 0 0.000000
1294+ 4096.000000 0 0.000000
1295+ 8192.000000 0 0.000000
1296+ 16384.000000 0 0.000000
1297+ 32768.000000 0 0.000000
1298+ 65536.000000 0 0.000000
1299+ 131072.000000 0 0.000000
1300+ 262144.000000 0 0.000000
1301+ 524288.000000 0 0.000000
1302+ 1048576.00000 0 0.000000
1303+ 2097152.00000 0 0.000000
1304+ 4194304.00000 0 0.000000
1305+ 8388608.00000 0 0.000000
1306+TOO LONG 0 TOO LONG
1307+SET SESSION query_exec_time=default;
1308+SET SESSION query_exec_time=0.1;
1309+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1310+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=10;
1311+FLUSH QUERY_RESPONSE_TIME;
1312+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
1313+SET SESSION query_exec_time=0.31;
1314+SELECT 1;
1315+1
1316+1
1317+SET SESSION query_exec_time=0.32;
1318+SELECT 1;
1319+1
1320+1
1321+SET SESSION query_exec_time=0.33;
1322+SELECT 1;
1323+1
1324+1
1325+SET SESSION query_exec_time=0.34;
1326+SELECT 1;
1327+1
1328+1
1329+SET SESSION query_exec_time=0.35;
1330+SELECT 1;
1331+1
1332+1
1333+SET SESSION query_exec_time=0.36;
1334+SELECT 1;
1335+1
1336+1
1337+SET SESSION query_exec_time=0.37;
1338+SELECT 1;
1339+1
1340+1
1341+SET SESSION query_exec_time=0.38;
1342+SELECT 1;
1343+1
1344+1
1345+SET SESSION query_exec_time=0.39;
1346+SELECT 1;
1347+1
1348+1
1349+SET SESSION query_exec_time=0.4;
1350+SELECT 1;
1351+1
1352+1
1353+SET SESSION query_exec_time=1.1;
1354+SELECT 1;
1355+1
1356+1
1357+SET SESSION query_exec_time=1.2;
1358+SELECT 1;
1359+1
1360+1
1361+SET SESSION query_exec_time=1.3;
1362+SELECT 1;
1363+1
1364+1
1365+SET SESSION query_exec_time=1.5;
1366+SELECT 1;
1367+1
1368+1
1369+SET SESSION query_exec_time=1.4;
1370+SELECT 1;
1371+1
1372+1
1373+SET SESSION query_exec_time=0.5;
1374+SELECT 1;
1375+1
1376+1
1377+SET SESSION query_exec_time=2.1;
1378+SELECT 1;
1379+1
1380+1
1381+SET SESSION query_exec_time=2.3;
1382+SELECT 1;
1383+1
1384+1
1385+SET SESSION query_exec_time=2.5;
1386+SELECT 1;
1387+1
1388+1
1389+SET SESSION query_exec_time=3.1;
1390+SELECT 1;
1391+1
1392+1
1393+SET SESSION query_exec_time=4.1;
1394+SELECT 1;
1395+1
1396+1
1397+SET SESSION query_exec_time=5.1;
1398+SELECT 1;
1399+1
1400+1
1401+SET SESSION query_exec_time=0.1;
1402+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1403+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1404+Variable_name Value
1405+query_response_time_range_base 10
1406+SHOW QUERY_RESPONSE_TIME;
1407+
1408+ 0.000001 25 0.000000
1409+ 0.000010 0 0.000000
1410+ 0.000100 0 0.000000
1411+ 0.001000 0 0.000000
1412+ 0.010000 0 0.000000
1413+ 0.100000 0 0.000000
1414+ 1.000000 13 4.250000
1415+ 10.000000 11 25.699999
1416+ 100.000000 0 0.000000
1417+ 1000.000000 0 0.000000
1418+ 10000.000000 0 0.000000
1419+ 100000.000000 0 0.000000
1420+ 1000000.00000 0 0.000000
1421+TOO LONG 0 TOO LONG
1422+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1423+time count total
1424+ 0.000001 25 0.000000
1425+ 0.000010 0 0.000000
1426+ 0.000100 0 0.000000
1427+ 0.001000 0 0.000000
1428+ 0.010000 0 0.000000
1429+ 0.100000 0 0.000000
1430+ 1.000000 14 4.350000
1431+ 10.000000 11 25.699999
1432+ 100.000000 0 0.000000
1433+ 1000.000000 0 0.000000
1434+ 10000.000000 0 0.000000
1435+ 100000.000000 0 0.000000
1436+ 1000000.00000 0 0.000000
1437+TOO LONG 0 TOO LONG
1438+SET SESSION query_exec_time=default;
1439+SET SESSION query_exec_time=0.1;
1440+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1441+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=7;
1442+FLUSH QUERY_RESPONSE_TIME;
1443+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
1444+SET SESSION query_exec_time=0.31;
1445+SELECT 1;
1446+1
1447+1
1448+SET SESSION query_exec_time=0.32;
1449+SELECT 1;
1450+1
1451+1
1452+SET SESSION query_exec_time=0.33;
1453+SELECT 1;
1454+1
1455+1
1456+SET SESSION query_exec_time=0.34;
1457+SELECT 1;
1458+1
1459+1
1460+SET SESSION query_exec_time=0.35;
1461+SELECT 1;
1462+1
1463+1
1464+SET SESSION query_exec_time=0.36;
1465+SELECT 1;
1466+1
1467+1
1468+SET SESSION query_exec_time=0.37;
1469+SELECT 1;
1470+1
1471+1
1472+SET SESSION query_exec_time=0.38;
1473+SELECT 1;
1474+1
1475+1
1476+SET SESSION query_exec_time=0.39;
1477+SELECT 1;
1478+1
1479+1
1480+SET SESSION query_exec_time=0.4;
1481+SELECT 1;
1482+1
1483+1
1484+SET SESSION query_exec_time=1.1;
1485+SELECT 1;
1486+1
1487+1
1488+SET SESSION query_exec_time=1.2;
1489+SELECT 1;
1490+1
1491+1
1492+SET SESSION query_exec_time=1.3;
1493+SELECT 1;
1494+1
1495+1
1496+SET SESSION query_exec_time=1.5;
1497+SELECT 1;
1498+1
1499+1
1500+SET SESSION query_exec_time=1.4;
1501+SELECT 1;
1502+1
1503+1
1504+SET SESSION query_exec_time=0.5;
1505+SELECT 1;
1506+1
1507+1
1508+SET SESSION query_exec_time=2.1;
1509+SELECT 1;
1510+1
1511+1
1512+SET SESSION query_exec_time=2.3;
1513+SELECT 1;
1514+1
1515+1
1516+SET SESSION query_exec_time=2.5;
1517+SELECT 1;
1518+1
1519+1
1520+SET SESSION query_exec_time=3.1;
1521+SELECT 1;
1522+1
1523+1
1524+SET SESSION query_exec_time=4.1;
1525+SELECT 1;
1526+1
1527+1
1528+SET SESSION query_exec_time=5.1;
1529+SELECT 1;
1530+1
1531+1
1532+SET SESSION query_exec_time=0.1;
1533+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1534+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1535+Variable_name Value
1536+query_response_time_range_base 7
1537+SHOW QUERY_RESPONSE_TIME;
1538+
1539+ 0.000001 25 0.000000
1540+ 0.000008 0 0.000000
1541+ 0.000059 0 0.000000
1542+ 0.000416 0 0.000000
1543+ 0.002915 0 0.000000
1544+ 0.020408 0 0.000000
1545+ 0.142857 2 0.200000
1546+ 1.000000 11 4.050000
1547+ 7.000000 11 25.699999
1548+ 49.000000 0 0.000000
1549+ 343.000000 0 0.000000
1550+ 2401.000000 0 0.000000
1551+ 16807.000000 0 0.000000
1552+ 117649.000000 0 0.000000
1553+ 823543.000000 0 0.000000
1554+ 5764801.00000 0 0.000000
1555+TOO LONG 0 TOO LONG
1556+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1557+time count total
1558+ 0.000001 25 0.000000
1559+ 0.000008 0 0.000000
1560+ 0.000059 0 0.000000
1561+ 0.000416 0 0.000000
1562+ 0.002915 0 0.000000
1563+ 0.020408 0 0.000000
1564+ 0.142857 3 0.300000
1565+ 1.000000 11 4.050000
1566+ 7.000000 11 25.699999
1567+ 49.000000 0 0.000000
1568+ 343.000000 0 0.000000
1569+ 2401.000000 0 0.000000
1570+ 16807.000000 0 0.000000
1571+ 117649.000000 0 0.000000
1572+ 823543.000000 0 0.000000
1573+ 5764801.00000 0 0.000000
1574+TOO LONG 0 TOO LONG
1575+SET SESSION query_exec_time=default;
1576+SET SESSION query_exec_time=0.1;
1577+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1578+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=156;
1579+FLUSH QUERY_RESPONSE_TIME;
1580+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
1581+SET SESSION query_exec_time=0.31;
1582+SELECT 1;
1583+1
1584+1
1585+SET SESSION query_exec_time=0.32;
1586+SELECT 1;
1587+1
1588+1
1589+SET SESSION query_exec_time=0.33;
1590+SELECT 1;
1591+1
1592+1
1593+SET SESSION query_exec_time=0.34;
1594+SELECT 1;
1595+1
1596+1
1597+SET SESSION query_exec_time=0.35;
1598+SELECT 1;
1599+1
1600+1
1601+SET SESSION query_exec_time=0.36;
1602+SELECT 1;
1603+1
1604+1
1605+SET SESSION query_exec_time=0.37;
1606+SELECT 1;
1607+1
1608+1
1609+SET SESSION query_exec_time=0.38;
1610+SELECT 1;
1611+1
1612+1
1613+SET SESSION query_exec_time=0.39;
1614+SELECT 1;
1615+1
1616+1
1617+SET SESSION query_exec_time=0.4;
1618+SELECT 1;
1619+1
1620+1
1621+SET SESSION query_exec_time=1.1;
1622+SELECT 1;
1623+1
1624+1
1625+SET SESSION query_exec_time=1.2;
1626+SELECT 1;
1627+1
1628+1
1629+SET SESSION query_exec_time=1.3;
1630+SELECT 1;
1631+1
1632+1
1633+SET SESSION query_exec_time=1.5;
1634+SELECT 1;
1635+1
1636+1
1637+SET SESSION query_exec_time=1.4;
1638+SELECT 1;
1639+1
1640+1
1641+SET SESSION query_exec_time=0.5;
1642+SELECT 1;
1643+1
1644+1
1645+SET SESSION query_exec_time=2.1;
1646+SELECT 1;
1647+1
1648+1
1649+SET SESSION query_exec_time=2.3;
1650+SELECT 1;
1651+1
1652+1
1653+SET SESSION query_exec_time=2.5;
1654+SELECT 1;
1655+1
1656+1
1657+SET SESSION query_exec_time=3.1;
1658+SELECT 1;
1659+1
1660+1
1661+SET SESSION query_exec_time=4.1;
1662+SELECT 1;
1663+1
1664+1
1665+SET SESSION query_exec_time=5.1;
1666+SELECT 1;
1667+1
1668+1
1669+SET SESSION query_exec_time=0.1;
1670+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1671+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1672+Variable_name Value
1673+query_response_time_range_base 156
1674+SHOW QUERY_RESPONSE_TIME;
1675+
1676+ 0.000041 25 0.000000
1677+ 0.006410 0 0.000000
1678+ 1.000000 13 4.250000
1679+ 156.000000 11 25.699999
1680+ 24336.000000 0 0.000000
1681+ 3796416.00000 0 0.000000
1682+TOO LONG 0 TOO LONG
1683+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1684+time count total
1685+ 0.000041 25 0.000000
1686+ 0.006410 0 0.000000
1687+ 1.000000 14 4.350000
1688+ 156.000000 11 25.699999
1689+ 24336.000000 0 0.000000
1690+ 3796416.00000 0 0.000000
1691+TOO LONG 0 TOO LONG
1692+SET SESSION query_exec_time=default;
1693+SET SESSION query_exec_time=0.1;
1694+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1695+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=1000;
1696+FLUSH QUERY_RESPONSE_TIME;
1697+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
1698+SET SESSION query_exec_time=0.31;
1699+SELECT 1;
1700+1
1701+1
1702+SET SESSION query_exec_time=0.32;
1703+SELECT 1;
1704+1
1705+1
1706+SET SESSION query_exec_time=0.33;
1707+SELECT 1;
1708+1
1709+1
1710+SET SESSION query_exec_time=0.34;
1711+SELECT 1;
1712+1
1713+1
1714+SET SESSION query_exec_time=0.35;
1715+SELECT 1;
1716+1
1717+1
1718+SET SESSION query_exec_time=0.36;
1719+SELECT 1;
1720+1
1721+1
1722+SET SESSION query_exec_time=0.37;
1723+SELECT 1;
1724+1
1725+1
1726+SET SESSION query_exec_time=0.38;
1727+SELECT 1;
1728+1
1729+1
1730+SET SESSION query_exec_time=0.39;
1731+SELECT 1;
1732+1
1733+1
1734+SET SESSION query_exec_time=0.4;
1735+SELECT 1;
1736+1
1737+1
1738+SET SESSION query_exec_time=1.1;
1739+SELECT 1;
1740+1
1741+1
1742+SET SESSION query_exec_time=1.2;
1743+SELECT 1;
1744+1
1745+1
1746+SET SESSION query_exec_time=1.3;
1747+SELECT 1;
1748+1
1749+1
1750+SET SESSION query_exec_time=1.5;
1751+SELECT 1;
1752+1
1753+1
1754+SET SESSION query_exec_time=1.4;
1755+SELECT 1;
1756+1
1757+1
1758+SET SESSION query_exec_time=0.5;
1759+SELECT 1;
1760+1
1761+1
1762+SET SESSION query_exec_time=2.1;
1763+SELECT 1;
1764+1
1765+1
1766+SET SESSION query_exec_time=2.3;
1767+SELECT 1;
1768+1
1769+1
1770+SET SESSION query_exec_time=2.5;
1771+SELECT 1;
1772+1
1773+1
1774+SET SESSION query_exec_time=3.1;
1775+SELECT 1;
1776+1
1777+1
1778+SET SESSION query_exec_time=4.1;
1779+SELECT 1;
1780+1
1781+1
1782+SET SESSION query_exec_time=5.1;
1783+SELECT 1;
1784+1
1785+1
1786+SET SESSION query_exec_time=0.1;
1787+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1788+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1789+Variable_name Value
1790+query_response_time_range_base 1000
1791+SHOW QUERY_RESPONSE_TIME;
1792+
1793+ 0.000001 25 0.000000
1794+ 0.001000 0 0.000000
1795+ 1.000000 13 4.250000
1796+ 1000.000000 11 25.699999
1797+ 1000000.00000 0 0.000000
1798+TOO LONG 0 TOO LONG
1799+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1800+time count total
1801+ 0.000001 25 0.000000
1802+ 0.001000 0 0.000000
1803+ 1.000000 14 4.350000
1804+ 1000.000000 11 25.699999
1805+ 1000000.00000 0 0.000000
1806+TOO LONG 0 TOO LONG
1807+SET SESSION query_exec_time=default;
1808+SET SESSION query_exec_time=0.1;
1809+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1810+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=1001;
1811+Warnings:
1812+Warning 1292 Truncated incorrect query_response_time_range_base value: '1001'
1813+FLUSH QUERY_RESPONSE_TIME;
1814+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
1815+SET SESSION query_exec_time=0.31;
1816+SELECT 1;
1817+1
1818+1
1819+SET SESSION query_exec_time=0.32;
1820+SELECT 1;
1821+1
1822+1
1823+SET SESSION query_exec_time=0.33;
1824+SELECT 1;
1825+1
1826+1
1827+SET SESSION query_exec_time=0.34;
1828+SELECT 1;
1829+1
1830+1
1831+SET SESSION query_exec_time=0.35;
1832+SELECT 1;
1833+1
1834+1
1835+SET SESSION query_exec_time=0.36;
1836+SELECT 1;
1837+1
1838+1
1839+SET SESSION query_exec_time=0.37;
1840+SELECT 1;
1841+1
1842+1
1843+SET SESSION query_exec_time=0.38;
1844+SELECT 1;
1845+1
1846+1
1847+SET SESSION query_exec_time=0.39;
1848+SELECT 1;
1849+1
1850+1
1851+SET SESSION query_exec_time=0.4;
1852+SELECT 1;
1853+1
1854+1
1855+SET SESSION query_exec_time=1.1;
1856+SELECT 1;
1857+1
1858+1
1859+SET SESSION query_exec_time=1.2;
1860+SELECT 1;
1861+1
1862+1
1863+SET SESSION query_exec_time=1.3;
1864+SELECT 1;
1865+1
1866+1
1867+SET SESSION query_exec_time=1.5;
1868+SELECT 1;
1869+1
1870+1
1871+SET SESSION query_exec_time=1.4;
1872+SELECT 1;
1873+1
1874+1
1875+SET SESSION query_exec_time=0.5;
1876+SELECT 1;
1877+1
1878+1
1879+SET SESSION query_exec_time=2.1;
1880+SELECT 1;
1881+1
1882+1
1883+SET SESSION query_exec_time=2.3;
1884+SELECT 1;
1885+1
1886+1
1887+SET SESSION query_exec_time=2.5;
1888+SELECT 1;
1889+1
1890+1
1891+SET SESSION query_exec_time=3.1;
1892+SELECT 1;
1893+1
1894+1
1895+SET SESSION query_exec_time=4.1;
1896+SELECT 1;
1897+1
1898+1
1899+SET SESSION query_exec_time=5.1;
1900+SELECT 1;
1901+1
1902+1
1903+SET SESSION query_exec_time=0.1;
1904+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1905+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1906+Variable_name Value
1907+query_response_time_range_base 1000
1908+SHOW QUERY_RESPONSE_TIME;
1909+
1910+ 0.000001 25 0.000000
1911+ 0.001000 0 0.000000
1912+ 1.000000 13 4.250000
1913+ 1000.000000 11 25.699999
1914+ 1000000.00000 0 0.000000
1915+TOO LONG 0 TOO LONG
1916+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1917+time count total
1918+ 0.000001 25 0.000000
1919+ 0.001000 0 0.000000
1920+ 1.000000 14 4.350000
1921+ 1000.000000 11 25.699999
1922+ 1000000.00000 0 0.000000
1923+TOO LONG 0 TOO LONG
1924+SET SESSION query_exec_time=default;
1925+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
1926+SET GLOBAL QUERY_RESPONSE_TIME_STATS=default;
1927--- /dev/null
1928+++ b/mysql-test/r/percona_query_response_time-stored.result
1929@@ -0,0 +1,544 @@
1930+CREATE TABLE t(a INT);
1931+CREATE PROCEDURE test_f(t DECIMAL(3,2))
1932+BEGIN
1933+SET SESSION query_exec_time=t;
1934+INSERT INTO t VALUES(1);
1935+SET SESSION query_exec_time=0.1;
1936+DELETE FROM t;
1937+END^
1938+SET SESSION query_exec_time=0.1;
1939+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1940+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=1;
1941+Warnings:
1942+Warning 1292 Truncated incorrect query_response_time_range_base value: '1'
1943+FLUSH QUERY_RESPONSE_TIME;
1944+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
1945+CALL test_f(0.31);
1946+CALL test_f(0.32);
1947+CALL test_f(0.33);
1948+CALL test_f(0.34);
1949+CALL test_f(0.35);
1950+CALL test_f(0.36);
1951+CALL test_f(0.37);
1952+CALL test_f(0.38);
1953+CALL test_f(0.39);
1954+CALL test_f(0.4);
1955+CALL test_f(1.1);
1956+CALL test_f(1.2);
1957+CALL test_f(1.3);
1958+CALL test_f(1.5);
1959+CALL test_f(1.4);
1960+CALL test_f(0.5);
1961+CALL test_f(2.1);
1962+CALL test_f(2.3);
1963+CALL test_f(2.5);
1964+CALL test_f(3.1);
1965+CALL test_f(4.1);
1966+CALL test_f(5.1);
1967+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1968+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1969+Variable_name Value
1970+query_response_time_range_base 2
1971+SHOW QUERY_RESPONSE_TIME;
1972+
1973+ 0.000001 46 0.000000
1974+ 0.000003 0 0.000000
1975+ 0.000007 0 0.000000
1976+ 0.000015 0 0.000000
1977+ 0.000030 0 0.000000
1978+ 0.000061 0 0.000000
1979+ 0.000122 0 0.000000
1980+ 0.000244 0 0.000000
1981+ 0.000488 0 0.000000
1982+ 0.000976 0 0.000000
1983+ 0.001953 0 0.000000
1984+ 0.003906 0 0.000000
1985+ 0.007812 0 0.000000
1986+ 0.015625 0 0.000000
1987+ 0.031250 0 0.000000
1988+ 0.062500 0 0.000000
1989+ 0.125000 46 4.600000
1990+ 0.250000 0 0.000000
1991+ 0.500000 10 3.550000
1992+ 1.000000 1 0.500000
1993+ 2.000000 5 6.500000
1994+ 4.000000 4 10.000000
1995+ 8.000000 2 9.199999
1996+ 16.000000 0 0.000000
1997+ 32.000000 0 0.000000
1998+ 64.000000 0 0.000000
1999+ 128.000000 0 0.000000
2000+ 256.000000 0 0.000000
2001+ 512.000000 0 0.000000
2002+ 1024.000000 0 0.000000
2003+ 2048.000000 0 0.000000
2004+ 4096.000000 0 0.000000
2005+ 8192.000000 0 0.000000
2006+ 16384.000000 0 0.000000
2007+ 32768.000000 0 0.000000
2008+ 65536.000000 0 0.000000
2009+ 131072.000000 0 0.000000
2010+ 262144.000000 0 0.000000
2011+ 524288.000000 0 0.000000
2012+ 1048576.00000 0 0.000000
2013+ 2097152.00000 0 0.000000
2014+ 4194304.00000 0 0.000000
2015+ 8388608.00000 0 0.000000
2016+TOO LONG 0 TOO LONG
2017+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
2018+time count total
2019+ 0.000001 46 0.000000
2020+ 0.000003 0 0.000000
2021+ 0.000007 0 0.000000
2022+ 0.000015 0 0.000000
2023+ 0.000030 0 0.000000
2024+ 0.000061 0 0.000000
2025+ 0.000122 0 0.000000
2026+ 0.000244 0 0.000000
2027+ 0.000488 0 0.000000
2028+ 0.000976 0 0.000000
2029+ 0.001953 0 0.000000
2030+ 0.003906 0 0.000000
2031+ 0.007812 0 0.000000
2032+ 0.015625 0 0.000000
2033+ 0.031250 0 0.000000
2034+ 0.062500 0 0.000000
2035+ 0.125000 47 4.700000
2036+ 0.250000 0 0.000000
2037+ 0.500000 10 3.550000
2038+ 1.000000 1 0.500000
2039+ 2.000000 5 6.500000
2040+ 4.000000 4 10.000000
2041+ 8.000000 2 9.199999
2042+ 16.000000 0 0.000000
2043+ 32.000000 0 0.000000
2044+ 64.000000 0 0.000000
2045+ 128.000000 0 0.000000
2046+ 256.000000 0 0.000000
2047+ 512.000000 0 0.000000
2048+ 1024.000000 0 0.000000
2049+ 2048.000000 0 0.000000
2050+ 4096.000000 0 0.000000
2051+ 8192.000000 0 0.000000
2052+ 16384.000000 0 0.000000
2053+ 32768.000000 0 0.000000
2054+ 65536.000000 0 0.000000
2055+ 131072.000000 0 0.000000
2056+ 262144.000000 0 0.000000
2057+ 524288.000000 0 0.000000
2058+ 1048576.00000 0 0.000000
2059+ 2097152.00000 0 0.000000
2060+ 4194304.00000 0 0.000000
2061+ 8388608.00000 0 0.000000
2062+TOO LONG 0 TOO LONG
2063+SET SESSION query_exec_time=default;
2064+SET SESSION query_exec_time=0.1;
2065+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
2066+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=2;
2067+FLUSH QUERY_RESPONSE_TIME;
2068+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
2069+CALL test_f(0.31);
2070+CALL test_f(0.32);
2071+CALL test_f(0.33);
2072+CALL test_f(0.34);
2073+CALL test_f(0.35);
2074+CALL test_f(0.36);
2075+CALL test_f(0.37);
2076+CALL test_f(0.38);
2077+CALL test_f(0.39);
2078+CALL test_f(0.4);
2079+CALL test_f(1.1);
2080+CALL test_f(1.2);
2081+CALL test_f(1.3);
2082+CALL test_f(1.5);
2083+CALL test_f(1.4);
2084+CALL test_f(0.5);
2085+CALL test_f(2.1);
2086+CALL test_f(2.3);
2087+CALL test_f(2.5);
2088+CALL test_f(3.1);
2089+CALL test_f(4.1);
2090+CALL test_f(5.1);
2091+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
2092+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
2093+Variable_name Value
2094+query_response_time_range_base 2
2095+SHOW QUERY_RESPONSE_TIME;
2096+
2097+ 0.000001 46 0.000000
2098+ 0.000003 0 0.000000
2099+ 0.000007 0 0.000000
2100+ 0.000015 0 0.000000
2101+ 0.000030 0 0.000000
2102+ 0.000061 0 0.000000
2103+ 0.000122 0 0.000000
2104+ 0.000244 0 0.000000
2105+ 0.000488 0 0.000000
2106+ 0.000976 0 0.000000
2107+ 0.001953 0 0.000000
2108+ 0.003906 0 0.000000
2109+ 0.007812 0 0.000000
2110+ 0.015625 0 0.000000
2111+ 0.031250 0 0.000000
2112+ 0.062500 0 0.000000
2113+ 0.125000 46 4.600000
2114+ 0.250000 0 0.000000
2115+ 0.500000 10 3.550000
2116+ 1.000000 1 0.500000
2117+ 2.000000 5 6.500000
2118+ 4.000000 4 10.000000
2119+ 8.000000 2 9.199999
2120+ 16.000000 0 0.000000
2121+ 32.000000 0 0.000000
2122+ 64.000000 0 0.000000
2123+ 128.000000 0 0.000000
2124+ 256.000000 0 0.000000
2125+ 512.000000 0 0.000000
2126+ 1024.000000 0 0.000000
2127+ 2048.000000 0 0.000000
2128+ 4096.000000 0 0.000000
2129+ 8192.000000 0 0.000000
2130+ 16384.000000 0 0.000000
2131+ 32768.000000 0 0.000000
2132+ 65536.000000 0 0.000000
2133+ 131072.000000 0 0.000000
2134+ 262144.000000 0 0.000000
2135+ 524288.000000 0 0.000000
2136+ 1048576.00000 0 0.000000
2137+ 2097152.00000 0 0.000000
2138+ 4194304.00000 0 0.000000
2139+ 8388608.00000 0 0.000000
2140+TOO LONG 0 TOO LONG
2141+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
2142+time count total
2143+ 0.000001 46 0.000000
2144+ 0.000003 0 0.000000
2145+ 0.000007 0 0.000000
2146+ 0.000015 0 0.000000
2147+ 0.000030 0 0.000000
2148+ 0.000061 0 0.000000
2149+ 0.000122 0 0.000000
2150+ 0.000244 0 0.000000
2151+ 0.000488 0 0.000000
2152+ 0.000976 0 0.000000
2153+ 0.001953 0 0.000000
2154+ 0.003906 0 0.000000
2155+ 0.007812 0 0.000000
2156+ 0.015625 0 0.000000
2157+ 0.031250 0 0.000000
2158+ 0.062500 0 0.000000
2159+ 0.125000 47 4.700000
2160+ 0.250000 0 0.000000
2161+ 0.500000 10 3.550000
2162+ 1.000000 1 0.500000
2163+ 2.000000 5 6.500000
2164+ 4.000000 4 10.000000
2165+ 8.000000 2 9.199999
2166+ 16.000000 0 0.000000
2167+ 32.000000 0 0.000000
2168+ 64.000000 0 0.000000
2169+ 128.000000 0 0.000000
2170+ 256.000000 0 0.000000
2171+ 512.000000 0 0.000000
2172+ 1024.000000 0 0.000000
2173+ 2048.000000 0 0.000000
2174+ 4096.000000 0 0.000000
2175+ 8192.000000 0 0.000000
2176+ 16384.000000 0 0.000000
2177+ 32768.000000 0 0.000000
2178+ 65536.000000 0 0.000000
2179+ 131072.000000 0 0.000000
2180+ 262144.000000 0 0.000000
2181+ 524288.000000 0 0.000000
2182+ 1048576.00000 0 0.000000
2183+ 2097152.00000 0 0.000000
2184+ 4194304.00000 0 0.000000
2185+ 8388608.00000 0 0.000000
2186+TOO LONG 0 TOO LONG
2187+SET SESSION query_exec_time=default;
2188+SET SESSION query_exec_time=0.1;
2189+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
2190+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=10;
2191+FLUSH QUERY_RESPONSE_TIME;
2192+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
2193+CALL test_f(0.31);
2194+CALL test_f(0.32);
2195+CALL test_f(0.33);
2196+CALL test_f(0.34);
2197+CALL test_f(0.35);
2198+CALL test_f(0.36);
2199+CALL test_f(0.37);
2200+CALL test_f(0.38);
2201+CALL test_f(0.39);
2202+CALL test_f(0.4);
2203+CALL test_f(1.1);
2204+CALL test_f(1.2);
2205+CALL test_f(1.3);
2206+CALL test_f(1.5);
2207+CALL test_f(1.4);
2208+CALL test_f(0.5);
2209+CALL test_f(2.1);
2210+CALL test_f(2.3);
2211+CALL test_f(2.5);
2212+CALL test_f(3.1);
2213+CALL test_f(4.1);
2214+CALL test_f(5.1);
2215+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
2216+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
2217+Variable_name Value
2218+query_response_time_range_base 10
2219+SHOW QUERY_RESPONSE_TIME;
2220+
2221+ 0.000001 46 0.000000
2222+ 0.000010 0 0.000000
2223+ 0.000100 0 0.000000
2224+ 0.001000 0 0.000000
2225+ 0.010000 0 0.000000
2226+ 0.100000 0 0.000000
2227+ 1.000000 57 8.650000
2228+ 10.000000 11 25.699999
2229+ 100.000000 0 0.000000
2230+ 1000.000000 0 0.000000
2231+ 10000.000000 0 0.000000
2232+ 100000.000000 0 0.000000
2233+ 1000000.00000 0 0.000000
2234+TOO LONG 0 TOO LONG
2235+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
2236+time count total
2237+ 0.000001 46 0.000000
2238+ 0.000010 0 0.000000
2239+ 0.000100 0 0.000000
2240+ 0.001000 0 0.000000
2241+ 0.010000 0 0.000000
2242+ 0.100000 0 0.000000
2243+ 1.000000 58 8.750000
2244+ 10.000000 11 25.699999
2245+ 100.000000 0 0.000000
2246+ 1000.000000 0 0.000000
2247+ 10000.000000 0 0.000000
2248+ 100000.000000 0 0.000000
2249+ 1000000.00000 0 0.000000
2250+TOO LONG 0 TOO LONG
2251+SET SESSION query_exec_time=default;
2252+SET SESSION query_exec_time=0.1;
2253+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
2254+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=7;
2255+FLUSH QUERY_RESPONSE_TIME;
2256+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
2257+CALL test_f(0.31);
2258+CALL test_f(0.32);
2259+CALL test_f(0.33);
2260+CALL test_f(0.34);
2261+CALL test_f(0.35);
2262+CALL test_f(0.36);
2263+CALL test_f(0.37);
2264+CALL test_f(0.38);
2265+CALL test_f(0.39);
2266+CALL test_f(0.4);
2267+CALL test_f(1.1);
2268+CALL test_f(1.2);
2269+CALL test_f(1.3);
2270+CALL test_f(1.5);
2271+CALL test_f(1.4);
2272+CALL test_f(0.5);
2273+CALL test_f(2.1);
2274+CALL test_f(2.3);
2275+CALL test_f(2.5);
2276+CALL test_f(3.1);
2277+CALL test_f(4.1);
2278+CALL test_f(5.1);
2279+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
2280+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
2281+Variable_name Value
2282+query_response_time_range_base 7
2283+SHOW QUERY_RESPONSE_TIME;
2284+
2285+ 0.000001 46 0.000000
2286+ 0.000008 0 0.000000
2287+ 0.000059 0 0.000000
2288+ 0.000416 0 0.000000
2289+ 0.002915 0 0.000000
2290+ 0.020408 0 0.000000
2291+ 0.142857 46 4.600000
2292+ 1.000000 11 4.050000
2293+ 7.000000 11 25.699999
2294+ 49.000000 0 0.000000
2295+ 343.000000 0 0.000000
2296+ 2401.000000 0 0.000000
2297+ 16807.000000 0 0.000000
2298+ 117649.000000 0 0.000000
2299+ 823543.000000 0 0.000000
2300+ 5764801.00000 0 0.000000
2301+TOO LONG 0 TOO LONG
2302+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
2303+time count total
2304+ 0.000001 46 0.000000
2305+ 0.000008 0 0.000000
2306+ 0.000059 0 0.000000
2307+ 0.000416 0 0.000000
2308+ 0.002915 0 0.000000
2309+ 0.020408 0 0.000000
2310+ 0.142857 47 4.700000
2311+ 1.000000 11 4.050000
2312+ 7.000000 11 25.699999
2313+ 49.000000 0 0.000000
2314+ 343.000000 0 0.000000
2315+ 2401.000000 0 0.000000
2316+ 16807.000000 0 0.000000
2317+ 117649.000000 0 0.000000
2318+ 823543.000000 0 0.000000
2319+ 5764801.00000 0 0.000000
2320+TOO LONG 0 TOO LONG
2321+SET SESSION query_exec_time=default;
2322+SET SESSION query_exec_time=0.1;
2323+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
2324+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=156;
2325+FLUSH QUERY_RESPONSE_TIME;
2326+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
2327+CALL test_f(0.31);
2328+CALL test_f(0.32);
2329+CALL test_f(0.33);
2330+CALL test_f(0.34);
2331+CALL test_f(0.35);
2332+CALL test_f(0.36);
2333+CALL test_f(0.37);
2334+CALL test_f(0.38);
2335+CALL test_f(0.39);
2336+CALL test_f(0.4);
2337+CALL test_f(1.1);
2338+CALL test_f(1.2);
2339+CALL test_f(1.3);
2340+CALL test_f(1.5);
2341+CALL test_f(1.4);
2342+CALL test_f(0.5);
2343+CALL test_f(2.1);
2344+CALL test_f(2.3);
2345+CALL test_f(2.5);
2346+CALL test_f(3.1);
2347+CALL test_f(4.1);
2348+CALL test_f(5.1);
2349+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
2350+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
2351+Variable_name Value
2352+query_response_time_range_base 156
2353+SHOW QUERY_RESPONSE_TIME;
2354+
2355+ 0.000041 46 0.000000
2356+ 0.006410 0 0.000000
2357+ 1.000000 57 8.650000
2358+ 156.000000 11 25.699999
2359+ 24336.000000 0 0.000000
2360+ 3796416.00000 0 0.000000
2361+TOO LONG 0 TOO LONG
2362+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
2363+time count total
2364+ 0.000041 46 0.000000
2365+ 0.006410 0 0.000000
2366+ 1.000000 58 8.750000
2367+ 156.000000 11 25.699999
2368+ 24336.000000 0 0.000000
2369+ 3796416.00000 0 0.000000
2370+TOO LONG 0 TOO LONG
2371+SET SESSION query_exec_time=default;
2372+SET SESSION query_exec_time=0.1;
2373+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
2374+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=1000;
2375+FLUSH QUERY_RESPONSE_TIME;
2376+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
2377+CALL test_f(0.31);
2378+CALL test_f(0.32);
2379+CALL test_f(0.33);
2380+CALL test_f(0.34);
2381+CALL test_f(0.35);
2382+CALL test_f(0.36);
2383+CALL test_f(0.37);
2384+CALL test_f(0.38);
2385+CALL test_f(0.39);
2386+CALL test_f(0.4);
2387+CALL test_f(1.1);
2388+CALL test_f(1.2);
2389+CALL test_f(1.3);
2390+CALL test_f(1.5);
2391+CALL test_f(1.4);
2392+CALL test_f(0.5);
2393+CALL test_f(2.1);
2394+CALL test_f(2.3);
2395+CALL test_f(2.5);
2396+CALL test_f(3.1);
2397+CALL test_f(4.1);
2398+CALL test_f(5.1);
2399+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
2400+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
2401+Variable_name Value
2402+query_response_time_range_base 1000
2403+SHOW QUERY_RESPONSE_TIME;
2404+
2405+ 0.000001 46 0.000000
2406+ 0.001000 0 0.000000
2407+ 1.000000 57 8.650000
2408+ 1000.000000 11 25.699999
2409+ 1000000.00000 0 0.000000
2410+TOO LONG 0 TOO LONG
2411+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
2412+time count total
2413+ 0.000001 46 0.000000
2414+ 0.001000 0 0.000000
2415+ 1.000000 58 8.750000
2416+ 1000.000000 11 25.699999
2417+ 1000000.00000 0 0.000000
2418+TOO LONG 0 TOO LONG
2419+SET SESSION query_exec_time=default;
2420+SET SESSION query_exec_time=0.1;
2421+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
2422+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=1001;
2423+Warnings:
2424+Warning 1292 Truncated incorrect query_response_time_range_base value: '1001'
2425+FLUSH QUERY_RESPONSE_TIME;
2426+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
2427+CALL test_f(0.31);
2428+CALL test_f(0.32);
2429+CALL test_f(0.33);
2430+CALL test_f(0.34);
2431+CALL test_f(0.35);
2432+CALL test_f(0.36);
2433+CALL test_f(0.37);
2434+CALL test_f(0.38);
2435+CALL test_f(0.39);
2436+CALL test_f(0.4);
2437+CALL test_f(1.1);
2438+CALL test_f(1.2);
2439+CALL test_f(1.3);
2440+CALL test_f(1.5);
2441+CALL test_f(1.4);
2442+CALL test_f(0.5);
2443+CALL test_f(2.1);
2444+CALL test_f(2.3);
2445+CALL test_f(2.5);
2446+CALL test_f(3.1);
2447+CALL test_f(4.1);
2448+CALL test_f(5.1);
2449+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
2450+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
2451+Variable_name Value
2452+query_response_time_range_base 1000
2453+SHOW QUERY_RESPONSE_TIME;
2454+
2455+ 0.000001 46 0.000000
2456+ 0.001000 0 0.000000
2457+ 1.000000 57 8.650000
2458+ 1000.000000 11 25.699999
2459+ 1000000.00000 0 0.000000
2460+TOO LONG 0 TOO LONG
2461+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
2462+time count total
2463+ 0.000001 46 0.000000
2464+ 0.001000 0 0.000000
2465+ 1.000000 58 8.750000
2466+ 1000.000000 11 25.699999
2467+ 1000000.00000 0 0.000000
2468+TOO LONG 0 TOO LONG
2469+SET SESSION query_exec_time=default;
2470+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
2471+SET GLOBAL QUERY_RESPONSE_TIME_STATS=default;
2472+DROP PROCEDURE test_f;
2473+DROP TABLE t;
2474--- /dev/null
2475+++ b/mysql-test/t/percona_query_response_time-replication.test
2476@@ -0,0 +1,28 @@
2477+SET GLOBAL query_exec_time=0.1;
2478+
2479+--source include/have_response_time_distribution.inc
2480+--source include/have_debug.inc
2481+--source include/have_binlog_format_statement.inc
2482+--source include/master-slave.inc
2483+
2484+--let base=1
2485+--source include/query_response_time-replication.inc
2486+--let base=2
2487+--source include/query_response_time-replication.inc
2488+--let base=10
2489+--source include/query_response_time-replication.inc
2490+--let base=7
2491+--source include/query_response_time-replication.inc
2492+--let base=156
2493+--source include/query_response_time-replication.inc
2494+--let base=1000
2495+--source include/query_response_time-replication.inc
2496+--let base=1001
2497+--source include/query_response_time-replication.inc
2498+
2499+--source include/rpl_end.inc
2500+
2501+SET GLOBAL query_exec_time=default;
2502+
2503+connection slave;
2504+SET GLOBAL query_exec_time=default;
2505--- /dev/null
2506+++ b/mysql-test/t/percona_query_response_time-stored.test
2507@@ -0,0 +1,36 @@
2508+--source include/have_response_time_distribution.inc
2509+--source include/have_debug.inc
2510+
2511+CREATE TABLE t(a INT);
2512+
2513+delimiter ^;
2514+CREATE PROCEDURE test_f(t DECIMAL(3,2))
2515+BEGIN
2516+ SET SESSION query_exec_time=t;
2517+ INSERT INTO t VALUES(1);
2518+ SET SESSION query_exec_time=0.1;
2519+ DELETE FROM t;
2520+END^
2521+delimiter ;^
2522+
2523+--let base=1
2524+--source include/query_response_time-stored.inc
2525+--let base=2
2526+--source include/query_response_time-stored.inc
2527+--let base=10
2528+--source include/query_response_time-stored.inc
2529+--let base=7
2530+--source include/query_response_time-stored.inc
2531+--let base=156
2532+--source include/query_response_time-stored.inc
2533+--let base=1000
2534+--source include/query_response_time-stored.inc
2535+--let base=1001
2536+--source include/query_response_time-stored.inc
2537+
2538+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
2539+SET GLOBAL QUERY_RESPONSE_TIME_STATS=default;
2540+
2541+DROP PROCEDURE test_f;
2542+
2543+DROP TABLE t;
2544--- /dev/null
2545+++ b/mysql-test/t/percona_query_response_time.test
2546@@ -0,0 +1,20 @@
2547+--source include/have_response_time_distribution.inc
2548+--source include/have_debug.inc
2549+
2550+--let base=1
2551+--source include/query_response_time.inc
2552+--let base=2
2553+--source include/query_response_time.inc
2554+--let base=10
2555+--source include/query_response_time.inc
2556+--let base=7
2557+--source include/query_response_time.inc
2558+--let base=156
2559+--source include/query_response_time.inc
2560+--let base=1000
2561+--source include/query_response_time.inc
2562+--let base=1001
2563+--source include/query_response_time.inc
2564+
2565+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
2566+SET GLOBAL QUERY_RESPONSE_TIME_STATS=default;
2567--- /dev/null
43+++ b/patch_info/response-time-distribution.info2568+++ b/patch_info/response-time-distribution.info
44@@ -0,0 +1,9 @@2569@@ -0,0 +1,9 @@
45+File=response-time-distribution.patch2570+File=response-time-distribution.patch
@@ -574,93 +3099,15 @@
574 #include "transaction.h"3099 #include "transaction.h"
575 #include "sql_audit.h"3100 #include "sql_audit.h"
576 #include "sql_prepare.h"3101 #include "sql_prepare.h"
577@@ -1482,22 +1483,74 @@3102@@ -1507,6 +1508,7 @@
578 Do not log administrative statements unless the appropriate option is3103
579 set.3104 ulonglong end_utime_of_query= thd->current_utime();
580 */3105 ulonglong query_exec_time= get_query_exec_time(thd, end_utime_of_query);
581+ #ifdef HAVE_RESPONSE_TIME_DISTRIBUTION3106+ query_response_time_collect(query_exec_time);
582+ if (opt_query_response_time_stats || thd->enable_slow_log)3107
583+#else // HAVE_RESPONSE_TIME_DISTRIBUTION3108 /*
584 if (thd->enable_slow_log)3109 Low long_query_time value most likely means user is debugging stuff and even
585+#endif // HAVE_RESPONSE_TIME_DISTRIBUTION3110@@ -1671,6 +1673,7 @@
586 {
587- ulonglong end_utime_of_query= thd->current_utime();
588- thd_proc_info(thd, "logging slow query");
589+ ulonglong end_utime_of_query = thd->current_utime();
590+ ulonglong query_execution_time = end_utime_of_query - thd->utime_after_lock;
591+#ifdef HAVE_RESPONSE_TIME_DISTRIBUTION
592+
593+#define DBUG_TEST_QRT(t,v) \
594+ DBUG_EXECUTE_IF(t, \
595+ { \
596+ query_execution_time= v; \
597+ DBUG_SET("-d,"t); \
598+ })
599+
600+ DBUG_EXECUTE_IF("query_exec_time_debug", query_execution_time= 0; );
601+
602+ DBUG_TEST_QRT("query_exec_time_0.31", 310000UL);
603+ DBUG_TEST_QRT("query_exec_time_0.32", 320000UL);
604+ DBUG_TEST_QRT("query_exec_time_0.33", 330000UL);
605+ DBUG_TEST_QRT("query_exec_time_0.34", 340000UL);
606+ DBUG_TEST_QRT("query_exec_time_0.35", 350000UL);
607+ DBUG_TEST_QRT("query_exec_time_0.36", 360000UL);
608+ DBUG_TEST_QRT("query_exec_time_0.37", 370000UL);
609+ DBUG_TEST_QRT("query_exec_time_0.38", 380000UL);
610+ DBUG_TEST_QRT("query_exec_time_0.39", 390000UL);
611+ DBUG_TEST_QRT("query_exec_time_0.4", 400000UL);
612+ DBUG_TEST_QRT("query_exec_time_0.5", 500000UL);
613+ DBUG_TEST_QRT("query_exec_time_1.1", 1100000UL);
614+ DBUG_TEST_QRT("query_exec_time_1.2", 1200000UL);
615+ DBUG_TEST_QRT("query_exec_time_1.3", 1300000UL);
616+ DBUG_TEST_QRT("query_exec_time_1.4", 1400000UL);
617+ DBUG_TEST_QRT("query_exec_time_1.5", 1500000UL);
618+ DBUG_TEST_QRT("query_exec_time_2.1", 2100000UL);
619+ DBUG_TEST_QRT("query_exec_time_2.3", 2300000UL);
620+ DBUG_TEST_QRT("query_exec_time_2.5", 2500000UL);
621+
622+ DBUG_EXECUTE_IF("query_exec_time_debug",
623+ if (query_execution_time == 0)
624+ opt_query_response_time_stats= 0;
625+ else
626+ opt_query_response_time_stats= 1;);
627
628- if (((thd->server_status & SERVER_QUERY_WAS_SLOW) ||
629- ((thd->server_status &
630- (SERVER_QUERY_NO_INDEX_USED | SERVER_QUERY_NO_GOOD_INDEX_USED)) &&
631- opt_log_queries_not_using_indexes &&
632- !(sql_command_flags[thd->lex->sql_command] & CF_STATUS_COMMAND))) &&
633- thd->examined_row_count >= thd->variables.min_examined_row_limit)
634+#undef DBUG_TEST_QRT
635+
636+ if(opt_query_response_time_stats)
637+ {
638+ query_response_time_collect(query_execution_time);
639+ }
640+#endif // HAVE_RESPONSE_TIME_DISTRIBUTION
641+ if (thd->enable_slow_log)
642 {
643 thd_proc_info(thd, "logging slow query");
644- thd->status_var.long_query_count++;
645- slow_log_print(thd, thd->query(), thd->query_length(),
646- end_utime_of_query);
647+
648+ if (((thd->server_status & SERVER_QUERY_WAS_SLOW) ||
649+ ((thd->server_status &
650+ (SERVER_QUERY_NO_INDEX_USED | SERVER_QUERY_NO_GOOD_INDEX_USED)) &&
651+ opt_log_queries_not_using_indexes &&
652+ !(sql_command_flags[thd->lex->sql_command] & CF_STATUS_COMMAND))) &&
653+ thd->examined_row_count >= thd->variables.min_examined_row_limit)
654+ {
655+ thd_proc_info(thd, "logging slow query");
656+ thd->status_var.long_query_count++;
657+ slow_log_print(thd, thd->query(), thd->query_length(),
658+ end_utime_of_query);
659+ }
660 }
661 }
662 DBUG_VOID_RETURN;
663@@ -1616,6 +1669,7 @@
664 case SCH_CHARSETS:3111 case SCH_CHARSETS:
665 case SCH_ENGINES:3112 case SCH_ENGINES:
666 case SCH_COLLATIONS:3113 case SCH_COLLATIONS:
@@ -788,7 +3235,7 @@
788 /*3235 /*
789 This forward declaration is needed because including sql_base.h3236 This forward declaration is needed because including sql_base.h
790 causes further includes. [TODO] Eliminate this forward declaration3237 causes further includes. [TODO] Eliminate this forward declaration
791@@ -1837,6 +1838,26 @@3238@@ -1860,6 +1861,26 @@
792 DEFAULT(FALSE));3239 DEFAULT(FALSE));
793 #endif /* HAVE_QUERY_CACHE */3240 #endif /* HAVE_QUERY_CACHE */
794 3241
@@ -815,8 +3262,13 @@
815 static Sys_var_mybool Sys_secure_auth(3262 static Sys_var_mybool Sys_secure_auth(
816 "secure_auth",3263 "secure_auth",
817 "Disallow authentication for accounts that have old (pre-4.1) "3264 "Disallow authentication for accounts that have old (pre-4.1) "
818--- a/include/atomic/x86-gcc.h3265--- /dev/null
819+++ b/include/atomic/x86-gcc.h3266+++ b/mysql-test/r/have_response_time_distribution.require
3267@@ -0,0 +1,2 @@
3268+Variable_name Value
3269+have_response_time_distribution YES
3270--- a/include/atomic/x86-gcc.h 2011-05-11 14:54:11.000000000 +0300
3271+++ b/include/atomic/x86-gcc.h 2011-07-21 16:20:24.563057000 +0300
820@@ -108,27 +108,22 @@3272@@ -108,27 +108,22 @@
821 v=tmp;3273 v=tmp;
822 3274
@@ -856,1036 +3308,3 @@
856 #endif3308 #endif
857 3309
858 /*3310 /*
859--- /dev/null
860+++ b/mysql-test/include/have_response_time_distribution.inc
861@@ -0,0 +1,4 @@
862+-- require r/have_response_time_distribution.require
863+disable_query_log;
864+show variables like 'have_response_time_distribution';
865+enable_query_log;
866--- /dev/null
867+++ b/mysql-test/include/percona_query_response_time_flush.inc
868@@ -0,0 +1 @@
869+FLUSH QUERY_RESPONSE_TIME;
870--- /dev/null
871+++ b/mysql-test/include/percona_query_response_time_show.inc
872@@ -0,0 +1,8 @@
873+SELECT d.count,
874+(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
875+(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
876+(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
877+(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
878+FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
879+SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
880+SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
881--- /dev/null
882+++ b/mysql-test/include/percona_query_response_time_sleep.inc
883@@ -0,0 +1,19 @@
884+SET SESSION debug="+d,query_exec_time_0.31";
885+SET SESSION debug="+d,query_exec_time_0.32";
886+SET SESSION debug="+d,query_exec_time_0.33";
887+SET SESSION debug="+d,query_exec_time_0.34";
888+SET SESSION debug="+d,query_exec_time_0.35";
889+SET SESSION debug="+d,query_exec_time_0.36";
890+SET SESSION debug="+d,query_exec_time_0.37";
891+SET SESSION debug="+d,query_exec_time_0.38";
892+SET SESSION debug="+d,query_exec_time_0.39";
893+SET SESSION debug="+d,query_exec_time_0.4";
894+SET SESSION debug="+d,query_exec_time_1.1";
895+SET SESSION debug="+d,query_exec_time_1.2";
896+SET SESSION debug="+d,query_exec_time_1.3";
897+SET SESSION debug="+d,query_exec_time_1.5";
898+SET SESSION debug="+d,query_exec_time_1.4";
899+SET SESSION debug="+d,query_exec_time_0.5";
900+SET SESSION debug="+d,query_exec_time_2.1";
901+SET SESSION debug="+d,query_exec_time_2.3";
902+SET SESSION debug="+d,query_exec_time_2.5";
903--- /dev/null
904+++ b/mysql-test/r/have_response_time_distribution.require
905@@ -0,0 +1,2 @@
906+Variable_name Value
907+have_response_time_distribution YES
908--- /dev/null
909+++ b/mysql-test/r/percona_query_response_time-replication.result
910@@ -0,0 +1,66 @@
911+include/master-slave.inc
912+[connection master]
913+DROP TABLE IF EXISTS t;
914+CREATE TABLE t(id INT);
915+SELECT * from t;
916+id
917+SELECT * from t;
918+id
919+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 1;
920+Warnings:
921+Warning 1292 Truncated incorrect query_response_time_range_base value: '1'
922+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
923+Variable_name Value
924+query_response_time_range_base 2
925+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 10;
926+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
927+Variable_name Value
928+query_response_time_range_base 10
929+FLUSH QUERY_RESPONSE_TIME;
930+SET GLOBAL QUERY_RESPONSE_TIME_STATS=ON;
931+INSERT INTO t SELECT SLEEP(0.4);
932+Warnings:
933+Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
934+SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
935+SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count)
936+0
937+INSERT INTO t SELECT SLEEP(0.4);
938+Warnings:
939+Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
940+SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
941+SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count)
942+0
943+SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
944+SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count)
945+2
946+SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
947+SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count)
948+3
949+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 2;
950+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
951+Variable_name Value
952+query_response_time_range_base 2
953+FLUSH QUERY_RESPONSE_TIME;
954+INSERT INTO t SELECT SLEEP(0.4);
955+Warnings:
956+Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
957+SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
958+SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count)
959+0
960+INSERT INTO t SELECT SLEEP(0.4);
961+Warnings:
962+Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
963+SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
964+SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count)
965+0
966+SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
967+SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count)
968+2
969+SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
970+SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count)
971+3
972+DROP TABLE IF EXISTS t;
973+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 10;
974+SET GLOBAL QUERY_RESPONSE_TIME_STATS=OFF;
975+STOP SLAVE;
976+include/wait_for_slave_to_stop.inc
977--- /dev/null
978+++ b/mysql-test/r/percona_query_response_time-stored.result
979@@ -0,0 +1,306 @@
980+SET GLOBAL debug="d,query_exec_time_debug";
981+CREATE FUNCTION test_f()
982+RETURNS CHAR(30) DETERMINISTIC
983+BEGIN
984+SET SESSION debug="+d,query_exec_time_1.1";
985+RETURN 'Hello, world!';
986+END/
987+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 1;
988+Warnings:
989+Warning 1292 Truncated incorrect query_response_time_range_base value: '1'
990+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
991+Variable_name Value
992+query_response_time_range_base 2
993+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 2;
994+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
995+Variable_name Value
996+query_response_time_range_base 2
997+FLUSH QUERY_RESPONSE_TIME;
998+SELECT d.count,
999+(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
1000+(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
1001+(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
1002+(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
1003+FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
1004+count query_count query_total not_zero_region_count region_count
1005+SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1006+region_count
1007+44
1008+SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1009+time
1010+ 0.000001
1011+ 0.000003
1012+ 0.000007
1013+ 0.000015
1014+ 0.000030
1015+ 0.000061
1016+ 0.000122
1017+ 0.000244
1018+ 0.000488
1019+ 0.000976
1020+ 0.001953
1021+ 0.003906
1022+ 0.007812
1023+ 0.015625
1024+ 0.031250
1025+ 0.062500
1026+ 0.125000
1027+ 0.250000
1028+ 0.500000
1029+ 1.000000
1030+ 2.000000
1031+ 4.000000
1032+ 8.000000
1033+ 16.000000
1034+ 32.000000
1035+ 64.000000
1036+ 128.000000
1037+ 256.000000
1038+ 512.000000
1039+ 1024.000000
1040+ 2048.000000
1041+ 4096.000000
1042+ 8192.000000
1043+ 16384.000000
1044+ 32768.000000
1045+ 65536.000000
1046+ 131072.000000
1047+ 262144.000000
1048+ 524288.000000
1049+ 1048576.00000
1050+ 2097152.00000
1051+ 4194304.00000
1052+ 8388608.00000
1053+TOO LONG
1054+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
1055+SELECT test_f();
1056+test_f()
1057+Hello, world!
1058+SELECT test_f();
1059+test_f()
1060+Hello, world!
1061+SELECT test_f();
1062+test_f()
1063+Hello, world!
1064+SELECT test_f();
1065+test_f()
1066+Hello, world!
1067+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1068+SELECT d.count,
1069+(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
1070+(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
1071+(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
1072+(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
1073+FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
1074+count query_count query_total not_zero_region_count region_count
1075+4 4 4 1 44
1076+SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1077+region_count
1078+44
1079+SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1080+time
1081+ 0.000001
1082+ 0.000003
1083+ 0.000007
1084+ 0.000015
1085+ 0.000030
1086+ 0.000061
1087+ 0.000122
1088+ 0.000244
1089+ 0.000488
1090+ 0.000976
1091+ 0.001953
1092+ 0.003906
1093+ 0.007812
1094+ 0.015625
1095+ 0.031250
1096+ 0.062500
1097+ 0.125000
1098+ 0.250000
1099+ 0.500000
1100+ 1.000000
1101+ 2.000000
1102+ 4.000000
1103+ 8.000000
1104+ 16.000000
1105+ 32.000000
1106+ 64.000000
1107+ 128.000000
1108+ 256.000000
1109+ 512.000000
1110+ 1024.000000
1111+ 2048.000000
1112+ 4096.000000
1113+ 8192.000000
1114+ 16384.000000
1115+ 32768.000000
1116+ 65536.000000
1117+ 131072.000000
1118+ 262144.000000
1119+ 524288.000000
1120+ 1048576.00000
1121+ 2097152.00000
1122+ 4194304.00000
1123+ 8388608.00000
1124+TOO LONG
1125+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1126+Variable_name Value
1127+query_response_time_range_base 2
1128+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 10;
1129+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1130+Variable_name Value
1131+query_response_time_range_base 10
1132+FLUSH QUERY_RESPONSE_TIME;
1133+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
1134+SELECT test_f();
1135+test_f()
1136+Hello, world!
1137+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1138+SELECT d.count,
1139+(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
1140+(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
1141+(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
1142+(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
1143+FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
1144+count query_count query_total not_zero_region_count region_count
1145+1 1 1 1 14
1146+SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1147+region_count
1148+14
1149+SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1150+time
1151+ 0.000001
1152+ 0.000010
1153+ 0.000100
1154+ 0.001000
1155+ 0.010000
1156+ 0.100000
1157+ 1.000000
1158+ 10.000000
1159+ 100.000000
1160+ 1000.000000
1161+ 10000.000000
1162+ 100000.000000
1163+ 1000000.00000
1164+TOO LONG
1165+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1166+Variable_name Value
1167+query_response_time_range_base 10
1168+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 7;
1169+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1170+Variable_name Value
1171+query_response_time_range_base 7
1172+FLUSH QUERY_RESPONSE_TIME;
1173+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
1174+SELECT test_f();
1175+test_f()
1176+Hello, world!
1177+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1178+SELECT d.count,
1179+(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
1180+(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
1181+(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
1182+(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
1183+FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
1184+count query_count query_total not_zero_region_count region_count
1185+1 1 1 1 17
1186+SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1187+region_count
1188+17
1189+SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1190+time
1191+ 0.000001
1192+ 0.000008
1193+ 0.000059
1194+ 0.000416
1195+ 0.002915
1196+ 0.020408
1197+ 0.142857
1198+ 1.000000
1199+ 7.000000
1200+ 49.000000
1201+ 343.000000
1202+ 2401.000000
1203+ 16807.000000
1204+ 117649.000000
1205+ 823543.000000
1206+ 5764801.00000
1207+TOO LONG
1208+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1209+Variable_name Value
1210+query_response_time_range_base 7
1211+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 156;
1212+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1213+Variable_name Value
1214+query_response_time_range_base 156
1215+FLUSH QUERY_RESPONSE_TIME;
1216+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
1217+SELECT test_f();
1218+test_f()
1219+Hello, world!
1220+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1221+SELECT d.count,
1222+(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
1223+(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
1224+(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
1225+(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
1226+FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
1227+count query_count query_total not_zero_region_count region_count
1228+1 1 1 1 7
1229+SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1230+region_count
1231+7
1232+SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1233+time
1234+ 0.000041
1235+ 0.006410
1236+ 1.000000
1237+ 156.000000
1238+ 24336.000000
1239+ 3796416.00000
1240+TOO LONG
1241+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1242+Variable_name Value
1243+query_response_time_range_base 156
1244+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 1000;
1245+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1246+Variable_name Value
1247+query_response_time_range_base 1000
1248+FLUSH QUERY_RESPONSE_TIME;
1249+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
1250+SELECT test_f();
1251+test_f()
1252+Hello, world!
1253+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1254+SELECT d.count,
1255+(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
1256+(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
1257+(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
1258+(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
1259+FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
1260+count query_count query_total not_zero_region_count region_count
1261+1 1 1 1 6
1262+SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1263+region_count
1264+6
1265+SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1266+time
1267+ 0.000001
1268+ 0.001000
1269+ 1.000000
1270+ 1000.000000
1271+ 1000000.00000
1272+TOO LONG
1273+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1274+Variable_name Value
1275+query_response_time_range_base 1000
1276+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 1001;
1277+Warnings:
1278+Warning 1292 Truncated incorrect query_response_time_range_base value: '1001'
1279+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1280+Variable_name Value
1281+query_response_time_range_base 1000
1282+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1283+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE =10;
1284+DROP FUNCTION test_f;
1285+SET GLOBAL debug=default;
1286--- /dev/null
1287+++ b/mysql-test/r/percona_query_response_time.result
1288@@ -0,0 +1,377 @@
1289+SET GLOBAL debug="d,query_exec_time_debug";
1290+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 1;
1291+Warnings:
1292+Warning 1292 Truncated incorrect query_response_time_range_base value: '1'
1293+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1294+Variable_name Value
1295+query_response_time_range_base 2
1296+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 2;
1297+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1298+Variable_name Value
1299+query_response_time_range_base 2
1300+FLUSH QUERY_RESPONSE_TIME;
1301+SELECT d.count,
1302+(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
1303+(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
1304+(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
1305+(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
1306+FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
1307+count query_count query_total not_zero_region_count region_count
1308+SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1309+region_count
1310+44
1311+SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1312+time
1313+ 0.000001
1314+ 0.000003
1315+ 0.000007
1316+ 0.000015
1317+ 0.000030
1318+ 0.000061
1319+ 0.000122
1320+ 0.000244
1321+ 0.000488
1322+ 0.000976
1323+ 0.001953
1324+ 0.003906
1325+ 0.007812
1326+ 0.015625
1327+ 0.031250
1328+ 0.062500
1329+ 0.125000
1330+ 0.250000
1331+ 0.500000
1332+ 1.000000
1333+ 2.000000
1334+ 4.000000
1335+ 8.000000
1336+ 16.000000
1337+ 32.000000
1338+ 64.000000
1339+ 128.000000
1340+ 256.000000
1341+ 512.000000
1342+ 1024.000000
1343+ 2048.000000
1344+ 4096.000000
1345+ 8192.000000
1346+ 16384.000000
1347+ 32768.000000
1348+ 65536.000000
1349+ 131072.000000
1350+ 262144.000000
1351+ 524288.000000
1352+ 1048576.00000
1353+ 2097152.00000
1354+ 4194304.00000
1355+ 8388608.00000
1356+TOO LONG
1357+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
1358+SET SESSION debug="+d,query_exec_time_0.31";
1359+SET SESSION debug="+d,query_exec_time_0.32";
1360+SET SESSION debug="+d,query_exec_time_0.33";
1361+SET SESSION debug="+d,query_exec_time_0.34";
1362+SET SESSION debug="+d,query_exec_time_0.35";
1363+SET SESSION debug="+d,query_exec_time_0.36";
1364+SET SESSION debug="+d,query_exec_time_0.37";
1365+SET SESSION debug="+d,query_exec_time_0.38";
1366+SET SESSION debug="+d,query_exec_time_0.39";
1367+SET SESSION debug="+d,query_exec_time_0.4";
1368+SET SESSION debug="+d,query_exec_time_1.1";
1369+SET SESSION debug="+d,query_exec_time_1.2";
1370+SET SESSION debug="+d,query_exec_time_1.3";
1371+SET SESSION debug="+d,query_exec_time_1.5";
1372+SET SESSION debug="+d,query_exec_time_1.4";
1373+SET SESSION debug="+d,query_exec_time_0.5";
1374+SET SESSION debug="+d,query_exec_time_2.1";
1375+SET SESSION debug="+d,query_exec_time_2.3";
1376+SET SESSION debug="+d,query_exec_time_2.5";
1377+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1378+SELECT d.count,
1379+(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
1380+(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
1381+(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
1382+(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
1383+FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
1384+count query_count query_total not_zero_region_count region_count
1385+10 19 15 4 44
1386+1 19 15 4 44
1387+5 19 15 4 44
1388+3 19 15 4 44
1389+SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1390+region_count
1391+44
1392+SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1393+time
1394+ 0.000001
1395+ 0.000003
1396+ 0.000007
1397+ 0.000015
1398+ 0.000030
1399+ 0.000061
1400+ 0.000122
1401+ 0.000244
1402+ 0.000488
1403+ 0.000976
1404+ 0.001953
1405+ 0.003906
1406+ 0.007812
1407+ 0.015625
1408+ 0.031250
1409+ 0.062500
1410+ 0.125000
1411+ 0.250000
1412+ 0.500000
1413+ 1.000000
1414+ 2.000000
1415+ 4.000000
1416+ 8.000000
1417+ 16.000000
1418+ 32.000000
1419+ 64.000000
1420+ 128.000000
1421+ 256.000000
1422+ 512.000000
1423+ 1024.000000
1424+ 2048.000000
1425+ 4096.000000
1426+ 8192.000000
1427+ 16384.000000
1428+ 32768.000000
1429+ 65536.000000
1430+ 131072.000000
1431+ 262144.000000
1432+ 524288.000000
1433+ 1048576.00000
1434+ 2097152.00000
1435+ 4194304.00000
1436+ 8388608.00000
1437+TOO LONG
1438+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1439+Variable_name Value
1440+query_response_time_range_base 2
1441+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 10;
1442+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1443+Variable_name Value
1444+query_response_time_range_base 10
1445+FLUSH QUERY_RESPONSE_TIME;
1446+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
1447+SET SESSION debug="+d,query_exec_time_0.31";
1448+SET SESSION debug="+d,query_exec_time_0.32";
1449+SET SESSION debug="+d,query_exec_time_0.33";
1450+SET SESSION debug="+d,query_exec_time_0.34";
1451+SET SESSION debug="+d,query_exec_time_0.35";
1452+SET SESSION debug="+d,query_exec_time_0.36";
1453+SET SESSION debug="+d,query_exec_time_0.37";
1454+SET SESSION debug="+d,query_exec_time_0.38";
1455+SET SESSION debug="+d,query_exec_time_0.39";
1456+SET SESSION debug="+d,query_exec_time_0.4";
1457+SET SESSION debug="+d,query_exec_time_1.1";
1458+SET SESSION debug="+d,query_exec_time_1.2";
1459+SET SESSION debug="+d,query_exec_time_1.3";
1460+SET SESSION debug="+d,query_exec_time_1.5";
1461+SET SESSION debug="+d,query_exec_time_1.4";
1462+SET SESSION debug="+d,query_exec_time_0.5";
1463+SET SESSION debug="+d,query_exec_time_2.1";
1464+SET SESSION debug="+d,query_exec_time_2.3";
1465+SET SESSION debug="+d,query_exec_time_2.5";
1466+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1467+SELECT d.count,
1468+(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
1469+(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
1470+(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
1471+(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
1472+FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
1473+count query_count query_total not_zero_region_count region_count
1474+11 19 17 2 14
1475+8 19 17 2 14
1476+SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1477+region_count
1478+14
1479+SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1480+time
1481+ 0.000001
1482+ 0.000010
1483+ 0.000100
1484+ 0.001000
1485+ 0.010000
1486+ 0.100000
1487+ 1.000000
1488+ 10.000000
1489+ 100.000000
1490+ 1000.000000
1491+ 10000.000000
1492+ 100000.000000
1493+ 1000000.00000
1494+TOO LONG
1495+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1496+Variable_name Value
1497+query_response_time_range_base 10
1498+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 7;
1499+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1500+Variable_name Value
1501+query_response_time_range_base 7
1502+FLUSH QUERY_RESPONSE_TIME;
1503+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
1504+SET SESSION debug="+d,query_exec_time_0.31";
1505+SET SESSION debug="+d,query_exec_time_0.32";
1506+SET SESSION debug="+d,query_exec_time_0.33";
1507+SET SESSION debug="+d,query_exec_time_0.34";
1508+SET SESSION debug="+d,query_exec_time_0.35";
1509+SET SESSION debug="+d,query_exec_time_0.36";
1510+SET SESSION debug="+d,query_exec_time_0.37";
1511+SET SESSION debug="+d,query_exec_time_0.38";
1512+SET SESSION debug="+d,query_exec_time_0.39";
1513+SET SESSION debug="+d,query_exec_time_0.4";
1514+SET SESSION debug="+d,query_exec_time_1.1";
1515+SET SESSION debug="+d,query_exec_time_1.2";
1516+SET SESSION debug="+d,query_exec_time_1.3";
1517+SET SESSION debug="+d,query_exec_time_1.5";
1518+SET SESSION debug="+d,query_exec_time_1.4";
1519+SET SESSION debug="+d,query_exec_time_0.5";
1520+SET SESSION debug="+d,query_exec_time_2.1";
1521+SET SESSION debug="+d,query_exec_time_2.3";
1522+SET SESSION debug="+d,query_exec_time_2.5";
1523+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1524+SELECT d.count,
1525+(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
1526+(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
1527+(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
1528+(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
1529+FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
1530+count query_count query_total not_zero_region_count region_count
1531+11 19 17 2 17
1532+8 19 17 2 17
1533+SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1534+region_count
1535+17
1536+SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1537+time
1538+ 0.000001
1539+ 0.000008
1540+ 0.000059
1541+ 0.000416
1542+ 0.002915
1543+ 0.020408
1544+ 0.142857
1545+ 1.000000
1546+ 7.000000
1547+ 49.000000
1548+ 343.000000
1549+ 2401.000000
1550+ 16807.000000
1551+ 117649.000000
1552+ 823543.000000
1553+ 5764801.00000
1554+TOO LONG
1555+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1556+Variable_name Value
1557+query_response_time_range_base 7
1558+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 156;
1559+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1560+Variable_name Value
1561+query_response_time_range_base 156
1562+FLUSH QUERY_RESPONSE_TIME;
1563+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
1564+SET SESSION debug="+d,query_exec_time_0.31";
1565+SET SESSION debug="+d,query_exec_time_0.32";
1566+SET SESSION debug="+d,query_exec_time_0.33";
1567+SET SESSION debug="+d,query_exec_time_0.34";
1568+SET SESSION debug="+d,query_exec_time_0.35";
1569+SET SESSION debug="+d,query_exec_time_0.36";
1570+SET SESSION debug="+d,query_exec_time_0.37";
1571+SET SESSION debug="+d,query_exec_time_0.38";
1572+SET SESSION debug="+d,query_exec_time_0.39";
1573+SET SESSION debug="+d,query_exec_time_0.4";
1574+SET SESSION debug="+d,query_exec_time_1.1";
1575+SET SESSION debug="+d,query_exec_time_1.2";
1576+SET SESSION debug="+d,query_exec_time_1.3";
1577+SET SESSION debug="+d,query_exec_time_1.5";
1578+SET SESSION debug="+d,query_exec_time_1.4";
1579+SET SESSION debug="+d,query_exec_time_0.5";
1580+SET SESSION debug="+d,query_exec_time_2.1";
1581+SET SESSION debug="+d,query_exec_time_2.3";
1582+SET SESSION debug="+d,query_exec_time_2.5";
1583+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1584+SELECT d.count,
1585+(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
1586+(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
1587+(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
1588+(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
1589+FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
1590+count query_count query_total not_zero_region_count region_count
1591+11 19 17 2 7
1592+8 19 17 2 7
1593+SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1594+region_count
1595+7
1596+SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1597+time
1598+ 0.000041
1599+ 0.006410
1600+ 1.000000
1601+ 156.000000
1602+ 24336.000000
1603+ 3796416.00000
1604+TOO LONG
1605+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1606+Variable_name Value
1607+query_response_time_range_base 156
1608+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 1000;
1609+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1610+Variable_name Value
1611+query_response_time_range_base 1000
1612+FLUSH QUERY_RESPONSE_TIME;
1613+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
1614+SET SESSION debug="+d,query_exec_time_0.31";
1615+SET SESSION debug="+d,query_exec_time_0.32";
1616+SET SESSION debug="+d,query_exec_time_0.33";
1617+SET SESSION debug="+d,query_exec_time_0.34";
1618+SET SESSION debug="+d,query_exec_time_0.35";
1619+SET SESSION debug="+d,query_exec_time_0.36";
1620+SET SESSION debug="+d,query_exec_time_0.37";
1621+SET SESSION debug="+d,query_exec_time_0.38";
1622+SET SESSION debug="+d,query_exec_time_0.39";
1623+SET SESSION debug="+d,query_exec_time_0.4";
1624+SET SESSION debug="+d,query_exec_time_1.1";
1625+SET SESSION debug="+d,query_exec_time_1.2";
1626+SET SESSION debug="+d,query_exec_time_1.3";
1627+SET SESSION debug="+d,query_exec_time_1.5";
1628+SET SESSION debug="+d,query_exec_time_1.4";
1629+SET SESSION debug="+d,query_exec_time_0.5";
1630+SET SESSION debug="+d,query_exec_time_2.1";
1631+SET SESSION debug="+d,query_exec_time_2.3";
1632+SET SESSION debug="+d,query_exec_time_2.5";
1633+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1634+SELECT d.count,
1635+(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
1636+(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
1637+(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
1638+(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
1639+FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
1640+count query_count query_total not_zero_region_count region_count
1641+11 19 17 2 6
1642+8 19 17 2 6
1643+SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1644+region_count
1645+6
1646+SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1647+time
1648+ 0.000001
1649+ 0.001000
1650+ 1.000000
1651+ 1000.000000
1652+ 1000000.00000
1653+TOO LONG
1654+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1655+Variable_name Value
1656+query_response_time_range_base 1000
1657+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 1001;
1658+Warnings:
1659+Warning 1292 Truncated incorrect query_response_time_range_base value: '1001'
1660+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1661+Variable_name Value
1662+query_response_time_range_base 1000
1663+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1664+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE =10;
1665+SET GLOBAL debug=default;
1666--- /dev/null
1667+++ b/mysql-test/t/percona_query_response_time-replication.test
1668@@ -0,0 +1,61 @@
1669+--source include/have_response_time_distribution.inc
1670+--source include/master-slave.inc
1671+--source include/have_binlog_format_statement.inc
1672+--source include/have_debug.inc
1673+--disable_query_log
1674+call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave. Statement:");
1675+--enable_query_log
1676+
1677+connection master;
1678+-- disable_warnings
1679+DROP TABLE IF EXISTS t;
1680+-- enable_warnings
1681+CREATE TABLE t(id INT);
1682+SELECT * from t;
1683+
1684+sync_slave_with_master;
1685+
1686+connection slave;
1687+SELECT * from t;
1688+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 1;
1689+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1690+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 10;
1691+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1692+source include/percona_query_response_time_flush.inc;
1693+SET GLOBAL QUERY_RESPONSE_TIME_STATS=ON;
1694+
1695+connection master;
1696+INSERT INTO t SELECT SLEEP(0.4);
1697+SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1698+INSERT INTO t SELECT SLEEP(0.4);
1699+SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1700+sync_slave_with_master;
1701+
1702+connection slave;
1703+SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1704+SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1705+
1706+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 2;
1707+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1708+source include/percona_query_response_time_flush.inc;
1709+
1710+connection master;
1711+INSERT INTO t SELECT SLEEP(0.4);
1712+SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1713+INSERT INTO t SELECT SLEEP(0.4);
1714+SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1715+sync_slave_with_master;
1716+
1717+connection slave;
1718+SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1719+SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1720+
1721+connection master;
1722+DROP TABLE IF EXISTS t;
1723+sync_slave_with_master;
1724+connection slave;
1725+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 10;
1726+SET GLOBAL QUERY_RESPONSE_TIME_STATS=OFF;
1727+
1728+STOP SLAVE;
1729+-- source include/wait_for_slave_to_stop.inc
1730--- /dev/null
1731+++ b/mysql-test/t/percona_query_response_time-stored.test
1732@@ -0,0 +1,85 @@
1733+--source include/have_response_time_distribution.inc
1734+--source include/have_debug.inc
1735+
1736+SET GLOBAL debug="d,query_exec_time_debug";
1737+
1738+delimiter /;
1739+CREATE FUNCTION test_f()
1740+RETURNS CHAR(30) DETERMINISTIC
1741+BEGIN
1742+ SET SESSION debug="+d,query_exec_time_1.1";
1743+ RETURN 'Hello, world!';
1744+END/
1745+delimiter ;/
1746+
1747+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 1;
1748+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1749+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 2;
1750+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1751+
1752+source include/percona_query_response_time_flush.inc;
1753+source include/percona_query_response_time_show.inc;
1754+
1755+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
1756+SELECT test_f();
1757+SELECT test_f();
1758+SELECT test_f();
1759+SELECT test_f();
1760+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1761+
1762+source include/percona_query_response_time_show.inc;
1763+
1764+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1765+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 10;
1766+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1767+
1768+source include/percona_query_response_time_flush.inc;
1769+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
1770+SELECT test_f();
1771+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1772+
1773+source include/percona_query_response_time_show.inc;
1774+
1775+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1776+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 7;
1777+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1778+
1779+source include/percona_query_response_time_flush.inc;
1780+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
1781+SELECT test_f();
1782+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1783+
1784+source include/percona_query_response_time_show.inc;
1785+
1786+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1787+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 156;
1788+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1789+
1790+source include/percona_query_response_time_flush.inc;
1791+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
1792+SELECT test_f();
1793+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1794+
1795+source include/percona_query_response_time_show.inc;
1796+
1797+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1798+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 1000;
1799+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1800+
1801+source include/percona_query_response_time_flush.inc;
1802+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
1803+SELECT test_f();
1804+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1805+
1806+source include/percona_query_response_time_show.inc;
1807+
1808+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1809+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 1001;
1810+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1811+
1812+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1813+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE =10;
1814+
1815+DROP FUNCTION test_f;
1816+
1817+SET GLOBAL debug=default;
1818--- /dev/null
1819+++ b/mysql-test/t/percona_query_response_time.test
1820@@ -0,0 +1,71 @@
1821+--source include/have_response_time_distribution.inc
1822+--source include/have_debug.inc
1823+
1824+SET GLOBAL debug="d,query_exec_time_debug";
1825+
1826+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 1;
1827+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1828+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 2;
1829+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1830+
1831+source include/percona_query_response_time_flush.inc;
1832+source include/percona_query_response_time_show.inc;
1833+
1834+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
1835+source include/percona_query_response_time_sleep.inc;
1836+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1837+
1838+source include/percona_query_response_time_show.inc;
1839+
1840+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1841+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 10;
1842+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1843+
1844+source include/percona_query_response_time_flush.inc;
1845+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
1846+source include/percona_query_response_time_sleep.inc;
1847+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1848+
1849+source include/percona_query_response_time_show.inc;
1850+
1851+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1852+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 7;
1853+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1854+
1855+source include/percona_query_response_time_flush.inc;
1856+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
1857+source include/percona_query_response_time_sleep.inc;
1858+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1859+
1860+source include/percona_query_response_time_show.inc;
1861+
1862+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1863+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 156;
1864+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1865+
1866+source include/percona_query_response_time_flush.inc;
1867+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
1868+source include/percona_query_response_time_sleep.inc;
1869+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1870+
1871+source include/percona_query_response_time_show.inc;
1872+
1873+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1874+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 1000;
1875+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1876+
1877+source include/percona_query_response_time_flush.inc;
1878+SET GLOBAL QUERY_RESPONSE_TIME_STATS=1;
1879+source include/percona_query_response_time_sleep.inc;
1880+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1881+
1882+source include/percona_query_response_time_show.inc;
1883+
1884+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1885+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 1001;
1886+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1887+
1888+SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
1889+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE =10;
1890+
1891+SET GLOBAL debug=default;
18923311
=== modified file 'patches/series'
--- patches/series 2011-09-03 15:15:31 +0000
+++ patches/series 2011-09-07 14:03:34 +0000
@@ -34,8 +34,8 @@
34query_cache_enhance.patch34query_cache_enhance.patch
35log_connection_error.patch35log_connection_error.patch
36mysql_syslog.patch36mysql_syslog.patch
37error_pad.patch
37response_time_distribution.patch38response_time_distribution.patch
38error_pad.patch
39remove_fcntl_excessive_calls.patch39remove_fcntl_excessive_calls.patch
40sql_no_fcache.patch40sql_no_fcache.patch
41show_slave_status_nolock.patch41show_slave_status_nolock.patch
4242
=== modified file 'patches/slow_extended.patch'
--- patches/slow_extended.patch 2011-09-03 15:15:31 +0000
+++ patches/slow_extended.patch 2011-09-07 14:03:34 +0000
@@ -634,10 +634,14 @@
634 enum enum_slave_exec_mode { SLAVE_EXEC_MODE_STRICT,634 enum enum_slave_exec_mode { SLAVE_EXEC_MODE_STRICT,
635 SLAVE_EXEC_MODE_IDEMPOTENT,635 SLAVE_EXEC_MODE_IDEMPOTENT,
636 SLAVE_EXEC_MODE_LAST_BIT};636 SLAVE_EXEC_MODE_LAST_BIT};
637@@ -508,6 +535,17 @@637@@ -508,6 +535,21 @@
638 638
639 my_bool sysdate_is_now;639 my_bool sysdate_is_now;
640 640
641+#ifndef DBUG_OFF
642+ ulonglong query_exec_time;
643+ double query_exec_time_double;
644+#endif
641+ ulong log_slow_rate_limit;645+ ulong log_slow_rate_limit;
642+ ulonglong log_slow_filter;646+ ulonglong log_slow_filter;
643+ ulonglong log_slow_verbosity;647+ ulonglong log_slow_verbosity;
@@ -652,7 +656,7 @@
652 double long_query_time_double;656 double long_query_time_double;
653 657
654 } SV;658 } SV;
655@@ -1140,6 +1178,14 @@659@@ -1140,6 +1182,14 @@
656 uint in_sub_stmt;660 uint in_sub_stmt;
657 bool enable_slow_log;661 bool enable_slow_log;
658 bool last_insert_id_used;662 bool last_insert_id_used;
@@ -667,7 +671,7 @@
667 SAVEPOINT *savepoints;671 SAVEPOINT *savepoints;
668 enum enum_check_fields count_cuted_fields;672 enum enum_check_fields count_cuted_fields;
669 };673 };
670@@ -1588,6 +1634,26 @@674@@ -1588,6 +1638,26 @@
671 thr_lock_type update_lock_default;675 thr_lock_type update_lock_default;
672 Delayed_insert *di;676 Delayed_insert *di;
673 677
@@ -714,15 +718,76 @@
714 }718 }
715--- a/sql/sql_parse.cc719--- a/sql/sql_parse.cc
716+++ b/sql/sql_parse.cc720+++ b/sql/sql_parse.cc
717@@ -1430,7 +1430,6 @@721@@ -114,6 +114,7 @@
722
723 static bool execute_sqlcom_select(THD *thd, TABLE_LIST *all_tables);
724 static void sql_kill(THD *thd, ulong id, bool only_kill_query);
725+static inline ulonglong get_query_exec_time(THD *thd, ulonglong cur_utime);
726
727 const char *any_db="*any*"; // Special symbol for check_access
728
729@@ -1430,6 +1431,60 @@
718 DBUG_RETURN(error);730 DBUG_RETURN(error);
719 }731 }
720 732
721-733+/**
734+ Calculate execution time for the current query.
735+
736+ For debug builds, check the session value of query_exec_time
737+ and if it is not zero, return it instead of the actual execution time.
738+
739+ SET queries are ignored so that statements changing query_exec_time are not
740+ affected by themselves.
741+
742+ @param thd thread handle
743+ @param lex current relative time in microseconds
744+
745+ @return time in microseconds from utime_after_lock
746+*/
747+
748+static inline ulonglong get_query_exec_time(THD *thd, ulonglong cur_utime)
749+{
750+ ulonglong res;
751+#ifndef DBUG_OFF
752+ if (thd->variables.query_exec_time != 0)
753+ res= thd->lex->sql_command != SQLCOM_SET_OPTION ?
754+ thd->variables.query_exec_time : 0;
755+ else
756+#endif
757+
758+ res= cur_utime - thd->utime_after_lock;
759+
760+ if (res > thd->variables.long_query_time)
761+ thd->server_status|= SERVER_QUERY_WAS_SLOW;
762+ else
763+ thd->server_status&= ~SERVER_QUERY_WAS_SLOW;
764+
765+ return res;
766+}
767+
768+
769+static inline void copy_global_to_session(THD *thd, ulong flag,
770+ const ulong *val)
771+{
772+ my_ptrdiff_t offset = ((char *)val - (char *)&global_system_variables);
773+ if (opt_slow_query_log_use_global_control & (1ULL << flag))
774+ *(ulong *)((char *) &thd->variables + offset) = *val;
775+}
776+
777+
778+static inline void copy_global_to_session(THD *thd, ulong flag,
779+ const ulonglong *val)
780+{
781+ my_ptrdiff_t offset = ((char *)val - (char *)&global_system_variables);
782+ if (opt_slow_query_log_use_global_control & (1ULL << flag))
783+ *(ulonglong *)((char *) &thd->variables + offset) = *val;
784+}
785+
786+
787
722 void log_slow_statement(THD *thd)788 void log_slow_statement(THD *thd)
723 {789 {
724 DBUG_ENTER("log_slow_statement");790@@ -1443,13 +1498,48 @@
725@@ -1443,6 +1442,42 @@
726 if (unlikely(thd->in_sub_stmt))791 if (unlikely(thd->in_sub_stmt))
727 DBUG_VOID_RETURN; // Don't set time for sub stmt792 DBUG_VOID_RETURN; // Don't set time for sub stmt
728 793
@@ -733,6 +798,9 @@
733+ (thd->query_plan_flags & QPLAN_QC))))798+ (thd->query_plan_flags & QPLAN_QC))))
734+ DBUG_VOID_RETURN;799+ DBUG_VOID_RETURN;
735+800+
801+ ulonglong end_utime_of_query= thd->current_utime();
802+ ulonglong query_exec_time= get_query_exec_time(thd, end_utime_of_query);
803+
736+ /*804+ /*
737+ Low long_query_time value most likely means user is debugging stuff and even805+ Low long_query_time value most likely means user is debugging stuff and even
738+ though some thread's queries are not supposed to be logged b/c of the rate806+ though some thread's queries are not supposed to be logged b/c of the rate
@@ -740,32 +808,36 @@
740+ to make an exception and write to slow log anyway.808+ to make an exception and write to slow log anyway.
741+ */809+ */
742+810+
743+ ulonglong end_utime_of_query= thd->current_utime();811+ system_variables const &g= global_system_variables;
744+#define USE_GLOBAL_UPDATE(variable_name,enum_value_name) \812+ copy_global_to_session(thd, SLOG_UG_LOG_SLOW_FILTER,
745+ if (opt_slow_query_log_use_global_control & (ULL(1) << enum_value_name)) \813+ &g.log_slow_filter);
746+ { \814+ copy_global_to_session(thd, SLOG_UG_LOG_SLOW_RATE_LIMIT,
747+ thd->variables. variable_name= \815+ &g.log_slow_rate_limit);
748+ global_system_variables. variable_name; \816+ copy_global_to_session(thd, SLOG_UG_LOG_SLOW_VERBOSITY,
749+ }817+ &g.log_slow_verbosity);
750+ USE_GLOBAL_UPDATE(log_slow_filter,SLOG_UG_LOG_SLOW_FILTER);818+ copy_global_to_session(thd, SLOG_UG_LONG_QUERY_TIME,
751+ USE_GLOBAL_UPDATE(log_slow_rate_limit,SLOG_UG_LOG_SLOW_RATE_LIMIT);819+ &g.long_query_time);
752+ USE_GLOBAL_UPDATE(log_slow_verbosity,SLOG_UG_LOG_SLOW_VERBOSITY);820+ copy_global_to_session(thd, SLOG_UG_MIN_EXAMINED_ROW_LIMIT,
753+ USE_GLOBAL_UPDATE(long_query_time,SLOG_UG_LONG_QUERY_TIME);821+ &g.min_examined_row_limit);
754+ USE_GLOBAL_UPDATE(long_query_time_double,SLOG_UG_LONG_QUERY_TIME);
755+ USE_GLOBAL_UPDATE(min_examined_row_limit,SLOG_UG_MIN_EXAMINED_ROW_LIMIT);
756+#undef USE_GLOBAL_UPDATE
757+822+
758+ /* Do not log this thread's queries due to rate limiting. */823+ /* Do not log this thread's queries due to rate limiting. */
759+ if (thd->write_to_slow_log != TRUE824+ if (thd->write_to_slow_log != TRUE
760+ && (thd->variables.long_query_time >= 1000000825+ && (thd->variables.long_query_time >= 1000000
761+ || (ulong) (end_utime_of_query - thd->utime_after_lock) < 1000000))826+ || (ulong) query_exec_time < 1000000))
762+ DBUG_VOID_RETURN;827+ DBUG_VOID_RETURN;
763+828+
764+829+
765 /*830 /*
766 Do not log administrative statements unless the appropriate option is831 Do not log administrative statements unless the appropriate option is
767 set.832 set.
768@@ -1879,6 +1914,9 @@833 */
834 if (thd->enable_slow_log)
835 {
836- ulonglong end_utime_of_query= thd->current_utime();
837 thd_proc_info(thd, "logging slow query");
838
839 if (((thd->server_status & SERVER_QUERY_WAS_SLOW) ||
840@@ -1879,6 +1969,9 @@
769 context.resolve_in_table_list_only(select_lex->841 context.resolve_in_table_list_only(select_lex->
770 table_list.first);842 table_list.first);
771 843
@@ -775,7 +847,7 @@
775 /*847 /*
776 Reset warning count for each query that uses tables848 Reset warning count for each query that uses tables
777 A better approach would be to reset this for any commands849 A better approach would be to reset this for any commands
778@@ -5297,6 +5335,21 @@850@@ -5297,6 +5390,21 @@
779 thd->rand_used= 0;851 thd->rand_used= 0;
780 thd->sent_row_count= thd->examined_row_count= 0;852 thd->sent_row_count= thd->examined_row_count= 0;
781 853
@@ -876,7 +948,37 @@
876 {948 {
877--- a/sql/sys_vars.cc949--- a/sql/sys_vars.cc
878+++ b/sql/sys_vars.cc950+++ b/sql/sys_vars.cc
879@@ -2898,6 +2898,117 @@951@@ -972,6 +972,29 @@
952 NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(0),
953 ON_UPDATE(update_cached_long_query_time));
954
955+#ifndef DBUG_OFF
956+static bool update_cached_query_exec_time(sys_var *self, THD *thd,
957+ enum_var_type type)
958+{
959+ if (type == OPT_SESSION)
960+ thd->variables.query_exec_time=
961+ double2ulonglong(thd->variables.query_exec_time_double * 1e6);
962+ else
963+ global_system_variables.query_exec_time=
964+ double2ulonglong(global_system_variables.query_exec_time_double * 1e6);
965+ return false;
966+}
967+
968+static Sys_var_double Sys_query_exec_time(
969+ "query_exec_time",
970+ "Pretend queries take this many seconds. When 0 (the default) use the "
971+ "actual execution time. Used only for debugging.",
972+ SESSION_VAR(query_exec_time_double),
973+ NO_CMD_LINE, VALID_RANGE(0, LONG_TIMEOUT), DEFAULT(0),
974+ NO_MUTEX_GUARD, IN_BINLOG, ON_CHECK(0),
975+ ON_UPDATE(update_cached_query_exec_time));
976+#endif
977+
978 static bool fix_low_prio_updates(sys_var *self, THD *thd, enum_var_type type)
979 {
980 if (type == OPT_SESSION)
981@@ -2898,6 +2921,117 @@
880 DEFAULT(FALSE), NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(0),982 DEFAULT(FALSE), NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(0),
881 ON_UPDATE(fix_log_state));983 ON_UPDATE(fix_log_state));
882 984
@@ -1243,24 +1345,55 @@
1243 1345
1244 # endif /* HAVE_PROFILING */1346 # endif /* HAVE_PROFILING */
1245--- /dev/null1347--- /dev/null
1246+++ b/mysql-test/include/grep.inc1348+++ b/mysql-test/include/log_grep.inc
1247@@ -0,0 +1,16 @@1349@@ -0,0 +1,17 @@
1350+--disable_query_log
1351+--echo [log_grep.inc] file: $log_file pattern: $grep_pattern
1248+perl;1352+perl;
1249+1353+ $log_file= $ENV{'log_file'};
1250+ $file = $ENV{'grep_file'};1354+ $log_file_full_path= $ENV{'log_file_full_path'};
1251+ $pattern = $ENV{'grep_pattern'};1355+ $grep_pattern= $ENV{'grep_pattern'};
1252+1356+
1253+ open(FILE, "$file")1357+ open(FILE, "$log_file_full_path")
1254+ or die("Cannot open file $file: $!\n");1358+ or die("Cannot open file $log_file_full_path: $!\n");
1255+1359+
1256+ $lines = 0;1360+ $lines = 0;
1257+ while(<FILE>) {1361+ while(<FILE>) {
1258+ $lines++ if (/$pattern/);1362+ $lines++ if (/$grep_pattern/);
1259+ }1363+ }
1260+ print "$lines\n";1364+ close(FILE);
1261+1365+ print "[log_grep.inc] lines: $lines\n";
1262+ close(FILE);1366+EOF
1263+EOF1367--- /dev/null
1368+++ b/mysql-test/include/log_start.inc
1369@@ -0,0 +1,16 @@
1370+--disable_query_log
1371+--let log_file_full_path = $MYSQLTEST_VARDIR/$log_file
1372+SET @slow_query_log_old=@@slow_query_log;
1373+SET @slow_query_log_file_old= @@slow_query_log_file;
1374+SET GLOBAL slow_query_log=OFF;
1375+perl;
1376+ $log_file_full_path= $ENV{'log_file_full_path'};
1377+ unlink $log_file_full_path;
1378+ open(FILE, '>', $log_file_full_path)
1379+ or die "Cannot create log file $log_file_full_path, reason: $!";
1380+ close(FILE);
1381+EOF
1382+--echo [log_start.inc] $log_file
1383+EVAL SET GLOBAL slow_query_log_file="$log_file_full_path";
1384+SET GLOBAL slow_query_log=ON;
1385+--enable_query_log
1386\ No newline at end of file
1387--- /dev/null
1388+++ b/mysql-test/include/log_stop.inc
1389@@ -0,0 +1,7 @@
1390+--disable_query_log
1391+FLUSH LOGS;
1392+SET GLOBAL slow_query_log=OFF;
1393+--echo [log_stop.inc] $log_file
1394+SET GLOBAL slow_query_log_file= @slow_query_log_file_old;
1395+SET GLOBAL slow_query_log= @slow_query_log_old;
1396+--enable_query_log
1264--- /dev/null1397--- /dev/null
1265+++ b/mysql-test/r/percona_bug643149.result1398+++ b/mysql-test/r/percona_bug643149.result
1266@@ -0,0 +1,21 @@1399@@ -0,0 +1,21 @@
@@ -1286,424 +1419,313 @@
1286+# Profile_total: X.X Profile_total_cpu: X.X 1419+# Profile_total: X.X Profile_total_cpu: X.X
1287+SET GLOBAL slow_query_log_file=@old_slow_query_log_file;1420+SET GLOBAL slow_query_log_file=@old_slow_query_log_file;
1288--- /dev/null1421--- /dev/null
1289+++ b/mysql-test/r/percona_slow_extended-log_slow_filter.result1422+++ b/mysql-test/r/percona_log_slow_filter-cl.result
1290@@ -0,0 +1,25 @@1423@@ -0,0 +1,6 @@
1291+drop table if exists t;1424+SHOW VARIABLES LIKE 'log_slow_filter';
1292+# Create test table1425+Variable_name Value
1293+create table t(id INT PRIMARY KEY) engine=InnoDB;1426+log_slow_filter full_join
1294+# Insert two rows to test table1427+SHOW GLOBAL VARIABLES LIKE 'log_slow_filter';
1295+insert into t values(1);1428+Variable_name Value
1296+insert into t values(2);1429+log_slow_filter full_join
1297+insert into t values(3);1430--- /dev/null
1298+SET GLOBAL SLOW_QUERY_LOG=ON;1431+++ b/mysql-test/r/percona_log_slow_filter.result
1299+SELECT sleep(2);1432@@ -0,0 +1,15 @@
1300+sleep(2)1433+CREATE TABLE t(id INT PRIMARY KEY);
1301+01434+INSERT INTO t VALUES(1);
1302+set log_slow_filter=full_join;1435+INSERT INTO t VALUES(2);
1303+SELECT sleep(2) union select t2.id from t as t1,t as t2;1436+INSERT INTO t VALUES(3);
1304+sleep(2)1437+SET long_query_time=1;
1305+01438+SET log_slow_filter=full_join;
1306+11439+[log_start.inc] percona.slow_extended.log_slow_filter
1307+21440+SET query_exec_time = 1.1;
1308+31441+SELECT * FROM t AS t1, t AS t2;
1309+SELECT sleep(2);1442+SET query_exec_time = default;
1310+sleep(2)1443+[log_stop.inc] percona.slow_extended.log_slow_filter
1311+01444+SET log_slow_filter=default;
1312+SET GLOBAL SLOW_QUERY_LOG=OFF;1445+SET long_query_time=default;
1313+drop table if exists t;1446+[log_grep.inc] file: percona.slow_extended.log_slow_filter pattern: Query_time
1314+FLUSH LOGS;1447+[log_grep.inc] lines: 1
1315+21448--- /dev/null
1316--- /dev/null1449+++ b/mysql-test/r/percona_log_slow_slave_statements-cl.result
1317+++ b/mysql-test/r/percona_slow_extended-log_slow_sp_statements-cl.result1450@@ -0,0 +1,6 @@
1318@@ -0,0 +1,3 @@1451+SHOW VARIABLES LIKE 'log_slow_slave_statements';
1319+show global variables like 'log_slow_sp_statements';1452+Variable_name Value
1320+Variable_name Value1453+log_slow_slave_statements ON
1321+log_slow_sp_statements ON1454+SHOW GLOBAL VARIABLES LIKE 'log_slow_slave_statements';
1322--- /dev/null1455+Variable_name Value
1323+++ b/mysql-test/r/percona_slow_extended-log_slow_verbosity-cl.result1456+log_slow_slave_statements ON
1324@@ -0,0 +1,9 @@1457--- /dev/null
1325+show global variables like 'log_slow_verbosity';1458+++ b/mysql-test/r/percona_log_slow_slave_statements-innodb.result
1326+Variable_name Value1459@@ -0,0 +1,18 @@
1327+log_slow_verbosity microtime,query_plan,innodb1460+include/master-slave.inc
1328+show variables like 'log_slow_verbosity';1461+[connection master]
1329+Variable_name Value1462+DROP TABLE IF EXISTS t;
1330+log_slow_verbosity microtime,query_plan,innodb1463+CREATE TABLE t(id INT,data CHAR(30)) ENGINE=InnoDB;
1331+select @@log_slow_verbosity;1464+INSERT INTO t VALUES
1332+@@log_slow_verbosity1465+(1,"aaaaabbbbbcccccdddddeeeeefffff"),
1333+microtime,query_plan,innodb1466+(2,"aaaaabbbbbcccccdddddeeeeefffff"),
1334--- /dev/null1467+(3,"aaaaabbbbbcccccdddddeeeeefffff"),
1335+++ b/mysql-test/r/percona_slow_extended-log_slow_verbosity.result1468+(4,"aaaaabbbbbcccccdddddeeeeefffff"),
1336@@ -0,0 +1,9 @@1469+(5,"aaaaabbbbbcccccdddddeeeeefffff");
1337+SELECT sleep(2);1470+INSERT INTO t SELECT t2.id,t2.data from t as t1, t as t2;
1338+sleep(2)1471+INSERT INTO t SELECT t2.id,t2.data from t as t1, t as t2;
1339+01472+[log_start.inc] percona.slow_extended.log_slow_slave_statements-innodb
1340+set log_slow_verbosity=innodb;1473+INSERT INTO t SELECT t.id,t.data from t;
1341+SELECT sleep(2);1474+[log_stop.inc] percona.slow_extended.log_slow_slave_statements-innodb
1342+sleep(2)1475+[log_grep.inc] file: percona.slow_extended.log_slow_slave_statements-innodb pattern: InnoDB_IO_r_ops
1343+01476+[log_grep.inc] lines: 1
1344+FLUSH LOGS;1477+include/rpl_end.inc
1345+11478--- /dev/null
1346--- /dev/null1479+++ b/mysql-test/r/percona_log_slow_slave_statements.result
1347+++ b/mysql-test/r/percona_slow_extended-long_query_time.result1480@@ -0,0 +1,44 @@
1481+include/master-slave.inc
1482+[connection master]
1483+DROP TABLE IF EXISTS t;
1484+CREATE TABLE t(id INT);
1485+[log_start.inc] percona.slow_extended.log_slow_slave_statements
1486+LINE 1
1487+LOG_SLOW_SLAVE_STATAMENTS is OFF
1488+LOG_SLOW_SLAVE_STATEMENTS=ON
1489+LOG_SLOW_SLAVE_STATAMENTS is ON
1490+LINE 2
1491+include/restart_slave.inc
1492+LOG_SLOW_SLAVE_STATAMENTS is ON
1493+LINE 3
1494+LOG_SLOW_SLAVE_STATAMENTS is ON
1495+LOG_SLOW_SLAVE_STATEMENTS=OFF
1496+LOG_SLOW_SLAVE_STATAMENTS is OFF
1497+LINE 4
1498+include/restart_slave.inc
1499+LOG_SLOW_SLAVE_STATAMENTS is OFF
1500+LINE 5
1501+LOG_SLOW_SLAVE_STATAMENTS is OFF
1502+LOG_SLOW_SLAVE_STATEMENTS=ON
1503+LOG_SLOW_SLAVE_STATAMENTS is ON
1504+LINE 6
1505+include/restart_slave.inc
1506+LOG_SLOW_SLAVE_STATAMENTS is ON
1507+LINE 7
1508+[log_stop.inc] percona.slow_extended.log_slow_slave_statements
1509+SET GLOBAL log_slow_slave_statements=default;
1510+[log_grep.inc] file: percona.slow_extended.log_slow_slave_statements pattern: INSERT INTO t VALUES \(1\)
1511+[log_grep.inc] lines: 0
1512+[log_grep.inc] file: percona.slow_extended.log_slow_slave_statements pattern: INSERT INTO t VALUES \(2\)
1513+[log_grep.inc] lines: 0
1514+[log_grep.inc] file: percona.slow_extended.log_slow_slave_statements pattern: INSERT INTO t VALUES \(3\)
1515+[log_grep.inc] lines: 1
1516+[log_grep.inc] file: percona.slow_extended.log_slow_slave_statements pattern: INSERT INTO t VALUES \(4\)
1517+[log_grep.inc] lines: 0
1518+[log_grep.inc] file: percona.slow_extended.log_slow_slave_statements pattern: INSERT INTO t VALUES \(5\)
1519+[log_grep.inc] lines: 0
1520+[log_grep.inc] file: percona.slow_extended.log_slow_slave_statements pattern: INSERT INTO t VALUES \(6\)
1521+[log_grep.inc] lines: 0
1522+[log_grep.inc] file: percona.slow_extended.log_slow_slave_statements pattern: INSERT INTO t VALUES \(7\)
1523+[log_grep.inc] lines: 1
1524+include/rpl_end.inc
1525--- /dev/null
1526+++ b/mysql-test/r/percona_log_slow_sp_statements-cl.result
1527@@ -0,0 +1,6 @@
1528+SHOW VARIABLES LIKE 'log_slow_sp_statements';
1529+Variable_name Value
1530+log_slow_sp_statements ON
1531+SHOW GLOBAL VARIABLES LIKE 'log_slow_sp_statements';
1532+Variable_name Value
1533+log_slow_sp_statements ON
1534--- /dev/null
1535+++ b/mysql-test/r/percona_log_slow_sp_statements.result
1348@@ -0,0 +1,24 @@1536@@ -0,0 +1,24 @@
1349+SET GLOBAL SLOW_QUERY_LOG=ON;1537+SET long_query_time=1;
1350+SELECT sleep(1);1538+SET GLOBAL log_slow_sp_statements=ON;
1351+sleep(1)1539+SET SESSION query_exec_time=0.1;
1352+01540+[log_start.inc] percona.slow_extended.log_slow_sp_statements
1353+SELECT sleep(3);1541+CREATE PROCEDURE test_f()
1354+sleep(3)1542+BEGIN
1355+01543+SET SESSION query_exec_time=1.1; SELECT 1;
1356+SELECT sleep(5);1544+SET SESSION query_exec_time=2.1; SELECT 1;
1357+sleep(5)1545+SET SESSION query_exec_time=3.1; SELECT 1;
1358+01546+SET SESSION query_exec_time=0.1;
1359+set long_query_time=4;1547+END^
1360+SELECT sleep(1);1548+CALL test_f();
1361+sleep(1)1549+1
1362+01550+1
1363+SELECT sleep(3);1551+1
1364+sleep(3)1552+1
1365+01553+1
1366+SELECT sleep(5);1554+1
1367+sleep(5)1555+[log_stop.inc] percona.slow_extended.log_slow_sp_statements
1368+01556+SET SESSION query_exec_time=default;
1369+set long_query_time=2;1557+SET GLOBAL log_slow_sp_statements=default;
1370+SET GLOBAL SLOW_QUERY_LOG=OFF;1558+SET long_query_time=default;
1371+FLUSH LOGS;1559+[log_grep.inc] file: percona.slow_extended.log_slow_sp_statements pattern: Query_time
1372+31560+[log_grep.inc] lines: 3
1373--- /dev/null1561--- /dev/null
1374+++ b/mysql-test/r/percona_slow_extended-microseconds_in_slow_extended.result1562+++ b/mysql-test/r/percona_log_slow_verbosity-cl.result
1375@@ -0,0 +1,13 @@1563@@ -0,0 +1,6 @@
1376+SET GLOBAL SLOW_QUERY_LOG=ON;1564+SHOW VARIABLES LIKE 'log_slow_verbosity';
1377+SELECT sleep(2);1565+Variable_name Value
1378+sleep(2)1566+log_slow_verbosity microtime,query_plan,innodb
1379+01567+SHOW GLOBAL VARIABLES LIKE 'log_slow_verbosity';
1380+set global slow_query_log_timestamp_precision='microsecond';1568+Variable_name Value
1381+SELECT sleep(2);1569+log_slow_verbosity microtime,query_plan,innodb
1382+sleep(2)1570--- /dev/null
1383+01571+++ b/mysql-test/r/percona_log_slow_verbosity.result
1384+set global slow_query_log_timestamp_precision='second';1572@@ -0,0 +1,16 @@
1385+SET GLOBAL SLOW_QUERY_LOG=OFF;1573+SET SESSION long_query_time=1;
1386+FLUSH LOGS;1574+[log_start.inc] percona.slow_extended.log_slow_verbosity
1387+11575+SET SESSION query_exec_time=2.1;
1388+21576+SELECT 1;
1389--- /dev/null1577+1
1390+++ b/mysql-test/r/percona_slow_extended-min_examined_row_limit.result1578+1
1391@@ -0,0 +1,25 @@1579+SET SESSION log_slow_verbosity=innodb;
1392+drop table if exists t;1580+SELECT 1;
1393+# Create test table1581+1
1394+create table t(id INT PRIMARY KEY) engine=InnoDB;1582+1
1395+# Insert two rows to test table1583+SET SESSION query_exec_time=default;
1396+insert into t values(1);1584+[log_stop.inc] percona.slow_extended.log_slow_verbosity
1397+insert into t values(2);1585+SET log_slow_verbosity=default;
1398+insert into t values(3);1586+SET long_query_time=default;
1399+SET GLOBAL SLOW_QUERY_LOG=ON;1587+[log_grep.inc] file: percona.slow_extended.log_slow_verbosity pattern: No InnoDB statistics available for this query
1400+SELECT sleep(2);1588+[log_grep.inc] lines: 1
1401+sleep(2)1589--- /dev/null
1402+01590+++ b/mysql-test/r/percona_long_query_time.result
1403+set min_examined_row_limit=5;1591@@ -0,0 +1,33 @@
1404+SELECT sleep(2) union select t2.id from t as t1,t as t2;1592+SET long_query_time=2;
1405+sleep(2)1593+[log_start.inc] percona.slow_extended.long_query_time
1406+01594+SET SESSION query_exec_time=1.1;
1407+11595+SELECT 1;
1408+21596+1
1409+31597+1
1410+SELECT sleep(2);1598+SET SESSION query_exec_time=3.1;
1411+sleep(2)1599+SELECT 1;
1412+01600+1
1413+SET GLOBAL SLOW_QUERY_LOG=OFF;1601+1
1414+drop table if exists t;1602+SET SESSION query_exec_time=5.1;
1415+FLUSH LOGS;1603+SELECT 1;
1416+21604+1
1417--- /dev/null1605+1
1418+++ b/mysql-test/r/percona_slow_extended-slave_innodb_stats.result1606+SET long_query_time=4;
1419@@ -0,0 +1,22 @@1607+SET SESSION query_exec_time=1.1;
1420+include/master-slave.inc1608+SELECT 1;
1421+[connection master]1609+1
1422+DROP TABLE IF EXISTS t;1610+1
1423+CREATE TABLE t(id INT,data CHAR(30)) ENGINE=InnoDB;1611+SET SESSION query_exec_time=3.1;
1424+INSERT INTO t VALUES1612+SELECT 1;
1425+(1,"aaaaabbbbbcccccdddddeeeeefffff"),1613+1
1426+(2,"aaaaabbbbbcccccdddddeeeeefffff"),1614+1
1427+(3,"aaaaabbbbbcccccdddddeeeeefffff"),1615+SET SESSION query_exec_time=5.1;
1428+(4,"aaaaabbbbbcccccdddddeeeeefffff"),1616+SELECT 1;
1429+(5,"aaaaabbbbbcccccdddddeeeeefffff");1617+1
1430+INSERT INTO t SELECT t2.id,t2.data from t as t1, t as t2;1618+1
1431+INSERT INTO t SELECT t2.id,t2.data from t as t1, t as t2;1619+SET SESSION query_exec_time=default;
1432+STOP SLAVE;1620+SET long_query_time=2;
1433+include/wait_for_slave_to_stop.inc1621+[log_stop.inc] percona.slow_extended.long_query_time
1434+START SLAVE;1622+SET long_query_time=default;
1435+include/wait_for_slave_to_start.inc1623+[log_grep.inc] file: percona.slow_extended.long_query_time pattern: Query_time
1436+INSERT INTO t SELECT t.id,t.data from t;1624+[log_grep.inc] lines: 3
1437+DROP TABLE IF EXISTS t;1625--- /dev/null
1438+FLUSH LOGS;1626+++ b/mysql-test/r/percona_slow_query_log_timestamp_always-cl.result
1439+41627@@ -0,0 +1,6 @@
1440+STOP SLAVE;1628+SHOW VARIABLES LIKE 'slow_query_log_timestamp_always';
1441+include/wait_for_slave_to_stop.inc1629+Variable_name Value
1442--- /dev/null1630+slow_query_log_timestamp_always ON
1443+++ b/mysql-test/r/percona_slow_extended-slave_statements-and-use_global_long_query_time.result1631+SHOW GLOBAL VARIABLES LIKE 'slow_query_log_timestamp_always';
1444@@ -0,0 +1,89 @@1632+Variable_name Value
1445+include/master-slave.inc1633+slow_query_log_timestamp_always ON
1446+[connection master]1634--- /dev/null
1447+DROP TABLE IF EXISTS t;1635+++ b/mysql-test/r/percona_slow_query_log_timestamp_always.result
1448+CREATE TABLE t(id INT);1636@@ -0,0 +1,41 @@
1449+START SLAVE;1637+SET long_query_time=2;
1450+include/wait_for_slave_to_start.inc1638+SET GLOBAL slow_query_log_timestamp_always=ON;
1451+INSERT INTO t VALUES (1);1639+[log_start.inc] percona.slow_extended.slow_query_log_timestamp_always
1452+show variables like 'log_slow_slave_statements';1640+SET SESSION query_exec_time=2.1;
1453+Variable_name Value1641+SELECT 1;
1454+log_slow_slave_statements OFF1642+1
1455+set global log_slow_slave_statements=ON;1643+1
1456+show variables like 'log_slow_slave_statements';1644+SELECT 1;
1457+Variable_name Value1645+1
1458+log_slow_slave_statements ON1646+1
1459+INSERT INTO t VALUES (2);1647+SELECT 1;
1460+STOP SLAVE;1648+1
1461+include/wait_for_slave_to_stop.inc1649+1
1462+START SLAVE;1650+SET GLOBAL slow_query_log_timestamp_always=OFF;
1463+include/wait_for_slave_to_start.inc1651+SET SESSION query_exec_time=2.1;
1464+INSERT INTO t VALUES (3);1652+SELECT 1;
1465+show variables like 'long_query_time';1653+1
1466+Variable_name Value1654+1
1467+long_query_time 1.0000001655+SELECT 1;
1468+show global variables like 'long_query_time';1656+1
1469+Variable_name Value1657+1
1470+long_query_time 1.0000001658+SELECT 1;
1471+show global variables like 'slow_query_log_use_global_control';1659+1
1472+Variable_name Value1660+1
1473+slow_query_log_use_global_control 1661+SET GLOBAL slow_query_log_timestamp_always=ON;
1474+set global long_query_time=0;1662+SET SESSION query_exec_time=2.1;
1475+show variables like 'long_query_time';1663+SELECT 1;
1476+Variable_name Value1664+1
1477+long_query_time 1.0000001665+1
1478+show global variables like 'long_query_time';1666+SELECT 1;
1479+Variable_name Value1667+1
1480+long_query_time 0.0000001668+1
1481+show global variables like 'slow_query_log_use_global_control';1669+SELECT 1;
1482+Variable_name Value1670+1
1483+slow_query_log_use_global_control 1671+1
1484+INSERT INTO t VALUES (4);1672+SET SESSION query_exec_time=default;
1485+show variables like 'long_query_time';1673+[log_stop.inc] percona.slow_extended.slow_query_log_timestamp_always
1486+Variable_name Value1674+SET GLOBAL slow_query_log_timestamp_always=default;
1487+long_query_time 1.0000001675+SET long_query_time=default;
1488+show global variables like 'long_query_time';1676+[log_grep.inc] file: percona.slow_extended.slow_query_log_timestamp_always pattern: # Time: [0-9]+[ ]+[0-9]+:[0-9]+:[0-9]+
1489+Variable_name Value1677+[log_grep.inc] lines: 6
1490+long_query_time 0.0000001678--- /dev/null
1491+show global variables like 'slow_query_log_use_global_control';1679+++ b/mysql-test/r/percona_slow_query_log_timestamp_precision-cl.result
1492+Variable_name Value1680@@ -0,0 +1,6 @@
1493+slow_query_log_use_global_control 1681+SHOW VARIABLES LIKE 'slow_query_log_timestamp_precision';
1494+set global slow_query_log_use_global_control='long_query_time';1682+Variable_name Value
1495+show variables like 'long_query_time';1683+slow_query_log_timestamp_precision microsecond
1496+Variable_name Value1684+SHOW GLOBAL VARIABLES LIKE 'slow_query_log_timestamp_precision';
1497+long_query_time 0.0000001685+Variable_name Value
1498+show global variables like 'long_query_time';1686+slow_query_log_timestamp_precision microsecond
1499+Variable_name Value1687--- /dev/null
1500+long_query_time 0.0000001688+++ b/mysql-test/r/percona_slow_query_log_timestamp_precision.result
1501+show global variables like 'slow_query_log_use_global_control';1689@@ -0,0 +1,18 @@
1502+Variable_name Value1690+SET long_query_time=2;
1503+slow_query_log_use_global_control long_query_time1691+[log_start.inc] percona.slow_extended.slow_query_log_timestamp_precision
1504+INSERT INTO t VALUES (5);1692+SET SESSION query_exec_time=2.1;
1505+show variables like 'long_query_time';1693+SELECT 1;
1506+Variable_name Value1694+1
1507+long_query_time 0.0000001695+1
1508+show global variables like 'long_query_time';1696+SET GLOBAL slow_query_log_timestamp_precision='microsecond';
1509+Variable_name Value1697+SELECT 1;
1510+long_query_time 0.0000001698+1
1511+show global variables like 'slow_query_log_use_global_control';1699+1
1512+Variable_name Value1700+SET SESSION query_exec_time=default;
1513+slow_query_log_use_global_control long_query_time1701+[log_stop.inc] percona.slow_extended.slow_query_log_timestamp_precision
1514+set global long_query_time=1;1702+SET GLOBAL slow_query_log_timestamp_precision=default;
1515+set global slow_query_log_use_global_control='';1703+SET long_query_time=default;
1516+FLUSH LOGS;1704+[log_grep.inc] file: percona.slow_extended.slow_query_log_timestamp_precision pattern: # Time: [0-9]+[ ]+[0-9]+:[0-9]+:[0-9]+.[0-9]+
1517+# Analyse master slow_query_log1705+[log_grep.inc] lines: 1
1518+01706+[log_grep.inc] file: percona.slow_extended.slow_query_log_timestamp_precision pattern: # Time: [0-9]+[ ]+[0-9]+:[0-9]+:[0-9]+
1519+01707+[log_grep.inc] lines: 2
1520+01708--- /dev/null
1521+01709+++ b/mysql-test/r/percona_slow_query_log_use_global_control.result
1522+01710@@ -0,0 +1,18 @@
1523+FLUSH LOGS;1711+SET GLOBAL long_query_time=1;
1524+# Analyse slave slow_query_log1712+[log_start.inc] percona.slow_extended.slow_query_log_use_global_control
1525+01713+SET SESSION query_exec_time=1.1;
1526+01714+SELECT 1;
1527+01715+1
1528+01716+1
1529+11717+SET GLOBAL log_slow_verbosity=innodb;
1530+set global log_slow_slave_statements=OFF;1718+SET GLOBAL slow_query_log_use_global_control="log_slow_verbosity,long_query_time";
1531+DROP TABLE t;1719+SELECT 1;
1532+STOP SLAVE;1720+1
1533+include/wait_for_slave_to_stop.inc1721+1
1534--- /dev/null1722+SET SESSION query_exec_time=default;
1535+++ b/mysql-test/r/percona_slow_extended-slave_statements.result1723+[log_stop.inc] percona.slow_extended.slow_query_log_use_global_control
1536@@ -0,0 +1,94 @@1724+SET GLOBAL slow_query_log_use_global_control=default;
1537+include/master-slave.inc1725+SET GLOBAL log_slow_verbosity=default;
1538+[connection master]1726+SET GLOBAL long_query_time=default;
1539+DROP TABLE IF EXISTS t;1727+[log_grep.inc] file: percona.slow_extended.slow_query_log_use_global_control pattern: No InnoDB statistics available for this query
1540+CREATE TABLE t(id INT);1728+[log_grep.inc] lines: 1
1541+START SLAVE;
1542+include/wait_for_slave_to_start.inc
1543+INSERT INTO t VALUES (1);
1544+show variables like 'log_slow_slave_statements';
1545+Variable_name Value
1546+log_slow_slave_statements OFF
1547+set global log_slow_slave_statements=ON;
1548+show variables like 'log_slow_slave_statements';
1549+Variable_name Value
1550+log_slow_slave_statements ON
1551+INSERT INTO t VALUES (2);
1552+show variables like 'log_slow_slave_statements';
1553+Variable_name Value
1554+log_slow_slave_statements ON
1555+set global log_slow_slave_statements=ON;
1556+show variables like 'log_slow_slave_statements';
1557+Variable_name Value
1558+log_slow_slave_statements ON
1559+STOP SLAVE;
1560+include/wait_for_slave_to_stop.inc
1561+START SLAVE;
1562+include/wait_for_slave_to_start.inc
1563+show variables like 'log_slow_slave_statements';
1564+Variable_name Value
1565+log_slow_slave_statements ON
1566+set global log_slow_slave_statements=ON;
1567+show variables like 'log_slow_slave_statements';
1568+Variable_name Value
1569+log_slow_slave_statements ON
1570+INSERT INTO t VALUES (3);
1571+show variables like 'log_slow_slave_statements';
1572+Variable_name Value
1573+log_slow_slave_statements ON
1574+set global log_slow_slave_statements=OFF;
1575+show variables like 'log_slow_slave_statements';
1576+Variable_name Value
1577+log_slow_slave_statements OFF
1578+INSERT INTO t VALUES (4);
1579+show variables like 'log_slow_slave_statements';
1580+Variable_name Value
1581+log_slow_slave_statements OFF
1582+STOP SLAVE;
1583+include/wait_for_slave_to_stop.inc
1584+START SLAVE;
1585+include/wait_for_slave_to_start.inc
1586+show variables like 'log_slow_slave_statements';
1587+Variable_name Value
1588+log_slow_slave_statements OFF
1589+INSERT INTO t VALUES (5);
1590+show variables like 'log_slow_slave_statements';
1591+Variable_name Value
1592+log_slow_slave_statements OFF
1593+set global log_slow_slave_statements=ON;
1594+show variables like 'log_slow_slave_statements';
1595+Variable_name Value
1596+log_slow_slave_statements ON
1597+INSERT INTO t VALUES (6);
1598+show variables like 'log_slow_slave_statements';
1599+Variable_name Value
1600+log_slow_slave_statements ON
1601+STOP SLAVE;
1602+include/wait_for_slave_to_stop.inc
1603+START SLAVE;
1604+include/wait_for_slave_to_start.inc
1605+show variables like 'log_slow_slave_statements';
1606+Variable_name Value
1607+log_slow_slave_statements ON
1608+INSERT INTO t VALUES (7);
1609+FLUSH LOGS;
1610+# Analyse master slow_query_log
1611+1
1612+1
1613+1
1614+1
1615+1
1616+1
1617+1
1618+FLUSH LOGS;
1619+# Analyse slave slow_query_log
1620+0
1621+0
1622+1
1623+0
1624+0
1625+0
1626+1
1627+set global log_slow_slave_statements=OFF;
1628+DROP TABLE t;
1629+STOP SLAVE;
1630+include/wait_for_slave_to_stop.inc
1631--- /dev/null
1632+++ b/mysql-test/r/percona_slow_extended-slow_query_log_microseconds_timestamp-cl.result
1633@@ -0,0 +1,3 @@
1634+show global variables like 'slow_query_log_timestamp_precision';
1635+Variable_name Value
1636+slow_query_log_timestamp_precision microsecond
1637--- /dev/null
1638+++ b/mysql-test/r/percona_slow_extended-slow_query_log_timestamp_always-cl.result
1639@@ -0,0 +1,3 @@
1640+show global variables like 'slow_query_log_timestamp_always';
1641+Variable_name Value
1642+slow_query_log_timestamp_always ON
1643--- /dev/null
1644+++ b/mysql-test/r/percona_slow_extended-use_global_control.result
1645@@ -0,0 +1,12 @@
1646+SELECT sleep(2);
1647+sleep(2)
1648+0
1649+set global log_slow_verbosity=innodb;
1650+set global slow_query_log_use_global_control="log_slow_verbosity,long_query_time";
1651+SELECT sleep(2);
1652+sleep(2)
1653+0
1654+set global slow_query_log_use_global_control='';
1655+set global log_slow_verbosity='';
1656+FLUSH LOGS;
1657+1
1658--- /dev/null
1659+++ b/mysql-test/r/percona_slow_extended-use_global_long_query_time.result
1660@@ -0,0 +1,46 @@
1661+SET GLOBAL SLOW_QUERY_LOG=ON;
1662+SELECT sleep(1);
1663+sleep(1)
1664+0
1665+SELECT sleep(3);
1666+sleep(3)
1667+0
1668+SELECT sleep(5);
1669+sleep(5)
1670+0
1671+set global long_query_time=4;
1672+set global slow_query_log_use_global_control='long_query_time';
1673+SELECT sleep(1);
1674+sleep(1)
1675+0
1676+SELECT sleep(3);
1677+sleep(3)
1678+0
1679+SELECT sleep(5);
1680+sleep(5)
1681+0
1682+set global long_query_time=2;
1683+set global slow_query_log_use_global_control='';
1684+SET GLOBAL SLOW_QUERY_LOG=OFF;
1685+FLUSH LOGS;
1686+3
1687+show global variables like 'slow_query_log_use_global_control';
1688+Variable_name Value
1689+slow_query_log_use_global_control
1690+set global slow_query_log_use_global_control='long_query_time';
1691+show global variables like 'slow_query_log_use_global_control';
1692+Variable_name Value
1693+slow_query_log_use_global_control long_query_time
1694+set global slow_query_log_use_global_control='log_slow_filter,long_query_time';
1695+show global variables like 'slow_query_log_use_global_control';
1696+Variable_name Value
1697+slow_query_log_use_global_control log_slow_filter,long_query_time
1698+set global slow_query_log_use_global_control='log_slow_filter';
1699+show global variables like 'slow_query_log_use_global_control';
1700+Variable_name Value
1701+slow_query_log_use_global_control log_slow_filter
1702+set global slow_query_log_use_global_control='';
1703+show global variables like 'slow_query_log_use_global_control';
1704+Variable_name Value
1705+slow_query_log_use_global_control
1706+set global slow_query_log_use_global_control='long_query_time';
1707--- /dev/null1729--- /dev/null
1708+++ b/mysql-test/t/percona_bug643149.test1730+++ b/mysql-test/t/percona_bug643149.test
1709@@ -0,0 +1,49 @@1731@@ -0,0 +1,49 @@
@@ -1757,583 +1779,600 @@
1757+ --enable_query_log1779+ --enable_query_log
1758+}1780+}
1759--- /dev/null1781--- /dev/null
1760+++ b/mysql-test/t/percona_slow_extended-log_slow_filter-master.opt1782+++ b/mysql-test/t/percona_log_slow_filter-cl-master.opt
1761@@ -0,0 +1 @@1783@@ -0,0 +1 @@
1762+--slow-query-log-file=percona_slow_query_log-log_slow_filter.log --long-query-time=1 --slow_query_log=OFF1784+--log_slow_filter=full_join
1763--- /dev/null1785--- /dev/null
1764+++ b/mysql-test/t/percona_slow_extended-log_slow_filter.test1786+++ b/mysql-test/t/percona_log_slow_filter-cl.test
1765@@ -0,0 +1,32 @@1787@@ -0,0 +1,2 @@
1766+source include/have_innodb.inc;1788+SHOW VARIABLES LIKE 'log_slow_filter';
1767+1789+SHOW GLOBAL VARIABLES LIKE 'log_slow_filter';
1768+--disable_warnings1790--- /dev/null
1769+drop table if exists t;1791+++ b/mysql-test/t/percona_log_slow_filter.test
1770+--enable_warnings1792@@ -0,0 +1,26 @@
1771+1793+--source include/have_debug.inc
1772+--echo # Create test table1794+
1773+create table t(id INT PRIMARY KEY) engine=InnoDB;1795+CREATE TABLE t(id INT PRIMARY KEY);
1774+--echo # Insert two rows to test table1796+INSERT INTO t VALUES(1);
1775+insert into t values(1);1797+INSERT INTO t VALUES(2);
1776+insert into t values(2);1798+INSERT INTO t VALUES(3);
1777+insert into t values(3);
1778+
1779+SET GLOBAL SLOW_QUERY_LOG=ON;
1780+
1781+SELECT sleep(2);
1782+
1783+set log_slow_filter=full_join;
1784+
1785+SELECT sleep(2) union select t2.id from t as t1,t as t2;
1786+SELECT sleep(2);
1787+
1788+SET GLOBAL SLOW_QUERY_LOG=OFF;
1789+
1790+--disable_warnings
1791+drop table if exists t;
1792+--enable_warnings
1793+
1794+FLUSH LOGS;
1795+--let grep_file = $MYSQLTEST_VARDIR/mysqld.1/data/percona_slow_query_log-log_slow_filter.log
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches