345
345
LIBTOOL = @LIBTOOL@
346
346
LIB_EXTRA_CCFLAGS = @LIB_EXTRA_CCFLAGS@
347
diff -r 85ce661bd25c include/mysql_com.h
348
--- a/include/mysql_com.h Wed Jul 29 00:09:40 2009 -0700
349
+++ b/include/mysql_com.h Wed Jul 29 00:09:56 2009 -0700
347
diff -r 592f6c3641ba include/mysql_com.h
348
--- a/include/mysql_com.h Wed Jul 29 13:33:34 2009 -0700
349
+++ b/include/mysql_com.h Wed Jul 29 13:34:11 2009 -0700
351
#define USERNAME_LENGTH 16
352
#define SERVER_VERSION_LENGTH 60
353
#define SQLSTATE_LENGTH 5
354
+#define LIST_PROCESS_HOST_LEN 64
357
USER_HOST_BUFF_SIZE -- length of string buffer, that is enough to contain
352
360
#define REFRESH_MASTER 128 /* Remove all bin logs in the index
353
361
and truncate the index */
915
924
LIBTOOL = @LIBTOOL@
916
925
LIB_EXTRA_CCFLAGS = @LIB_EXTRA_CCFLAGS@
917
diff -r 85ce661bd25c ndb/src/kernel/blocks/backup/Makefile.in
918
--- a/ndb/src/kernel/blocks/backup/Makefile.in Wed Jul 29 00:09:40 2009 -0700
919
+++ b/ndb/src/kernel/blocks/backup/Makefile.in Wed Jul 29 00:09:56 2009 -0700
922
LIBEDIT_LOBJECTS = @LIBEDIT_LOBJECTS@
927
LIB_EXTRA_CCFLAGS = @LIB_EXTRA_CCFLAGS@
928
diff -r 85ce661bd25c ndb/src/kernel/blocks/cmvmi/Makefile.in
929
--- a/ndb/src/kernel/blocks/cmvmi/Makefile.in Wed Jul 29 00:09:40 2009 -0700
930
+++ b/ndb/src/kernel/blocks/cmvmi/Makefile.in Wed Jul 29 00:09:56 2009 -0700
933
LIBEDIT_LOBJECTS = @LIBEDIT_LOBJECTS@
938
LIB_EXTRA_CCFLAGS = @LIB_EXTRA_CCFLAGS@
939
diff -r 85ce661bd25c ndb/src/kernel/blocks/dbacc/Makefile.in
940
--- a/ndb/src/kernel/blocks/dbacc/Makefile.in Wed Jul 29 00:09:40 2009 -0700
941
+++ b/ndb/src/kernel/blocks/dbacc/Makefile.in Wed Jul 29 00:09:56 2009 -0700
944
LIBEDIT_LOBJECTS = @LIBEDIT_LOBJECTS@
949
LIB_EXTRA_CCFLAGS = @LIB_EXTRA_CCFLAGS@
950
diff -r 85ce661bd25c ndb/src/kernel/blocks/dbdict/Makefile.in
951
--- a/ndb/src/kernel/blocks/dbdict/Makefile.in Wed Jul 29 00:09:40 2009 -0700
952
+++ b/ndb/src/kernel/blocks/dbdict/Makefile.in Wed Jul 29 00:09:56 2009 -0700
926
diff -r 592f6c3641ba ndb/src/kernel/blocks/backup/Makefile.in
927
--- a/ndb/src/kernel/blocks/backup/Makefile.in Wed Jul 29 13:33:34 2009 -0700
928
+++ b/ndb/src/kernel/blocks/backup/Makefile.in Wed Jul 29 13:34:11 2009 -0700
931
LIBEDIT_LOBJECTS = @LIBEDIT_LOBJECTS@
936
LIB_EXTRA_CCFLAGS = @LIB_EXTRA_CCFLAGS@
937
diff -r 592f6c3641ba ndb/src/kernel/blocks/cmvmi/Makefile.in
938
--- a/ndb/src/kernel/blocks/cmvmi/Makefile.in Wed Jul 29 13:33:34 2009 -0700
939
+++ b/ndb/src/kernel/blocks/cmvmi/Makefile.in Wed Jul 29 13:34:11 2009 -0700
942
LIBEDIT_LOBJECTS = @LIBEDIT_LOBJECTS@
947
LIB_EXTRA_CCFLAGS = @LIB_EXTRA_CCFLAGS@
948
diff -r 592f6c3641ba ndb/src/kernel/blocks/dbacc/Makefile.in
949
--- a/ndb/src/kernel/blocks/dbacc/Makefile.in Wed Jul 29 13:33:34 2009 -0700
950
+++ b/ndb/src/kernel/blocks/dbacc/Makefile.in Wed Jul 29 13:34:11 2009 -0700
953
LIBEDIT_LOBJECTS = @LIBEDIT_LOBJECTS@
958
LIB_EXTRA_CCFLAGS = @LIB_EXTRA_CCFLAGS@
959
diff -r 592f6c3641ba ndb/src/kernel/blocks/dbdict/Makefile.in
960
--- a/ndb/src/kernel/blocks/dbdict/Makefile.in Wed Jul 29 13:33:34 2009 -0700
961
+++ b/ndb/src/kernel/blocks/dbdict/Makefile.in Wed Jul 29 13:34:11 2009 -0700
953
962
@@ -206,6 +206,7 @@
955
964
LIBEDIT_LOBJECTS = @LIBEDIT_LOBJECTS@
1014
1023
LIBTOOL = @LIBTOOL@
1015
1024
LIB_EXTRA_CCFLAGS = @LIB_EXTRA_CCFLAGS@
1016
diff -r 85ce661bd25c ndb/src/kernel/blocks/dbutil/Makefile.in
1017
--- a/ndb/src/kernel/blocks/dbutil/Makefile.in Wed Jul 29 00:09:40 2009 -0700
1018
+++ b/ndb/src/kernel/blocks/dbutil/Makefile.in Wed Jul 29 00:09:56 2009 -0700
1021
LIBEDIT_LOBJECTS = @LIBEDIT_LOBJECTS@
1026
LIB_EXTRA_CCFLAGS = @LIB_EXTRA_CCFLAGS@
1027
diff -r 85ce661bd25c ndb/src/kernel/blocks/ndbcntr/Makefile.in
1028
--- a/ndb/src/kernel/blocks/ndbcntr/Makefile.in Wed Jul 29 00:09:40 2009 -0700
1029
+++ b/ndb/src/kernel/blocks/ndbcntr/Makefile.in Wed Jul 29 00:09:56 2009 -0700
1032
LIBEDIT_LOBJECTS = @LIBEDIT_LOBJECTS@
1037
LIB_EXTRA_CCFLAGS = @LIB_EXTRA_CCFLAGS@
1038
diff -r 85ce661bd25c ndb/src/kernel/blocks/ndbfs/Makefile.in
1039
--- a/ndb/src/kernel/blocks/ndbfs/Makefile.in Wed Jul 29 00:09:40 2009 -0700
1040
+++ b/ndb/src/kernel/blocks/ndbfs/Makefile.in Wed Jul 29 00:09:56 2009 -0700
1043
LIBEDIT_LOBJECTS = @LIBEDIT_LOBJECTS@
1048
LIB_EXTRA_CCFLAGS = @LIB_EXTRA_CCFLAGS@
1049
diff -r 85ce661bd25c ndb/src/kernel/blocks/qmgr/Makefile.in
1050
--- a/ndb/src/kernel/blocks/qmgr/Makefile.in Wed Jul 29 00:09:40 2009 -0700
1051
+++ b/ndb/src/kernel/blocks/qmgr/Makefile.in Wed Jul 29 00:09:56 2009 -0700
1054
LIBEDIT_LOBJECTS = @LIBEDIT_LOBJECTS@
1059
LIB_EXTRA_CCFLAGS = @LIB_EXTRA_CCFLAGS@
1060
diff -r 85ce661bd25c ndb/src/kernel/blocks/suma/Makefile.in
1061
--- a/ndb/src/kernel/blocks/suma/Makefile.in Wed Jul 29 00:09:40 2009 -0700
1062
+++ b/ndb/src/kernel/blocks/suma/Makefile.in Wed Jul 29 00:09:56 2009 -0700
1065
LIBEDIT_LOBJECTS = @LIBEDIT_LOBJECTS@
1070
LIB_EXTRA_CCFLAGS = @LIB_EXTRA_CCFLAGS@
1071
diff -r 85ce661bd25c ndb/src/kernel/blocks/trix/Makefile.in
1072
--- a/ndb/src/kernel/blocks/trix/Makefile.in Wed Jul 29 00:09:40 2009 -0700
1073
+++ b/ndb/src/kernel/blocks/trix/Makefile.in Wed Jul 29 00:09:56 2009 -0700
1076
LIBEDIT_LOBJECTS = @LIBEDIT_LOBJECTS@
1081
LIB_EXTRA_CCFLAGS = @LIB_EXTRA_CCFLAGS@
1082
diff -r 85ce661bd25c ndb/src/kernel/error/Makefile.in
1083
--- a/ndb/src/kernel/error/Makefile.in Wed Jul 29 00:09:40 2009 -0700
1084
+++ b/ndb/src/kernel/error/Makefile.in Wed Jul 29 00:09:56 2009 -0700
1025
diff -r 592f6c3641ba ndb/src/kernel/blocks/dbutil/Makefile.in
1026
--- a/ndb/src/kernel/blocks/dbutil/Makefile.in Wed Jul 29 13:33:34 2009 -0700
1027
+++ b/ndb/src/kernel/blocks/dbutil/Makefile.in Wed Jul 29 13:34:11 2009 -0700
1030
LIBEDIT_LOBJECTS = @LIBEDIT_LOBJECTS@
1035
LIB_EXTRA_CCFLAGS = @LIB_EXTRA_CCFLAGS@
1036
diff -r 592f6c3641ba ndb/src/kernel/blocks/ndbcntr/Makefile.in
1037
--- a/ndb/src/kernel/blocks/ndbcntr/Makefile.in Wed Jul 29 13:33:34 2009 -0700
1038
+++ b/ndb/src/kernel/blocks/ndbcntr/Makefile.in Wed Jul 29 13:34:11 2009 -0700
1041
LIBEDIT_LOBJECTS = @LIBEDIT_LOBJECTS@
1046
LIB_EXTRA_CCFLAGS = @LIB_EXTRA_CCFLAGS@
1047
diff -r 592f6c3641ba ndb/src/kernel/blocks/ndbfs/Makefile.in
1048
--- a/ndb/src/kernel/blocks/ndbfs/Makefile.in Wed Jul 29 13:33:34 2009 -0700
1049
+++ b/ndb/src/kernel/blocks/ndbfs/Makefile.in Wed Jul 29 13:34:11 2009 -0700
1052
LIBEDIT_LOBJECTS = @LIBEDIT_LOBJECTS@
1057
LIB_EXTRA_CCFLAGS = @LIB_EXTRA_CCFLAGS@
1058
diff -r 592f6c3641ba ndb/src/kernel/blocks/qmgr/Makefile.in
1059
--- a/ndb/src/kernel/blocks/qmgr/Makefile.in Wed Jul 29 13:33:34 2009 -0700
1060
+++ b/ndb/src/kernel/blocks/qmgr/Makefile.in Wed Jul 29 13:34:11 2009 -0700
1063
LIBEDIT_LOBJECTS = @LIBEDIT_LOBJECTS@
1068
LIB_EXTRA_CCFLAGS = @LIB_EXTRA_CCFLAGS@
1069
diff -r 592f6c3641ba ndb/src/kernel/blocks/suma/Makefile.in
1070
--- a/ndb/src/kernel/blocks/suma/Makefile.in Wed Jul 29 13:33:34 2009 -0700
1071
+++ b/ndb/src/kernel/blocks/suma/Makefile.in Wed Jul 29 13:34:11 2009 -0700
1074
LIBEDIT_LOBJECTS = @LIBEDIT_LOBJECTS@
1079
LIB_EXTRA_CCFLAGS = @LIB_EXTRA_CCFLAGS@
1080
diff -r 592f6c3641ba ndb/src/kernel/blocks/trix/Makefile.in
1081
--- a/ndb/src/kernel/blocks/trix/Makefile.in Wed Jul 29 13:33:34 2009 -0700
1082
+++ b/ndb/src/kernel/blocks/trix/Makefile.in Wed Jul 29 13:34:11 2009 -0700
1085
LIBEDIT_LOBJECTS = @LIBEDIT_LOBJECTS@
1090
LIB_EXTRA_CCFLAGS = @LIB_EXTRA_CCFLAGS@
1091
diff -r 592f6c3641ba ndb/src/kernel/error/Makefile.in
1092
--- a/ndb/src/kernel/error/Makefile.in Wed Jul 29 13:33:34 2009 -0700
1093
+++ b/ndb/src/kernel/error/Makefile.in Wed Jul 29 13:34:11 2009 -0700
1085
1094
@@ -206,6 +206,7 @@
1086
1095
LIBDL = @LIBDL@
1087
1096
LIBEDIT_LOBJECTS = @LIBEDIT_LOBJECTS@
1234
1243
LIBTOOL = @LIBTOOL@
1235
1244
LIB_EXTRA_CCFLAGS = @LIB_EXTRA_CCFLAGS@
1236
diff -r 85ce661bd25c os2/Makefile.in
1237
--- a/os2/Makefile.in Wed Jul 29 00:09:40 2009 -0700
1238
+++ b/os2/Makefile.in Wed Jul 29 00:09:56 2009 -0700
1241
LIBEDIT_LOBJECTS = @LIBEDIT_LOBJECTS@
1246
LIB_EXTRA_CCFLAGS = @LIB_EXTRA_CCFLAGS@
1247
diff -r 85ce661bd25c os2/include/Makefile.in
1248
--- a/os2/include/Makefile.in Wed Jul 29 00:09:40 2009 -0700
1249
+++ b/os2/include/Makefile.in Wed Jul 29 00:09:56 2009 -0700
1252
LIBEDIT_LOBJECTS = @LIBEDIT_LOBJECTS@
1257
LIB_EXTRA_CCFLAGS = @LIB_EXTRA_CCFLAGS@
1258
diff -r 85ce661bd25c os2/include/sys/Makefile.in
1259
--- a/os2/include/sys/Makefile.in Wed Jul 29 00:09:40 2009 -0700
1260
+++ b/os2/include/sys/Makefile.in Wed Jul 29 00:09:56 2009 -0700
1245
diff -r 592f6c3641ba os2/Makefile.in
1246
--- a/os2/Makefile.in Wed Jul 29 13:33:34 2009 -0700
1247
+++ b/os2/Makefile.in Wed Jul 29 13:34:11 2009 -0700
1250
LIBEDIT_LOBJECTS = @LIBEDIT_LOBJECTS@
1255
LIB_EXTRA_CCFLAGS = @LIB_EXTRA_CCFLAGS@
1256
diff -r 592f6c3641ba os2/include/Makefile.in
1257
--- a/os2/include/Makefile.in Wed Jul 29 13:33:34 2009 -0700
1258
+++ b/os2/include/Makefile.in Wed Jul 29 13:34:11 2009 -0700
1261
LIBEDIT_LOBJECTS = @LIBEDIT_LOBJECTS@
1266
LIB_EXTRA_CCFLAGS = @LIB_EXTRA_CCFLAGS@
1267
diff -r 592f6c3641ba os2/include/sys/Makefile.in
1268
--- a/os2/include/sys/Makefile.in Wed Jul 29 13:33:34 2009 -0700
1269
+++ b/os2/include/sys/Makefile.in Wed Jul 29 13:34:11 2009 -0700
1261
1270
@@ -144,6 +144,7 @@
1262
1271
LIBDL = @LIBDL@
1263
1272
LIBEDIT_LOBJECTS = @LIBEDIT_LOBJECTS@
1773
1782
default rename_table() and delete_table() rename/delete files with a
1774
1783
given name and extensions from bas_ext()
1775
diff -r 85ce661bd25c sql/lex.h
1776
--- a/sql/lex.h Wed Jul 29 00:09:40 2009 -0700
1777
+++ b/sql/lex.h Wed Jul 29 00:09:56 2009 -0700
1784
diff -r 592f6c3641ba sql/lex.h
1785
--- a/sql/lex.h Wed Jul 29 13:33:34 2009 -0700
1786
+++ b/sql/lex.h Wed Jul 29 13:34:11 2009 -0700
1788
{ "CHECKSUM", SYM(CHECKSUM_SYM)},
1789
{ "CIPHER", SYM(CIPHER_SYM)},
1790
{ "CLIENT", SYM(CLIENT_SYM)},
1791
+ { "CLIENT_STATISTICS", SYM(CLIENT_STATS_SYM)},
1792
{ "CLOSE", SYM(CLOSE_SYM)},
1793
{ "CODE", SYM(CODE_SYM)},
1794
{ "COLLATE", SYM(COLLATE_SYM)},
1779
1796
{ "IN", SYM(IN_SYM)},
1780
1797
{ "INDEX", SYM(INDEX_SYM)},
1781
1798
{ "INDEXES", SYM(INDEXES)},
1887
1904
#ifndef DBUG_OFF
1888
1905
DBUG_skip_commit:
1890
diff -r 85ce661bd25c sql/mysql_priv.h
1891
--- a/sql/mysql_priv.h Wed Jul 29 00:09:40 2009 -0700
1892
+++ b/sql/mysql_priv.h Wed Jul 29 00:09:56 2009 -0700
1893
@@ -837,7 +837,13 @@
1907
diff -r 592f6c3641ba sql/mysql_priv.h
1908
--- a/sql/mysql_priv.h Wed Jul 29 13:33:34 2009 -0700
1909
+++ b/sql/mysql_priv.h Wed Jul 29 13:34:11 2009 -0700
1910
@@ -837,7 +837,15 @@
1894
1911
bool multi_delete_set_locks_and_link_aux_tables(LEX *lex);
1895
1912
void init_max_user_conn(void);
1896
1913
void init_update_queries(void);
1897
1914
+void init_global_user_stats(void);
1898
1915
+void init_global_table_stats(void);
1899
1916
+void init_global_index_stats(void);
1917
+void init_global_client_stats(void);
1900
1918
void free_max_user_conn(void);
1901
1919
+void free_global_user_stats(void);
1902
1920
+void free_global_table_stats(void);
1903
1921
+void free_global_index_stats(void);
1922
+void free_global_client_stats(void);
1904
1923
pthread_handler_t handle_one_connection(void *arg);
1905
1924
pthread_handler_t handle_bootstrap(void *arg);
1906
1925
void end_thread(THD *thd,bool put_in_cache);
1907
@@ -1416,6 +1422,7 @@
1926
@@ -1416,6 +1424,7 @@
1908
1927
extern ulong max_connections,max_connect_errors, connect_timeout;
1909
1928
extern ulong slave_net_timeout, slave_trans_retries;
1910
1929
extern uint max_user_connections;
2031
2053
OPT_USE_GLOBAL_LONG_QUERY_TIME,
2032
2054
OPT_INNODB_ROLLBACK_ON_TIMEOUT,
2033
2055
OPT_SECURE_FILE_PRIV,
2034
@@ -6523,6 +6547,10 @@
2056
@@ -6523,6 +6549,10 @@
2035
2057
(gptr*) &max_system_variables.net_wait_timeout, 0, GET_ULONG,
2036
2058
REQUIRED_ARG, NET_WAIT_TIMEOUT, 1, IF_WIN(INT_MAX32/1000, LONG_TIMEOUT),
2038
2060
+ {"userstat_running", OPT_USERSTAT_RUNNING,
2039
+ "Control USER_STATISTICS, INDEX_STATISTICS and TABLE_STATISTICS running",
2061
+ "Control USER_STATISTICS, CLIENT_STATISTICS, INDEX_STATISTICS and TABLE_STATISTICS running",
2040
2062
+ (gptr*) &opt_userstat_running, (gptr*) &opt_userstat_running,
2041
2063
+ 0, GET_BOOL, NO_ARG, 0, 0, 1, 0, 1, 0},
2042
2064
{0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
2045
diff -r 85ce661bd25c sql/set_var.cc
2046
--- a/sql/set_var.cc Wed Jul 29 00:09:40 2009 -0700
2047
+++ b/sql/set_var.cc Wed Jul 29 00:09:56 2009 -0700
2067
diff -r 592f6c3641ba sql/set_var.cc
2068
--- a/sql/set_var.cc Wed Jul 29 13:33:34 2009 -0700
2069
+++ b/sql/set_var.cc Wed Jul 29 13:34:11 2009 -0700
2048
2070
@@ -325,6 +325,7 @@
2049
2071
sys_var_thd_ulong sys_read_buff_size("read_buffer_size",
2050
2072
&SV::read_buff_size);
2426
2447
DBUG_RETURN(0);
2429
diff -r 85ce661bd25c sql/sql_lex.h
2430
--- a/sql/sql_lex.h Wed Jul 29 00:09:40 2009 -0700
2431
+++ b/sql/sql_lex.h Wed Jul 29 00:09:56 2009 -0700
2450
diff -r 592f6c3641ba sql/sql_lex.h
2451
--- a/sql/sql_lex.h Wed Jul 29 13:33:34 2009 -0700
2452
+++ b/sql/sql_lex.h Wed Jul 29 13:34:11 2009 -0700
2433
2454
When a command is added here, be sure it's also added in mysqld.cc
2434
2455
in "struct show_var_st status_vars[]= {" ...
2436
2457
+ // TODO(mcallaghan): update status_vars in mysqld to export these
2437
2458
+ SQLCOM_SHOW_USER_STATS, SQLCOM_SHOW_TABLE_STATS, SQLCOM_SHOW_INDEX_STATS,
2459
+ SQLCOM_SHOW_CLIENT_STATS,
2438
2460
/* This should be the last !!! */
2441
diff -r 85ce661bd25c sql/sql_parse.cc
2442
--- a/sql/sql_parse.cc Wed Jul 29 00:09:40 2009 -0700
2443
+++ b/sql/sql_parse.cc Wed Jul 29 00:09:56 2009 -0700
2463
diff -r 592f6c3641ba sql/sql_parse.cc
2464
--- a/sql/sql_parse.cc Wed Jul 29 13:33:34 2009 -0700
2465
+++ b/sql/sql_parse.cc Wed Jul 29 13:34:11 2009 -0700
2444
2466
@@ -78,6 +78,12 @@
2445
2467
const char *table_name);
2446
2468
static bool check_show_create_table_access(THD *thd, TABLE_LIST *table);
3153
3227
+ init_global_index_stats();
3154
3228
+ pthread_mutex_unlock(&LOCK_global_index_stats);
3156
+ if (options & (REFRESH_USER_STATS))
3230
+ if (options & (REFRESH_USER_STATS | REFRESH_CLIENT_STATS))
3158
3232
+ pthread_mutex_lock(&LOCK_global_user_client_stats);
3159
+ free_global_user_stats();
3160
+ init_global_user_stats();
3233
+ if (options & REFRESH_USER_STATS)
3235
+ free_global_user_stats();
3236
+ init_global_user_stats();
3238
+ if (options & REFRESH_CLIENT_STATS)
3240
+ free_global_client_stats();
3241
+ init_global_client_stats();
3161
3243
+ pthread_mutex_unlock(&LOCK_global_user_client_stats);
3163
3245
*write_to_binlog= tmp_write_to_binlog;
3166
diff -r 85ce661bd25c sql/sql_prepare.cc
3167
--- a/sql/sql_prepare.cc Wed Jul 29 00:09:40 2009 -0700
3168
+++ b/sql/sql_prepare.cc Wed Jul 29 00:09:56 2009 -0700
3248
diff -r 592f6c3641ba sql/sql_prepare.cc
3249
--- a/sql/sql_prepare.cc Wed Jul 29 13:33:34 2009 -0700
3250
+++ b/sql/sql_prepare.cc Wed Jul 29 13:34:11 2009 -0700
3169
3251
@@ -81,6 +81,9 @@
3170
3252
#include <mysql_com.h>
3685
3767
+ DBUG_RETURN(1);
3771
+ Process SHOW CLIENT_STATISTICS
3774
+ mysqld_show_client_stats
3775
+ thd - current thread
3776
+ wild - limit results to the entry for this client
3784
+int fill_schema_client_stats(THD* thd, TABLE_LIST* tables, COND* cond)
3786
+ TABLE *table= tables->table;
3787
+ DBUG_ENTER("fill_schema_client_stats");
3789
+ if (check_global_access(thd, SUPER_ACL | PROCESS_ACL))
3792
+ // Iterates through all the global stats and sends them to the client.
3793
+ // Pattern matching on the client IP is supported.
3795
+ pthread_mutex_lock(&LOCK_global_user_client_stats);
3796
+ int result= send_user_stats(thd, &global_client_stats, table);
3797
+ pthread_mutex_unlock(&LOCK_global_user_client_stats);
3801
+ DBUG_PRINT("exit", ("mysqld_show_client_stats result is 0"));
3805
+ DBUG_PRINT("exit", ("mysqld_show_client_stats result is 1"));
3688
3810
+// Sends the global table stats back to the client.
3689
3811
+int fill_schema_table_stats(THD* thd, TABLE_LIST* tables, COND* cond)
3803
3925
+ {0, 0, MYSQL_TYPE_STRING, 0, 0, 0}
3928
+ST_FIELD_INFO client_stats_fields_info[]=
3930
+ {"CLIENT", LIST_PROCESS_HOST_LEN, MYSQL_TYPE_STRING, 0, 0, "Client"},
3931
+ {"TOTAL_CONNECTIONS", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, 0, 0, "Total_connections"},
3932
+ {"CONCURRENT_CONNECTIONS", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, 0, 0, "Concurrent_connections"},
3933
+ {"CONNECTED_TIME", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, 0, 0, "Connected_time"},
3934
+ {"BUSY_TIME", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, 0, 0, "Busy_time"},
3935
+ {"CPU_TIME", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, 0, 0, "Cpu_time"},
3936
+ {"BYTES_RECEIVED", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, 0, 0, "Bytes_received"},
3937
+ {"BYTES_SENT", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, 0, 0, "Bytes_sent"},
3938
+ {"BINLOG_BYTES_WRITTEN", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, 0, 0, "Binlog_bytes_written"},
3939
+ {"ROWS_FETCHED", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, 0, 0, "Rows_fetched"},
3940
+ {"ROWS_UPDATED", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, 0, 0, "Rows_updated"},
3941
+ {"TABLE_ROWS_READ", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, 0, 0, "Table_rows_read"},
3942
+ {"SELECT_COMMANDS", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, 0, 0, "Select_commands"},
3943
+ {"UPDATE_COMMANDS", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, 0, 0, "Update_commands"},
3944
+ {"OTHER_COMMANDS", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, 0, 0, "Other_commands"},
3945
+ {"COMMIT_TRANSACTIONS", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, 0, 0, "Commit_transactions"},
3946
+ {"ROLLBACK_TRANSACTIONS", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, 0, 0, "Rollback_transactions"},
3947
+ {"DENIED_CONNECTIONS", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, 0, 0, "Denied_connections"},
3948
+ {"LOST_CONNECTIONS", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, 0, 0, "Lost_connections"},
3949
+ {"ACCESS_DENIED", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, 0, 0, "Access_denied"},
3950
+ {"EMPTY_QUERIES", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, 0, 0, "Empty_queries"},
3951
+ {0, 0, MYSQL_TYPE_STRING, 0, 0, 0}
3806
3955
+ST_FIELD_INFO table_stats_fields_info[]=
3808
3957
+ {"TABLE_SCHEMA", NAME_LEN, MYSQL_TYPE_STRING, 0, 0, "Table_schema"},
3826
3975
Description of ST_FIELD_INFO in table.h
3827
@@ -4517,6 +4816,8 @@
3976
@@ -4509,6 +4875,8 @@
3978
{"CHARACTER_SETS", charsets_fields_info, create_schema_table,
3979
fill_schema_charsets, make_character_sets_old_format, 0, -1, -1, 0},
3980
+ {"CLIENT_STATISTICS", client_stats_fields_info, create_schema_table,
3981
+ fill_schema_client_stats, make_old_format, 0, -1, -1, 0},
3982
{"COLLATIONS", collation_fields_info, create_schema_table,
3983
fill_schema_collation, make_old_format, 0, -1, -1, 0},
3984
{"COLLATION_CHARACTER_SET_APPLICABILITY", coll_charset_app_fields_info,
3985
@@ -4517,6 +4885,8 @@
3828
3986
get_all_tables, make_columns_old_format, get_schema_column_record, 1, 2, 0},
3829
3987
{"COLUMN_PRIVILEGES", column_privileges_fields_info, create_schema_table,
3830
3988
fill_schema_column_privileges, 0, 0, -1, -1, 0},
3833
3991
{"KEY_COLUMN_USAGE", key_column_usage_fields_info, create_schema_table,
3834
3992
get_all_tables, 0, get_schema_key_column_usage_record, 4, 5, 0},
3835
3993
{"OPEN_TABLES", open_tables_fields_info, create_schema_table,
3836
@@ -4542,10 +4843,14 @@
3994
@@ -4542,10 +4912,14 @@
3837
3995
get_all_tables, make_table_names_old_format, 0, 1, 2, 1},
3838
3996
{"TABLE_PRIVILEGES", table_privileges_fields_info, create_schema_table,
3839
3997
fill_schema_table_privileges, 0, 0, -1, -1, 0},
3848
4006
{"VARIABLES", variables_fields_info, create_schema_table, fill_variables,
3849
4007
make_old_format, 0, -1, -1, 1},
3850
4008
{"VIEWS", view_fields_info, create_schema_table,
3851
diff -r 85ce661bd25c sql/sql_update.cc
3852
--- a/sql/sql_update.cc Wed Jul 29 00:09:40 2009 -0700
3853
+++ b/sql/sql_update.cc Wed Jul 29 00:09:56 2009 -0700
4009
diff -r 592f6c3641ba sql/sql_update.cc
4010
--- a/sql/sql_update.cc Wed Jul 29 13:33:34 2009 -0700
4011
+++ b/sql/sql_update.cc Wed Jul 29 13:34:11 2009 -0700
3854
4012
@@ -601,7 +601,8 @@
3855
4013
(thd->client_capabilities & CLIENT_FOUND_ROWS) ? found : updated;
3856
4014
send_ok(thd, (ulong) thd->row_count_func,
3984
diff -r 85ce661bd25c sql/structs.h
3985
--- a/sql/structs.h Wed Jul 29 00:09:40 2009 -0700
3986
+++ b/sql/structs.h Wed Jul 29 00:09:56 2009 -0700
4167
diff -r 592f6c3641ba sql/structs.h
4168
--- a/sql/structs.h Wed Jul 29 13:33:34 2009 -0700
4169
+++ b/sql/structs.h Wed Jul 29 13:34:11 2009 -0700
3987
4170
@@ -273,6 +273,98 @@
3991
4174
+typedef struct st_user_stats {
3992
+ char user[USERNAME_LENGTH + 1];
4175
+ char user[max(USERNAME_LENGTH, LIST_PROCESS_HOST_LEN) + 1];
3993
4176
+ // Account name the user is mapped to when this is a user from mapped_user.
3994
4177
+ // Otherwise, the same value as user.
3995
+ char priv_user[USERNAME_LENGTH + 1];
4178
+ char priv_user[max(USERNAME_LENGTH, LIST_PROCESS_HOST_LEN) + 1];
3996
4179
+ uint total_connections;
3997
4180
+ uint concurrent_connections;
3998
4181
+ time_t connected_time; // in seconds