mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
SHOW and FLUSH for I_S tables.
Extend existing plugins to support * SHOW QUERY_RESPONSE_TIME * FLUSH QUERY_RESPONSE_TIME * SHOW LOCALE move userstat tables to use the new API instead of hand-coded syntax
This commit is contained in:
@ -16,6 +16,7 @@
|
||||
#include "feedback.h"
|
||||
#include <sql_acl.h>
|
||||
#include <sql_parse.h>
|
||||
#include <sql_show.h>
|
||||
#include <time.h>
|
||||
|
||||
namespace feedback {
|
||||
@ -120,7 +121,7 @@ static int prepare_for_fill(TABLE_LIST *tables)
|
||||
strlen(i_s_feedback->table_name),
|
||||
0, TL_READ);
|
||||
tables->schema_table= i_s_feedback;
|
||||
tables->table= i_s_feedback->create_table(thd, tables);
|
||||
tables->table= create_schema_table(thd, tables);
|
||||
if (!tables->table)
|
||||
return 1;
|
||||
|
||||
|
@ -38,14 +38,14 @@ static MY_LOCALE **locale_list;
|
||||
/* LOCALES */
|
||||
static ST_FIELD_INFO locale_info_locale_fields_info[]=
|
||||
{
|
||||
{"ID", 4, MYSQL_TYPE_LONGLONG, 0, 0, 0, 0},
|
||||
{"NAME", 255, MYSQL_TYPE_STRING, 0, 0, 0, 0},
|
||||
{"DESCRIPTION", 255, MYSQL_TYPE_STRING, 0, 0, 0, 0},
|
||||
{"ID", 4, MYSQL_TYPE_LONGLONG, 0, 0, "Id", 0},
|
||||
{"NAME", 255, MYSQL_TYPE_STRING, 0, 0, "Name", 0},
|
||||
{"DESCRIPTION", 255, MYSQL_TYPE_STRING, 0, 0, "Description", 0},
|
||||
{"MAX_MONTH_NAME_LENGTH", 4, MYSQL_TYPE_LONGLONG, 0, 0, 0, 0},
|
||||
{"MAX_DAY_NAME_LENGTH", 4, MYSQL_TYPE_LONGLONG, 0, 0, 0, 0},
|
||||
{"DECIMAL_POINT", 2, MYSQL_TYPE_STRING, 0, 0, 0, 0},
|
||||
{"THOUSAND_SEP", 2, MYSQL_TYPE_STRING, 0, 0, 0, 0},
|
||||
{"ERROR_MESSAGE_LANGUAGE", 64, MYSQL_TYPE_STRING, 0, 0, 0, 0},
|
||||
{"ERROR_MESSAGE_LANGUAGE", 64, MYSQL_TYPE_STRING, 0, 0, "Error_Message_Language", 0},
|
||||
{0, 0, MYSQL_TYPE_STRING, 0, 0, 0, 0}
|
||||
};
|
||||
static int locale_info_fill_table_locale(THD* thd, TABLE_LIST* tables, COND* cond)
|
||||
|
@ -2,7 +2,7 @@ SET SESSION query_response_time_exec_time_debug=100000;
|
||||
|
||||
SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
|
||||
EVAL SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=$base;
|
||||
SET GLOBAL query_response_time_flush=1;
|
||||
FLUSH QUERY_RESPONSE_TIME;
|
||||
# Following two queries check works of FLUSH and
|
||||
# respecting of "QUERY_RESPONSE_TIME_STATS" variable (see launchpad bug #855312)
|
||||
SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
|
||||
@ -36,6 +36,6 @@ SET SESSION query_response_time_exec_time_debug=100000;
|
||||
SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
|
||||
|
||||
SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
|
||||
SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
|
||||
SHOW QUERY_RESPONSE_TIME;
|
||||
|
||||
SET SESSION query_response_time_exec_time_debug=default;
|
||||
|
@ -3,7 +3,7 @@ SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
|
||||
SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=1;
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect query_response_time_range_base value: '1'
|
||||
SET GLOBAL query_response_time_flush=1;
|
||||
FLUSH QUERY_RESPONSE_TIME;
|
||||
SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
|
||||
TIME COUNT TOTAL
|
||||
0.000001 0 0.000000
|
||||
@ -144,8 +144,8 @@ SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
|
||||
SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
|
||||
Variable_name Value
|
||||
query_response_time_range_base 2
|
||||
SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
|
||||
TIME COUNT TOTAL
|
||||
SHOW QUERY_RESPONSE_TIME;
|
||||
Time Count Total
|
||||
0.000001 24 0.000000
|
||||
0.000003 0 0.000000
|
||||
0.000007 0 0.000000
|
||||
@ -194,7 +194,7 @@ SET SESSION query_response_time_exec_time_debug=default;
|
||||
SET SESSION query_response_time_exec_time_debug=100000;
|
||||
SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
|
||||
SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=2;
|
||||
SET GLOBAL query_response_time_flush=1;
|
||||
FLUSH QUERY_RESPONSE_TIME;
|
||||
SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
|
||||
TIME COUNT TOTAL
|
||||
0.000001 0 0.000000
|
||||
@ -335,8 +335,8 @@ SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
|
||||
SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
|
||||
Variable_name Value
|
||||
query_response_time_range_base 2
|
||||
SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
|
||||
TIME COUNT TOTAL
|
||||
SHOW QUERY_RESPONSE_TIME;
|
||||
Time Count Total
|
||||
0.000001 24 0.000000
|
||||
0.000003 0 0.000000
|
||||
0.000007 0 0.000000
|
||||
@ -385,7 +385,7 @@ SET SESSION query_response_time_exec_time_debug=default;
|
||||
SET SESSION query_response_time_exec_time_debug=100000;
|
||||
SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
|
||||
SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=10;
|
||||
SET GLOBAL query_response_time_flush=1;
|
||||
FLUSH QUERY_RESPONSE_TIME;
|
||||
SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
|
||||
TIME COUNT TOTAL
|
||||
0.000001 0 0.000000
|
||||
@ -496,8 +496,8 @@ SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
|
||||
SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
|
||||
Variable_name Value
|
||||
query_response_time_range_base 10
|
||||
SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
|
||||
TIME COUNT TOTAL
|
||||
SHOW QUERY_RESPONSE_TIME;
|
||||
Time Count Total
|
||||
0.000001 24 0.000000
|
||||
0.000010 0 0.000000
|
||||
0.000100 0 0.000000
|
||||
@ -516,7 +516,7 @@ SET SESSION query_response_time_exec_time_debug=default;
|
||||
SET SESSION query_response_time_exec_time_debug=100000;
|
||||
SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
|
||||
SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=7;
|
||||
SET GLOBAL query_response_time_flush=1;
|
||||
FLUSH QUERY_RESPONSE_TIME;
|
||||
SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
|
||||
TIME COUNT TOTAL
|
||||
0.000001 0 0.000000
|
||||
@ -630,8 +630,8 @@ SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
|
||||
SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
|
||||
Variable_name Value
|
||||
query_response_time_range_base 7
|
||||
SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
|
||||
TIME COUNT TOTAL
|
||||
SHOW QUERY_RESPONSE_TIME;
|
||||
Time Count Total
|
||||
0.000001 24 0.000000
|
||||
0.000008 0 0.000000
|
||||
0.000059 0 0.000000
|
||||
@ -653,7 +653,7 @@ SET SESSION query_response_time_exec_time_debug=default;
|
||||
SET SESSION query_response_time_exec_time_debug=100000;
|
||||
SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
|
||||
SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=156;
|
||||
SET GLOBAL query_response_time_flush=1;
|
||||
FLUSH QUERY_RESPONSE_TIME;
|
||||
SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
|
||||
TIME COUNT TOTAL
|
||||
0.000041 0 0.000000
|
||||
@ -757,8 +757,8 @@ SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
|
||||
SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
|
||||
Variable_name Value
|
||||
query_response_time_range_base 156
|
||||
SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
|
||||
TIME COUNT TOTAL
|
||||
SHOW QUERY_RESPONSE_TIME;
|
||||
Time Count Total
|
||||
0.000041 24 0.000000
|
||||
0.006410 0 0.000000
|
||||
1.000000 11 4.050000
|
||||
@ -770,7 +770,7 @@ SET SESSION query_response_time_exec_time_debug=default;
|
||||
SET SESSION query_response_time_exec_time_debug=100000;
|
||||
SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
|
||||
SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=1000;
|
||||
SET GLOBAL query_response_time_flush=1;
|
||||
FLUSH QUERY_RESPONSE_TIME;
|
||||
SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
|
||||
TIME COUNT TOTAL
|
||||
0.000001 0 0.000000
|
||||
@ -873,8 +873,8 @@ SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
|
||||
SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
|
||||
Variable_name Value
|
||||
query_response_time_range_base 1000
|
||||
SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
|
||||
TIME COUNT TOTAL
|
||||
SHOW QUERY_RESPONSE_TIME;
|
||||
Time Count Total
|
||||
0.000001 24 0.000000
|
||||
0.001000 0 0.000000
|
||||
1.000000 11 4.050000
|
||||
@ -887,7 +887,7 @@ SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
|
||||
SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=1001;
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect query_response_time_range_base value: '1001'
|
||||
SET GLOBAL query_response_time_flush=1;
|
||||
FLUSH QUERY_RESPONSE_TIME;
|
||||
SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
|
||||
TIME COUNT TOTAL
|
||||
0.000001 0 0.000000
|
||||
@ -990,8 +990,8 @@ SET GLOBAL QUERY_RESPONSE_TIME_STATS=0;
|
||||
SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
|
||||
Variable_name Value
|
||||
query_response_time_range_base 1000
|
||||
SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
|
||||
TIME COUNT TOTAL
|
||||
SHOW QUERY_RESPONSE_TIME;
|
||||
Time Count Total
|
||||
0.000001 24 0.000000
|
||||
0.001000 0 0.000000
|
||||
1.000000 11 4.050000
|
||||
|
@ -72,9 +72,9 @@ static struct st_mysql_sys_var *query_response_time_info_vars[]=
|
||||
|
||||
ST_FIELD_INFO query_response_time_fields_info[] =
|
||||
{
|
||||
{ "TIME", QRT_TIME_STRING_LENGTH, MYSQL_TYPE_STRING, 0, 0, "", SKIP_OPEN_TABLE },
|
||||
{ "COUNT", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE },
|
||||
{ "TOTAL", QRT_TIME_STRING_LENGTH, MYSQL_TYPE_STRING, 0, 0, "", SKIP_OPEN_TABLE },
|
||||
{ "TIME", QRT_TIME_STRING_LENGTH, MYSQL_TYPE_STRING, 0, 0, "Time", 0 },
|
||||
{ "COUNT", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, 0, MY_I_S_UNSIGNED, "Count", 0 },
|
||||
{ "TOTAL", QRT_TIME_STRING_LENGTH, MYSQL_TYPE_STRING, 0, 0, "Total", 0 },
|
||||
{ 0, 0, MYSQL_TYPE_NULL, 0, 0, 0, 0 }
|
||||
};
|
||||
|
||||
@ -84,6 +84,7 @@ static int query_response_time_info_init(void *p)
|
||||
ST_SCHEMA_TABLE *i_s_query_response_time= (ST_SCHEMA_TABLE *) p;
|
||||
i_s_query_response_time->fields_info= query_response_time_fields_info;
|
||||
i_s_query_response_time->fill_table= query_response_time_fill;
|
||||
i_s_query_response_time->reset_table= query_response_time_flush;
|
||||
query_response_time_init();
|
||||
return 0;
|
||||
}
|
||||
|
@ -286,9 +286,10 @@ void query_response_time_free()
|
||||
query_response_time::g_collector.flush();
|
||||
}
|
||||
|
||||
void query_response_time_flush()
|
||||
int query_response_time_flush()
|
||||
{
|
||||
query_response_time::g_collector.flush();
|
||||
return 0;
|
||||
}
|
||||
void query_response_time_collect(ulonglong query_time)
|
||||
{
|
||||
|
@ -56,7 +56,7 @@ extern ST_SCHEMA_TABLE query_response_time_table;
|
||||
#ifdef HAVE_RESPONSE_TIME_DISTRIBUTION
|
||||
extern void query_response_time_init ();
|
||||
extern void query_response_time_free ();
|
||||
extern void query_response_time_flush ();
|
||||
extern int query_response_time_flush ();
|
||||
extern void query_response_time_collect(ulonglong query_time);
|
||||
extern int query_response_time_fill (THD* thd, TABLE_LIST *tables, COND *cond);
|
||||
|
||||
|
Reference in New Issue
Block a user