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

Proposed by Alexey Kopytov
Status: Merged
Merged at revision: 261
Proposed branch: lp:~akopytov/percona-server/slow_extended_and_rtd_fixes
Merge into: lp:percona-server/5.1
Diff against target: 10937 lines (+5359/-3875)
79 files modified
bugfix48929.patch (+9/-9)
control_online_alter_index.patch (+14/-14)
fix-bug671764.patch (+4/-4)
microsec_process.patch (+9/-9)
mysql-test/have_response_time_distribution.inc (+0/-4)
mysql-test/have_response_time_distribution.require (+0/-2)
mysql-test/percona_server_variables_debug.result (+1/-0)
mysql-test/response-time-distribution.patch/percona_query_response_time-replication.result (+0/-67)
mysql-test/response-time-distribution.patch/percona_query_response_time-replication.test (+0/-59)
mysql-test/response-time-distribution.patch/percona_query_response_time-stored.result (+0/-313)
mysql-test/response-time-distribution.patch/percona_query_response_time-stored.test (+0/-90)
mysql-test/response-time-distribution.patch/percona_query_response_time.result (+0/-567)
mysql-test/response-time-distribution.patch/percona_query_response_time.test (+0/-68)
mysql-test/response-time-distribution.patch/percona_query_response_time_flush.inc (+0/-1)
mysql-test/response-time-distribution.patch/percona_query_response_time_show.inc (+0/-8)
mysql-test/response-time-distribution.patch/percona_query_response_time_sleep.inc (+0/-19)
mysql-test/slow_extended.patch/grep.inc (+0/-16)
mysql-test/slow_extended.patch/percona_slow_extended-combined-master.opt (+0/-1)
mysql-test/slow_extended.patch/percona_slow_extended-combined.result (+0/-18)
mysql-test/slow_extended.patch/percona_slow_extended-combined.test (+0/-6)
mysql-test/slow_extended.patch/percona_slow_extended-combined2-master.opt (+0/-1)
mysql-test/slow_extended.patch/percona_slow_extended-combined2.result (+0/-12)
mysql-test/slow_extended.patch/percona_slow_extended-combined2.test (+0/-4)
mysql-test/slow_extended.patch/percona_slow_extended-control_global_slow-master.opt (+0/-1)
mysql-test/slow_extended.patch/percona_slow_extended-control_global_slow.result (+0/-12)
mysql-test/slow_extended.patch/percona_slow_extended-control_global_slow.test (+0/-12)
mysql-test/slow_extended.patch/percona_slow_extended-log_slow_filter-master.opt (+0/-1)
mysql-test/slow_extended.patch/percona_slow_extended-log_slow_filter.result (+0/-25)
mysql-test/slow_extended.patch/percona_slow_extended-log_slow_filter.test (+0/-32)
mysql-test/slow_extended.patch/percona_slow_extended-log_slow_sp_statements-cl-master.opt (+0/-1)
mysql-test/slow_extended.patch/percona_slow_extended-log_slow_sp_statements-cl.result (+0/-3)
mysql-test/slow_extended.patch/percona_slow_extended-log_slow_sp_statements-cl.test (+0/-1)
mysql-test/slow_extended.patch/percona_slow_extended-log_slow_timestamp_every-cl-master.opt (+0/-1)
mysql-test/slow_extended.patch/percona_slow_extended-log_slow_timestamp_every-cl.result (+0/-3)
mysql-test/slow_extended.patch/percona_slow_extended-log_slow_timestamp_every-cl.test (+0/-1)
mysql-test/slow_extended.patch/percona_slow_extended-log_slow_verbosity-cl-master.opt (+0/-1)
mysql-test/slow_extended.patch/percona_slow_extended-log_slow_verbosity-cl.result (+0/-9)
mysql-test/slow_extended.patch/percona_slow_extended-log_slow_verbosity-cl.test (+0/-3)
mysql-test/slow_extended.patch/percona_slow_extended-log_slow_verbosity-master.opt (+0/-1)
mysql-test/slow_extended.patch/percona_slow_extended-log_slow_verbosity.result (+0/-9)
mysql-test/slow_extended.patch/percona_slow_extended-log_slow_verbosity.test (+0/-12)
mysql-test/slow_extended.patch/percona_slow_extended-long_query_time-master.opt (+0/-1)
mysql-test/slow_extended.patch/percona_slow_extended-long_query_time.result (+0/-22)
mysql-test/slow_extended.patch/percona_slow_extended-long_query_time.test (+0/-19)
mysql-test/slow_extended.patch/percona_slow_extended-microseconds_in_slow_extended-master.opt (+0/-1)
mysql-test/slow_extended.patch/percona_slow_extended-microseconds_in_slow_extended.result (+0/-11)
mysql-test/slow_extended.patch/percona_slow_extended-microseconds_in_slow_extended.test (+0/-19)
mysql-test/slow_extended.patch/percona_slow_extended-min_examined_row_limit-master.opt (+0/-1)
mysql-test/slow_extended.patch/percona_slow_extended-min_examined_row_limit.result (+0/-25)
mysql-test/slow_extended.patch/percona_slow_extended-min_examined_row_limit.test (+0/-32)
mysql-test/slow_extended.patch/percona_slow_extended-slave_innodb_stats-master.opt (+0/-1)
mysql-test/slow_extended.patch/percona_slow_extended-slave_innodb_stats-slave.opt (+0/-1)
mysql-test/slow_extended.patch/percona_slow_extended-slave_innodb_stats.result (+0/-21)
mysql-test/slow_extended.patch/percona_slow_extended-slave_innodb_stats.test (+0/-38)
mysql-test/slow_extended.patch/percona_slow_extended-slave_statements-and-use_global_long_query_time-master.opt (+0/-1)
mysql-test/slow_extended.patch/percona_slow_extended-slave_statements-and-use_global_long_query_time-slave.opt (+0/-1)
mysql-test/slow_extended.patch/percona_slow_extended-slave_statements-and-use_global_long_query_time.result (+0/-94)
mysql-test/slow_extended.patch/percona_slow_extended-slave_statements-and-use_global_long_query_time.test (+0/-116)
mysql-test/slow_extended.patch/percona_slow_extended-slave_statements-master.opt (+0/-1)
mysql-test/slow_extended.patch/percona_slow_extended-slave_statements-slave.opt (+0/-1)
mysql-test/slow_extended.patch/percona_slow_extended-slave_statements.result (+0/-93)
mysql-test/slow_extended.patch/percona_slow_extended-slave_statements.test (+0/-168)
mysql-test/slow_extended.patch/percona_slow_extended-slow_query_log_microseconds_timestamp-cl-master.opt (+0/-1)
mysql-test/slow_extended.patch/percona_slow_extended-slow_query_log_microseconds_timestamp-cl.result (+0/-3)
mysql-test/slow_extended.patch/percona_slow_extended-slow_query_log_microseconds_timestamp-cl.test (+0/-1)
mysql-test/slow_extended.patch/percona_slow_extended-use_global_long_query_time-cl-master.opt (+0/-1)
mysql-test/slow_extended.patch/percona_slow_extended-use_global_long_query_time-cl.result (+0/-3)
mysql-test/slow_extended.patch/percona_slow_extended-use_global_long_query_time-cl.test (+0/-1)
mysql-test/slow_extended.patch/percona_slow_extended-use_global_long_query_time-master.opt (+0/-1)
mysql-test/slow_extended.patch/percona_slow_extended-use_global_long_query_time.result (+0/-59)
mysql-test/slow_extended.patch/percona_slow_extended-use_global_long_query_time.test (+0/-41)
mysql_dump_ignore_ct.patch (+7/-8)
query_cache_enhance.patch (+53/-79)
response_time_distribution.patch (+3930/-1435)
series (+1/-1)
show_slave_status_nolock.patch (+2/-2)
show_temp_51.patch (+3/-3)
slow_extended.patch (+1234/-57)
userstat.patch (+92/-92)
To merge this branch: bzr merge lp:~akopytov/percona-server/slow_extended_and_rtd_fixes
Reviewer Review Type Date Requested Status
Stewart Smith Pending
Review via email: mp+69408@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Alexey Kopytov (akopytov) wrote :

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'bugfix48929.patch'
--- bugfix48929.patch 2011-07-20 03:48:37 +0000
+++ bugfix48929.patch 2011-07-27 08:44:25 +0000
@@ -6,8 +6,8 @@
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!
8diff -ruN a/configure.in b/configure.in8diff -ruN a/configure.in b/configure.in
9--- a/configure.in 2010-07-07 03:33:05.008972002 +04009--- a/configure.in
10+++ b/configure.in 2010-07-07 03:33:05.788972002 +040010+++ b/configure.in
11@@ -815,7 +815,7 @@11@@ -815,7 +815,7 @@
12 AC_HEADER_STDC12 AC_HEADER_STDC
13 AC_HEADER_SYS_WAIT13 AC_HEADER_SYS_WAIT
@@ -18,8 +18,8 @@
18 strings.h string.h synch.h sys/mman.h sys/socket.h netinet/in.h arpa/inet.h \18 strings.h string.h synch.h sys/mman.h sys/socket.h netinet/in.h arpa/inet.h \
19 sys/timeb.h sys/types.h sys/un.h sys/vadvise.h sys/wait.h term.h \19 sys/timeb.h sys/types.h sys/un.h sys/vadvise.h sys/wait.h term.h \
20diff -ruN a/sql/mysqld.cc b/sql/mysqld.cc20diff -ruN a/sql/mysqld.cc b/sql/mysqld.cc
21--- a/sql/mysqld.cc 2010-07-07 03:33:05.278972002 +040021--- a/sql/mysqld.cc
22+++ b/sql/mysqld.cc 2010-07-07 03:33:05.788972002 +040022+++ b/sql/mysqld.cc
23@@ -55,6 +55,10 @@23@@ -55,6 +55,10 @@
24 #include "sp_rcontext.h"24 #include "sp_rcontext.h"
25 #include "sp_cache.h"25 #include "sp_cache.h"
@@ -31,7 +31,7 @@
31 #define mysqld_charset &my_charset_latin131 #define mysqld_charset &my_charset_latin1
32 32
33 #ifdef HAVE_purify33 #ifdef HAVE_purify
34@@ -5124,28 +5128,49 @@34@@ -5125,28 +5129,49 @@
35 {35 {
36 my_socket sock,new_sock;36 my_socket sock,new_sock;
37 uint error_count=0;37 uint error_count=0;
@@ -84,7 +84,7 @@
84 #ifdef HAVE_FCNTL84 #ifdef HAVE_FCNTL
85 socket_flags=fcntl(unix_sock, F_GETFL, 0);85 socket_flags=fcntl(unix_sock, F_GETFL, 0);
86 #endif86 #endif
87@@ -5155,12 +5180,15 @@87@@ -5156,12 +5181,15 @@
88 MAYBE_BROKEN_SYSCALL;88 MAYBE_BROKEN_SYSCALL;
89 while (!abort_loop)89 while (!abort_loop)
90 {90 {
@@ -105,7 +105,7 @@
105 {105 {
106 if (socket_errno != SOCKET_EINTR)106 if (socket_errno != SOCKET_EINTR)
107 {107 {
108@@ -5170,7 +5198,7 @@108@@ -5171,7 +5199,7 @@
109 MAYBE_BROKEN_SYSCALL109 MAYBE_BROKEN_SYSCALL
110 continue;110 continue;
111 }111 }
@@ -114,7 +114,7 @@
114 if (abort_loop)114 if (abort_loop)
115 {115 {
116 MAYBE_BROKEN_SYSCALL;116 MAYBE_BROKEN_SYSCALL;
117@@ -5178,6 +5206,21 @@117@@ -5179,6 +5207,21 @@
118 }118 }
119 119
120 /* Is this a new connection request ? */120 /* Is this a new connection request ? */
@@ -136,7 +136,7 @@
136 #ifdef HAVE_SYS_UN_H136 #ifdef HAVE_SYS_UN_H
137 if (FD_ISSET(unix_sock,&readFDs))137 if (FD_ISSET(unix_sock,&readFDs))
138 {138 {
139@@ -5185,11 +5228,12 @@139@@ -5186,11 +5229,12 @@
140 flags= socket_flags;140 flags= socket_flags;
141 }141 }
142 else142 else
143143
=== modified file 'control_online_alter_index.patch'
--- control_online_alter_index.patch 2011-05-10 07:31:20 +0000
+++ control_online_alter_index.patch 2011-07-27 08:44:25 +0000
@@ -6,8 +6,8 @@
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!
8diff -ruN a/sql/handler.h b/sql/handler.h8diff -ruN a/sql/handler.h b/sql/handler.h
9--- a/sql/handler.h 2010-07-21 22:49:53.660561079 +09009--- a/sql/handler.h
10+++ b/sql/handler.h 2010-07-21 22:50:24.106530090 +090010+++ b/sql/handler.h
11@@ -169,6 +169,19 @@11@@ -169,6 +169,19 @@
12 #define HA_ONLINE_DROP_UNIQUE_INDEX (1L << 9) /*drop uniq. online*/12 #define HA_ONLINE_DROP_UNIQUE_INDEX (1L << 9) /*drop uniq. online*/
13 #define HA_ONLINE_ADD_PK_INDEX (1L << 10)/*add prim. online*/13 #define HA_ONLINE_ADD_PK_INDEX (1L << 10)/*add prim. online*/
@@ -29,9 +29,9 @@
29 HA_PARTITION_FUNCTION_SUPPORTED indicates that the function is29 HA_PARTITION_FUNCTION_SUPPORTED indicates that the function is
30 supported at all.30 supported at all.
31diff -ruN a/sql/mysqld.cc b/sql/mysqld.cc31diff -ruN a/sql/mysqld.cc b/sql/mysqld.cc
32--- a/sql/mysqld.cc 2010-07-21 22:49:54.011529414 +090032--- a/sql/mysqld.cc
33+++ b/sql/mysqld.cc 2010-07-21 22:50:24.112527179 +090033+++ b/sql/mysqld.cc
34@@ -5898,6 +5898,7 @@34@@ -5900,6 +5900,7 @@
35 OPT_USERSTAT_RUNNING,35 OPT_USERSTAT_RUNNING,
36 OPT_THREAD_STATISTICS,36 OPT_THREAD_STATISTICS,
37 OPT_OPTIMIZER_FIX,37 OPT_OPTIMIZER_FIX,
@@ -39,7 +39,7 @@
39 OPT_SUPPRESS_LOG_WARNING_1592,39 OPT_SUPPRESS_LOG_WARNING_1592,
40 OPT_QUERY_CACHE_STRIP_COMMENTS,40 OPT_QUERY_CACHE_STRIP_COMMENTS,
41 OPT_USE_GLOBAL_LONG_QUERY_TIME,41 OPT_USE_GLOBAL_LONG_QUERY_TIME,
42@@ -5930,6 +5931,13 @@42@@ -5932,6 +5933,13 @@
43 "from libc.so",43 "from libc.so",
44 &opt_allow_suspicious_udfs, &opt_allow_suspicious_udfs,44 &opt_allow_suspicious_udfs, &opt_allow_suspicious_udfs,
45 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},45 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
@@ -54,8 +54,8 @@
54 "will also set transaction isolation level 'serializable'.", 0, 0, 0,54 "will also set transaction isolation level 'serializable'.", 0, 0, 0,
55 GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},55 GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
56diff -ruN a/sql/set_var.cc b/sql/set_var.cc56diff -ruN a/sql/set_var.cc b/sql/set_var.cc
57--- a/sql/set_var.cc 2010-07-21 22:49:54.019529438 +090057--- a/sql/set_var.cc
58+++ b/sql/set_var.cc 2010-07-21 22:50:24.122532110 +090058+++ b/sql/set_var.cc
59@@ -758,6 +758,11 @@59@@ -758,6 +758,11 @@
60 sys_engine_condition_pushdown(&vars, "engine_condition_pushdown",60 sys_engine_condition_pushdown(&vars, "engine_condition_pushdown",
61 &SV::engine_condition_pushdown);61 &SV::engine_condition_pushdown);
@@ -69,8 +69,8 @@
69 /* ndb thread specific variable settings */69 /* ndb thread specific variable settings */
70 static sys_var_thd_ulong70 static sys_var_thd_ulong
71diff -ruN a/sql/sql_class.h b/sql/sql_class.h71diff -ruN a/sql/sql_class.h b/sql/sql_class.h
72--- a/sql/sql_class.h 2010-07-21 22:49:53.742561560 +090072--- a/sql/sql_class.h
73+++ b/sql/sql_class.h 2010-07-21 22:50:24.130529404 +090073+++ b/sql/sql_class.h
74@@ -381,6 +381,8 @@74@@ -381,6 +381,8 @@
75 my_bool ndb_use_transactions;75 my_bool ndb_use_transactions;
76 my_bool ndb_index_stat_enable;76 my_bool ndb_index_stat_enable;
@@ -81,8 +81,8 @@
81 my_bool old_passwords;81 my_bool old_passwords;
82 82
83diff -ruN a/sql/sql_partition.cc b/sql/sql_partition.cc83diff -ruN a/sql/sql_partition.cc b/sql/sql_partition.cc
84--- a/sql/sql_partition.cc 2010-06-04 00:50:11.000000000 +090084--- a/sql/sql_partition.cc
85+++ b/sql/sql_partition.cc 2010-07-21 22:50:24.140530183 +090085+++ b/sql/sql_partition.cc
86@@ -4381,7 +4381,12 @@86@@ -4381,7 +4381,12 @@
87 alter_info->no_parts= curr_part_no - new_part_no;87 alter_info->no_parts= curr_part_no - new_part_no;
88 }88 }
@@ -98,8 +98,8 @@
98 my_error(ER_PARTITION_FUNCTION_FAILURE, MYF(0));98 my_error(ER_PARTITION_FUNCTION_FAILURE, MYF(0));
99 DBUG_RETURN(1);99 DBUG_RETURN(1);
100diff -ruN a/sql/sql_table.cc b/sql/sql_table.cc100diff -ruN a/sql/sql_table.cc b/sql/sql_table.cc
101--- a/sql/sql_table.cc 2010-06-04 00:50:11.000000000 +0900101--- a/sql/sql_table.cc
102+++ b/sql/sql_table.cc 2010-07-21 22:50:24.146531063 +0900102+++ b/sql/sql_table.cc
103@@ -7003,6 +7003,10 @@103@@ -7003,6 +7003,10 @@
104 uint *idx_end_p;104 uint *idx_end_p;
105 105
106106
=== modified file 'fix-bug671764.patch'
--- fix-bug671764.patch 2011-03-13 21:40:40 +0000
+++ fix-bug671764.patch 2011-07-27 08:44:25 +0000
@@ -6,9 +6,9 @@
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!
8diff -ruN a/configure.in b/configure.in8diff -ruN a/configure.in b/configure.in
9--- a/configure.in 2010-11-29 18:45:47.000000000 +00009--- a/configure.in
10+++ b/configure.in 2010-11-29 18:45:51.000000000 +000010+++ b/configure.in
11@@ -2727,7 +2727,7 @@11@@ -2776,7 +2776,7 @@
12 MAN_DROP="$MAN_DROP embedded"12 MAN_DROP="$MAN_DROP embedded"
13 grep -v 'embedded' $MANLISTFIL > $TMPLISTFIL ; mv -f $TMPLISTFIL $MANLISTFIL13 grep -v 'embedded' $MANLISTFIL > $TMPLISTFIL ; mv -f $TMPLISTFIL $MANLISTFIL
14 fi14 fi
@@ -17,7 +17,7 @@
17 then17 then
18 MAN_DROP="$MAN_DROP innodb"18 MAN_DROP="$MAN_DROP innodb"
19 grep -v 'inno' $MANLISTFIL > $TMPLISTFIL ; mv -f $TMPLISTFIL $MANLISTFIL19 grep -v 'inno' $MANLISTFIL > $TMPLISTFIL ; mv -f $TMPLISTFIL $MANLISTFIL
20@@ -2806,7 +2806,7 @@20@@ -2855,7 +2855,7 @@
21 fi21 fi
22 22
23 # "innochecksum" is not in the "innobase/" subdirectory, but should be switched23 # "innochecksum" is not in the "innobase/" subdirectory, but should be switched
2424
=== modified file 'microsec_process.patch'
--- microsec_process.patch 2011-05-10 07:31:20 +0000
+++ microsec_process.patch 2011-07-27 08:44:25 +0000
@@ -5,9 +5,9 @@
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!
8diff -ruN a/patch_info/microsec_process.info b/patch_info/microsec_process.info8diff -ruN /dev/null Percona-Server/patch_info/microsec_process.info
9--- /dev/null 1970-01-01 09:00:00.000000000 +09009--- /dev/null 1970-01-01 00:00:00.000000000 +0000
10+++ b/patch_info/microsec_process.info 2010-08-27 14:45:52.941058849 +090010+++ Percona-Server/patch_info/microsec_process.info 2011-07-26 10:21:40.000000000 +0400
11@@ -0,0 +1,8 @@11@@ -0,0 +1,8 @@
12+File=microsec_process.patch12+File=microsec_process.patch
13+Name=Adds INFOMATION_SCHEMA.PROCESSLIST with TIME_MS column13+Name=Adds INFOMATION_SCHEMA.PROCESSLIST with TIME_MS column
@@ -17,10 +17,10 @@
17+Comment=17+Comment=
18+2010-0118+2010-01
19+Ported to 5.1.4219+Ported to 5.1.42
20diff -ruN a/sql/sql_show.cc b/sql/sql_show.cc20diff -ruN Percona-Server.orig/sql/sql_show.cc Percona-Server/sql/sql_show.cc
21--- a/sql/sql_show.cc 2010-08-27 14:38:08.781057666 +090021--- Percona-Server.orig/sql/sql_show.cc 2011-07-26 10:21:36.000000000 +0400
22+++ b/sql/sql_show.cc 2010-08-27 14:45:52.946058726 +090022+++ Percona-Server/sql/sql_show.cc 2011-07-26 10:24:56.000000000 +0400
23@@ -1913,7 +1913,8 @@23@@ -1913,7 +1913,8 @@ int fill_schema_processlist(THD* thd, TA
24 TABLE *table= tables->table;24 TABLE *table= tables->table;
25 CHARSET_INFO *cs= system_charset_info;25 CHARSET_INFO *cs= system_charset_info;
26 char *user;26 char *user;
@@ -30,7 +30,7 @@
30 DBUG_ENTER("fill_process_list");30 DBUG_ENTER("fill_process_list");
31 31
32 user= thd->security_ctx->master_access & PROCESS_ACL ?32 user= thd->security_ctx->master_access & PROCESS_ACL ?
33@@ -2018,6 +2019,10 @@33@@ -2018,6 +2019,10 @@ int fill_schema_processlist(THD* thd, TA
34 }34 }
35 pthread_mutex_unlock(&tmp->LOCK_thd_data);35 pthread_mutex_unlock(&tmp->LOCK_thd_data);
36 36
@@ -41,7 +41,7 @@
41 if (schema_table_store_record(thd, table))41 if (schema_table_store_record(thd, table))
42 {42 {
43 VOID(pthread_mutex_unlock(&LOCK_thread_count));43 VOID(pthread_mutex_unlock(&LOCK_thread_count));
44@@ -6718,6 +6723,8 @@44@@ -6718,6 +6723,8 @@ ST_FIELD_INFO processlist_fields_info[]=
45 {"STATE", 64, MYSQL_TYPE_STRING, 0, 1, "State", SKIP_OPEN_TABLE},45 {"STATE", 64, MYSQL_TYPE_STRING, 0, 1, "State", SKIP_OPEN_TABLE},
46 {"INFO", PROCESS_LIST_INFO_WIDTH, MYSQL_TYPE_STRING, 0, 1, "Info",46 {"INFO", PROCESS_LIST_INFO_WIDTH, MYSQL_TYPE_STRING, 0, 1, "Info",
47 SKIP_OPEN_TABLE},47 SKIP_OPEN_TABLE},
4848
=== removed file 'mysql-test/have_response_time_distribution.inc'
--- mysql-test/have_response_time_distribution.inc 2010-12-14 20:03:02 +0000
+++ mysql-test/have_response_time_distribution.inc 1970-01-01 00:00:00 +0000
@@ -1,4 +0,0 @@
1-- require r/have_response_time_distribution.require
2disable_query_log;
3show variables like 'have_response_time_distribution';
4enable_query_log;
50
=== removed file 'mysql-test/have_response_time_distribution.require'
--- mysql-test/have_response_time_distribution.require 2010-12-14 20:03:02 +0000
+++ mysql-test/have_response_time_distribution.require 1970-01-01 00:00:00 +0000
@@ -1,2 +0,0 @@
1Variable_name Value
2have_response_time_distribution YES
30
=== modified file 'mysql-test/percona_server_variables_debug.result'
--- mysql-test/percona_server_variables_debug.result 2011-06-23 02:21:00 +0000
+++ mysql-test/percona_server_variables_debug.result 2011-07-27 08:44:25 +0000
@@ -253,6 +253,7 @@
253QUERY_CACHE_STRIP_COMMENTS253QUERY_CACHE_STRIP_COMMENTS
254QUERY_CACHE_TYPE254QUERY_CACHE_TYPE
255QUERY_CACHE_WLOCK_INVALIDATE255QUERY_CACHE_WLOCK_INVALIDATE
256QUERY_EXEC_TIME
256QUERY_PREALLOC_SIZE257QUERY_PREALLOC_SIZE
257QUERY_RESPONSE_TIME_RANGE_BASE258QUERY_RESPONSE_TIME_RANGE_BASE
258RAND_SEED1259RAND_SEED1
259260
=== removed directory 'mysql-test/response-time-distribution.patch'
=== removed file 'mysql-test/response-time-distribution.patch/percona_query_response_time-replication.result'
--- mysql-test/response-time-distribution.patch/percona_query_response_time-replication.result 2011-05-26 11:10:25 +0000
+++ mysql-test/response-time-distribution.patch/percona_query_response_time-replication.result 1970-01-01 00:00:00 +0000
@@ -1,67 +0,0 @@
1include/master-slave.inc
2[connection master]
3SET SESSION debug="+d,response_time_distribution_log_only_more_300_milliseconds";
4DROP TABLE IF EXISTS t;
5CREATE TABLE t(id INT);
6SELECT * from t;
7id
8SELECT * from t;
9id
10SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 1;
11Warnings:
12Warning 1292 Truncated incorrect query_response_time_range_base value: '1'
13SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
14Variable_name Value
15query_response_time_range_base 2
16SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 10;
17SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
18Variable_name Value
19query_response_time_range_base 10
20FLUSH QUERY_RESPONSE_TIME;
21SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=ON;
22INSERT INTO t SELECT SLEEP(0.4);
23Warnings:
24Note 1592 Statement may not be safe to log in statement format.
25SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
26SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count)
270
28INSERT INTO t SELECT SLEEP(0.4);
29Warnings:
30Note 1592 Statement may not be safe to log in statement format.
31SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
32SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count)
330
34SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
35SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count)
362
37SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
38SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count)
393
40SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 2;
41SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
42Variable_name Value
43query_response_time_range_base 2
44FLUSH QUERY_RESPONSE_TIME;
45INSERT INTO t SELECT SLEEP(0.4);
46Warnings:
47Note 1592 Statement may not be safe to log in statement format.
48SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
49SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count)
500
51INSERT INTO t SELECT SLEEP(0.4);
52Warnings:
53Note 1592 Statement may not be safe to log in statement format.
54SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
55SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count)
560
57SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
58SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count)
592
60SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
61SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count)
623
63DROP TABLE IF EXISTS t;
64SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 10;
65SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=OFF;
66SET SESSION debug="-d,response_time_distribution_log_only_more_300_milliseconds";
67include/rpl_end.inc
680
=== removed file 'mysql-test/response-time-distribution.patch/percona_query_response_time-replication.test'
--- mysql-test/response-time-distribution.patch/percona_query_response_time-replication.test 2011-05-26 11:10:25 +0000
+++ mysql-test/response-time-distribution.patch/percona_query_response_time-replication.test 1970-01-01 00:00:00 +0000
@@ -1,59 +0,0 @@
1--source include/have_response_time_distribution.inc
2--source include/master-slave.inc
3--source include/have_binlog_format_statement.inc
4--source include/have_debug.inc
5SET SESSION debug="+d,response_time_distribution_log_only_more_300_milliseconds";
6
7connection master;
8-- disable_warnings
9DROP TABLE IF EXISTS t;
10-- enable_warnings
11CREATE TABLE t(id INT);
12SELECT * from t;
13
14sync_slave_with_master;
15
16connection slave;
17SELECT * from t;
18SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 1;
19SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
20SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 10;
21SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
22source include/percona_query_response_time_flush.inc;
23SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=ON;
24
25connection master;
26INSERT INTO t SELECT SLEEP(0.4);
27SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
28INSERT INTO t SELECT SLEEP(0.4);
29SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
30sync_slave_with_master;
31
32connection slave;
33SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
34SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
35
36SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 2;
37SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
38source include/percona_query_response_time_flush.inc;
39
40connection master;
41INSERT INTO t SELECT SLEEP(0.4);
42SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
43INSERT INTO t SELECT SLEEP(0.4);
44SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
45sync_slave_with_master;
46
47connection slave;
48SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
49SELECT SUM(INFORMATION_SCHEMA.QUERY_RESPONSE_TIME.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
50
51connection master;
52DROP TABLE IF EXISTS t;
53sync_slave_with_master;
54connection slave;
55SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 10;
56SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=OFF;
57SET SESSION debug="-d,response_time_distribution_log_only_more_300_milliseconds";
58
59--source include/rpl_end.inc
600
=== removed file 'mysql-test/response-time-distribution.patch/percona_query_response_time-stored.result'
--- mysql-test/response-time-distribution.patch/percona_query_response_time-stored.result 2010-12-06 03:08:42 +0000
+++ mysql-test/response-time-distribution.patch/percona_query_response_time-stored.result 1970-01-01 00:00:00 +0000
@@ -1,313 +0,0 @@
1SET SESSION debug="+d,response_time_distribution_log_only_more_300_milliseconds";
2CREATE FUNCTION test_f()
3RETURNS CHAR(30) DETERMINISTIC
4BEGIN
5DECLARE first VARCHAR(5);
6DECLARE second VARCHAR(5);
7DECLARE result VARCHAR(20);
8SELECT SLEEP(1.11) INTO first;
9SET first= 'Hello';
10SET second=', ';
11SET result= CONCAT(first,second);
12SET result= CONCAT(result,'world!');
13RETURN result;
14END/
15SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 1;
16Warnings:
17Warning 1292 Truncated incorrect query_response_time_range_base value: '1'
18SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
19Variable_name Value
20query_response_time_range_base 2
21SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 2;
22SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
23Variable_name Value
24query_response_time_range_base 2
25FLUSH QUERY_RESPONSE_TIME;
26SELECT d.count,
27(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
28(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
29(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
30(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
31FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
32count query_count query_total not_zero_region_count region_count
33SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
34region_count
3544
36SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
37time
38 0.000001
39 0.000003
40 0.000007
41 0.000015
42 0.000030
43 0.000061
44 0.000122
45 0.000244
46 0.000488
47 0.000976
48 0.001953
49 0.003906
50 0.007812
51 0.015625
52 0.031250
53 0.062500
54 0.125000
55 0.250000
56 0.500000
57 1.000000
58 2.000000
59 4.000000
60 8.000000
61 16.000000
62 32.000000
63 64.000000
64 128.000000
65 256.000000
66 512.000000
67 1024.000000
68 2048.000000
69 4096.000000
70 8192.000000
71 16384.000000
72 32768.000000
73 65536.000000
74 131072.000000
75 262144.000000
76 524288.000000
77 1048576.00000
78 2097152.00000
79 4194304.00000
80 8388608.00000
81TOO LONG
82SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
83SELECT test_f();
84test_f()
85Hello, world!
86SELECT test_f();
87test_f()
88Hello, world!
89SELECT test_f();
90test_f()
91Hello, world!
92SELECT test_f();
93test_f()
94Hello, world!
95SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
96SELECT d.count,
97(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
98(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
99(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
100(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
101FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
102count query_count query_total not_zero_region_count region_count
1034 4 4 1 44
104SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
105region_count
10644
107SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
108time
109 0.000001
110 0.000003
111 0.000007
112 0.000015
113 0.000030
114 0.000061
115 0.000122
116 0.000244
117 0.000488
118 0.000976
119 0.001953
120 0.003906
121 0.007812
122 0.015625
123 0.031250
124 0.062500
125 0.125000
126 0.250000
127 0.500000
128 1.000000
129 2.000000
130 4.000000
131 8.000000
132 16.000000
133 32.000000
134 64.000000
135 128.000000
136 256.000000
137 512.000000
138 1024.000000
139 2048.000000
140 4096.000000
141 8192.000000
142 16384.000000
143 32768.000000
144 65536.000000
145 131072.000000
146 262144.000000
147 524288.000000
148 1048576.00000
149 2097152.00000
150 4194304.00000
151 8388608.00000
152TOO LONG
153SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
154Variable_name Value
155query_response_time_range_base 2
156SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 10;
157SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
158Variable_name Value
159query_response_time_range_base 10
160FLUSH QUERY_RESPONSE_TIME;
161SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
162SELECT test_f();
163test_f()
164Hello, world!
165SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
166SELECT d.count,
167(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
168(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
169(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
170(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
171FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
172count query_count query_total not_zero_region_count region_count
1731 1 1 1 14
174SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
175region_count
17614
177SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
178time
179 0.000001
180 0.000010
181 0.000100
182 0.001000
183 0.010000
184 0.100000
185 1.000000
186 10.000000
187 100.000000
188 1000.000000
189 10000.000000
190 100000.000000
191 1000000.00000
192TOO LONG
193SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
194Variable_name Value
195query_response_time_range_base 10
196SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 7;
197SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
198Variable_name Value
199query_response_time_range_base 7
200FLUSH QUERY_RESPONSE_TIME;
201SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
202SELECT test_f();
203test_f()
204Hello, world!
205SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
206SELECT d.count,
207(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
208(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
209(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
210(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
211FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
212count query_count query_total not_zero_region_count region_count
2131 1 1 1 17
214SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
215region_count
21617
217SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
218time
219 0.000001
220 0.000008
221 0.000059
222 0.000416
223 0.002915
224 0.020408
225 0.142857
226 1.000000
227 7.000000
228 49.000000
229 343.000000
230 2401.000000
231 16807.000000
232 117649.000000
233 823543.000000
234 5764801.00000
235TOO LONG
236SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
237Variable_name Value
238query_response_time_range_base 7
239SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 156;
240SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
241Variable_name Value
242query_response_time_range_base 156
243FLUSH QUERY_RESPONSE_TIME;
244SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
245SELECT test_f();
246test_f()
247Hello, world!
248SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
249SELECT d.count,
250(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
251(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
252(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
253(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
254FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
255count query_count query_total not_zero_region_count region_count
2561 1 1 1 7
257SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
258region_count
2597
260SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
261time
262 0.000041
263 0.006410
264 1.000000
265 156.000000
266 24336.000000
267 3796416.00000
268TOO LONG
269SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
270Variable_name Value
271query_response_time_range_base 156
272SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 1000;
273SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
274Variable_name Value
275query_response_time_range_base 1000
276FLUSH QUERY_RESPONSE_TIME;
277SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
278SELECT test_f();
279test_f()
280Hello, world!
281SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
282SELECT d.count,
283(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
284(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
285(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
286(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
287FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
288count query_count query_total not_zero_region_count region_count
2891 1 1 1 6
290SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
291region_count
2926
293SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
294time
295 0.000001
296 0.001000
297 1.000000
298 1000.000000
299 1000000.00000
300TOO LONG
301SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
302Variable_name Value
303query_response_time_range_base 1000
304SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 1001;
305Warnings:
306Warning 1292 Truncated incorrect query_response_time_range_base value: '1001'
307SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
308Variable_name Value
309query_response_time_range_base 1000
310SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
311SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE =10;
312DROP FUNCTION test_f;
313SET SESSION debug="-d,response_time_distribution_log_only_more_300_milliseconds";
3140
=== removed file 'mysql-test/response-time-distribution.patch/percona_query_response_time-stored.test'
--- mysql-test/response-time-distribution.patch/percona_query_response_time-stored.test 2010-12-14 20:03:02 +0000
+++ mysql-test/response-time-distribution.patch/percona_query_response_time-stored.test 1970-01-01 00:00:00 +0000
@@ -1,90 +0,0 @@
1--source include/have_response_time_distribution.inc
2--source include/have_debug.inc
3SET SESSION debug="+d,response_time_distribution_log_only_more_300_milliseconds";
4
5delimiter /;
6CREATE FUNCTION test_f()
7RETURNS CHAR(30) DETERMINISTIC
8BEGIN
9 DECLARE first VARCHAR(5);
10 DECLARE second VARCHAR(5);
11 DECLARE result VARCHAR(20);
12 SELECT SLEEP(1.11) INTO first;
13 SET first= 'Hello';
14 SET second=', ';
15 SET result= CONCAT(first,second);
16 SET result= CONCAT(result,'world!');
17 RETURN result;
18END/
19delimiter ;/
20
21SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 1;
22SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
23SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 2;
24SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
25
26source include/percona_query_response_time_flush.inc;
27source include/percona_query_response_time_show.inc;
28
29SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
30SELECT test_f();
31SELECT test_f();
32SELECT test_f();
33SELECT test_f();
34SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
35
36source include/percona_query_response_time_show.inc;
37
38SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
39SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 10;
40SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
41
42source include/percona_query_response_time_flush.inc;
43SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
44SELECT test_f();
45SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
46
47source include/percona_query_response_time_show.inc;
48
49SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
50SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 7;
51SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
52
53source include/percona_query_response_time_flush.inc;
54SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
55SELECT test_f();
56SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
57
58source include/percona_query_response_time_show.inc;
59
60SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
61SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 156;
62SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
63
64source include/percona_query_response_time_flush.inc;
65SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
66SELECT test_f();
67SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
68
69source include/percona_query_response_time_show.inc;
70
71SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
72SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 1000;
73SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
74
75source include/percona_query_response_time_flush.inc;
76SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
77SELECT test_f();
78SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
79
80source include/percona_query_response_time_show.inc;
81
82SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
83SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 1001;
84SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
85
86SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
87SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE =10;
88
89DROP FUNCTION test_f;
90SET SESSION debug="-d,response_time_distribution_log_only_more_300_milliseconds";
910
=== removed file 'mysql-test/response-time-distribution.patch/percona_query_response_time.result'
--- mysql-test/response-time-distribution.patch/percona_query_response_time.result 2010-12-06 03:08:42 +0000
+++ mysql-test/response-time-distribution.patch/percona_query_response_time.result 1970-01-01 00:00:00 +0000
@@ -1,567 +0,0 @@
1SET SESSION debug="+d,response_time_distribution_log_only_more_300_milliseconds";
2SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 1;
3Warnings:
4Warning 1292 Truncated incorrect query_response_time_range_base value: '1'
5SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
6Variable_name Value
7query_response_time_range_base 2
8SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 2;
9SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
10Variable_name Value
11query_response_time_range_base 2
12FLUSH QUERY_RESPONSE_TIME;
13SELECT d.count,
14(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
15(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
16(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
17(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
18FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
19count query_count query_total not_zero_region_count region_count
20SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
21region_count
2244
23SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
24time
25 0.000001
26 0.000003
27 0.000007
28 0.000015
29 0.000030
30 0.000061
31 0.000122
32 0.000244
33 0.000488
34 0.000976
35 0.001953
36 0.003906
37 0.007812
38 0.015625
39 0.031250
40 0.062500
41 0.125000
42 0.250000
43 0.500000
44 1.000000
45 2.000000
46 4.000000
47 8.000000
48 16.000000
49 32.000000
50 64.000000
51 128.000000
52 256.000000
53 512.000000
54 1024.000000
55 2048.000000
56 4096.000000
57 8192.000000
58 16384.000000
59 32768.000000
60 65536.000000
61 131072.000000
62 262144.000000
63 524288.000000
64 1048576.00000
65 2097152.00000
66 4194304.00000
67 8388608.00000
68TOO LONG
69SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
70SELECT SLEEP(0.31);
71SLEEP(0.31)
720
73SELECT SLEEP(0.32);
74SLEEP(0.32)
750
76SELECT SLEEP(0.33);
77SLEEP(0.33)
780
79SELECT SLEEP(0.34);
80SLEEP(0.34)
810
82SELECT SLEEP(0.35);
83SLEEP(0.35)
840
85SELECT SLEEP(0.36);
86SLEEP(0.36)
870
88SELECT SLEEP(0.37);
89SLEEP(0.37)
900
91SELECT SLEEP(0.38);
92SLEEP(0.38)
930
94SELECT SLEEP(0.39);
95SLEEP(0.39)
960
97SELECT SLEEP(0.40);
98SLEEP(0.40)
990
100SELECT SLEEP(1.1);
101SLEEP(1.1)
1020
103SELECT SLEEP(1.2);
104SLEEP(1.2)
1050
106SELECT SLEEP(1.3);
107SLEEP(1.3)
1080
109SELECT SLEEP(1.5);
110SLEEP(1.5)
1110
112SELECT SLEEP(1.4);
113SLEEP(1.4)
1140
115SELECT SLEEP(0.5);
116SLEEP(0.5)
1170
118SELECT SLEEP(2.1);
119SLEEP(2.1)
1200
121SELECT SLEEP(2.3);
122SLEEP(2.3)
1230
124SELECT SLEEP(2.5);
125SLEEP(2.5)
1260
127SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
128SELECT d.count,
129(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
130(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
131(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
132(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
133FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
134count query_count query_total not_zero_region_count region_count
13510 19 15 4 44
1361 19 15 4 44
1375 19 15 4 44
1383 19 15 4 44
139SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
140region_count
14144
142SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
143time
144 0.000001
145 0.000003
146 0.000007
147 0.000015
148 0.000030
149 0.000061
150 0.000122
151 0.000244
152 0.000488
153 0.000976
154 0.001953
155 0.003906
156 0.007812
157 0.015625
158 0.031250
159 0.062500
160 0.125000
161 0.250000
162 0.500000
163 1.000000
164 2.000000
165 4.000000
166 8.000000
167 16.000000
168 32.000000
169 64.000000
170 128.000000
171 256.000000
172 512.000000
173 1024.000000
174 2048.000000
175 4096.000000
176 8192.000000
177 16384.000000
178 32768.000000
179 65536.000000
180 131072.000000
181 262144.000000
182 524288.000000
183 1048576.00000
184 2097152.00000
185 4194304.00000
186 8388608.00000
187TOO LONG
188SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
189Variable_name Value
190query_response_time_range_base 2
191SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 10;
192SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
193Variable_name Value
194query_response_time_range_base 10
195FLUSH QUERY_RESPONSE_TIME;
196SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
197SELECT SLEEP(0.31);
198SLEEP(0.31)
1990
200SELECT SLEEP(0.32);
201SLEEP(0.32)
2020
203SELECT SLEEP(0.33);
204SLEEP(0.33)
2050
206SELECT SLEEP(0.34);
207SLEEP(0.34)
2080
209SELECT SLEEP(0.35);
210SLEEP(0.35)
2110
212SELECT SLEEP(0.36);
213SLEEP(0.36)
2140
215SELECT SLEEP(0.37);
216SLEEP(0.37)
2170
218SELECT SLEEP(0.38);
219SLEEP(0.38)
2200
221SELECT SLEEP(0.39);
222SLEEP(0.39)
2230
224SELECT SLEEP(0.40);
225SLEEP(0.40)
2260
227SELECT SLEEP(1.1);
228SLEEP(1.1)
2290
230SELECT SLEEP(1.2);
231SLEEP(1.2)
2320
233SELECT SLEEP(1.3);
234SLEEP(1.3)
2350
236SELECT SLEEP(1.5);
237SLEEP(1.5)
2380
239SELECT SLEEP(1.4);
240SLEEP(1.4)
2410
242SELECT SLEEP(0.5);
243SLEEP(0.5)
2440
245SELECT SLEEP(2.1);
246SLEEP(2.1)
2470
248SELECT SLEEP(2.3);
249SLEEP(2.3)
2500
251SELECT SLEEP(2.5);
252SLEEP(2.5)
2530
254SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
255SELECT d.count,
256(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
257(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
258(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
259(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
260FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
261count query_count query_total not_zero_region_count region_count
26211 19 17 2 14
2638 19 17 2 14
264SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
265region_count
26614
267SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
268time
269 0.000001
270 0.000010
271 0.000100
272 0.001000
273 0.010000
274 0.100000
275 1.000000
276 10.000000
277 100.000000
278 1000.000000
279 10000.000000
280 100000.000000
281 1000000.00000
282TOO LONG
283SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
284Variable_name Value
285query_response_time_range_base 10
286SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 7;
287SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
288Variable_name Value
289query_response_time_range_base 7
290FLUSH QUERY_RESPONSE_TIME;
291SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
292SELECT SLEEP(0.31);
293SLEEP(0.31)
2940
295SELECT SLEEP(0.32);
296SLEEP(0.32)
2970
298SELECT SLEEP(0.33);
299SLEEP(0.33)
3000
301SELECT SLEEP(0.34);
302SLEEP(0.34)
3030
304SELECT SLEEP(0.35);
305SLEEP(0.35)
3060
307SELECT SLEEP(0.36);
308SLEEP(0.36)
3090
310SELECT SLEEP(0.37);
311SLEEP(0.37)
3120
313SELECT SLEEP(0.38);
314SLEEP(0.38)
3150
316SELECT SLEEP(0.39);
317SLEEP(0.39)
3180
319SELECT SLEEP(0.40);
320SLEEP(0.40)
3210
322SELECT SLEEP(1.1);
323SLEEP(1.1)
3240
325SELECT SLEEP(1.2);
326SLEEP(1.2)
3270
328SELECT SLEEP(1.3);
329SLEEP(1.3)
3300
331SELECT SLEEP(1.5);
332SLEEP(1.5)
3330
334SELECT SLEEP(1.4);
335SLEEP(1.4)
3360
337SELECT SLEEP(0.5);
338SLEEP(0.5)
3390
340SELECT SLEEP(2.1);
341SLEEP(2.1)
3420
343SELECT SLEEP(2.3);
344SLEEP(2.3)
3450
346SELECT SLEEP(2.5);
347SLEEP(2.5)
3480
349SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
350SELECT d.count,
351(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
352(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
353(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
354(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
355FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
356count query_count query_total not_zero_region_count region_count
35711 19 17 2 17
3588 19 17 2 17
359SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
360region_count
36117
362SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
363time
364 0.000001
365 0.000008
366 0.000059
367 0.000416
368 0.002915
369 0.020408
370 0.142857
371 1.000000
372 7.000000
373 49.000000
374 343.000000
375 2401.000000
376 16807.000000
377 117649.000000
378 823543.000000
379 5764801.00000
380TOO LONG
381SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
382Variable_name Value
383query_response_time_range_base 7
384SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 156;
385SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
386Variable_name Value
387query_response_time_range_base 156
388FLUSH QUERY_RESPONSE_TIME;
389SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
390SELECT SLEEP(0.31);
391SLEEP(0.31)
3920
393SELECT SLEEP(0.32);
394SLEEP(0.32)
3950
396SELECT SLEEP(0.33);
397SLEEP(0.33)
3980
399SELECT SLEEP(0.34);
400SLEEP(0.34)
4010
402SELECT SLEEP(0.35);
403SLEEP(0.35)
4040
405SELECT SLEEP(0.36);
406SLEEP(0.36)
4070
408SELECT SLEEP(0.37);
409SLEEP(0.37)
4100
411SELECT SLEEP(0.38);
412SLEEP(0.38)
4130
414SELECT SLEEP(0.39);
415SLEEP(0.39)
4160
417SELECT SLEEP(0.40);
418SLEEP(0.40)
4190
420SELECT SLEEP(1.1);
421SLEEP(1.1)
4220
423SELECT SLEEP(1.2);
424SLEEP(1.2)
4250
426SELECT SLEEP(1.3);
427SLEEP(1.3)
4280
429SELECT SLEEP(1.5);
430SLEEP(1.5)
4310
432SELECT SLEEP(1.4);
433SLEEP(1.4)
4340
435SELECT SLEEP(0.5);
436SLEEP(0.5)
4370
438SELECT SLEEP(2.1);
439SLEEP(2.1)
4400
441SELECT SLEEP(2.3);
442SLEEP(2.3)
4430
444SELECT SLEEP(2.5);
445SLEEP(2.5)
4460
447SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
448SELECT d.count,
449(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
450(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
451(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
452(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
453FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
454count query_count query_total not_zero_region_count region_count
45511 19 17 2 7
4568 19 17 2 7
457SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
458region_count
4597
460SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
461time
462 0.000041
463 0.006410
464 1.000000
465 156.000000
466 24336.000000
467 3796416.00000
468TOO LONG
469SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
470Variable_name Value
471query_response_time_range_base 156
472SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 1000;
473SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
474Variable_name Value
475query_response_time_range_base 1000
476FLUSH QUERY_RESPONSE_TIME;
477SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
478SELECT SLEEP(0.31);
479SLEEP(0.31)
4800
481SELECT SLEEP(0.32);
482SLEEP(0.32)
4830
484SELECT SLEEP(0.33);
485SLEEP(0.33)
4860
487SELECT SLEEP(0.34);
488SLEEP(0.34)
4890
490SELECT SLEEP(0.35);
491SLEEP(0.35)
4920
493SELECT SLEEP(0.36);
494SLEEP(0.36)
4950
496SELECT SLEEP(0.37);
497SLEEP(0.37)
4980
499SELECT SLEEP(0.38);
500SLEEP(0.38)
5010
502SELECT SLEEP(0.39);
503SLEEP(0.39)
5040
505SELECT SLEEP(0.40);
506SLEEP(0.40)
5070
508SELECT SLEEP(1.1);
509SLEEP(1.1)
5100
511SELECT SLEEP(1.2);
512SLEEP(1.2)
5130
514SELECT SLEEP(1.3);
515SLEEP(1.3)
5160
517SELECT SLEEP(1.5);
518SLEEP(1.5)
5190
520SELECT SLEEP(1.4);
521SLEEP(1.4)
5220
523SELECT SLEEP(0.5);
524SLEEP(0.5)
5250
526SELECT SLEEP(2.1);
527SLEEP(2.1)
5280
529SELECT SLEEP(2.3);
530SLEEP(2.3)
5310
532SELECT SLEEP(2.5);
533SLEEP(2.5)
5340
535SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
536SELECT d.count,
537(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
538(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
539(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
540(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
541FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
542count query_count query_total not_zero_region_count region_count
54311 19 17 2 6
5448 19 17 2 6
545SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
546region_count
5476
548SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
549time
550 0.000001
551 0.001000
552 1.000000
553 1000.000000
554 1000000.00000
555TOO LONG
556SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
557Variable_name Value
558query_response_time_range_base 1000
559SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 1001;
560Warnings:
561Warning 1292 Truncated incorrect query_response_time_range_base value: '1001'
562SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
563Variable_name Value
564query_response_time_range_base 1000
565SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
566SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE =10;
567SET SESSION debug="-d,response_time_distribution_log_only_more_300_milliseconds";
5680
=== removed file 'mysql-test/response-time-distribution.patch/percona_query_response_time.test'
--- mysql-test/response-time-distribution.patch/percona_query_response_time.test 2010-12-14 20:03:02 +0000
+++ mysql-test/response-time-distribution.patch/percona_query_response_time.test 1970-01-01 00:00:00 +0000
@@ -1,68 +0,0 @@
1--source include/have_response_time_distribution.inc
2--source include/have_debug.inc
3SET SESSION debug="+d,response_time_distribution_log_only_more_300_milliseconds";
4SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 1;
5SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
6SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 2;
7SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
8
9source include/percona_query_response_time_flush.inc;
10source include/percona_query_response_time_show.inc;
11
12SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
13source include/percona_query_response_time_sleep.inc;
14SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
15
16source include/percona_query_response_time_show.inc;
17
18SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
19SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 10;
20SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
21
22source include/percona_query_response_time_flush.inc;
23SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
24source include/percona_query_response_time_sleep.inc;
25SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
26
27source include/percona_query_response_time_show.inc;
28
29SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
30SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 7;
31SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
32
33source include/percona_query_response_time_flush.inc;
34SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
35source include/percona_query_response_time_sleep.inc;
36SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
37
38source include/percona_query_response_time_show.inc;
39
40SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
41SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 156;
42SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
43
44source include/percona_query_response_time_flush.inc;
45SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
46source include/percona_query_response_time_sleep.inc;
47SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
48
49source include/percona_query_response_time_show.inc;
50
51SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
52SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 1000;
53SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
54
55source include/percona_query_response_time_flush.inc;
56SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
57source include/percona_query_response_time_sleep.inc;
58SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
59
60source include/percona_query_response_time_show.inc;
61
62SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
63SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 1001;
64SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
65
66SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
67SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE =10;
68SET SESSION debug="-d,response_time_distribution_log_only_more_300_milliseconds";
690
=== removed file 'mysql-test/response-time-distribution.patch/percona_query_response_time_flush.inc'
--- mysql-test/response-time-distribution.patch/percona_query_response_time_flush.inc 2010-09-29 21:16:20 +0000
+++ mysql-test/response-time-distribution.patch/percona_query_response_time_flush.inc 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
1FLUSH QUERY_RESPONSE_TIME;
20
=== removed file 'mysql-test/response-time-distribution.patch/percona_query_response_time_show.inc'
--- mysql-test/response-time-distribution.patch/percona_query_response_time_show.inc 2010-09-29 21:16:20 +0000
+++ mysql-test/response-time-distribution.patch/percona_query_response_time_show.inc 1970-01-01 00:00:00 +0000
@@ -1,8 +0,0 @@
1SELECT d.count,
2(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
3(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
4(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
5(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
6FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
7SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
8SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
90
=== removed file 'mysql-test/response-time-distribution.patch/percona_query_response_time_sleep.inc'
--- mysql-test/response-time-distribution.patch/percona_query_response_time_sleep.inc 2010-09-29 21:16:20 +0000
+++ mysql-test/response-time-distribution.patch/percona_query_response_time_sleep.inc 1970-01-01 00:00:00 +0000
@@ -1,19 +0,0 @@
1SELECT SLEEP(0.31);
2SELECT SLEEP(0.32);
3SELECT SLEEP(0.33);
4SELECT SLEEP(0.34);
5SELECT SLEEP(0.35);
6SELECT SLEEP(0.36);
7SELECT SLEEP(0.37);
8SELECT SLEEP(0.38);
9SELECT SLEEP(0.39);
10SELECT SLEEP(0.40);
11SELECT SLEEP(1.1);
12SELECT SLEEP(1.2);
13SELECT SLEEP(1.3);
14SELECT SLEEP(1.5);
15SELECT SLEEP(1.4);
16SELECT SLEEP(0.5);
17SELECT SLEEP(2.1);
18SELECT SLEEP(2.3);
19SELECT SLEEP(2.5);
200
=== removed directory 'mysql-test/slow_extended.patch'
=== removed file 'mysql-test/slow_extended.patch/grep.inc'
--- mysql-test/slow_extended.patch/grep.inc 2010-12-24 16:44:23 +0000
+++ mysql-test/slow_extended.patch/grep.inc 1970-01-01 00:00:00 +0000
@@ -1,16 +0,0 @@
1perl;
2
3 $file = $ENV{'grep_file'};
4 $pattern = $ENV{'grep_pattern'};
5
6 open(FILE, "$file")
7 or die("Cannot open file $file: $!\n");
8
9 $lines = 0;
10 while(<FILE>) {
11 $lines++ if (/$pattern/);
12 }
13 print "$lines\n";
14
15 close(FILE);
16EOF
170
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-combined-master.opt'
--- mysql-test/slow_extended.patch/percona_slow_extended-combined-master.opt 2010-12-22 20:15:33 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-combined-master.opt 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
1--use_global_long_query_time --log_slow_verbosity="full"
20
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-combined.result'
--- mysql-test/slow_extended.patch/percona_slow_extended-combined.result 2010-12-22 20:15:33 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-combined.result 1970-01-01 00:00:00 +0000
@@ -1,18 +0,0 @@
1show variables like 'use_global_long_query_time';
2Variable_name Value
3use_global_long_query_time ON
4show variables like 'use_global_log_slow_control';
5Variable_name Value
6use_global_log_slow_control long_query_time
7show variables like 'log_slow_verbosity';
8Variable_name Value
9log_slow_verbosity microtime,query_plan,innodb
10show global variables like 'use_global_long_query_time';
11Variable_name Value
12use_global_long_query_time ON
13show global variables like 'log_slow_verbosity';
14Variable_name Value
15log_slow_verbosity microtime,query_plan,innodb
16show global variables like 'use_global_log_slow_control';
17Variable_name Value
18use_global_log_slow_control long_query_time
190
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-combined.test'
--- mysql-test/slow_extended.patch/percona_slow_extended-combined.test 2010-12-22 20:15:33 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-combined.test 1970-01-01 00:00:00 +0000
@@ -1,6 +0,0 @@
1show variables like 'use_global_long_query_time';
2show variables like 'use_global_log_slow_control';
3show variables like 'log_slow_verbosity';
4show global variables like 'use_global_long_query_time';
5show global variables like 'log_slow_verbosity';
6show global variables like 'use_global_log_slow_control';
70
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-combined2-master.opt'
--- mysql-test/slow_extended.patch/percona_slow_extended-combined2-master.opt 2010-12-22 20:15:33 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-combined2-master.opt 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
1--use_global_log_slow_control="long_query_time"
20
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-combined2.result'
--- mysql-test/slow_extended.patch/percona_slow_extended-combined2.result 2010-12-22 20:15:33 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-combined2.result 1970-01-01 00:00:00 +0000
@@ -1,12 +0,0 @@
1show variables like 'use_global_long_query_time';
2Variable_name Value
3use_global_long_query_time ON
4show variables like 'use_global_log_slow_control';
5Variable_name Value
6use_global_log_slow_control long_query_time
7show global variables like 'use_global_long_query_time';
8Variable_name Value
9use_global_long_query_time ON
10show global variables like 'use_global_log_slow_control';
11Variable_name Value
12use_global_log_slow_control long_query_time
130
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-combined2.test'
--- mysql-test/slow_extended.patch/percona_slow_extended-combined2.test 2010-12-22 20:15:33 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-combined2.test 1970-01-01 00:00:00 +0000
@@ -1,4 +0,0 @@
1show variables like 'use_global_long_query_time';
2show variables like 'use_global_log_slow_control';
3show global variables like 'use_global_long_query_time';
4show global variables like 'use_global_log_slow_control';
50
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-control_global_slow-master.opt'
--- mysql-test/slow_extended.patch/percona_slow_extended-control_global_slow-master.opt 2010-12-06 03:50:48 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-control_global_slow-master.opt 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
1--slow-query-log-file=percona_slow_query_log-control_global_slow.log --long-query-time=1
20
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-control_global_slow.result'
--- mysql-test/slow_extended.patch/percona_slow_extended-control_global_slow.result 2010-12-29 19:06:24 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-control_global_slow.result 1970-01-01 00:00:00 +0000
@@ -1,12 +0,0 @@
1SELECT sleep(2);
2sleep(2)
30
4set global log_slow_verbosity=innodb;
5set global use_global_log_slow_control="log_slow_verbosity,long_query_time";
6SELECT sleep(2);
7sleep(2)
80
9set global use_global_log_slow_control=none;
10set global log_slow_verbosity=microtime;
11FLUSH LOGS;
121
130
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-control_global_slow.test'
--- mysql-test/slow_extended.patch/percona_slow_extended-control_global_slow.test 2010-12-29 19:06:24 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-control_global_slow.test 1970-01-01 00:00:00 +0000
@@ -1,12 +0,0 @@
1source include/have_innodb.inc;
2SELECT sleep(2);
3set global log_slow_verbosity=innodb;
4set global use_global_log_slow_control="log_slow_verbosity,long_query_time";
5SELECT sleep(2);
6set global use_global_log_slow_control=none;
7set global log_slow_verbosity=microtime;
8
9FLUSH LOGS;
10--let grep_file = $MYSQLTEST_VARDIR/mysqld.1/data/percona_slow_query_log-control_global_slow.log
11--let grep_pattern = No InnoDB statistics available for this query
12--source include/grep.inc
130
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-log_slow_filter-master.opt'
--- mysql-test/slow_extended.patch/percona_slow_extended-log_slow_filter-master.opt 2010-12-06 03:50:48 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-log_slow_filter-master.opt 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
1--slow-query-log-file=percona_slow_query_log-log_slow_filter.log --long-query-time=1
20
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-log_slow_filter.result'
--- mysql-test/slow_extended.patch/percona_slow_extended-log_slow_filter.result 2010-12-29 19:06:24 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-log_slow_filter.result 1970-01-01 00:00:00 +0000
@@ -1,25 +0,0 @@
1SET GLOBAL SLOW_QUERY_LOG=OFF;
2drop table if exists t;
3# Create test table
4create table t(id INT PRIMARY KEY) engine=InnoDB;
5# Insert two rows to test table
6insert into t values(1);
7insert into t values(2);
8insert into t values(3);
9SET GLOBAL SLOW_QUERY_LOG=ON;
10SELECT sleep(2);
11sleep(2)
120
13set log_slow_filter=full_join;
14SELECT sleep(2) union select t2.id from t as t1,t as t2;
15sleep(2)
160
171
182
193
20SELECT sleep(2);
21sleep(2)
220
23drop table if exists t;
24FLUSH LOGS;
252
260
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-log_slow_filter.test'
--- mysql-test/slow_extended.patch/percona_slow_extended-log_slow_filter.test 2010-12-29 19:06:24 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-log_slow_filter.test 1970-01-01 00:00:00 +0000
@@ -1,32 +0,0 @@
1source include/have_innodb.inc;
2
3SET GLOBAL SLOW_QUERY_LOG=OFF;
4
5--disable_warnings
6drop table if exists t;
7--enable_warnings
8
9--echo # Create test table
10create table t(id INT PRIMARY KEY) engine=InnoDB;
11--echo # Insert two rows to test table
12insert into t values(1);
13insert into t values(2);
14insert into t values(3);
15
16SET GLOBAL SLOW_QUERY_LOG=ON;
17
18SELECT sleep(2);
19
20set log_slow_filter=full_join;
21
22SELECT sleep(2) union select t2.id from t as t1,t as t2;
23SELECT sleep(2);
24
25--disable_warnings
26drop table if exists t;
27--enable_warnings
28
29FLUSH LOGS;
30--let grep_file = $MYSQLTEST_VARDIR/mysqld.1/data/percona_slow_query_log-log_slow_filter.log
31--let grep_pattern = Query_time
32--source include/grep.inc
330
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-log_slow_sp_statements-cl-master.opt'
--- mysql-test/slow_extended.patch/percona_slow_extended-log_slow_sp_statements-cl-master.opt 2010-12-22 20:15:33 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-log_slow_sp_statements-cl-master.opt 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
1--log_slow_sp_statements
20
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-log_slow_sp_statements-cl.result'
--- mysql-test/slow_extended.patch/percona_slow_extended-log_slow_sp_statements-cl.result 2010-12-22 20:15:33 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-log_slow_sp_statements-cl.result 1970-01-01 00:00:00 +0000
@@ -1,3 +0,0 @@
1show global variables like 'log_slow_sp_statements';
2Variable_name Value
3log_slow_sp_statements ON
40
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-log_slow_sp_statements-cl.test'
--- mysql-test/slow_extended.patch/percona_slow_extended-log_slow_sp_statements-cl.test 2010-12-22 20:15:33 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-log_slow_sp_statements-cl.test 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
1show global variables like 'log_slow_sp_statements';
20
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-log_slow_timestamp_every-cl-master.opt'
--- mysql-test/slow_extended.patch/percona_slow_extended-log_slow_timestamp_every-cl-master.opt 2010-12-22 20:15:33 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-log_slow_timestamp_every-cl-master.opt 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
1--log_slow_timestamp_every
20
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-log_slow_timestamp_every-cl.result'
--- mysql-test/slow_extended.patch/percona_slow_extended-log_slow_timestamp_every-cl.result 2010-12-22 20:15:33 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-log_slow_timestamp_every-cl.result 1970-01-01 00:00:00 +0000
@@ -1,3 +0,0 @@
1show global variables like 'log_slow_timestamp_every';
2Variable_name Value
3log_slow_timestamp_every ON
40
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-log_slow_timestamp_every-cl.test'
--- mysql-test/slow_extended.patch/percona_slow_extended-log_slow_timestamp_every-cl.test 2010-12-22 20:15:33 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-log_slow_timestamp_every-cl.test 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
1show global variables like 'log_slow_timestamp_every';
20
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-log_slow_verbosity-cl-master.opt'
--- mysql-test/slow_extended.patch/percona_slow_extended-log_slow_verbosity-cl-master.opt 2010-12-22 20:15:33 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-log_slow_verbosity-cl-master.opt 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
1--log_slow_verbosity="full"
20
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-log_slow_verbosity-cl.result'
--- mysql-test/slow_extended.patch/percona_slow_extended-log_slow_verbosity-cl.result 2010-12-22 20:15:33 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-log_slow_verbosity-cl.result 1970-01-01 00:00:00 +0000
@@ -1,9 +0,0 @@
1show global variables like 'log_slow_verbosity';
2Variable_name Value
3log_slow_verbosity microtime,query_plan,innodb
4show variables like 'log_slow_verbosity';
5Variable_name Value
6log_slow_verbosity microtime,query_plan,innodb
7select @@log_slow_verbosity;
8@@log_slow_verbosity
9microtime,query_plan,innodb
100
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-log_slow_verbosity-cl.test'
--- mysql-test/slow_extended.patch/percona_slow_extended-log_slow_verbosity-cl.test 2010-12-22 20:15:33 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-log_slow_verbosity-cl.test 1970-01-01 00:00:00 +0000
@@ -1,3 +0,0 @@
1show global variables like 'log_slow_verbosity';
2show variables like 'log_slow_verbosity';
3select @@log_slow_verbosity;
40
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-log_slow_verbosity-master.opt'
--- mysql-test/slow_extended.patch/percona_slow_extended-log_slow_verbosity-master.opt 2010-12-06 03:50:48 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-log_slow_verbosity-master.opt 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
1--slow-query-log-file=percona_slow_query_log-log_slow_verbosity.log --long-query-time=1
20
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-log_slow_verbosity.result'
--- mysql-test/slow_extended.patch/percona_slow_extended-log_slow_verbosity.result 2010-12-29 19:06:24 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-log_slow_verbosity.result 1970-01-01 00:00:00 +0000
@@ -1,9 +0,0 @@
1SELECT sleep(2);
2sleep(2)
30
4set log_slow_verbosity=innodb;
5SELECT sleep(2);
6sleep(2)
70
8FLUSH LOGS;
91
100
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-log_slow_verbosity.test'
--- mysql-test/slow_extended.patch/percona_slow_extended-log_slow_verbosity.test 2010-12-29 19:06:24 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-log_slow_verbosity.test 1970-01-01 00:00:00 +0000
@@ -1,12 +0,0 @@
1source include/have_innodb.inc;
2
3SELECT sleep(2);
4
5set log_slow_verbosity=innodb;
6
7SELECT sleep(2);
8
9FLUSH LOGS;
10--let grep_file = $MYSQLTEST_VARDIR/mysqld.1/data/percona_slow_query_log-log_slow_verbosity.log
11--let grep_pattern = No InnoDB statistics available for this query
12--source include/grep.inc
130
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-long_query_time-master.opt'
--- mysql-test/slow_extended.patch/percona_slow_extended-long_query_time-master.opt 2010-12-06 03:50:48 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-long_query_time-master.opt 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
1--slow-query-log-file=percona_slow_query_log-long_query_time.log --long-query-time=2
20
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-long_query_time.result'
--- mysql-test/slow_extended.patch/percona_slow_extended-long_query_time.result 2010-12-29 19:06:24 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-long_query_time.result 1970-01-01 00:00:00 +0000
@@ -1,22 +0,0 @@
1SELECT sleep(1);
2sleep(1)
30
4SELECT sleep(3);
5sleep(3)
60
7SELECT sleep(5);
8sleep(5)
90
10set long_query_time=4;
11SELECT sleep(1);
12sleep(1)
130
14SELECT sleep(3);
15sleep(3)
160
17SELECT sleep(5);
18sleep(5)
190
20set long_query_time=2;
21FLUSH LOGS;
223
230
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-long_query_time.test'
--- mysql-test/slow_extended.patch/percona_slow_extended-long_query_time.test 2010-12-29 19:06:24 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-long_query_time.test 1970-01-01 00:00:00 +0000
@@ -1,19 +0,0 @@
1source include/have_innodb.inc;
2
3SELECT sleep(1);
4SELECT sleep(3);
5SELECT sleep(5);
6
7set long_query_time=4;
8
9SELECT sleep(1);
10SELECT sleep(3);
11SELECT sleep(5);
12
13set long_query_time=2;
14
15FLUSH LOGS;
16--let grep_file = $MYSQLTEST_VARDIR/mysqld.1/data/percona_slow_query_log-long_query_time.log
17--let grep_pattern = Query_time
18--source include/grep.inc
19
200
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-microseconds_in_slow_extended-master.opt'
--- mysql-test/slow_extended.patch/percona_slow_extended-microseconds_in_slow_extended-master.opt 2010-12-06 03:50:48 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-microseconds_in_slow_extended-master.opt 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
1--slow-query-log-file=percona_slow_query_log-microseconds_in_slow_query_log.log --long-query-time=1
20
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-microseconds_in_slow_extended.result'
--- mysql-test/slow_extended.patch/percona_slow_extended-microseconds_in_slow_extended.result 2010-12-29 19:06:24 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-microseconds_in_slow_extended.result 1970-01-01 00:00:00 +0000
@@ -1,11 +0,0 @@
1SELECT sleep(2);
2sleep(2)
30
4set global slow_query_log_microseconds_timestamp=ON;
5SELECT sleep(2);
6sleep(2)
70
8set global slow_query_log_microseconds_timestamp=OFF;
9FLUSH LOGS;
101
112
120
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-microseconds_in_slow_extended.test'
--- mysql-test/slow_extended.patch/percona_slow_extended-microseconds_in_slow_extended.test 2010-12-29 19:06:24 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-microseconds_in_slow_extended.test 1970-01-01 00:00:00 +0000
@@ -1,19 +0,0 @@
1source include/have_innodb.inc;
2
3SELECT sleep(2);
4
5set global slow_query_log_microseconds_timestamp=ON;
6
7SELECT sleep(2);
8
9set global slow_query_log_microseconds_timestamp=OFF;
10
11FLUSH LOGS;
12--let grep_file = $MYSQLTEST_VARDIR/mysqld.1/data/percona_slow_query_log-microseconds_in_slow_query_log.log
13--let grep_pattern = # Time: [0-9]+[ ]+[0-9]+:[0-9]+:[0-9]+.[0-9]+
14--source include/grep.inc
15
16--let grep_file = $MYSQLTEST_VARDIR/mysqld.1/data/percona_slow_query_log-microseconds_in_slow_query_log.log
17--let grep_pattern = # Time: [0-9]+[ ]+[0-9]+:[0-9]+:[0-9]+
18--source include/grep.inc
19
200
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-min_examined_row_limit-master.opt'
--- mysql-test/slow_extended.patch/percona_slow_extended-min_examined_row_limit-master.opt 2010-12-06 03:50:48 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-min_examined_row_limit-master.opt 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
1--slow-query-log-file=percona_slow_query_log-min_examined_row_limit.log --long-query-time=1
20
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-min_examined_row_limit.result'
--- mysql-test/slow_extended.patch/percona_slow_extended-min_examined_row_limit.result 2010-12-29 19:06:24 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-min_examined_row_limit.result 1970-01-01 00:00:00 +0000
@@ -1,25 +0,0 @@
1SET GLOBAL SLOW_QUERY_LOG=OFF;
2drop table if exists t;
3# Create test table
4create table t(id INT PRIMARY KEY) engine=InnoDB;
5# Insert two rows to test table
6insert into t values(1);
7insert into t values(2);
8insert into t values(3);
9SET GLOBAL SLOW_QUERY_LOG=ON;
10SELECT sleep(2);
11sleep(2)
120
13set min_examined_row_limit=5;
14SELECT sleep(2) union select t2.id from t as t1,t as t2;
15sleep(2)
160
171
182
193
20SELECT sleep(2);
21sleep(2)
220
23drop table if exists t;
24FLUSH LOGS;
252
260
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-min_examined_row_limit.test'
--- mysql-test/slow_extended.patch/percona_slow_extended-min_examined_row_limit.test 2010-12-29 19:06:24 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-min_examined_row_limit.test 1970-01-01 00:00:00 +0000
@@ -1,32 +0,0 @@
1source include/have_innodb.inc;
2
3SET GLOBAL SLOW_QUERY_LOG=OFF;
4
5--disable_warnings
6drop table if exists t;
7--enable_warnings
8
9--echo # Create test table
10create table t(id INT PRIMARY KEY) engine=InnoDB;
11--echo # Insert two rows to test table
12insert into t values(1);
13insert into t values(2);
14insert into t values(3);
15
16SET GLOBAL SLOW_QUERY_LOG=ON;
17
18SELECT sleep(2);
19
20set min_examined_row_limit=5;
21
22SELECT sleep(2) union select t2.id from t as t1,t as t2;
23SELECT sleep(2);
24
25--disable_warnings
26drop table if exists t;
27--enable_warnings
28
29FLUSH LOGS;
30--let grep_file = $MYSQLTEST_VARDIR/mysqld.1/data/percona_slow_query_log-min_examined_row_limit.log
31--let grep_pattern = Query_time
32--source include/grep.inc
330
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-slave_innodb_stats-master.opt'
--- mysql-test/slow_extended.patch/percona_slow_extended-slave_innodb_stats-master.opt 2010-11-18 12:38:25 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-slave_innodb_stats-master.opt 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
1--long_query_time=0 --log_slow_verbosity=innodb --log_slow_slave_statements
20
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-slave_innodb_stats-slave.opt'
--- mysql-test/slow_extended.patch/percona_slow_extended-slave_innodb_stats-slave.opt 2010-11-18 12:38:25 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-slave_innodb_stats-slave.opt 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
1--long_query_time=0 --log_slow_verbosity=innodb --log_slow_slave_statements
20
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-slave_innodb_stats.result'
--- mysql-test/slow_extended.patch/percona_slow_extended-slave_innodb_stats.result 2011-05-26 10:57:17 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-slave_innodb_stats.result 1970-01-01 00:00:00 +0000
@@ -1,21 +0,0 @@
1include/master-slave.inc
2[connection master]
3DROP TABLE IF EXISTS t;
4CREATE TABLE t(id INT,data CHAR(30)) ENGINE=InnoDB;
5INSERT INTO t VALUES
6(1,"aaaaabbbbbcccccdddddeeeeefffff"),
7(2,"aaaaabbbbbcccccdddddeeeeefffff"),
8(3,"aaaaabbbbbcccccdddddeeeeefffff"),
9(4,"aaaaabbbbbcccccdddddeeeeefffff"),
10(5,"aaaaabbbbbcccccdddddeeeeefffff");
11INSERT INTO t SELECT t2.id,t2.data from t as t1, t as t2;
12INSERT INTO t SELECT t2.id,t2.data from t as t1, t as t2;
13STOP SLAVE;
14include/wait_for_slave_to_stop.inc
15START SLAVE;
16include/wait_for_slave_to_start.inc
17INSERT INTO t SELECT t.id,t.data from t;
18FLUSH LOGS;
194
20DROP TABLE IF EXISTS t;
21include/rpl_end.inc
220
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-slave_innodb_stats.test'
--- mysql-test/slow_extended.patch/percona_slow_extended-slave_innodb_stats.test 2011-05-26 10:57:17 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-slave_innodb_stats.test 1970-01-01 00:00:00 +0000
@@ -1,38 +0,0 @@
1-- source include/have_binlog_format_mixed_or_statement.inc
2-- source include/have_innodb.inc
3-- source include/master-slave.inc
4
5connection master;
6-- disable_warnings
7DROP TABLE IF EXISTS t;
8-- enable_warnings
9CREATE TABLE t(id INT,data CHAR(30)) ENGINE=InnoDB;
10INSERT INTO t VALUES
11(1,"aaaaabbbbbcccccdddddeeeeefffff"),
12(2,"aaaaabbbbbcccccdddddeeeeefffff"),
13(3,"aaaaabbbbbcccccdddddeeeeefffff"),
14(4,"aaaaabbbbbcccccdddddeeeeefffff"),
15(5,"aaaaabbbbbcccccdddddeeeeefffff");
16INSERT INTO t SELECT t2.id,t2.data from t as t1, t as t2;
17INSERT INTO t SELECT t2.id,t2.data from t as t1, t as t2;
18sync_slave_with_master;
19
20connection slave;
21STOP SLAVE;
22-- source include/wait_for_slave_to_stop.inc
23START SLAVE;
24-- source include/wait_for_slave_to_start.inc
25
26connection master;
27INSERT INTO t SELECT t.id,t.data from t;
28sync_slave_with_master;
29
30connection slave;
31FLUSH LOGS;
32--let grep_file = $MYSQLTEST_VARDIR/mysqld.2/mysqld-slow.log
33--let grep_pattern = InnoDB_IO_r_ops
34--source include/grep.inc
35
36connection master;
37DROP TABLE IF EXISTS t;
38--source include/rpl_end.inc
390
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-slave_statements-and-use_global_long_query_time-master.opt'
--- mysql-test/slow_extended.patch/percona_slow_extended-slave_statements-and-use_global_long_query_time-master.opt 2010-12-06 03:50:48 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-slave_statements-and-use_global_long_query_time-master.opt 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
1--slow-query-log-file=percona_log_slow_slave_statements-master.log --long-query-time=1
20
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-slave_statements-and-use_global_long_query_time-slave.opt'
--- mysql-test/slow_extended.patch/percona_slow_extended-slave_statements-and-use_global_long_query_time-slave.opt 2010-12-06 03:50:48 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-slave_statements-and-use_global_long_query_time-slave.opt 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
1--slow-query-log-file=percona_log_slow_slave_statements-slave.log --long-query-time=1
20
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-slave_statements-and-use_global_long_query_time.result'
--- mysql-test/slow_extended.patch/percona_slow_extended-slave_statements-and-use_global_long_query_time.result 2011-02-26 09:03:28 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-slave_statements-and-use_global_long_query_time.result 1970-01-01 00:00:00 +0000
@@ -1,94 +0,0 @@
1# Activate master-slave replication
2include/master-slave.inc
3[connection master]
4# Make table t for test
5DROP TABLE IF EXISTS t;
6CREATE TABLE t(id INT);
7# Start slave replication
8START SLAVE;
9include/wait_for_slave_to_start.inc
10INSERT INTO t VALUES (1);
11# Read and change log_slow_slave_statements to ON on slave
12show variables like 'log_slow_slave_statements';
13Variable_name Value
14log_slow_slave_statements OFF
15set global log_slow_slave_statements=ON;
16show variables like 'log_slow_slave_statements';
17Variable_name Value
18log_slow_slave_statements ON
19INSERT INTO t VALUES (2);
20# Restart slave
21STOP SLAVE;
22include/wait_for_slave_to_stop.inc
23START SLAVE;
24include/wait_for_slave_to_start.inc
25INSERT INTO t VALUES (3);
26show variables like 'long_query_time';
27Variable_name Value
28long_query_time 1.000000
29show global variables like 'long_query_time';
30Variable_name Value
31long_query_time 1.000000
32show global variables like 'use_global_long_query_time';
33Variable_name Value
34use_global_long_query_time OFF
35set global long_query_time=0;
36show variables like 'long_query_time';
37Variable_name Value
38long_query_time 1.000000
39show global variables like 'long_query_time';
40Variable_name Value
41long_query_time 0.000000
42show global variables like 'use_global_long_query_time';
43Variable_name Value
44use_global_long_query_time OFF
45INSERT INTO t VALUES (4);
46show variables like 'long_query_time';
47Variable_name Value
48long_query_time 1.000000
49show global variables like 'long_query_time';
50Variable_name Value
51long_query_time 0.000000
52show global variables like 'use_global_long_query_time';
53Variable_name Value
54use_global_long_query_time OFF
55set global use_global_long_query_time=1;
56show variables like 'long_query_time';
57Variable_name Value
58long_query_time 0.000000
59show global variables like 'long_query_time';
60Variable_name Value
61long_query_time 0.000000
62show global variables like 'use_global_long_query_time';
63Variable_name Value
64use_global_long_query_time ON
65INSERT INTO t VALUES (5);
66show variables like 'long_query_time';
67Variable_name Value
68long_query_time 0.000000
69show global variables like 'long_query_time';
70Variable_name Value
71long_query_time 0.000000
72show global variables like 'use_global_long_query_time';
73Variable_name Value
74use_global_long_query_time ON
75set global long_query_time=1;
76set global use_global_long_query_time=0;
77FLUSH LOGS;
78# Analyse master slow_query_log
790
800
810
820
830
84FLUSH LOGS;
85# Analyse slave slow_query_log
860
870
880
890
901
91set global log_slow_slave_statements=OFF;
92DROP TABLE t;
93STOP SLAVE;
94include/wait_for_slave_to_stop.inc
950
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-slave_statements-and-use_global_long_query_time.test'
--- mysql-test/slow_extended.patch/percona_slow_extended-slave_statements-and-use_global_long_query_time.test 2011-02-26 09:03:28 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-slave_statements-and-use_global_long_query_time.test 1970-01-01 00:00:00 +0000
@@ -1,116 +0,0 @@
1-- source include/have_binlog_format_mixed_or_statement.inc
2-- echo # Activate master-slave replication
3-- source include/master-slave.inc
4
5connection master;
6-- echo # Make table t for test
7-- disable_warnings
8DROP TABLE IF EXISTS t;
9-- enable_warnings
10CREATE TABLE t(id INT);
11
12
13-- echo # Start slave replication
14-- disable_warnings
15connection slave;
16START SLAVE;
17-- source include/wait_for_slave_to_start.inc
18-- enable_warnings
19
20#-- echo # Make insert(1) on master
21connection master;
22INSERT INTO t VALUES (1);
23sync_slave_with_master;
24connection slave;
25-- echo # Read and change log_slow_slave_statements to ON on slave
26show variables like 'log_slow_slave_statements';
27set global log_slow_slave_statements=ON;
28show variables like 'log_slow_slave_statements';
29
30#-- echo # Make insert(2) on master
31connection master;
32INSERT INTO t VALUES (2);
33sync_slave_with_master;
34connection slave;
35-- echo # Restart slave
36STOP SLAVE;
37-- source include/wait_for_slave_to_stop.inc
38START SLAVE;
39-- source include/wait_for_slave_to_start.inc
40
41#-- echo # Make insert(3) on master
42connection master;
43INSERT INTO t VALUES (3);
44sync_slave_with_master;
45connection slave;
46show variables like 'long_query_time';
47show global variables like 'long_query_time';
48show global variables like 'use_global_long_query_time';
49set global long_query_time=0;
50show variables like 'long_query_time';
51show global variables like 'long_query_time';
52show global variables like 'use_global_long_query_time';
53
54#-- echo # Make insert(4) on master
55connection master;
56INSERT INTO t VALUES (4);
57sync_slave_with_master;
58connection slave;
59show variables like 'long_query_time';
60show global variables like 'long_query_time';
61show global variables like 'use_global_long_query_time';
62set global use_global_long_query_time=1;
63show variables like 'long_query_time';
64show global variables like 'long_query_time';
65show global variables like 'use_global_long_query_time';
66
67#-- echo # Make insert(5) on master
68connection master;
69INSERT INTO t VALUES (5);
70sync_slave_with_master;
71connection slave;
72show variables like 'long_query_time';
73show global variables like 'long_query_time';
74show global variables like 'use_global_long_query_time';
75set global long_query_time=1;
76set global use_global_long_query_time=0;
77
78connection master;
79FLUSH LOGS;
80
81-- echo # Analyse master slow_query_log
82let $i=5;
83let $k=1;
84while($i)
85{
86 --let grep_file = $MYSQLTEST_VARDIR/mysqld.1/data/percona_log_slow_slave_statements-master.log
87 --let grep_pattern = INSERT INTO t VALUES \($k\)
88 --source include/grep.inc
89 dec $i;
90 inc $k;
91}
92
93connection slave;
94FLUSH LOGS;
95
96-- echo # Analyse slave slow_query_log
97let $i=5;
98let $k=1;
99while($i)
100{
101 --let grep_file = $MYSQLTEST_VARDIR/mysqld.2/data/percona_log_slow_slave_statements-slave.log
102 --let grep_pattern = INSERT INTO t VALUES \($k\)
103 --source include/grep.inc
104 dec $i;
105 inc $k;
106}
107set global log_slow_slave_statements=OFF;
108
109connection master;
110DROP TABLE t;
111
112sync_slave_with_master;
113connection slave;
114
115STOP SLAVE;
116-- source include/wait_for_slave_to_stop.inc
1170
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-slave_statements-master.opt'
--- mysql-test/slow_extended.patch/percona_slow_extended-slave_statements-master.opt 2010-12-06 03:50:48 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-slave_statements-master.opt 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
1--slow-query-log-file=percona_log_slow_slave_statements-master.log --long-query-time=0
20
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-slave_statements-slave.opt'
--- mysql-test/slow_extended.patch/percona_slow_extended-slave_statements-slave.opt 2010-12-06 03:50:48 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-slave_statements-slave.opt 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
1--slow-query-log-file=percona_log_slow_slave_statements-slave.log --long-query-time=0
20
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-slave_statements.result'
--- mysql-test/slow_extended.patch/percona_slow_extended-slave_statements.result 2011-02-26 09:03:28 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-slave_statements.result 1970-01-01 00:00:00 +0000
@@ -1,93 +0,0 @@
1# Activate master-slave replication
2include/master-slave.inc
3[connection master]
4# Make table t for test
5DROP TABLE IF EXISTS t;
6CREATE TABLE t(id INT);
7# Start slave replication
8START SLAVE;
9include/wait_for_slave_to_start.inc
10INSERT INTO t VALUES (1);
11# Read information about master binlog
12# Sync(1) slave thread
13# Read and change log_slow_slave_statements to ON on slave
14show variables like 'log_slow_slave_statements';
15Variable_name Value
16log_slow_slave_statements OFF
17set global log_slow_slave_statements=ON;
18show variables like 'log_slow_slave_statements';
19Variable_name Value
20log_slow_slave_statements ON
21INSERT INTO t VALUES (2);
22# Read information about master binlog
23# Sync slave(2) thread
24# Restart slave
25STOP SLAVE;
26include/wait_for_slave_to_stop.inc
27START SLAVE;
28include/wait_for_slave_to_start.inc
29INSERT INTO t VALUES (3);
30# Read information about master binlog
31# Sync(3) slave thread
32# Read and change log_slow_slave_statements to OFF on slave
33show variables like 'log_slow_slave_statements';
34Variable_name Value
35log_slow_slave_statements ON
36set global log_slow_slave_statements=OFF;
37show variables like 'log_slow_slave_statements';
38Variable_name Value
39log_slow_slave_statements OFF
40INSERT INTO t VALUES (4);
41# Read information about master binlog
42# Sync slave(4) thread
43# Restart slave
44STOP SLAVE;
45include/wait_for_slave_to_stop.inc
46START SLAVE;
47include/wait_for_slave_to_start.inc
48INSERT INTO t VALUES (5);
49# Read information about master binlog
50# Sync slave(5) thread
51# Read and change log_slow_slave_statements to ON on slave
52show variables like 'log_slow_slave_statements';
53Variable_name Value
54log_slow_slave_statements OFF
55set global log_slow_slave_statements=ON;
56show variables like 'log_slow_slave_statements';
57Variable_name Value
58log_slow_slave_statements ON
59INSERT INTO t VALUES (6);
60# Read information about master binlog
61# Sync slave(6) thread
62# Restart slave
63STOP SLAVE;
64include/wait_for_slave_to_stop.inc
65START SLAVE;
66include/wait_for_slave_to_start.inc
67INSERT INTO t VALUES (7);
68# Read information about master binlog
69# Sync slave(7) thread
70FLUSH LOGS;
71# Analyse master slow_query_log
721
731
741
751
761
771
781
79FLUSH LOGS;
80# Analyse slave slow_query_log
810
820
831
840
850
860
871
88set global log_slow_slave_statements=OFF;
89DROP TABLE t;
90# Read information about master binlog
91# Sync slave(8) thread
92STOP SLAVE;
93include/wait_for_slave_to_stop.inc
940
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-slave_statements.test'
--- mysql-test/slow_extended.patch/percona_slow_extended-slave_statements.test 2011-02-26 09:03:28 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-slave_statements.test 1970-01-01 00:00:00 +0000
@@ -1,168 +0,0 @@
1-- source include/have_binlog_format_mixed_or_statement.inc
2-- echo # Activate master-slave replication
3-- source include/master-slave.inc
4
5connection master;
6-- echo # Make table t for test
7-- disable_warnings
8DROP TABLE IF EXISTS t;
9-- enable_warnings
10CREATE TABLE t(id INT);
11
12
13-- echo # Start slave replication
14-- disable_warnings
15connection slave;
16START SLAVE;
17-- source include/wait_for_slave_to_start.inc
18-- enable_warnings
19
20#-- echo # Make insert(1) on master
21connection master;
22INSERT INTO t VALUES (1);
23-- echo # Read information about master binlog
24let $binlog_file = query_get_value(SHOW MASTER STATUS,File,1);
25let $binlog_position = query_get_value(SHOW MASTER STATUS,Position,1);
26
27-- echo # Sync(1) slave thread
28connection slave;
29let $sync_result = `SELECT MASTER_POS_WAIT('$binlog_file',$binlog_position)`;
30
31-- echo # Read and change log_slow_slave_statements to ON on slave
32show variables like 'log_slow_slave_statements';
33set global log_slow_slave_statements=ON;
34show variables like 'log_slow_slave_statements';
35
36#-- echo # Make insert(2) on master
37connection master;
38INSERT INTO t VALUES (2);
39-- echo # Read information about master binlog
40let $binlog_file = query_get_value(SHOW MASTER STATUS,File,1);
41let $binlog_position = query_get_value(SHOW MASTER STATUS,Position,1);
42
43-- echo # Sync slave(2) thread
44connection slave;
45let $sync_result = `SELECT MASTER_POS_WAIT('$binlog_file',$binlog_position)`;
46-- echo # Restart slave
47STOP SLAVE;
48-- source include/wait_for_slave_to_stop.inc
49START SLAVE;
50-- source include/wait_for_slave_to_start.inc
51
52#-- echo # Make insert(3) on master
53connection master;
54INSERT INTO t VALUES (3);
55-- echo # Read information about master binlog
56let $binlog_file = query_get_value(SHOW MASTER STATUS,File,1);
57let $binlog_position = query_get_value(SHOW MASTER STATUS,Position,1);
58
59-- echo # Sync(3) slave thread
60connection slave;
61let $sync_result = `SELECT MASTER_POS_WAIT('$binlog_file',$binlog_position)`;
62-- echo # Read and change log_slow_slave_statements to OFF on slave
63show variables like 'log_slow_slave_statements';
64set global log_slow_slave_statements=OFF;
65show variables like 'log_slow_slave_statements';
66
67#-- echo # Make insert(4) on master
68connection master;
69INSERT INTO t VALUES (4);
70-- echo # Read information about master binlog
71let $binlog_file = query_get_value(SHOW MASTER STATUS,File,1);
72let $binlog_position = query_get_value(SHOW MASTER STATUS,Position,1);
73
74-- echo # Sync slave(4) thread
75connection slave;
76let $sync_result = `SELECT MASTER_POS_WAIT('$binlog_file',$binlog_position)`;
77-- echo # Restart slave
78STOP SLAVE;
79-- source include/wait_for_slave_to_stop.inc
80START SLAVE;
81-- source include/wait_for_slave_to_start.inc
82
83#-- echo # Make insert(5) on master
84connection master;
85INSERT INTO t VALUES (5);
86-- echo # Read information about master binlog
87let $binlog_file = query_get_value(SHOW MASTER STATUS,File,1);
88let $binlog_position = query_get_value(SHOW MASTER STATUS,Position,1);
89
90-- echo # Sync slave(5) thread
91connection slave;
92let $sync_result = `SELECT MASTER_POS_WAIT('$binlog_file',$binlog_position)`;
93-- echo # Read and change log_slow_slave_statements to ON on slave
94show variables like 'log_slow_slave_statements';
95set global log_slow_slave_statements=ON;
96show variables like 'log_slow_slave_statements';
97
98#-- echo # Make insert(6) on master
99connection master;
100INSERT INTO t VALUES (6);
101-- echo # Read information about master binlog
102let $binlog_file = query_get_value(SHOW MASTER STATUS,File,1);
103let $binlog_position = query_get_value(SHOW MASTER STATUS,Position,1);
104
105-- echo # Sync slave(6) thread
106connection slave;
107let $sync_result = `SELECT MASTER_POS_WAIT('$binlog_file',$binlog_position)`;
108-- echo # Restart slave
109STOP SLAVE;
110-- source include/wait_for_slave_to_stop.inc
111START SLAVE;
112-- source include/wait_for_slave_to_start.inc
113
114#-- echo # Make insert(7) on master
115connection master;
116INSERT INTO t VALUES (7);
117-- echo # Read information about master binlog
118let $binlog_file = query_get_value(SHOW MASTER STATUS,File,1);
119let $binlog_position = query_get_value(SHOW MASTER STATUS,Position,1);
120
121-- echo # Sync slave(7) thread
122connection slave;
123let $sync_result = `SELECT MASTER_POS_WAIT('$binlog_file',$binlog_position)`;
124
125connection master;
126FLUSH LOGS;
127
128-- echo # Analyse master slow_query_log
129let $i=7;
130let $k=1;
131while($i)
132{
133 --let grep_file = $MYSQLTEST_VARDIR/mysqld.1/data/percona_log_slow_slave_statements-master.log
134 --let grep_pattern = INSERT INTO t VALUES \($k\)
135 --source include/grep.inc
136 dec $i;
137 inc $k;
138}
139
140connection slave;
141FLUSH LOGS;
142
143-- echo # Analyse slave slow_query_log
144let $i=7;
145let $k=1;
146while($i)
147{
148 --let grep_file = $MYSQLTEST_VARDIR/mysqld.2/data/percona_log_slow_slave_statements-slave.log
149 --let grep_pattern = INSERT INTO t VALUES \($k\)
150 --source include/grep.inc
151 dec $i;
152 inc $k;
153}
154set global log_slow_slave_statements=OFF;
155
156connection master;
157DROP TABLE t;
158
159-- echo # Read information about master binlog
160let $binlog_file = query_get_value(SHOW MASTER STATUS,File,1);
161let $binlog_position = query_get_value(SHOW MASTER STATUS,Position,1);
162
163-- echo # Sync slave(8) thread
164connection slave;
165let $sync_result = `SELECT MASTER_POS_WAIT('$binlog_file',$binlog_position)`;
166
167STOP SLAVE;
168-- source include/wait_for_slave_to_stop.inc
1690
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-slow_query_log_microseconds_timestamp-cl-master.opt'
--- mysql-test/slow_extended.patch/percona_slow_extended-slow_query_log_microseconds_timestamp-cl-master.opt 2010-12-22 20:15:33 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-slow_query_log_microseconds_timestamp-cl-master.opt 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
1--slow_query_log_microseconds_timestamp
20
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-slow_query_log_microseconds_timestamp-cl.result'
--- mysql-test/slow_extended.patch/percona_slow_extended-slow_query_log_microseconds_timestamp-cl.result 2010-12-22 20:15:33 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-slow_query_log_microseconds_timestamp-cl.result 1970-01-01 00:00:00 +0000
@@ -1,3 +0,0 @@
1show global variables like 'slow_query_log_microseconds_timestamp';
2Variable_name Value
3slow_query_log_microseconds_timestamp ON
40
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-slow_query_log_microseconds_timestamp-cl.test'
--- mysql-test/slow_extended.patch/percona_slow_extended-slow_query_log_microseconds_timestamp-cl.test 2010-12-22 20:15:33 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-slow_query_log_microseconds_timestamp-cl.test 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
1show global variables like 'slow_query_log_microseconds_timestamp';
20
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-use_global_long_query_time-cl-master.opt'
--- mysql-test/slow_extended.patch/percona_slow_extended-use_global_long_query_time-cl-master.opt 2010-12-22 20:15:33 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-use_global_long_query_time-cl-master.opt 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
1--use_global_long_query_time
20
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-use_global_long_query_time-cl.result'
--- mysql-test/slow_extended.patch/percona_slow_extended-use_global_long_query_time-cl.result 2010-12-22 20:15:33 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-use_global_long_query_time-cl.result 1970-01-01 00:00:00 +0000
@@ -1,3 +0,0 @@
1show global variables like 'use_global_long_query_time';
2Variable_name Value
3use_global_long_query_time ON
40
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-use_global_long_query_time-cl.test'
--- mysql-test/slow_extended.patch/percona_slow_extended-use_global_long_query_time-cl.test 2010-12-22 20:15:33 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-use_global_long_query_time-cl.test 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
1show global variables like 'use_global_long_query_time';
20
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-use_global_long_query_time-master.opt'
--- mysql-test/slow_extended.patch/percona_slow_extended-use_global_long_query_time-master.opt 2010-12-06 03:50:48 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-use_global_long_query_time-master.opt 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
1--slow-query-log-file=percona_slow_query_log-use_global_long_query_time.log --long-query-time=2 --use_global_log_slow_control=long_query_time --use_global_long_query_time=1
20
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-use_global_long_query_time.result'
--- mysql-test/slow_extended.patch/percona_slow_extended-use_global_long_query_time.result 2010-12-29 19:06:24 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-use_global_long_query_time.result 1970-01-01 00:00:00 +0000
@@ -1,59 +0,0 @@
1SELECT sleep(1);
2sleep(1)
30
4SELECT sleep(3);
5sleep(3)
60
7SELECT sleep(5);
8sleep(5)
90
10set global long_query_time=4;
11set global use_global_long_query_time=1;
12SELECT sleep(1);
13sleep(1)
140
15SELECT sleep(3);
16sleep(3)
170
18SELECT sleep(5);
19sleep(5)
200
21set global long_query_time=2;
22set global use_global_long_query_time=0;
23FLUSH LOGS;
243
25show global variables like 'use_global_log_slow_control';
26Variable_name Value
27use_global_log_slow_control none
28show global variables like 'use_global_long_query_time';
29Variable_name Value
30use_global_long_query_time OFF
31set global use_global_log_slow_control = long_query_time;
32show global variables like 'use_global_log_slow_control';
33Variable_name Value
34use_global_log_slow_control long_query_time
35show global variables like 'use_global_long_query_time';
36Variable_name Value
37use_global_long_query_time ON
38set global use_global_log_slow_control = log_slow_filter;
39show global variables like 'use_global_log_slow_control';
40Variable_name Value
41use_global_log_slow_control log_slow_filter
42show global variables like 'use_global_long_query_time';
43Variable_name Value
44use_global_long_query_time OFF
45set global use_global_long_query_time = ON;
46show global variables like 'use_global_log_slow_control';
47Variable_name Value
48use_global_log_slow_control log_slow_filter,long_query_time
49show global variables like 'use_global_long_query_time';
50Variable_name Value
51use_global_long_query_time ON
52set global use_global_long_query_time = OFF;
53show global variables like 'use_global_log_slow_control';
54Variable_name Value
55use_global_log_slow_control log_slow_filter
56show global variables like 'use_global_long_query_time';
57Variable_name Value
58use_global_long_query_time OFF
59set global use_global_log_slow_control = long_query_time;
600
=== removed file 'mysql-test/slow_extended.patch/percona_slow_extended-use_global_long_query_time.test'
--- mysql-test/slow_extended.patch/percona_slow_extended-use_global_long_query_time.test 2010-12-29 19:06:24 +0000
+++ mysql-test/slow_extended.patch/percona_slow_extended-use_global_long_query_time.test 1970-01-01 00:00:00 +0000
@@ -1,41 +0,0 @@
1source include/have_innodb.inc;
2
3SELECT sleep(1);
4SELECT sleep(3);
5SELECT sleep(5);
6
7set global long_query_time=4;
8set global use_global_long_query_time=1;
9
10SELECT sleep(1);
11SELECT sleep(3);
12SELECT sleep(5);
13
14set global long_query_time=2;
15set global use_global_long_query_time=0;
16
17FLUSH LOGS;
18--let grep_file = $MYSQLTEST_VARDIR/mysqld.1/data/percona_slow_query_log-use_global_long_query_time.log
19--let grep_pattern = Query_time
20--source include/grep.inc
21
22show global variables like 'use_global_log_slow_control';
23show global variables like 'use_global_long_query_time';
24
25set global use_global_log_slow_control = long_query_time;
26show global variables like 'use_global_log_slow_control';
27show global variables like 'use_global_long_query_time';
28
29set global use_global_log_slow_control = log_slow_filter;
30show global variables like 'use_global_log_slow_control';
31show global variables like 'use_global_long_query_time';
32
33set global use_global_long_query_time = ON;
34show global variables like 'use_global_log_slow_control';
35show global variables like 'use_global_long_query_time';
36
37set global use_global_long_query_time = OFF;
38show global variables like 'use_global_log_slow_control';
39show global variables like 'use_global_long_query_time';
40
41set global use_global_log_slow_control = long_query_time;
420
=== modified file 'mysql_dump_ignore_ct.patch'
--- mysql_dump_ignore_ct.patch 2011-05-10 07:31:20 +0000
+++ mysql_dump_ignore_ct.patch 2011-07-27 08:44:25 +0000
@@ -6,8 +6,8 @@
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!
8diff -ruN a/client/client_priv.h b/client/client_priv.h8diff -ruN a/client/client_priv.h b/client/client_priv.h
9--- a/client/client_priv.h 2010-04-06 23:03:48.000000000 +09009--- a/client/client_priv.h
10+++ b/client/client_priv.h 2010-04-30 19:37:42.000000000 +090010+++ b/client/client_priv.h
11@@ -68,6 +68,7 @@11@@ -68,6 +68,7 @@
12 OPT_MYSQL_LOCK_DIRECTORY,12 OPT_MYSQL_LOCK_DIRECTORY,
13 OPT_USE_THREADS,13 OPT_USE_THREADS,
@@ -17,8 +17,8 @@
17 OPT_IGNORE_TABLE,OPT_INSERT_IGNORE,OPT_SHOW_WARNINGS,OPT_DROP_DATABASE,17 OPT_IGNORE_TABLE,OPT_INSERT_IGNORE,OPT_SHOW_WARNINGS,OPT_DROP_DATABASE,
18 OPT_TZ_UTC, OPT_AUTO_CLOSE, OPT_CREATE_SLAP_SCHEMA,18 OPT_TZ_UTC, OPT_AUTO_CLOSE, OPT_CREATE_SLAP_SCHEMA,
19diff -ruN a/client/mysqldump.c b/client/mysqldump.c19diff -ruN a/client/mysqldump.c b/client/mysqldump.c
20--- a/client/mysqldump.c 2010-04-06 23:03:49.000000000 +090020--- a/client/mysqldump.c
21+++ b/client/mysqldump.c 2010-04-30 19:41:20.000000000 +090021+++ b/client/mysqldump.c
22@@ -98,7 +98,7 @@22@@ -98,7 +98,7 @@
23 opt_complete_insert= 0, opt_drop_database= 0,23 opt_complete_insert= 0, opt_drop_database= 0,
24 opt_replace_into= 0,24 opt_replace_into= 0,
@@ -38,16 +38,15 @@
38 {"lines-terminated-by", OPT_LTB, 38 {"lines-terminated-by", OPT_LTB,
39 "Lines in the output file are terminated by the given string.",39 "Lines in the output file are terminated by the given string.",
40 &lines_terminated, &lines_terminated, 0, GET_STR,40 &lines_terminated, &lines_terminated, 0, GET_STR,
41@@ -2318,13 +2321,21 @@41@@ -2319,12 +2322,20 @@
42 /* Make an sql-file, if path was given iow. option -T was given */
43 char buff[20+FN_REFLEN];42 char buff[20+FN_REFLEN];
44 MYSQL_FIELD *field;43 MYSQL_FIELD *field;
45+ 44
46+ my_bool old_ignore_errors=ignore_errors;45+ my_bool old_ignore_errors=ignore_errors;
47+ //fprintf(stderr, "ignore create table %d\n", opt_ignore_show_create_table_error);46+ //fprintf(stderr, "ignore create table %d\n", opt_ignore_show_create_table_error);
48+ if (opt_ignore_show_create_table_error)47+ if (opt_ignore_show_create_table_error)
49+ ignore_errors=1;48+ ignore_errors=1;
50 49+
51 my_snprintf(buff, sizeof(buff), "show create table %s", result_table);50 my_snprintf(buff, sizeof(buff), "show create table %s", result_table);
52 51
53 if (switch_character_set_results(mysql, "binary") ||52 if (switch_character_set_results(mysql, "binary") ||
5453
=== modified file 'query_cache_enhance.patch'
--- query_cache_enhance.patch 2011-05-12 11:00:37 +0000
+++ query_cache_enhance.patch 2011-07-27 08:44:25 +0000
@@ -5,9 +5,9 @@
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!
8diff -ruN a/patch_info/query_cache_enhance.patch b/patch_info/query_cache_enhance.patch8diff -ruN /dev/null b/patch_info/query_cache_enhance.patch
9--- a/patch_info/query_cache_enhance.patch 1970-01-01 03:00:00.000000000 +03009--- /dev/null
10+++ b/patch_info/query_cache_enhance.patch 2010-07-21 01:42:09.650424002 +040010+++ b/patch_info/query_cache_enhance.patch
11@@ -0,0 +1,14 @@11@@ -0,0 +1,14 @@
12+File=query_cache_enhance.patch12+File=query_cache_enhance.patch
13+Name= query cache Percona's cumulative patch13+Name= query cache Percona's cumulative patch
@@ -24,9 +24,9 @@
24+2010-07 - Fix incorrect behavior diff (query_cache_with_comments.patch)24+2010-07 - Fix incorrect behavior diff (query_cache_with_comments.patch)
25+2010-09 - Merge patches to one25+2010-09 - Merge patches to one
26diff -ruN a/sql/mysqld.cc b/sql/mysqld.cc26diff -ruN a/sql/mysqld.cc b/sql/mysqld.cc
27--- a/sql/mysqld.cc 2010-07-28 16:47:41.134069529 +040027--- a/sql/mysqld.cc
28+++ b/sql/mysqld.cc 2010-07-28 16:47:41.704071184 +040028+++ b/sql/mysqld.cc
29@@ -526,6 +526,7 @@29@@ -527,6 +527,7 @@
30 my_bool opt_log_slow_slave_statements= 0;30 my_bool opt_log_slow_slave_statements= 0;
31 my_bool opt_log_slow_sp_statements= 0;31 my_bool opt_log_slow_sp_statements= 0;
32 my_bool opt_log_slow_timestamp_every= 0;32 my_bool opt_log_slow_timestamp_every= 0;
@@ -34,7 +34,7 @@
34 my_bool opt_use_global_long_query_time= 0;34 my_bool opt_use_global_long_query_time= 0;
35 my_bool opt_slow_query_log_microseconds_timestamp= 0;35 my_bool opt_slow_query_log_microseconds_timestamp= 0;
36 my_bool lower_case_file_system= 0;36 my_bool lower_case_file_system= 0;
37@@ -5898,6 +5899,7 @@37@@ -5900,6 +5901,7 @@
38 OPT_THREAD_STATISTICS,38 OPT_THREAD_STATISTICS,
39 OPT_OPTIMIZER_FIX,39 OPT_OPTIMIZER_FIX,
40 OPT_SUPPRESS_LOG_WARNING_1592,40 OPT_SUPPRESS_LOG_WARNING_1592,
@@ -42,7 +42,7 @@
42 OPT_USE_GLOBAL_LONG_QUERY_TIME,42 OPT_USE_GLOBAL_LONG_QUERY_TIME,
43 OPT_USE_GLOBAL_LOG_SLOW_CONTROL,43 OPT_USE_GLOBAL_LOG_SLOW_CONTROL,
44 OPT_SLOW_QUERY_LOG_MICROSECONDS_TIMESTAMP,44 OPT_SLOW_QUERY_LOG_MICROSECONDS_TIMESTAMP,
45@@ -6953,6 +6955,10 @@45@@ -6955,6 +6957,10 @@
46 {"use_global_log_slow_control", OPT_USE_GLOBAL_LOG_SLOW_CONTROL,46 {"use_global_log_slow_control", OPT_USE_GLOBAL_LOG_SLOW_CONTROL,
47 "Choose flags, wich always use the global variables. Multiple flags allowed in a comma-separated string. [none, log_slow_filter, log_slow_rate_limit, log_slow_verbosity, long_query_time, min_examined_row_limit, all]",47 "Choose flags, wich always use the global variables. Multiple flags allowed in a comma-separated string. [none, log_slow_filter, log_slow_rate_limit, log_slow_verbosity, long_query_time, min_examined_row_limit, all]",
48 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, SLOG_UG_NONE, 0, 0},48 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, SLOG_UG_NONE, 0, 0},
@@ -54,8 +54,8 @@
54 "Control always use global long_query_time or local long_query_time.",54 "Control always use global long_query_time or local long_query_time.",
55 (uchar**) &opt_use_global_long_query_time, (uchar**) &opt_use_global_long_query_time,55 (uchar**) &opt_use_global_long_query_time, (uchar**) &opt_use_global_long_query_time,
56diff -ruN a/sql/mysql_priv.h b/sql/mysql_priv.h56diff -ruN a/sql/mysql_priv.h b/sql/mysql_priv.h
57--- a/sql/mysql_priv.h 2010-07-28 16:47:41.144071083 +040057--- a/sql/mysql_priv.h
58+++ b/sql/mysql_priv.h 2010-07-28 16:47:41.714068826 +040058+++ b/sql/mysql_priv.h
59@@ -2118,6 +2118,7 @@59@@ -2118,6 +2118,7 @@
60 extern my_bool opt_log_slow_admin_statements, opt_log_slow_slave_statements;60 extern my_bool opt_log_slow_admin_statements, opt_log_slow_slave_statements;
61 extern my_bool opt_log_slow_sp_statements;61 extern my_bool opt_log_slow_sp_statements;
@@ -64,9 +64,9 @@
64 extern my_bool opt_use_global_long_query_time;64 extern my_bool opt_use_global_long_query_time;
65 extern my_bool opt_slow_query_log_microseconds_timestamp;65 extern my_bool opt_slow_query_log_microseconds_timestamp;
66 extern my_bool sp_automatic_privileges, opt_noacl;66 extern my_bool sp_automatic_privileges, opt_noacl;
67diff -ruN a/sql/query_strip_comments.h b/sql/query_strip_comments.h67diff -ruN /dev/null b/sql/query_strip_comments.h
68--- a/sql/query_strip_comments.h 1970-01-01 03:00:00.000000000 +030068--- /dev/null
69+++ b/sql/query_strip_comments.h 2010-07-28 16:47:41.724072335 +040069+++ b/sql/query_strip_comments.h
70@@ -0,0 +1,37 @@70@@ -0,0 +1,37 @@
71+#ifndef _SQL_QUERY_STRIPC_COMMENTS_H_71+#ifndef _SQL_QUERY_STRIPC_COMMENTS_H_
72+#define _SQL_QUERY_STRIPC_COMMENTS_H_72+#define _SQL_QUERY_STRIPC_COMMENTS_H_
@@ -106,8 +106,8 @@
106+#endif // HAVE_QUERY_CACHE106+#endif // HAVE_QUERY_CACHE
107+#endif // _SQL_QUERY_STRIPC_COMMENTS_H_107+#endif // _SQL_QUERY_STRIPC_COMMENTS_H_
108diff -ruN a/sql/set_var.cc b/sql/set_var.cc108diff -ruN a/sql/set_var.cc b/sql/set_var.cc
109--- a/sql/set_var.cc 2010-07-28 16:47:41.124069093 +0400109--- a/sql/set_var.cc
110+++ b/sql/set_var.cc 2010-07-28 16:47:41.734068580 +0400110+++ b/sql/set_var.cc
111@@ -124,8 +124,10 @@111@@ -124,8 +124,10 @@
112 static void fix_net_write_timeout(THD *thd, enum_var_type type);112 static void fix_net_write_timeout(THD *thd, enum_var_type type);
113 static void fix_net_retry_count(THD *thd, enum_var_type type);113 static void fix_net_retry_count(THD *thd, enum_var_type type);
@@ -137,15 +137,12 @@
137+ &query_cache_size,137+ &query_cache_size,
138+ fix_query_cache_size);138+ fix_query_cache_size);
139 static sys_var_long_ptr sys_query_cache_limit(&vars, "query_cache_limit",139 static sys_var_long_ptr sys_query_cache_limit(&vars, "query_cache_limit",
140- &query_cache.query_cache_limit);140 &query_cache.query_cache_limit);
141-static sys_var_long_ptr sys_query_cache_min_res_unit(&vars, "query_cache_min_res_unit",141-static sys_var_long_ptr sys_query_cache_min_res_unit(&vars, "query_cache_min_res_unit",
142- &query_cache_min_res_unit,
143- fix_query_cache_min_res_unit);
144+ &query_cache.query_cache_limit);
145+static sys_var_long_ptr142+static sys_var_long_ptr
146+ sys_query_cache_min_res_unit(&vars, "query_cache_min_res_unit",143+ sys_query_cache_min_res_unit(&vars, "query_cache_min_res_unit",
147+ &query_cache_min_res_unit,144 &query_cache_min_res_unit,
148+ fix_query_cache_min_res_unit);145 fix_query_cache_min_res_unit);
149+static int check_query_cache_type(THD *thd, set_var *var);146+static int check_query_cache_type(THD *thd, set_var *var);
150 static sys_var_thd_enum sys_query_cache_type(&vars, "query_cache_type",147 static sys_var_thd_enum sys_query_cache_type(&vars, "query_cache_type",
151 &SV::query_cache_type,148 &SV::query_cache_type,
@@ -164,7 +161,7 @@
164 static sys_var_const_str_ptr sys_repl_report_password(&vars, "report_password", &report_password);161 static sys_var_const_str_ptr sys_repl_report_password(&vars, "report_password", &report_password);
165 162
166 static uchar *slave_get_report_port(THD *thd)163 static uchar *slave_get_report_port(THD *thd)
167@@ -1250,10 +1257,9 @@164@@ -1255,10 +1262,9 @@
168 {}165 {}
169 #endif /* HAVE_REPLICATION */166 #endif /* HAVE_REPLICATION */
170 167
@@ -176,7 +173,7 @@
176 ulong new_cache_size= query_cache.resize(query_cache_size);173 ulong new_cache_size= query_cache.resize(query_cache_size);
177 174
178 /*175 /*
179@@ -1267,11 +1273,35 @@176@@ -1272,11 +1278,35 @@
180 query_cache_size, new_cache_size);177 query_cache_size, new_cache_size);
181 178
182 query_cache_size= new_cache_size;179 query_cache_size= new_cache_size;
@@ -214,7 +211,7 @@
214 static void fix_query_cache_min_res_unit(THD *thd, enum_var_type type)211 static void fix_query_cache_min_res_unit(THD *thd, enum_var_type type)
215 {212 {
216 query_cache_min_res_unit= 213 query_cache_min_res_unit=
217@@ -3629,6 +3659,16 @@214@@ -3634,6 +3664,16 @@
218 Functions to handle SET mysql_internal_variable=const_expr215 Functions to handle SET mysql_internal_variable=const_expr
219 *****************************************************************************/216 *****************************************************************************/
220 217
@@ -232,8 +229,8 @@
232 {229 {
233 if (var->is_readonly())230 if (var->is_readonly())
234diff -ruN a/sql/sql_cache.cc b/sql/sql_cache.cc231diff -ruN a/sql/sql_cache.cc b/sql/sql_cache.cc
235--- a/sql/sql_cache.cc 2010-07-28 16:47:41.134069529 +0400232--- a/sql/sql_cache.cc
236+++ b/sql/sql_cache.cc 2010-07-28 16:47:41.754069731 +0400233+++ b/sql/sql_cache.cc
237@@ -286,6 +286,7 @@234@@ -286,6 +286,7 @@
238 if (and only if) this query has a registered result set writer235 if (and only if) this query has a registered result set writer
239 (thd->net.query_cache_query).236 (thd->net.query_cache_query).
@@ -510,16 +507,10 @@
510 goto err;507 goto err;
511 508
512 if (!thd->lex->safe_to_cache_query)509 if (!thd->lex->safe_to_cache_query)
513@@ -1426,21 +1621,103 @@510@@ -1426,6 +1621,87 @@
514 511
515 {512 {
516 uint i= 0;513 uint i= 0;
517- /*
518- Skip '(' characters in queries like following:
519- (select a from t1) union (select a from t1);
520- */
521- while (sql[i]=='(')
522- i++;
523+ if(opt_query_cache_strip_comments)514+ if(opt_query_cache_strip_comments)
524+ {515+ {
525+ /* Skip all comments and non-letter symbols */516+ /* Skip all comments and non-letter symbols */
@@ -601,32 +592,17 @@
601+ }592+ }
602+ else // if(opt_query_cache_strip_comments)593+ else // if(opt_query_cache_strip_comments)
603+ {594+ {
604+ /*595 /*
605+ Skip '(' characters in queries like following:596 Skip '(' characters in queries like following:
606+ (select a from t1) union (select a from t1);597 (select a from t1) union (select a from t1);
607+ */598@@ -1433,6 +1709,7 @@
608+ while (sql[i]=='(')599 while (sql[i]=='(')
609+ i++;600 i++;
610 601
611- /*
612- Test if the query is a SELECT
613- (pre-space is removed in dispatch_command).
614+ } // if(opt_query_cache_strip_comments) 602+ } // if(opt_query_cache_strip_comments)
615+ /*603 /*
616+ Test if the query is a SELECT604 Test if the query is a SELECT
617+ (pre-space is removed in dispatch_command).605 (pre-space is removed in dispatch_command).
618
619- First '/' looks like comment before command it is not
620- frequently appeared in real life, consequently we can
621- check all such queries, too.
622- */
623+ First '/' looks like comment before command it is not
624+ frequently appeared in real life, consequently we can
625+ check all such queries, too.
626+ */
627 if ((my_toupper(system_charset_info, sql[i]) != 'S' ||
628 my_toupper(system_charset_info, sql[i + 1]) != 'E' ||
629 my_toupper(system_charset_info, sql[i + 2]) != 'L') &&
630@@ -1449,7 +1726,6 @@606@@ -1449,7 +1726,6 @@
631 DBUG_PRINT("qcache", ("The statement is not a SELECT; Not cached"));607 DBUG_PRINT("qcache", ("The statement is not a SELECT; Not cached"));
632 goto err;608 goto err;
@@ -689,17 +665,15 @@
689 for (; tables_used; tables_used= tables_used->next_local)665 for (; tables_used; tables_used= tables_used->next_local)
690 {666 {
691 thd_proc_info(thd, "invalidating query cache entries (table)");667 thd_proc_info(thd, "invalidating query cache entries (table)");
692@@ -1804,7 +2096,9 @@668@@ -1804,6 +2096,8 @@
693 my_bool using_transactions)669 my_bool using_transactions)
694 {670 {
695 DBUG_ENTER("Query_cache::invalidate (table)");671 DBUG_ENTER("Query_cache::invalidate (table)");
696-
697+ if (is_disabled())672+ if (is_disabled())
698+ DBUG_VOID_RETURN;673+ DBUG_VOID_RETURN;
699+674
700 using_transactions= using_transactions &&675 using_transactions= using_transactions &&
701 (thd->options & (OPTION_NOT_AUTOCOMMIT | OPTION_BEGIN));676 (thd->options & (OPTION_NOT_AUTOCOMMIT | OPTION_BEGIN));
702 if (using_transactions &&
703@@ -1821,6 +2115,8 @@677@@ -1821,6 +2115,8 @@
704 my_bool using_transactions)678 my_bool using_transactions)
705 {679 {
@@ -765,8 +739,8 @@
765 #endif /*HAVE_QUERY_CACHE*/739 #endif /*HAVE_QUERY_CACHE*/
766+740+
767diff -ruN a/sql/sql_class.h b/sql/sql_class.h741diff -ruN a/sql/sql_class.h b/sql/sql_class.h
768--- a/sql/sql_class.h 2010-07-28 16:47:41.134069529 +0400742--- a/sql/sql_class.h
769+++ b/sql/sql_class.h 2010-07-28 16:47:41.764070446 +0400743+++ b/sql/sql_class.h
770@@ -22,7 +22,9 @@744@@ -22,7 +22,9 @@
771 745
772 #include "log.h"746 #include "log.h"
@@ -778,7 +752,7 @@
778 /**752 /**
779 An interface that is used to take an action when753 An interface that is used to take an action when
780 the locking module notices that a table version has changed754 the locking module notices that a table version has changed
781@@ -667,6 +669,9 @@755@@ -670,6 +672,9 @@
782 */756 */
783 LEX_STRING query_string;757 LEX_STRING query_string;
784 Server_side_cursor *cursor;758 Server_side_cursor *cursor;
@@ -788,9 +762,9 @@
788 762
789 inline char *query() { return query_string.str; }763 inline char *query() { return query_string.str; }
790 inline uint32 query_length() { return query_string.length; }764 inline uint32 query_length() { return query_string.length; }
791diff -ruN a/mysql-test/r/query_cache_disabled.result b/mysql-test/r/query_cache_disabled.result765diff -ruN /dev/null b/mysql-test/r/query_cache_disabled.result
792--- a/mysql-test/r/query_cache_disabled.result 1970-01-01 03:00:00.000000000 +0300766--- /dev/null
793+++ b/mysql-test/r/query_cache_disabled.result 2010-07-31 20:44:34.764016531 +0400767+++ b/mysql-test/r/query_cache_disabled.result
794@@ -0,0 +1,14 @@768@@ -0,0 +1,14 @@
795+SHOW GLOBAL VARIABLES LIKE 'query_cache_type';769+SHOW GLOBAL VARIABLES LIKE 'query_cache_type';
796+Variable_name Value770+Variable_name Value
@@ -806,14 +780,14 @@
806+Variable_name Value780+Variable_name Value
807+query_cache_size 1048576781+query_cache_size 1048576
808+SET GLOBAL query_cache_size=0;782+SET GLOBAL query_cache_size=0;
809diff -ruN a/mysql-test/t/query_cache_disabled-master.opt b/mysql-test/t/query_cache_disabled-master.opt783diff -ruN /dev/null b/mysql-test/t/query_cache_disabled-master.opt
810--- a/mysql-test/t/query_cache_disabled-master.opt 1970-01-01 03:00:00.000000000 +0300784--- /dev/null
811+++ b/mysql-test/t/query_cache_disabled-master.opt 2010-07-31 20:41:47.184017514 +0400785+++ b/mysql-test/t/query_cache_disabled-master.opt
812@@ -0,0 +1 @@786@@ -0,0 +1 @@
813+--query_cache_type=0787+--query_cache_type=0
814diff -ruN a/mysql-test/t/query_cache_disabled.test b/mysql-test/t/query_cache_disabled.test788diff -ruN /dev/null b/mysql-test/t/query_cache_disabled.test
815--- a/mysql-test/t/query_cache_disabled.test 1970-01-01 03:00:00.000000000 +0300789--- /dev/null
816+++ b/mysql-test/t/query_cache_disabled.test 2010-07-31 20:41:47.184017514 +0400790+++ b/mysql-test/t/query_cache_disabled.test
817@@ -0,0 +1,15 @@791@@ -0,0 +1,15 @@
818+-- source include/have_query_cache.inc792+-- source include/have_query_cache.inc
819+#793+#
@@ -831,8 +805,8 @@
831+SET GLOBAL query_cache_size=0;805+SET GLOBAL query_cache_size=0;
832+806+
833diff -ruN a/sql/set_var.h b/sql/set_var.h807diff -ruN a/sql/set_var.h b/sql/set_var.h
834--- a/sql/set_var.h 2010-07-31 20:42:00.884030418 +0400808--- a/sql/set_var.h
835+++ b/sql/set_var.h 2010-07-31 20:41:47.224016185 +0400809+++ b/sql/set_var.h
836@@ -521,10 +521,16 @@810@@ -521,10 +521,16 @@
837 { chain_sys_var(chain); }811 { chain_sys_var(chain); }
838 bool check(THD *thd, set_var *var)812 bool check(THD *thd, set_var *var)
@@ -855,8 +829,8 @@
855 bool update(THD *thd, set_var *var);829 bool update(THD *thd, set_var *var);
856 void set_default(THD *thd, enum_var_type type);830 void set_default(THD *thd, enum_var_type type);
857diff -ruN a/sql/share/errmsg.txt b/sql/share/errmsg.txt831diff -ruN a/sql/share/errmsg.txt b/sql/share/errmsg.txt
858--- a/sql/share/errmsg.txt 2010-07-09 16:35:08.000000000 +0400832--- a/sql/share/errmsg.txt
859+++ b/sql/share/errmsg.txt 2010-07-31 20:41:47.244015659 +0400833+++ b/sql/share/errmsg.txt
860@@ -6213,3 +6213,8 @@834@@ -6213,3 +6213,8 @@
861 ER_DEBUG_SYNC_HIT_LIMIT835 ER_DEBUG_SYNC_HIT_LIMIT
862 eng "debug sync point hit limit reached"836 eng "debug sync point hit limit reached"
@@ -867,8 +841,8 @@
867+ eng "Query cache is disabled; restart the server with query_cache_type=1 to enable it"841+ eng "Query cache is disabled; restart the server with query_cache_type=1 to enable it"
868+842+
869diff -ruN a/sql/sql_cache.h b/sql/sql_cache.h843diff -ruN a/sql/sql_cache.h b/sql/sql_cache.h
870--- a/sql/sql_cache.h 2010-07-09 16:35:15.000000000 +0400844--- a/sql/sql_cache.h
871+++ b/sql/sql_cache.h 2010-07-31 20:41:47.264017369 +0400845+++ b/sql/sql_cache.h
872@@ -279,8 +279,11 @@846@@ -279,8 +279,11 @@
873 enum Cache_lock_status { UNLOCKED, LOCKED_NO_WAIT, LOCKED };847 enum Cache_lock_status { UNLOCKED, LOCKED_NO_WAIT, LOCKED };
874 Cache_lock_status m_cache_lock_status;848 Cache_lock_status m_cache_lock_status;
875849
=== renamed file 'response-time-distribution.patch' => 'response_time_distribution.patch'
--- response-time-distribution.patch 2011-07-20 03:48:37 +0000
+++ response_time_distribution.patch 2011-07-27 08:44:25 +0000
@@ -5,28 +5,3863 @@
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!
8diff -ruN a/configure.in b/configure.in
9--- a/configure.in
10+++ b/configure.in
11@@ -1738,6 +1738,7 @@
12 int main()
13 {
14 int foo= -10; int bar= 10;
15+ long long int foo64= -10; long long int bar64= 10;
16 if (!__sync_fetch_and_add(&foo, bar) || foo)
17 return -1;
18 bar= __sync_lock_test_and_set(&foo, bar);
19@@ -1746,6 +1747,14 @@
20 bar= __sync_val_compare_and_swap(&bar, foo, 15);
21 if (bar)
22 return -1;
23+ if (!__sync_fetch_and_add(&foo64, bar64) || foo64)
24+ return -1;
25+ bar64= __sync_lock_test_and_set(&foo64, bar64);
26+ if (bar64 || foo64 != 10)
27+ return -1;
28+ bar64= __sync_val_compare_and_swap(&bar64, foo, 15);
29+ if (bar64)
30+ return -1;
31 return 0;
32 }
33 ], [mysql_cv_gcc_atomic_builtins=yes],
34@@ -1757,6 +1766,46 @@
35 [Define to 1 if compiler provides atomic builtins.])
36 fi
37
38+AC_CACHE_CHECK([whether the OS provides atomic_* functions like Solaris],
39+ [mysql_cv_solaris_atomic],
40+ [AC_RUN_IFELSE(
41+ [AC_LANG_PROGRAM(
42+ [[
43+ #include <atomic.h>
44+ ]],
45+ [[
46+ int foo = -10; int bar = 10;
47+ int64_t foo64 = -10; int64_t bar64 = 10;
48+ if (atomic_add_int_nv((uint_t *)&foo, bar) || foo)
49+ return -1;
50+ bar = atomic_swap_uint((uint_t *)&foo, (uint_t)bar);
51+ if (bar || foo != 10)
52+ return -1;
53+ bar = atomic_cas_uint((uint_t *)&bar, (uint_t)foo, 15);
54+ if (bar)
55+ return -1;
56+ if (atomic_add_64_nv((volatile uint64_t *)&foo64, bar64) || foo64)
57+ return -1;
58+ bar64 = atomic_swap_64((volatile uint64_t *)&foo64, (uint64_t)bar64);
59+ if (bar64 || foo64 != 10)
60+ return -1;
61+ bar64 = atomic_cas_64((volatile uint64_t *)&bar64, (uint_t)foo64, 15);
62+ if (bar64)
63+ return -1;
64+ atomic_or_64((volatile uint64_t *)&bar64, 0);
65+ return 0;
66+ ]]
67+ )],
68+ [mysql_cv_solaris_atomic=yes],
69+ [mysql_cv_solaris_atomic=no],
70+ [mysql_cv_solaris_atomic=no]
71+)])
72+
73+if test "x$mysql_cv_solaris_atomic" = xyes; then
74+ AC_DEFINE(HAVE_SOLARIS_ATOMIC, 1,
75+ [Define to 1 if OS provides atomic_* functions like Solaris.])
76+fi
77+
78 # Force static compilation to avoid linking problems/get more speed
79 AC_ARG_WITH(mysqld-ldflags,
80 [ --with-mysqld-ldflags Extra linking arguments for mysqld],
81@@ -2687,7 +2736,16 @@
82 AC_SUBST(readline_link)
83 AC_SUBST(readline_h_ln_cmd)
84
85+AC_ARG_WITH(response_time_distribution,
86+ AC_HELP_STRING([--without-response_time_distribution],[Disable response_time_distribution feature.]),
87+ [with_response_time_distribution=$withval],
88+ [with_response_time_distribution=yes]
89+)
90
91+if test "$with_response_time_distribution" = "yes"
92+then
93+ AC_DEFINE([HAVE_RESPONSE_TIME_DISTRIBUTION], [1], [If we want to have response_time_distribution])
94+fi
95
96 # Include man pages, if desired, adapted to the configured parts.
97 if test X"$with_man" = Xyes
98diff -ruN /dev/null b/include/atomic/gcc_builtins.h
99--- /dev/null
100+++ b/include/atomic/gcc_builtins.h
101@@ -0,0 +1,42 @@
102+#ifndef ATOMIC_GCC_BUILTINS_INCLUDED
103+#define ATOMIC_GCC_BUILTINS_INCLUDED
104+
105+/* Copyright (C) 2008 MySQL AB
106+
107+ This program is free software; you can redistribute it and/or modify
108+ it under the terms of the GNU General Public License as published by
109+ the Free Software Foundation; version 2 of the License.
110+
111+ This program is distributed in the hope that it will be useful,
112+ but WITHOUT ANY WARRANTY; without even the implied warranty of
113+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
114+ GNU General Public License for more details.
115+
116+ You should have received a copy of the GNU General Public License
117+ along with this program; if not, write to the Free Software
118+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
119+
120+#define make_atomic_add_body(S) \
121+ v= __sync_fetch_and_add(a, v);
122+#define make_atomic_fas_body(S) \
123+ v= __sync_lock_test_and_set(a, v);
124+#define make_atomic_cas_body(S) \
125+ int ## S sav; \
126+ int ## S cmp_val= *cmp; \
127+ sav= __sync_val_compare_and_swap(a, cmp_val, set);\
128+ if (!(ret= (sav == cmp_val))) *cmp= sav
129+
130+#ifdef MY_ATOMIC_MODE_DUMMY
131+#define make_atomic_load_body(S) ret= *a
132+#define make_atomic_store_body(S) *a= v
133+#define MY_ATOMIC_MODE "gcc-builtins-up"
134+
135+#else
136+#define MY_ATOMIC_MODE "gcc-builtins-smp"
137+#define make_atomic_load_body(S) \
138+ ret= __sync_fetch_and_or(a, 0);
139+#define make_atomic_store_body(S) \
140+ (void) __sync_lock_test_and_set(a, v);
141+#endif
142+
143+#endif /* ATOMIC_GCC_BUILTINS_INCLUDED */
144diff -ruN /dev/null b/include/atomic/generic-msvc.h
145--- /dev/null
146+++ b/include/atomic/generic-msvc.h
147@@ -0,0 +1,134 @@
148+/* Copyright (C) 2006-2008 MySQL AB, 2008-2009 Sun Microsystems, Inc.
149+
150+ This program is free software; you can redistribute it and/or modify
151+ it under the terms of the GNU General Public License as published by
152+ the Free Software Foundation; version 2 of the License.
153+
154+ This program is distributed in the hope that it will be useful,
155+ but WITHOUT ANY WARRANTY; without even the implied warranty of
156+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
157+ GNU General Public License for more details.
158+
159+ You should have received a copy of the GNU General Public License
160+ along with this program; if not, write to the Free Software
161+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
162+
163+#ifndef _atomic_h_cleanup_
164+#define _atomic_h_cleanup_ "atomic/generic-msvc.h"
165+
166+/*
167+ We don't implement anything specific for MY_ATOMIC_MODE_DUMMY, always use
168+ intrinsics.
169+ 8 and 16-bit atomics are not implemented, but it can be done if necessary.
170+*/
171+#undef MY_ATOMIC_HAS_8_16
172+
173+#include <windows.h>
174+/*
175+ x86 compilers (both VS2003 or VS2005) never use instrinsics, but generate
176+ function calls to kernel32 instead, even in the optimized build.
177+ We force intrinsics as described in MSDN documentation for
178+ _InterlockedCompareExchange.
179+*/
180+#ifdef _M_IX86
181+
182+#if (_MSC_VER >= 1500)
183+#include <intrin.h>
184+#else
185+C_MODE_START
186+/*Visual Studio 2003 and earlier do not have prototypes for atomic intrinsics*/
187+LONG _InterlockedCompareExchange (LONG volatile *Target, LONG Value, LONG Comp);
188+LONGLONG _InterlockedCompareExchange64 (LONGLONG volatile *Target,
189+ LONGLONG Value, LONGLONG Comp);
190+C_MODE_END
191+
192+#pragma intrinsic(_InterlockedCompareExchange)
193+#pragma intrinsic(_InterlockedCompareExchange64)
194+#endif
195+
196+#define InterlockedCompareExchange _InterlockedCompareExchange
197+#define InterlockedCompareExchange64 _InterlockedCompareExchange64
198+/*
199+ No need to do something special for InterlockedCompareExchangePointer
200+ as it is a #define to InterlockedCompareExchange. The same applies to
201+ InterlockedExchangePointer.
202+*/
203+#endif /*_M_IX86*/
204+
205+#define MY_ATOMIC_MODE "msvc-intrinsics"
206+/* Implement using CAS on WIN32 */
207+#define IL_COMP_EXCHG32(X,Y,Z) \
208+ InterlockedCompareExchange((volatile LONG *)(X),(Y),(Z))
209+#define IL_COMP_EXCHG64(X,Y,Z) \
210+ InterlockedCompareExchange64((volatile LONGLONG *)(X), \
211+ (LONGLONG)(Y),(LONGLONG)(Z))
212+#define IL_COMP_EXCHGptr InterlockedCompareExchangePointer
213+
214+#define make_atomic_cas_body(S) \
215+ int ## S initial_cmp= *cmp; \
216+ int ## S initial_a= IL_COMP_EXCHG ## S (a, set, initial_cmp); \
217+ if (!(ret= (initial_a == initial_cmp))) *cmp= initial_a;
218+
219+#ifndef _M_IX86
220+/* Use full set of optimised functions on WIN64 */
221+#define IL_EXCHG_ADD32(X,Y) \
222+ InterlockedExchangeAdd((volatile LONG *)(X),(Y))
223+#define IL_EXCHG_ADD64(X,Y) \
224+ InterlockedExchangeAdd64((volatile LONGLONG *)(X),(LONGLONG)(Y))
225+#define IL_EXCHG32(X,Y) \
226+ InterlockedExchange((volatile LONG *)(X),(Y))
227+#define IL_EXCHG64(X,Y) \
228+ InterlockedExchange64((volatile LONGLONG *)(X),(LONGLONG)(Y))
229+#define IL_EXCHGptr InterlockedExchangePointer
230+
231+#define make_atomic_add_body(S) \
232+ v= IL_EXCHG_ADD ## S (a, v)
233+#define make_atomic_swap_body(S) \
234+ v= IL_EXCHG ## S (a, v)
235+#define make_atomic_load_body(S) \
236+ ret= 0; /* avoid compiler warning */ \
237+ ret= IL_COMP_EXCHG ## S (a, ret, ret);
238+#endif
239+/*
240+ my_yield_processor (equivalent of x86 PAUSE instruction) should be used
241+ to improve performance on hyperthreaded CPUs. Intel recommends to use it in
242+ spin loops also on non-HT machines to reduce power consumption (see e.g
243+ http://softwarecommunity.intel.com/articles/eng/2004.htm)
244+
245+ Running benchmarks for spinlocks implemented with InterlockedCompareExchange
246+ and YieldProcessor shows that much better performance is achieved by calling
247+ YieldProcessor in a loop - that is, yielding longer. On Intel boxes setting
248+ loop count in the range 200-300 brought best results.
249+ */
250+#ifndef YIELD_LOOPS
251+#define YIELD_LOOPS 200
252+#endif
253+
254+static __inline int my_yield_processor()
255+{
256+ int i;
257+ for(i=0; i<YIELD_LOOPS; i++)
258+ {
259+#if (_MSC_VER <= 1310)
260+ /* On older compilers YieldProcessor is not available, use inline assembly*/
261+ __asm { rep nop }
262+#else
263+ YieldProcessor();
264+#endif
265+ }
266+ return 1;
267+}
268+
269+#define LF_BACKOFF my_yield_processor()
270+#else /* cleanup */
271+
272+#undef IL_EXCHG_ADD32
273+#undef IL_EXCHG_ADD64
274+#undef IL_COMP_EXCHG32
275+#undef IL_COMP_EXCHG64
276+#undef IL_COMP_EXCHGptr
277+#undef IL_EXCHG32
278+#undef IL_EXCHG64
279+#undef IL_EXCHGptr
280+
281+#endif
282diff -ruN /dev/null b/include/atomic/nolock.h
283--- /dev/null
284+++ b/include/atomic/nolock.h
285@@ -0,0 +1,69 @@
286+#ifndef ATOMIC_NOLOCK_INCLUDED
287+#define ATOMIC_NOLOCK_INCLUDED
288+
289+/* Copyright (C) 2006 MySQL AB
290+
291+ This program is free software; you can redistribute it and/or modify
292+ it under the terms of the GNU General Public License as published by
293+ the Free Software Foundation; version 2 of the License.
294+
295+ This program is distributed in the hope that it will be useful,
296+ but WITHOUT ANY WARRANTY; without even the implied warranty of
297+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
298+ GNU General Public License for more details.
299+
300+ You should have received a copy of the GNU General Public License
301+ along with this program; if not, write to the Free Software
302+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
303+
304+#if defined(__i386__) || defined(_MSC_VER) || defined(__x86_64__) \
305+ || defined(HAVE_GCC_ATOMIC_BUILTINS) \
306+ || defined(HAVE_SOLARIS_ATOMIC)
307+
308+# ifdef MY_ATOMIC_MODE_DUMMY
309+# define LOCK_prefix ""
310+# else
311+# define LOCK_prefix "lock"
312+# endif
313+/*
314+ We choose implementation as follows:
315+ ------------------------------------
316+ On Windows using Visual C++ the native implementation should be
317+ preferrable. When using gcc we prefer the Solaris implementation
318+ before the gcc because of stability preference, we choose gcc
319+ builtins if available, otherwise we choose the somewhat broken
320+ native x86 implementation. If neither Visual C++ or gcc we still
321+ choose the Solaris implementation on Solaris (mainly for SunStudio
322+ compilers).
323+*/
324+# if defined(_MSV_VER)
325+# include "generic-msvc.h"
326+# elif __GNUC__
327+# if defined(HAVE_SOLARIS_ATOMIC)
328+# include "solaris.h"
329+# elif defined(HAVE_GCC_ATOMIC_BUILTINS)
330+# include "gcc_builtins.h"
331+# elif defined(__i386__) || defined(__x86_64__)
332+# include "x86-gcc.h"
333+# endif
334+# elif defined(HAVE_SOLARIS_ATOMIC)
335+# include "solaris.h"
336+# endif
337+#endif
338+
339+#if defined(make_atomic_cas_body)
340+/*
341+ Type not used so minimal size (emptry struct has different size between C
342+ and C++, zero-length array is gcc-specific).
343+*/
344+typedef char my_atomic_rwlock_t __attribute__ ((unused));
345+#define my_atomic_rwlock_destroy(name)
346+#define my_atomic_rwlock_init(name)
347+#define my_atomic_rwlock_rdlock(name)
348+#define my_atomic_rwlock_wrlock(name)
349+#define my_atomic_rwlock_rdunlock(name)
350+#define my_atomic_rwlock_wrunlock(name)
351+
352+#endif
353+
354+#endif /* ATOMIC_NOLOCK_INCLUDED */
355diff -ruN /dev/null b/include/atomic/rwlock.h
356--- /dev/null
357+++ b/include/atomic/rwlock.h
358@@ -0,0 +1,100 @@
359+#ifndef ATOMIC_RWLOCK_INCLUDED
360+#define ATOMIC_RWLOCK_INCLUDED
361+
362+/* Copyright (C) 2006 MySQL AB, 2009 Sun Microsystems, Inc.
363+
364+ This program is free software; you can redistribute it and/or modify
365+ it under the terms of the GNU General Public License as published by
366+ the Free Software Foundation; version 2 of the License.
367+
368+ This program is distributed in the hope that it will be useful,
369+ but WITHOUT ANY WARRANTY; without even the implied warranty of
370+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
371+ GNU General Public License for more details.
372+
373+ You should have received a copy of the GNU General Public License
374+ along with this program; if not, write to the Free Software
375+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
376+
377+#define MY_ATOMIC_MODE_RWLOCKS 1
378+
379+#ifdef MY_ATOMIC_MODE_DUMMY
380+/*
381+ the following can never be enabled by ./configure, one need to put #define in
382+ a source to trigger the following warning. The resulting code will be broken,
383+ it only makes sense to do it to see now test_atomic detects broken
384+ implementations (another way is to run a UP build on an SMP box).
385+*/
386+#warning MY_ATOMIC_MODE_DUMMY and MY_ATOMIC_MODE_RWLOCKS are incompatible
387+
388+typedef char my_atomic_rwlock_t;
389+
390+#define my_atomic_rwlock_destroy(name)
391+#define my_atomic_rwlock_init(name)
392+#define my_atomic_rwlock_rdlock(name)
393+#define my_atomic_rwlock_wrlock(name)
394+#define my_atomic_rwlock_rdunlock(name)
395+#define my_atomic_rwlock_wrunlock(name)
396+#define MY_ATOMIC_MODE "dummy (non-atomic)"
397+#else /* not MY_ATOMIC_MODE_DUMMY */
398+
399+typedef struct {pthread_mutex_t rw;} my_atomic_rwlock_t;
400+
401+#ifndef SAFE_MUTEX
402+
403+/*
404+ we're using read-write lock macros but map them to mutex locks, and they're
405+ faster. Still, having semantically rich API we can change the
406+ underlying implementation, if necessary.
407+*/
408+#define my_atomic_rwlock_destroy(name) pthread_mutex_destroy(& (name)->rw)
409+#define my_atomic_rwlock_init(name) pthread_mutex_init(& (name)->rw, 0)
410+#define my_atomic_rwlock_rdlock(name) pthread_mutex_lock(& (name)->rw)
411+#define my_atomic_rwlock_wrlock(name) pthread_mutex_lock(& (name)->rw)
412+#define my_atomic_rwlock_rdunlock(name) pthread_mutex_unlock(& (name)->rw)
413+#define my_atomic_rwlock_wrunlock(name) pthread_mutex_unlock(& (name)->rw)
414+
415+#else /* SAFE_MUTEX */
416+
417+/*
418+ SAFE_MUTEX pollutes the compiling name space with macros
419+ that alter pthread_mutex_t, pthread_mutex_init, etc.
420+ Atomic operations should never use the safe mutex wrappers.
421+ Unfortunately, there is no way to have both:
422+ - safe mutex macros expanding pthread_mutex_lock to safe_mutex_lock
423+ - my_atomic macros expanding to unmodified pthread_mutex_lock
424+ inlined in the same compilation unit.
425+ So, in case of SAFE_MUTEX, a function call is required.
426+ Given that SAFE_MUTEX is a debugging facility,
427+ this extra function call is not a performance concern for
428+ production builds.
429+*/
430+C_MODE_START
431+extern void plain_pthread_mutex_init(safe_mutex_t *);
432+extern void plain_pthread_mutex_destroy(safe_mutex_t *);
433+extern void plain_pthread_mutex_lock(safe_mutex_t *);
434+extern void plain_pthread_mutex_unlock(safe_mutex_t *);
435+C_MODE_END
436+
437+#define my_atomic_rwlock_destroy(name) plain_pthread_mutex_destroy(&(name)->rw)
438+#define my_atomic_rwlock_init(name) plain_pthread_mutex_init(&(name)->rw)
439+#define my_atomic_rwlock_rdlock(name) plain_pthread_mutex_lock(&(name)->rw)
440+#define my_atomic_rwlock_wrlock(name) plain_pthread_mutex_lock(&(name)->rw)
441+#define my_atomic_rwlock_rdunlock(name) plain_pthread_mutex_unlock(&(name)->rw)
442+#define my_atomic_rwlock_wrunlock(name) plain_pthread_mutex_unlock(&(name)->rw)
443+
444+#endif /* SAFE_MUTEX */
445+
446+#define MY_ATOMIC_MODE "mutex"
447+#ifndef MY_ATOMIC_MODE_RWLOCKS
448+#define MY_ATOMIC_MODE_RWLOCKS 1
449+#endif
450+#endif
451+
452+#define make_atomic_add_body(S) int ## S sav; sav= *a; *a+= v; v=sav;
453+#define make_atomic_fas_body(S) int ## S sav; sav= *a; *a= v; v=sav;
454+#define make_atomic_cas_body(S) if ((ret= (*a == *cmp))) *a= set; else *cmp=*a;
455+#define make_atomic_load_body(S) ret= *a;
456+#define make_atomic_store_body(S) *a= v;
457+
458+#endif /* ATOMIC_RWLOCK_INCLUDED */
459diff -ruN /dev/null b/include/atomic/solaris.h
460--- /dev/null
461+++ b/include/atomic/solaris.h
462@@ -0,0 +1,72 @@
463+/* Copyright (C) 2008 MySQL AB, 2009 Sun Microsystems, Inc
464+
465+ This program is free software; you can redistribute it and/or modify
466+ it under the terms of the GNU General Public License as published by
467+ the Free Software Foundation; version 2 of the License.
468+
469+ This program is distributed in the hope that it will be useful,
470+ but WITHOUT ANY WARRANTY; without even the implied warranty of
471+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
472+ GNU General Public License for more details.
473+
474+ You should have received a copy of the GNU General Public License
475+ along with this program; if not, write to the Free Software
476+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
477+
478+#ifndef _atomic_h_cleanup_
479+#define _atomic_h_cleanup_ "atomic/solaris.h"
480+
481+#include <atomic.h>
482+
483+#define MY_ATOMIC_MODE "solaris-atomic"
484+
485+#if defined(__GNUC__)
486+#define atomic_typeof(T,V) __typeof__(V)
487+#else
488+#define atomic_typeof(T,V) T
489+#endif
490+
491+#define uintptr_t void *
492+#define atomic_or_ptr_nv(X,Y) (void *)atomic_or_ulong_nv((volatile ulong_t *)X, Y)
493+
494+#define make_atomic_cas_body(S) \
495+ atomic_typeof(uint ## S ## _t, *cmp) sav; \
496+ sav = atomic_cas_ ## S( \
497+ (volatile uint ## S ## _t *)a, \
498+ (uint ## S ## _t)*cmp, \
499+ (uint ## S ## _t)set); \
500+ if (! (ret= (sav == *cmp))) \
501+ *cmp= sav;
502+
503+#define make_atomic_add_body(S) \
504+ int ## S nv; /* new value */ \
505+ nv= atomic_add_ ## S ## _nv((volatile uint ## S ## _t *)a, v); \
506+ v= nv - v
507+
508+/* ------------------------------------------------------------------------ */
509+
510+#ifdef MY_ATOMIC_MODE_DUMMY
511+
512+#define make_atomic_load_body(S) ret= *a
513+#define make_atomic_store_body(S) *a= v
514+
515+#else /* MY_ATOMIC_MODE_DUMMY */
516+
517+#define make_atomic_load_body(S) \
518+ ret= atomic_or_ ## S ## _nv((volatile uint ## S ## _t *)a, 0)
519+
520+#define make_atomic_store_body(S) \
521+ (void) atomic_swap_ ## S((volatile uint ## S ## _t *)a, (uint ## S ## _t)v)
522+
523+#endif
524+
525+#define make_atomic_fas_body(S) \
526+ v= atomic_swap_ ## S((volatile uint ## S ## _t *)a, (uint ## S ## _t)v)
527+
528+#else /* cleanup */
529+
530+#undef uintptr_t
531+#undef atomic_or_ptr_nv
532+
533+#endif
534+
535diff -ruN /dev/null b/include/atomic/x86-gcc.h
536--- /dev/null
537+++ b/include/atomic/x86-gcc.h
538@@ -0,0 +1,145 @@
539+#ifndef ATOMIC_X86_GCC_INCLUDED
540+#define ATOMIC_X86_GCC_INCLUDED
541+
542+/* Copyright (C) 2006 MySQL AB
543+
544+ This program is free software; you can redistribute it and/or modify
545+ it under the terms of the GNU General Public License as published by
546+ the Free Software Foundation; version 2 of the License.
547+
548+ This program is distributed in the hope that it will be useful,
549+ but WITHOUT ANY WARRANTY; without even the implied warranty of
550+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
551+ GNU General Public License for more details.
552+
553+ You should have received a copy of the GNU General Public License
554+ along with this program; if not, write to the Free Software
555+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
556+
557+/*
558+ XXX 64-bit atomic operations can be implemented using
559+ cmpxchg8b, if necessary. Though I've heard that not all 64-bit
560+ architectures support double-word (128-bit) cas.
561+*/
562+
563+/*
564+ No special support of 8 and 16 bit operations are implemented here
565+ currently.
566+*/
567+#undef MY_ATOMIC_HAS_8_AND_16
568+
569+#ifdef __x86_64__
570+# ifdef MY_ATOMIC_NO_XADD
571+# define MY_ATOMIC_MODE "gcc-amd64" LOCK_prefix "-no-xadd"
572+# else
573+# define MY_ATOMIC_MODE "gcc-amd64" LOCK_prefix
574+# endif
575+#else
576+# ifdef MY_ATOMIC_NO_XADD
577+# define MY_ATOMIC_MODE "gcc-x86" LOCK_prefix "-no-xadd"
578+# else
579+# define MY_ATOMIC_MODE "gcc-x86" LOCK_prefix
580+# endif
581+#endif
582+
583+/* fix -ansi errors while maintaining readability */
584+#ifndef asm
585+#define asm __asm__
586+#endif
587+
588+#ifndef MY_ATOMIC_NO_XADD
589+#define make_atomic_add_body(S) make_atomic_add_body ## S
590+#define make_atomic_cas_body(S) make_atomic_cas_body ## S
591+#endif
592+
593+#define make_atomic_add_body32 \
594+ asm volatile (LOCK_prefix "; xadd %0, %1;" \
595+ : "+r" (v), "=m" (*a) \
596+ : "m" (*a) \
597+ : "memory")
598+
599+#define make_atomic_cas_body32 \
600+ __typeof__(*cmp) sav; \
601+ asm volatile (LOCK_prefix "; cmpxchg %3, %0; setz %2;" \
602+ : "=m" (*a), "=a" (sav), "=q" (ret) \
603+ : "r" (set), "m" (*a), "a" (*cmp) \
604+ : "memory"); \
605+ if (!ret) \
606+ *cmp= sav
607+
608+#ifdef __x86_64__
609+#define make_atomic_add_body64 make_atomic_add_body32
610+#define make_atomic_cas_body64 make_atomic_cas_body32
611+
612+#define make_atomic_fas_body(S) \
613+ asm volatile ("xchg %0, %1;" \
614+ : "+r" (v), "=m" (*a) \
615+ : "m" (*a) \
616+ : "memory")
617+
618+/*
619+ Actually 32/64-bit reads/writes are always atomic on x86_64,
620+ nonetheless issue memory barriers as appropriate.
621+*/
622+#define make_atomic_load_body(S) \
623+ /* Serialize prior load and store operations. */ \
624+ asm volatile ("mfence" ::: "memory"); \
625+ ret= *a; \
626+ /* Prevent compiler from reordering instructions. */ \
627+ asm volatile ("" ::: "memory")
628+#define make_atomic_store_body(S) \
629+ asm volatile ("; xchg %0, %1;" \
630+ : "=m" (*a), "+r" (v) \
631+ : "m" (*a) \
632+ : "memory")
633+
634+#else
635+/*
636+ Use default implementations of 64-bit operations since we solved
637+ the 64-bit problem on 32-bit platforms for CAS, no need to solve it
638+ once more for ADD, LOAD, STORE and FAS as well.
639+ Since we already added add32 support, we need to define add64
640+ here, but we haven't defined fas, load and store at all, so
641+ we can fallback on default implementations.
642+*/
643+#define make_atomic_add_body64 \
644+ int64 tmp=*a; \
645+ while (!my_atomic_cas64(a, &tmp, tmp+v)) ; \
646+ v=tmp;
647+
648+/*
649+ On some platforms (e.g. Mac OS X and Solaris) the ebx register
650+ is held as a pointer to the global offset table. Thus we're not
651+ allowed to use the b-register on those platforms when compiling
652+ PIC code, to avoid this we push ebx and pop ebx. The new value
653+ is copied directly from memory to avoid problems with a implicit
654+ manipulation of the stack pointer by the push.
655+
656+ cmpxchg8b works on both 32-bit platforms and 64-bit platforms but
657+ the code here is only used on 32-bit platforms, on 64-bit
658+ platforms the much simpler make_atomic_cas_body32 will work
659+ fine.
660+*/
661+#define make_atomic_cas_body64 \
662+ asm volatile ("push %%ebx;" \
663+ "movl (%%ecx), %%ebx;" \
664+ "movl 4(%%ecx), %%ecx;" \
665+ LOCK_prefix "; cmpxchg8b %0;" \
666+ "setz %2; pop %%ebx" \
667+ : "=m" (*a), "+A" (*cmp), "=c" (ret) \
668+ : "c" (&set), "m" (*a) \
669+ : "memory", "esp")
670+#endif
671+
672+/*
673+ The implementation of make_atomic_cas_body32 is adaptable to
674+ the OS word size, so on 64-bit platforms it will automatically
675+ adapt to 64-bits and so it will work also on 64-bit platforms
676+*/
677+#define make_atomic_cas_bodyptr make_atomic_cas_body32
678+
679+#ifdef MY_ATOMIC_MODE_DUMMY
680+#define make_atomic_load_body(S) ret=*a
681+#define make_atomic_store_body(S) *a=v
682+#endif
683+#endif /* ATOMIC_X86_GCC_INCLUDED */
684diff -ruN a/include/Makefile.am b/include/Makefile.am
685--- a/include/Makefile.am
686+++ b/include/Makefile.am
687@@ -38,7 +38,10 @@
688 my_aes.h my_tree.h my_trie.h hash.h thr_alarm.h \
689 thr_lock.h t_ctype.h violite.h my_md5.h base64.h \
690 my_compare.h my_time.h my_vle.h my_user.h \
691- my_libwrap.h my_stacktrace.h
692+ my_libwrap.h my_stacktrace.h my_atomic.h \
693+ atomic/gcc_builtins.h atomic/generic-msvc.h \
694+ atomic/nolock.h atomic/rwlock.h atomic/solaris.h \
695+ atomic/x86-gcc.h
696
697 EXTRA_DIST = mysql.h.pp mysql/plugin.h.pp
698
699diff -ruN /dev/null b/include/my_atomic.h
700--- /dev/null
701+++ b/include/my_atomic.h
702@@ -0,0 +1,287 @@
703+#ifndef MY_ATOMIC_INCLUDED
704+#define MY_ATOMIC_INCLUDED
705+
706+/* Copyright (C) 2006 MySQL AB
707+
708+ This program is free software; you can redistribute it and/or modify
709+ it under the terms of the GNU General Public License as published by
710+ the Free Software Foundation; version 2 of the License.
711+
712+ This program is distributed in the hope that it will be useful,
713+ but WITHOUT ANY WARRANTY; without even the implied warranty of
714+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
715+ GNU General Public License for more details.
716+
717+ You should have received a copy of the GNU General Public License
718+ along with this program; if not, write to the Free Software
719+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
720+
721+/*
722+ This header defines five atomic operations:
723+
724+ my_atomic_add#(&var, what)
725+ 'Fetch and Add'
726+ add 'what' to *var, and return the old value of *var
727+
728+ my_atomic_fas#(&var, what)
729+ 'Fetch And Store'
730+ store 'what' in *var, and return the old value of *var
731+
732+ my_atomic_cas#(&var, &old, new)
733+ An odd variation of 'Compare And Set/Swap'
734+ if *var is equal to *old, then store 'new' in *var, and return TRUE
735+ otherwise store *var in *old, and return FALSE
736+ Usually, &old should not be accessed if the operation is successful.
737+
738+ my_atomic_load#(&var)
739+ return *var
740+
741+ my_atomic_store#(&var, what)
742+ store 'what' in *var
743+
744+ '#' is substituted by a size suffix - 8, 16, 32, 64, or ptr
745+ (e.g. my_atomic_add8, my_atomic_fas32, my_atomic_casptr).
746+
747+ NOTE This operations are not always atomic, so they always must be
748+ enclosed in my_atomic_rwlock_rdlock(lock)/my_atomic_rwlock_rdunlock(lock)
749+ or my_atomic_rwlock_wrlock(lock)/my_atomic_rwlock_wrunlock(lock).
750+ Hint: if a code block makes intensive use of atomic ops, it make sense
751+ to take/release rwlock once for the whole block, not for every statement.
752+
753+ On architectures where these operations are really atomic, rwlocks will
754+ be optimized away.
755+ 8- and 16-bit atomics aren't implemented for windows (see generic-msvc.h),
756+ but can be added, if necessary.
757+*/
758+
759+#ifndef my_atomic_rwlock_init
760+
761+#define intptr void *
762+/**
763+ Currently we don't support 8-bit and 16-bit operations.
764+ It can be added later if needed.
765+*/
766+#undef MY_ATOMIC_HAS_8_16
767+
768+#ifndef MY_ATOMIC_MODE_RWLOCKS
769+/*
770+ * Attempt to do atomic ops without locks
771+ */
772+#include "atomic/nolock.h"
773+#endif
774+
775+#ifndef make_atomic_cas_body
776+/* nolock.h was not able to generate even a CAS function, fall back */
777+#include "atomic/rwlock.h"
778+#endif
779+
780+/* define missing functions by using the already generated ones */
781+#ifndef make_atomic_add_body
782+#define make_atomic_add_body(S) \
783+ int ## S tmp=*a; \
784+ while (!my_atomic_cas ## S(a, &tmp, tmp+v)) ; \
785+ v=tmp;
786+#endif
787+#ifndef make_atomic_fas_body
788+#define make_atomic_fas_body(S) \
789+ int ## S tmp=*a; \
790+ while (!my_atomic_cas ## S(a, &tmp, v)) ; \
791+ v=tmp;
792+#endif
793+#ifndef make_atomic_load_body
794+#define make_atomic_load_body(S) \
795+ ret= 0; /* avoid compiler warning */ \
796+ (void)(my_atomic_cas ## S(a, &ret, ret));
797+#endif
798+#ifndef make_atomic_store_body
799+#define make_atomic_store_body(S) \
800+ (void)(my_atomic_fas ## S (a, v));
801+#endif
802+
803+/*
804+ transparent_union doesn't work in g++
805+ Bug ?
806+
807+ Darwin's gcc doesn't want to put pointers in a transparent_union
808+ when built with -arch ppc64. Complains:
809+ warning: 'transparent_union' attribute ignored
810+*/
811+#if defined(__GNUC__) && !defined(__cplusplus) && \
812+ ! (defined(__APPLE__) && (defined(_ARCH_PPC64) ||defined (_ARCH_PPC)))
813+/*
814+ we want to be able to use my_atomic_xxx functions with
815+ both signed and unsigned integers. But gcc will issue a warning
816+ "passing arg N of `my_atomic_XXX' as [un]signed due to prototype"
817+ if the signedness of the argument doesn't match the prototype, or
818+ "pointer targets in passing argument N of my_atomic_XXX differ in signedness"
819+ if int* is used where uint* is expected (or vice versa).
820+ Let's shut these warnings up
821+*/
822+#define make_transparent_unions(S) \
823+ typedef union { \
824+ int ## S i; \
825+ uint ## S u; \
826+ } U_ ## S __attribute__ ((transparent_union)); \
827+ typedef union { \
828+ int ## S volatile *i; \
829+ uint ## S volatile *u; \
830+ } Uv_ ## S __attribute__ ((transparent_union));
831+#define uintptr intptr
832+make_transparent_unions(8)
833+make_transparent_unions(16)
834+make_transparent_unions(32)
835+make_transparent_unions(64)
836+make_transparent_unions(ptr)
837+#undef uintptr
838+#undef make_transparent_unions
839+#define a U_a.i
840+#define cmp U_cmp.i
841+#define v U_v.i
842+#define set U_set.i
843+#else
844+#define U_8 int8
845+#define U_16 int16
846+#define U_32 int32
847+#define U_64 int64
848+#define U_ptr intptr
849+#define Uv_8 int8
850+#define Uv_16 int16
851+#define Uv_32 int32
852+#define Uv_64 int64
853+#define Uv_ptr intptr
854+#define U_a volatile *a
855+#define U_cmp *cmp
856+#define U_v v
857+#define U_set set
858+#endif /* __GCC__ transparent_union magic */
859+
860+#define make_atomic_cas(S) \
861+static inline int my_atomic_cas ## S(Uv_ ## S U_a, \
862+ Uv_ ## S U_cmp, U_ ## S U_set) \
863+{ \
864+ int8 ret; \
865+ make_atomic_cas_body(S); \
866+ return ret; \
867+}
868+
869+#define make_atomic_add(S) \
870+static inline int ## S my_atomic_add ## S( \
871+ Uv_ ## S U_a, U_ ## S U_v) \
872+{ \
873+ make_atomic_add_body(S); \
874+ return v; \
875+}
876+
877+#define make_atomic_fas(S) \
878+static inline int ## S my_atomic_fas ## S( \
879+ Uv_ ## S U_a, U_ ## S U_v) \
880+{ \
881+ make_atomic_fas_body(S); \
882+ return v; \
883+}
884+
885+#define make_atomic_load(S) \
886+static inline int ## S my_atomic_load ## S(Uv_ ## S U_a) \
887+{ \
888+ int ## S ret; \
889+ make_atomic_load_body(S); \
890+ return ret; \
891+}
892+
893+#define make_atomic_store(S) \
894+static inline void my_atomic_store ## S( \
895+ Uv_ ## S U_a, U_ ## S U_v) \
896+{ \
897+ make_atomic_store_body(S); \
898+}
899+
900+#ifdef MY_ATOMIC_HAS_8_16
901+make_atomic_cas(8)
902+make_atomic_cas(16)
903+#endif
904+make_atomic_cas(32)
905+make_atomic_cas(64)
906+make_atomic_cas(ptr)
907+
908+#ifdef MY_ATOMIC_HAS_8_16
909+make_atomic_add(8)
910+make_atomic_add(16)
911+#endif
912+make_atomic_add(32)
913+make_atomic_add(64)
914+
915+#ifdef MY_ATOMIC_HAS_8_16
916+make_atomic_load(8)
917+make_atomic_load(16)
918+#endif
919+make_atomic_load(32)
920+make_atomic_load(64)
921+make_atomic_load(ptr)
922+
923+#ifdef MY_ATOMIC_HAS_8_16
924+make_atomic_fas(8)
925+make_atomic_fas(16)
926+#endif
927+make_atomic_fas(32)
928+make_atomic_fas(64)
929+make_atomic_fas(ptr)
930+
931+#ifdef MY_ATOMIC_HAS_8_16
932+make_atomic_store(8)
933+make_atomic_store(16)
934+#endif
935+make_atomic_store(32)
936+make_atomic_store(64)
937+make_atomic_store(ptr)
938+
939+#ifdef _atomic_h_cleanup_
940+#include _atomic_h_cleanup_
941+#undef _atomic_h_cleanup_
942+#endif
943+
944+#undef U_8
945+#undef U_16
946+#undef U_32
947+#undef U_64
948+#undef U_ptr
949+#undef Uv_8
950+#undef Uv_16
951+#undef Uv_32
952+#undef Uv_64
953+#undef Uv_ptr
954+#undef a
955+#undef cmp
956+#undef v
957+#undef set
958+#undef U_a
959+#undef U_cmp
960+#undef U_v
961+#undef U_set
962+#undef make_atomic_add
963+#undef make_atomic_cas
964+#undef make_atomic_load
965+#undef make_atomic_store
966+#undef make_atomic_fas
967+#undef make_atomic_add_body
968+#undef make_atomic_cas_body
969+#undef make_atomic_load_body
970+#undef make_atomic_store_body
971+#undef make_atomic_fas_body
972+#undef intptr
973+
974+/*
975+ the macro below defines (as an expression) the code that
976+ will be run in spin-loops. Intel manuals recummend to have PAUSE there.
977+ It is expected to be defined in include/atomic/ *.h files
978+*/
979+#ifndef LF_BACKOFF
980+#define LF_BACKOFF (1)
981+#endif
982+
983+#define MY_ATOMIC_OK 0
984+#define MY_ATOMIC_NOT_1CPU 1
985+extern int my_atomic_initialize();
986+
987+#endif
988+
989+#endif /* MY_ATOMIC_INCLUDED */
8diff -ruN a/include/mysql_com.h b/include/mysql_com.h990diff -ruN a/include/mysql_com.h b/include/mysql_com.h
9--- a/include/mysql_com.h 2010-11-01 08:43:53.000000000 +0000991--- a/include/mysql_com.h
10+++ b/include/mysql_com.h 2010-11-01 08:52:40.000000000 +0000992+++ b/include/mysql_com.h
11@@ -128,10 +128,11 @@993@@ -132,6 +132,7 @@
12 #define REFRESH_FAST 32768 /* Intern flag */994 #define REFRESH_QUERY_CACHE_FREE 0x20000L /* pack query cache */
13 995 #define REFRESH_DES_KEY_FILE 0x40000L
14 /* RESET (remove all queries) from query cache */996 #define REFRESH_USER_RESOURCES 0x80000L
15-#define REFRESH_QUERY_CACHE 65536
16-#define REFRESH_QUERY_CACHE_FREE 0x20000L /* pack query cache */
17-#define REFRESH_DES_KEY_FILE 0x40000L
18-#define REFRESH_USER_RESOURCES 0x80000L
19+#define REFRESH_QUERY_CACHE 65536
20+#define REFRESH_QUERY_CACHE_FREE 0x20000L /* pack query cache */
21+#define REFRESH_DES_KEY_FILE 0x40000L
22+#define REFRESH_USER_RESOURCES 0x80000L
23+#define REFRESH_QUERY_RESPONSE_TIME 0x100000L /* response time distibution */997+#define REFRESH_QUERY_RESPONSE_TIME 0x100000L /* response time distibution */
24 998
25 #define CLIENT_LONG_PASSWORD 1 /* new more secure passwords */999 #define CLIENT_LONG_PASSWORD 1 /* new more secure passwords */
26 #define CLIENT_FOUND_ROWS 2 /* Found instead of affected rows */1000 #define CLIENT_FOUND_ROWS 2 /* Found instead of affected rows */
27diff -ruN a/patch_info/response-time-distribution.info b/patch_info/response-time-distribution.info1001diff -ruN /dev/null b/mysql-test/include/have_response_time_distribution.inc
28--- a/patch_info/response-time-distribution.info 1970-01-01 00:00:00.000000000 +00001002--- /dev/null
29+++ b/patch_info/response-time-distribution.info 2010-11-01 08:52:40.000000000 +00001003+++ b/mysql-test/include/have_response_time_distribution.inc
1004@@ -0,0 +1,4 @@
1005+-- require r/have_response_time_distribution.require
1006+disable_query_log;
1007+show variables like 'have_response_time_distribution';
1008+enable_query_log;
1009diff -ruN /dev/null b/mysql-test/r/have_response_time_distribution.require
1010--- /dev/null
1011+++ b/mysql-test/r/have_response_time_distribution.require
1012@@ -0,0 +1,2 @@
1013+Variable_name Value
1014+have_response_time_distribution YES
1015diff -ruN /dev/null b/mysql-test/include/query_response_time.inc
1016--- /dev/null
1017+++ b/mysql-test/include/query_response_time.inc
1018@@ -0,0 +1,39 @@
1019+SET SESSION query_exec_time=0.1;
1020+
1021+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
1022+EVAL SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=$base;
1023+FLUSH QUERY_RESPONSE_TIME;
1024+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
1025+
1026+SET SESSION query_exec_time=0.31; SELECT 1;
1027+SET SESSION query_exec_time=0.32; SELECT 1;
1028+SET SESSION query_exec_time=0.33; SELECT 1;
1029+SET SESSION query_exec_time=0.34; SELECT 1;
1030+SET SESSION query_exec_time=0.35; SELECT 1;
1031+SET SESSION query_exec_time=0.36; SELECT 1;
1032+SET SESSION query_exec_time=0.37; SELECT 1;
1033+SET SESSION query_exec_time=0.38; SELECT 1;
1034+SET SESSION query_exec_time=0.39; SELECT 1;
1035+SET SESSION query_exec_time=0.4; SELECT 1;
1036+SET SESSION query_exec_time=1.1; SELECT 1;
1037+SET SESSION query_exec_time=1.2; SELECT 1;
1038+SET SESSION query_exec_time=1.3; SELECT 1;
1039+SET SESSION query_exec_time=1.5; SELECT 1;
1040+SET SESSION query_exec_time=1.4; SELECT 1;
1041+SET SESSION query_exec_time=0.5; SELECT 1;
1042+SET SESSION query_exec_time=2.1; SELECT 1;
1043+SET SESSION query_exec_time=2.3; SELECT 1;
1044+SET SESSION query_exec_time=2.5; SELECT 1;
1045+SET SESSION query_exec_time=3.1; SELECT 1;
1046+SET SESSION query_exec_time=4.1; SELECT 1;
1047+SET SESSION query_exec_time=5.1; SELECT 1;
1048+
1049+SET SESSION query_exec_time=0.1;
1050+
1051+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
1052+
1053+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1054+SHOW QUERY_RESPONSE_TIME;
1055+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1056+
1057+SET SESSION query_exec_time=default;
1058diff -ruN /dev/null b/mysql-test/include/query_response_time-replication.inc
1059--- /dev/null
1060+++ b/mysql-test/include/query_response_time-replication.inc
1061@@ -0,0 +1,58 @@
1062+connection master;
1063+
1064+CREATE TABLE t(id INT);
1065+sync_slave_with_master;
1066+
1067+connection slave;
1068+SET GLOBAL query_exec_time=0.1;
1069+--source include/restart_slave_sql.inc
1070+
1071+connection slave;
1072+
1073+SET SESSION query_exec_time=0.1;
1074+
1075+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
1076+--eval SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=$base
1077+FLUSH QUERY_RESPONSE_TIME;
1078+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
1079+
1080+connection master;
1081+
1082+SET SESSION query_exec_time = 0.31; INSERT INTO t VALUES(1);
1083+SET SESSION query_exec_time = 0.32; INSERT INTO t VALUES(1);
1084+SET SESSION query_exec_time = 0.33; INSERT INTO t VALUES(1);
1085+SET SESSION query_exec_time = 0.34; INSERT INTO t VALUES(1);
1086+SET SESSION query_exec_time = 0.35; INSERT INTO t VALUES(1);
1087+SET SESSION query_exec_time = 0.36; INSERT INTO t VALUES(1);
1088+SET SESSION query_exec_time = 0.37; INSERT INTO t VALUES(1);
1089+SET SESSION query_exec_time = 0.38; INSERT INTO t VALUES(1);
1090+SET SESSION query_exec_time = 0.39; INSERT INTO t VALUES(1);
1091+SET SESSION query_exec_time = 0.4; INSERT INTO t VALUES(1);
1092+SET SESSION query_exec_time = 1.1; INSERT INTO t VALUES(1);
1093+SET SESSION query_exec_time = 1.2; INSERT INTO t VALUES(1);
1094+SET SESSION query_exec_time = 1.3; INSERT INTO t VALUES(1);
1095+SET SESSION query_exec_time = 1.5; INSERT INTO t VALUES(1);
1096+SET SESSION query_exec_time = 1.4; INSERT INTO t VALUES(1);
1097+SET SESSION query_exec_time = 0.5; INSERT INTO t VALUES(1);
1098+SET SESSION query_exec_time = 2.1; INSERT INTO t VALUES(1);
1099+SET SESSION query_exec_time = 2.3; INSERT INTO t VALUES(1);
1100+SET SESSION query_exec_time = 2.5; INSERT INTO t VALUES(1);
1101+SET SESSION query_exec_time = 3.1; INSERT INTO t VALUES(1);
1102+SET SESSION query_exec_time = 4.1; INSERT INTO t VALUES(1);
1103+SET SESSION query_exec_time = 5.1; INSERT INTO t VALUES(1);
1104+
1105+sync_slave_with_master;
1106+
1107+connection slave;
1108+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
1109+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1110+SHOW QUERY_RESPONSE_TIME;
1111+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1112+
1113+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
1114+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=default;
1115+
1116+connection master;
1117+DROP TABLE t;
1118+
1119+sync_slave_with_master;
1120diff -ruN /dev/null b/mysql-test/include/query_response_time-stored.inc
1121--- /dev/null
1122+++ b/mysql-test/include/query_response_time-stored.inc
1123@@ -0,0 +1,37 @@
1124+SET SESSION query_exec_time=0.1;
1125+
1126+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
1127+EVAL SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=$base;
1128+FLUSH QUERY_RESPONSE_TIME;
1129+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
1130+
1131+CALL test_f(0.31);
1132+CALL test_f(0.32);
1133+CALL test_f(0.33);
1134+CALL test_f(0.34);
1135+CALL test_f(0.35);
1136+CALL test_f(0.36);
1137+CALL test_f(0.37);
1138+CALL test_f(0.38);
1139+CALL test_f(0.39);
1140+CALL test_f(0.4);
1141+CALL test_f(1.1);
1142+CALL test_f(1.2);
1143+CALL test_f(1.3);
1144+CALL test_f(1.5);
1145+CALL test_f(1.4);
1146+CALL test_f(0.5);
1147+CALL test_f(2.1);
1148+CALL test_f(2.3);
1149+CALL test_f(2.5);
1150+CALL test_f(3.1);
1151+CALL test_f(4.1);
1152+CALL test_f(5.1);
1153+
1154+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
1155+
1156+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1157+SHOW QUERY_RESPONSE_TIME;
1158+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1159+
1160+SET SESSION query_exec_time=default;
1161diff -ruN /dev/null b/mysql-test/r/percona_query_response_time-replication.result
1162--- /dev/null
1163+++ b/mysql-test/r/percona_query_response_time-replication.result
1164@@ -0,0 +1,727 @@
1165+SET GLOBAL query_exec_time=0.1;
1166+include/master-slave.inc
1167+[connection master]
1168+CREATE TABLE t(id INT);
1169+SET GLOBAL query_exec_time=0.1;
1170+include/restart_slave.inc
1171+SET SESSION query_exec_time=0.1;
1172+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
1173+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=1;
1174+Warnings:
1175+Warning 1292 Truncated incorrect query_response_time_range_base value: '1'
1176+FLUSH QUERY_RESPONSE_TIME;
1177+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
1178+SET SESSION query_exec_time = 0.31;
1179+INSERT INTO t VALUES(1);
1180+SET SESSION query_exec_time = 0.32;
1181+INSERT INTO t VALUES(1);
1182+SET SESSION query_exec_time = 0.33;
1183+INSERT INTO t VALUES(1);
1184+SET SESSION query_exec_time = 0.34;
1185+INSERT INTO t VALUES(1);
1186+SET SESSION query_exec_time = 0.35;
1187+INSERT INTO t VALUES(1);
1188+SET SESSION query_exec_time = 0.36;
1189+INSERT INTO t VALUES(1);
1190+SET SESSION query_exec_time = 0.37;
1191+INSERT INTO t VALUES(1);
1192+SET SESSION query_exec_time = 0.38;
1193+INSERT INTO t VALUES(1);
1194+SET SESSION query_exec_time = 0.39;
1195+INSERT INTO t VALUES(1);
1196+SET SESSION query_exec_time = 0.4;
1197+INSERT INTO t VALUES(1);
1198+SET SESSION query_exec_time = 1.1;
1199+INSERT INTO t VALUES(1);
1200+SET SESSION query_exec_time = 1.2;
1201+INSERT INTO t VALUES(1);
1202+SET SESSION query_exec_time = 1.3;
1203+INSERT INTO t VALUES(1);
1204+SET SESSION query_exec_time = 1.5;
1205+INSERT INTO t VALUES(1);
1206+SET SESSION query_exec_time = 1.4;
1207+INSERT INTO t VALUES(1);
1208+SET SESSION query_exec_time = 0.5;
1209+INSERT INTO t VALUES(1);
1210+SET SESSION query_exec_time = 2.1;
1211+INSERT INTO t VALUES(1);
1212+SET SESSION query_exec_time = 2.3;
1213+INSERT INTO t VALUES(1);
1214+SET SESSION query_exec_time = 2.5;
1215+INSERT INTO t VALUES(1);
1216+SET SESSION query_exec_time = 3.1;
1217+INSERT INTO t VALUES(1);
1218+SET SESSION query_exec_time = 4.1;
1219+INSERT INTO t VALUES(1);
1220+SET SESSION query_exec_time = 5.1;
1221+INSERT INTO t VALUES(1);
1222+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
1223+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1224+Variable_name Value
1225+query_response_time_range_base 2
1226+SHOW QUERY_RESPONSE_TIME;
1227+
1228+ 0.000001 2 0.000000
1229+ 0.000003 0 0.000000
1230+ 0.000007 0 0.000000
1231+ 0.000015 0 0.000000
1232+ 0.000030 0 0.000000
1233+ 0.000061 0 0.000000
1234+ 0.000122 0 0.000000
1235+ 0.000244 0 0.000000
1236+ 0.000488 0 0.000000
1237+ 0.000976 0 0.000000
1238+ 0.001953 0 0.000000
1239+ 0.003906 0 0.000000
1240+ 0.007812 0 0.000000
1241+ 0.015625 0 0.000000
1242+ 0.031250 0 0.000000
1243+ 0.062500 0 0.000000
1244+ 0.125000 3 0.300000
1245+ 0.250000 0 0.000000
1246+ 0.500000 10 3.550000
1247+ 1.000000 1 0.500000
1248+ 2.000000 5 6.500000
1249+ 4.000000 4 10.000000
1250+ 8.000000 2 9.200000
1251+ 16.000000 0 0.000000
1252+ 32.000000 0 0.000000
1253+ 64.000000 0 0.000000
1254+ 128.000000 0 0.000000
1255+ 256.000000 0 0.000000
1256+ 512.000000 0 0.000000
1257+ 1024.000000 0 0.000000
1258+ 2048.000000 0 0.000000
1259+ 4096.000000 0 0.000000
1260+ 8192.000000 0 0.000000
1261+ 16384.000000 0 0.000000
1262+ 32768.000000 0 0.000000
1263+ 65536.000000 0 0.000000
1264+ 131072.000000 0 0.000000
1265+ 262144.000000 0 0.000000
1266+ 524288.000000 0 0.000000
1267+ 1048576.00000 0 0.000000
1268+ 2097152.00000 0 0.000000
1269+ 4194304.00000 0 0.000000
1270+ 8388608.00000 0 0.000000
1271+TOO LONG 0 TOO LONG
1272+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1273+time count total
1274+ 0.000001 2 0.000000
1275+ 0.000003 0 0.000000
1276+ 0.000007 0 0.000000
1277+ 0.000015 0 0.000000
1278+ 0.000030 0 0.000000
1279+ 0.000061 0 0.000000
1280+ 0.000122 0 0.000000
1281+ 0.000244 0 0.000000
1282+ 0.000488 0 0.000000
1283+ 0.000976 0 0.000000
1284+ 0.001953 0 0.000000
1285+ 0.003906 0 0.000000
1286+ 0.007812 0 0.000000
1287+ 0.015625 0 0.000000
1288+ 0.031250 0 0.000000
1289+ 0.062500 0 0.000000
1290+ 0.125000 4 0.400000
1291+ 0.250000 0 0.000000
1292+ 0.500000 10 3.550000
1293+ 1.000000 1 0.500000
1294+ 2.000000 5 6.500000
1295+ 4.000000 4 10.000000
1296+ 8.000000 2 9.200000
1297+ 16.000000 0 0.000000
1298+ 32.000000 0 0.000000
1299+ 64.000000 0 0.000000
1300+ 128.000000 0 0.000000
1301+ 256.000000 0 0.000000
1302+ 512.000000 0 0.000000
1303+ 1024.000000 0 0.000000
1304+ 2048.000000 0 0.000000
1305+ 4096.000000 0 0.000000
1306+ 8192.000000 0 0.000000
1307+ 16384.000000 0 0.000000
1308+ 32768.000000 0 0.000000
1309+ 65536.000000 0 0.000000
1310+ 131072.000000 0 0.000000
1311+ 262144.000000 0 0.000000
1312+ 524288.000000 0 0.000000
1313+ 1048576.00000 0 0.000000
1314+ 2097152.00000 0 0.000000
1315+ 4194304.00000 0 0.000000
1316+ 8388608.00000 0 0.000000
1317+TOO LONG 0 TOO LONG
1318+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
1319+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=default;
1320+DROP TABLE t;
1321+CREATE TABLE t(id INT);
1322+SET GLOBAL query_exec_time=0.1;
1323+include/restart_slave.inc
1324+SET SESSION query_exec_time=0.1;
1325+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
1326+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=2;
1327+FLUSH QUERY_RESPONSE_TIME;
1328+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
1329+SET SESSION query_exec_time = 0.31;
1330+INSERT INTO t VALUES(1);
1331+SET SESSION query_exec_time = 0.32;
1332+INSERT INTO t VALUES(1);
1333+SET SESSION query_exec_time = 0.33;
1334+INSERT INTO t VALUES(1);
1335+SET SESSION query_exec_time = 0.34;
1336+INSERT INTO t VALUES(1);
1337+SET SESSION query_exec_time = 0.35;
1338+INSERT INTO t VALUES(1);
1339+SET SESSION query_exec_time = 0.36;
1340+INSERT INTO t VALUES(1);
1341+SET SESSION query_exec_time = 0.37;
1342+INSERT INTO t VALUES(1);
1343+SET SESSION query_exec_time = 0.38;
1344+INSERT INTO t VALUES(1);
1345+SET SESSION query_exec_time = 0.39;
1346+INSERT INTO t VALUES(1);
1347+SET SESSION query_exec_time = 0.4;
1348+INSERT INTO t VALUES(1);
1349+SET SESSION query_exec_time = 1.1;
1350+INSERT INTO t VALUES(1);
1351+SET SESSION query_exec_time = 1.2;
1352+INSERT INTO t VALUES(1);
1353+SET SESSION query_exec_time = 1.3;
1354+INSERT INTO t VALUES(1);
1355+SET SESSION query_exec_time = 1.5;
1356+INSERT INTO t VALUES(1);
1357+SET SESSION query_exec_time = 1.4;
1358+INSERT INTO t VALUES(1);
1359+SET SESSION query_exec_time = 0.5;
1360+INSERT INTO t VALUES(1);
1361+SET SESSION query_exec_time = 2.1;
1362+INSERT INTO t VALUES(1);
1363+SET SESSION query_exec_time = 2.3;
1364+INSERT INTO t VALUES(1);
1365+SET SESSION query_exec_time = 2.5;
1366+INSERT INTO t VALUES(1);
1367+SET SESSION query_exec_time = 3.1;
1368+INSERT INTO t VALUES(1);
1369+SET SESSION query_exec_time = 4.1;
1370+INSERT INTO t VALUES(1);
1371+SET SESSION query_exec_time = 5.1;
1372+INSERT INTO t VALUES(1);
1373+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
1374+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1375+Variable_name Value
1376+query_response_time_range_base 2
1377+SHOW QUERY_RESPONSE_TIME;
1378+
1379+ 0.000001 2 0.000000
1380+ 0.000003 0 0.000000
1381+ 0.000007 0 0.000000
1382+ 0.000015 0 0.000000
1383+ 0.000030 0 0.000000
1384+ 0.000061 0 0.000000
1385+ 0.000122 0 0.000000
1386+ 0.000244 0 0.000000
1387+ 0.000488 0 0.000000
1388+ 0.000976 0 0.000000
1389+ 0.001953 0 0.000000
1390+ 0.003906 0 0.000000
1391+ 0.007812 0 0.000000
1392+ 0.015625 0 0.000000
1393+ 0.031250 0 0.000000
1394+ 0.062500 0 0.000000
1395+ 0.125000 3 0.300000
1396+ 0.250000 0 0.000000
1397+ 0.500000 10 3.550000
1398+ 1.000000 1 0.500000
1399+ 2.000000 5 6.500000
1400+ 4.000000 4 10.000000
1401+ 8.000000 2 9.200000
1402+ 16.000000 0 0.000000
1403+ 32.000000 0 0.000000
1404+ 64.000000 0 0.000000
1405+ 128.000000 0 0.000000
1406+ 256.000000 0 0.000000
1407+ 512.000000 0 0.000000
1408+ 1024.000000 0 0.000000
1409+ 2048.000000 0 0.000000
1410+ 4096.000000 0 0.000000
1411+ 8192.000000 0 0.000000
1412+ 16384.000000 0 0.000000
1413+ 32768.000000 0 0.000000
1414+ 65536.000000 0 0.000000
1415+ 131072.000000 0 0.000000
1416+ 262144.000000 0 0.000000
1417+ 524288.000000 0 0.000000
1418+ 1048576.00000 0 0.000000
1419+ 2097152.00000 0 0.000000
1420+ 4194304.00000 0 0.000000
1421+ 8388608.00000 0 0.000000
1422+TOO LONG 0 TOO LONG
1423+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1424+time count total
1425+ 0.000001 2 0.000000
1426+ 0.000003 0 0.000000
1427+ 0.000007 0 0.000000
1428+ 0.000015 0 0.000000
1429+ 0.000030 0 0.000000
1430+ 0.000061 0 0.000000
1431+ 0.000122 0 0.000000
1432+ 0.000244 0 0.000000
1433+ 0.000488 0 0.000000
1434+ 0.000976 0 0.000000
1435+ 0.001953 0 0.000000
1436+ 0.003906 0 0.000000
1437+ 0.007812 0 0.000000
1438+ 0.015625 0 0.000000
1439+ 0.031250 0 0.000000
1440+ 0.062500 0 0.000000
1441+ 0.125000 4 0.400000
1442+ 0.250000 0 0.000000
1443+ 0.500000 10 3.550000
1444+ 1.000000 1 0.500000
1445+ 2.000000 5 6.500000
1446+ 4.000000 4 10.000000
1447+ 8.000000 2 9.200000
1448+ 16.000000 0 0.000000
1449+ 32.000000 0 0.000000
1450+ 64.000000 0 0.000000
1451+ 128.000000 0 0.000000
1452+ 256.000000 0 0.000000
1453+ 512.000000 0 0.000000
1454+ 1024.000000 0 0.000000
1455+ 2048.000000 0 0.000000
1456+ 4096.000000 0 0.000000
1457+ 8192.000000 0 0.000000
1458+ 16384.000000 0 0.000000
1459+ 32768.000000 0 0.000000
1460+ 65536.000000 0 0.000000
1461+ 131072.000000 0 0.000000
1462+ 262144.000000 0 0.000000
1463+ 524288.000000 0 0.000000
1464+ 1048576.00000 0 0.000000
1465+ 2097152.00000 0 0.000000
1466+ 4194304.00000 0 0.000000
1467+ 8388608.00000 0 0.000000
1468+TOO LONG 0 TOO LONG
1469+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
1470+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=default;
1471+DROP TABLE t;
1472+CREATE TABLE t(id INT);
1473+SET GLOBAL query_exec_time=0.1;
1474+include/restart_slave.inc
1475+SET SESSION query_exec_time=0.1;
1476+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
1477+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=10;
1478+FLUSH QUERY_RESPONSE_TIME;
1479+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
1480+SET SESSION query_exec_time = 0.31;
1481+INSERT INTO t VALUES(1);
1482+SET SESSION query_exec_time = 0.32;
1483+INSERT INTO t VALUES(1);
1484+SET SESSION query_exec_time = 0.33;
1485+INSERT INTO t VALUES(1);
1486+SET SESSION query_exec_time = 0.34;
1487+INSERT INTO t VALUES(1);
1488+SET SESSION query_exec_time = 0.35;
1489+INSERT INTO t VALUES(1);
1490+SET SESSION query_exec_time = 0.36;
1491+INSERT INTO t VALUES(1);
1492+SET SESSION query_exec_time = 0.37;
1493+INSERT INTO t VALUES(1);
1494+SET SESSION query_exec_time = 0.38;
1495+INSERT INTO t VALUES(1);
1496+SET SESSION query_exec_time = 0.39;
1497+INSERT INTO t VALUES(1);
1498+SET SESSION query_exec_time = 0.4;
1499+INSERT INTO t VALUES(1);
1500+SET SESSION query_exec_time = 1.1;
1501+INSERT INTO t VALUES(1);
1502+SET SESSION query_exec_time = 1.2;
1503+INSERT INTO t VALUES(1);
1504+SET SESSION query_exec_time = 1.3;
1505+INSERT INTO t VALUES(1);
1506+SET SESSION query_exec_time = 1.5;
1507+INSERT INTO t VALUES(1);
1508+SET SESSION query_exec_time = 1.4;
1509+INSERT INTO t VALUES(1);
1510+SET SESSION query_exec_time = 0.5;
1511+INSERT INTO t VALUES(1);
1512+SET SESSION query_exec_time = 2.1;
1513+INSERT INTO t VALUES(1);
1514+SET SESSION query_exec_time = 2.3;
1515+INSERT INTO t VALUES(1);
1516+SET SESSION query_exec_time = 2.5;
1517+INSERT INTO t VALUES(1);
1518+SET SESSION query_exec_time = 3.1;
1519+INSERT INTO t VALUES(1);
1520+SET SESSION query_exec_time = 4.1;
1521+INSERT INTO t VALUES(1);
1522+SET SESSION query_exec_time = 5.1;
1523+INSERT INTO t VALUES(1);
1524+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
1525+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1526+Variable_name Value
1527+query_response_time_range_base 10
1528+SHOW QUERY_RESPONSE_TIME;
1529+
1530+ 0.000001 2 0.000000
1531+ 0.000010 0 0.000000
1532+ 0.000100 0 0.000000
1533+ 0.001000 0 0.000000
1534+ 0.010000 0 0.000000
1535+ 0.100000 0 0.000000
1536+ 1.000000 14 4.350000
1537+ 10.000000 11 25.700000
1538+ 100.000000 0 0.000000
1539+ 1000.000000 0 0.000000
1540+ 10000.000000 0 0.000000
1541+ 100000.000000 0 0.000000
1542+ 1000000.00000 0 0.000000
1543+TOO LONG 0 TOO LONG
1544+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1545+time count total
1546+ 0.000001 2 0.000000
1547+ 0.000010 0 0.000000
1548+ 0.000100 0 0.000000
1549+ 0.001000 0 0.000000
1550+ 0.010000 0 0.000000
1551+ 0.100000 0 0.000000
1552+ 1.000000 15 4.450000
1553+ 10.000000 11 25.700000
1554+ 100.000000 0 0.000000
1555+ 1000.000000 0 0.000000
1556+ 10000.000000 0 0.000000
1557+ 100000.000000 0 0.000000
1558+ 1000000.00000 0 0.000000
1559+TOO LONG 0 TOO LONG
1560+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
1561+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=default;
1562+DROP TABLE t;
1563+CREATE TABLE t(id INT);
1564+SET GLOBAL query_exec_time=0.1;
1565+include/restart_slave.inc
1566+SET SESSION query_exec_time=0.1;
1567+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
1568+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=7;
1569+FLUSH QUERY_RESPONSE_TIME;
1570+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
1571+SET SESSION query_exec_time = 0.31;
1572+INSERT INTO t VALUES(1);
1573+SET SESSION query_exec_time = 0.32;
1574+INSERT INTO t VALUES(1);
1575+SET SESSION query_exec_time = 0.33;
1576+INSERT INTO t VALUES(1);
1577+SET SESSION query_exec_time = 0.34;
1578+INSERT INTO t VALUES(1);
1579+SET SESSION query_exec_time = 0.35;
1580+INSERT INTO t VALUES(1);
1581+SET SESSION query_exec_time = 0.36;
1582+INSERT INTO t VALUES(1);
1583+SET SESSION query_exec_time = 0.37;
1584+INSERT INTO t VALUES(1);
1585+SET SESSION query_exec_time = 0.38;
1586+INSERT INTO t VALUES(1);
1587+SET SESSION query_exec_time = 0.39;
1588+INSERT INTO t VALUES(1);
1589+SET SESSION query_exec_time = 0.4;
1590+INSERT INTO t VALUES(1);
1591+SET SESSION query_exec_time = 1.1;
1592+INSERT INTO t VALUES(1);
1593+SET SESSION query_exec_time = 1.2;
1594+INSERT INTO t VALUES(1);
1595+SET SESSION query_exec_time = 1.3;
1596+INSERT INTO t VALUES(1);
1597+SET SESSION query_exec_time = 1.5;
1598+INSERT INTO t VALUES(1);
1599+SET SESSION query_exec_time = 1.4;
1600+INSERT INTO t VALUES(1);
1601+SET SESSION query_exec_time = 0.5;
1602+INSERT INTO t VALUES(1);
1603+SET SESSION query_exec_time = 2.1;
1604+INSERT INTO t VALUES(1);
1605+SET SESSION query_exec_time = 2.3;
1606+INSERT INTO t VALUES(1);
1607+SET SESSION query_exec_time = 2.5;
1608+INSERT INTO t VALUES(1);
1609+SET SESSION query_exec_time = 3.1;
1610+INSERT INTO t VALUES(1);
1611+SET SESSION query_exec_time = 4.1;
1612+INSERT INTO t VALUES(1);
1613+SET SESSION query_exec_time = 5.1;
1614+INSERT INTO t VALUES(1);
1615+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
1616+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1617+Variable_name Value
1618+query_response_time_range_base 7
1619+SHOW QUERY_RESPONSE_TIME;
1620+
1621+ 0.000001 2 0.000000
1622+ 0.000008 0 0.000000
1623+ 0.000059 0 0.000000
1624+ 0.000416 0 0.000000
1625+ 0.002915 0 0.000000
1626+ 0.020408 0 0.000000
1627+ 0.142857 3 0.300000
1628+ 1.000000 11 4.050000
1629+ 7.000000 11 25.700000
1630+ 49.000000 0 0.000000
1631+ 343.000000 0 0.000000
1632+ 2401.000000 0 0.000000
1633+ 16807.000000 0 0.000000
1634+ 117649.000000 0 0.000000
1635+ 823543.000000 0 0.000000
1636+ 5764801.00000 0 0.000000
1637+TOO LONG 0 TOO LONG
1638+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1639+time count total
1640+ 0.000001 2 0.000000
1641+ 0.000008 0 0.000000
1642+ 0.000059 0 0.000000
1643+ 0.000416 0 0.000000
1644+ 0.002915 0 0.000000
1645+ 0.020408 0 0.000000
1646+ 0.142857 4 0.400000
1647+ 1.000000 11 4.050000
1648+ 7.000000 11 25.700000
1649+ 49.000000 0 0.000000
1650+ 343.000000 0 0.000000
1651+ 2401.000000 0 0.000000
1652+ 16807.000000 0 0.000000
1653+ 117649.000000 0 0.000000
1654+ 823543.000000 0 0.000000
1655+ 5764801.00000 0 0.000000
1656+TOO LONG 0 TOO LONG
1657+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
1658+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=default;
1659+DROP TABLE t;
1660+CREATE TABLE t(id INT);
1661+SET GLOBAL query_exec_time=0.1;
1662+include/restart_slave.inc
1663+SET SESSION query_exec_time=0.1;
1664+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
1665+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=156;
1666+FLUSH QUERY_RESPONSE_TIME;
1667+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
1668+SET SESSION query_exec_time = 0.31;
1669+INSERT INTO t VALUES(1);
1670+SET SESSION query_exec_time = 0.32;
1671+INSERT INTO t VALUES(1);
1672+SET SESSION query_exec_time = 0.33;
1673+INSERT INTO t VALUES(1);
1674+SET SESSION query_exec_time = 0.34;
1675+INSERT INTO t VALUES(1);
1676+SET SESSION query_exec_time = 0.35;
1677+INSERT INTO t VALUES(1);
1678+SET SESSION query_exec_time = 0.36;
1679+INSERT INTO t VALUES(1);
1680+SET SESSION query_exec_time = 0.37;
1681+INSERT INTO t VALUES(1);
1682+SET SESSION query_exec_time = 0.38;
1683+INSERT INTO t VALUES(1);
1684+SET SESSION query_exec_time = 0.39;
1685+INSERT INTO t VALUES(1);
1686+SET SESSION query_exec_time = 0.4;
1687+INSERT INTO t VALUES(1);
1688+SET SESSION query_exec_time = 1.1;
1689+INSERT INTO t VALUES(1);
1690+SET SESSION query_exec_time = 1.2;
1691+INSERT INTO t VALUES(1);
1692+SET SESSION query_exec_time = 1.3;
1693+INSERT INTO t VALUES(1);
1694+SET SESSION query_exec_time = 1.5;
1695+INSERT INTO t VALUES(1);
1696+SET SESSION query_exec_time = 1.4;
1697+INSERT INTO t VALUES(1);
1698+SET SESSION query_exec_time = 0.5;
1699+INSERT INTO t VALUES(1);
1700+SET SESSION query_exec_time = 2.1;
1701+INSERT INTO t VALUES(1);
1702+SET SESSION query_exec_time = 2.3;
1703+INSERT INTO t VALUES(1);
1704+SET SESSION query_exec_time = 2.5;
1705+INSERT INTO t VALUES(1);
1706+SET SESSION query_exec_time = 3.1;
1707+INSERT INTO t VALUES(1);
1708+SET SESSION query_exec_time = 4.1;
1709+INSERT INTO t VALUES(1);
1710+SET SESSION query_exec_time = 5.1;
1711+INSERT INTO t VALUES(1);
1712+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
1713+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1714+Variable_name Value
1715+query_response_time_range_base 156
1716+SHOW QUERY_RESPONSE_TIME;
1717+
1718+ 0.000041 2 0.000000
1719+ 0.006410 0 0.000000
1720+ 1.000000 14 4.350000
1721+ 156.000000 11 25.700000
1722+ 24336.000000 0 0.000000
1723+ 3796416.00000 0 0.000000
1724+TOO LONG 0 TOO LONG
1725+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1726+time count total
1727+ 0.000041 2 0.000000
1728+ 0.006410 0 0.000000
1729+ 1.000000 15 4.450000
1730+ 156.000000 11 25.700000
1731+ 24336.000000 0 0.000000
1732+ 3796416.00000 0 0.000000
1733+TOO LONG 0 TOO LONG
1734+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
1735+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=default;
1736+DROP TABLE t;
1737+CREATE TABLE t(id INT);
1738+SET GLOBAL query_exec_time=0.1;
1739+include/restart_slave.inc
1740+SET SESSION query_exec_time=0.1;
1741+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
1742+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=1000;
1743+FLUSH QUERY_RESPONSE_TIME;
1744+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
1745+SET SESSION query_exec_time = 0.31;
1746+INSERT INTO t VALUES(1);
1747+SET SESSION query_exec_time = 0.32;
1748+INSERT INTO t VALUES(1);
1749+SET SESSION query_exec_time = 0.33;
1750+INSERT INTO t VALUES(1);
1751+SET SESSION query_exec_time = 0.34;
1752+INSERT INTO t VALUES(1);
1753+SET SESSION query_exec_time = 0.35;
1754+INSERT INTO t VALUES(1);
1755+SET SESSION query_exec_time = 0.36;
1756+INSERT INTO t VALUES(1);
1757+SET SESSION query_exec_time = 0.37;
1758+INSERT INTO t VALUES(1);
1759+SET SESSION query_exec_time = 0.38;
1760+INSERT INTO t VALUES(1);
1761+SET SESSION query_exec_time = 0.39;
1762+INSERT INTO t VALUES(1);
1763+SET SESSION query_exec_time = 0.4;
1764+INSERT INTO t VALUES(1);
1765+SET SESSION query_exec_time = 1.1;
1766+INSERT INTO t VALUES(1);
1767+SET SESSION query_exec_time = 1.2;
1768+INSERT INTO t VALUES(1);
1769+SET SESSION query_exec_time = 1.3;
1770+INSERT INTO t VALUES(1);
1771+SET SESSION query_exec_time = 1.5;
1772+INSERT INTO t VALUES(1);
1773+SET SESSION query_exec_time = 1.4;
1774+INSERT INTO t VALUES(1);
1775+SET SESSION query_exec_time = 0.5;
1776+INSERT INTO t VALUES(1);
1777+SET SESSION query_exec_time = 2.1;
1778+INSERT INTO t VALUES(1);
1779+SET SESSION query_exec_time = 2.3;
1780+INSERT INTO t VALUES(1);
1781+SET SESSION query_exec_time = 2.5;
1782+INSERT INTO t VALUES(1);
1783+SET SESSION query_exec_time = 3.1;
1784+INSERT INTO t VALUES(1);
1785+SET SESSION query_exec_time = 4.1;
1786+INSERT INTO t VALUES(1);
1787+SET SESSION query_exec_time = 5.1;
1788+INSERT INTO t VALUES(1);
1789+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
1790+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1791+Variable_name Value
1792+query_response_time_range_base 1000
1793+SHOW QUERY_RESPONSE_TIME;
1794+
1795+ 0.000001 2 0.000000
1796+ 0.001000 0 0.000000
1797+ 1.000000 14 4.350000
1798+ 1000.000000 11 25.700000
1799+ 1000000.00000 0 0.000000
1800+TOO LONG 0 TOO LONG
1801+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1802+time count total
1803+ 0.000001 2 0.000000
1804+ 0.001000 0 0.000000
1805+ 1.000000 15 4.450000
1806+ 1000.000000 11 25.700000
1807+ 1000000.00000 0 0.000000
1808+TOO LONG 0 TOO LONG
1809+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
1810+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=default;
1811+DROP TABLE t;
1812+CREATE TABLE t(id INT);
1813+SET GLOBAL query_exec_time=0.1;
1814+include/restart_slave.inc
1815+SET SESSION query_exec_time=0.1;
1816+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
1817+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=1001;
1818+Warnings:
1819+Warning 1292 Truncated incorrect query_response_time_range_base value: '1001'
1820+FLUSH QUERY_RESPONSE_TIME;
1821+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
1822+SET SESSION query_exec_time = 0.31;
1823+INSERT INTO t VALUES(1);
1824+SET SESSION query_exec_time = 0.32;
1825+INSERT INTO t VALUES(1);
1826+SET SESSION query_exec_time = 0.33;
1827+INSERT INTO t VALUES(1);
1828+SET SESSION query_exec_time = 0.34;
1829+INSERT INTO t VALUES(1);
1830+SET SESSION query_exec_time = 0.35;
1831+INSERT INTO t VALUES(1);
1832+SET SESSION query_exec_time = 0.36;
1833+INSERT INTO t VALUES(1);
1834+SET SESSION query_exec_time = 0.37;
1835+INSERT INTO t VALUES(1);
1836+SET SESSION query_exec_time = 0.38;
1837+INSERT INTO t VALUES(1);
1838+SET SESSION query_exec_time = 0.39;
1839+INSERT INTO t VALUES(1);
1840+SET SESSION query_exec_time = 0.4;
1841+INSERT INTO t VALUES(1);
1842+SET SESSION query_exec_time = 1.1;
1843+INSERT INTO t VALUES(1);
1844+SET SESSION query_exec_time = 1.2;
1845+INSERT INTO t VALUES(1);
1846+SET SESSION query_exec_time = 1.3;
1847+INSERT INTO t VALUES(1);
1848+SET SESSION query_exec_time = 1.5;
1849+INSERT INTO t VALUES(1);
1850+SET SESSION query_exec_time = 1.4;
1851+INSERT INTO t VALUES(1);
1852+SET SESSION query_exec_time = 0.5;
1853+INSERT INTO t VALUES(1);
1854+SET SESSION query_exec_time = 2.1;
1855+INSERT INTO t VALUES(1);
1856+SET SESSION query_exec_time = 2.3;
1857+INSERT INTO t VALUES(1);
1858+SET SESSION query_exec_time = 2.5;
1859+INSERT INTO t VALUES(1);
1860+SET SESSION query_exec_time = 3.1;
1861+INSERT INTO t VALUES(1);
1862+SET SESSION query_exec_time = 4.1;
1863+INSERT INTO t VALUES(1);
1864+SET SESSION query_exec_time = 5.1;
1865+INSERT INTO t VALUES(1);
1866+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
1867+SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
1868+Variable_name Value
1869+query_response_time_range_base 1000
1870+SHOW QUERY_RESPONSE_TIME;
1871+
1872+ 0.000001 2 0.000000
1873+ 0.001000 0 0.000000
1874+ 1.000000 14 4.350000
1875+ 1000.000000 11 25.700000
1876+ 1000000.00000 0 0.000000
1877+TOO LONG 0 TOO LONG
1878+SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
1879+time count total
1880+ 0.000001 2 0.000000
1881+ 0.001000 0 0.000000
1882+ 1.000000 15 4.450000
1883+ 1000.000000 11 25.700000
1884+ 1000000.00000 0 0.000000
1885+TOO LONG 0 TOO LONG
1886+SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
1887+SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=default;
1888+DROP TABLE t;
1889+include/rpl_end.inc
1890+SET GLOBAL query_exec_time=default;
1891+SET GLOBAL query_exec_time=default;
1892diff -ruN /dev/null b/mysql-test/r/percona_query_response_time.result
1893--- /dev/null
1894+++ b/mysql-test/r/percona_query_response_time.result
1895@@ -0,0 +1,1003 @@
1896+SET SESSION query_exec_time=0.1;
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches