Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
bdc5a621
Commit
bdc5a621
authored
Dec 13, 2001
by
monty@hundin.mysql.fi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added status variables for all MySQL commands.
parent
70e053fb
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
81 additions
and
2 deletions
+81
-2
Docs/manual.texi
Docs/manual.texi
+4
-0
sql/mysql_priv.h
sql/mysql_priv.h
+1
-0
sql/mysqld.cc
sql/mysqld.cc
+58
-0
sql/sql_lex.h
sql/sql_lex.h
+2
-1
sql/sql_parse.cc
sql/sql_parse.cc
+16
-1
No files found.
Docs/manual.texi
View file @
bdc5a621
...
...
@@ -19620,6 +19620,7 @@ The status variables listed above have the following meaning:
@item @code{Aborted_connects} @tab Number of tries to connect to the MySQL server that failed. @xref{Communication errors}.
@item @code{Bytes_received} @tab Number of bytes received from all clients.
@item @code{Bytes_sent} @tab Number of bytes sent to all clients.
@item @code{Com_xxxx} @tab Number of times the xxx commands has been executed.
@item @code{Connections} @tab Number of connection attempts to the MySQL server.
@item @code{Created_tmp_disk_tables} @tab Number of implicit temporary tables on disk created while executing statements.
@item @code{Created_tmp_tables} @tab Number of implicit temporary tables in memory created while executing statements.
...
...
@@ -46839,6 +46840,9 @@ not yet 100% confident in this code.
@appendixsubsec Changes in release 3.23.47
@itemize @bullet
@item
Added statistics variables for all MySQL commands. (@code{SHOW STATUS} is
now much longer).
@item
Fix default values for InnoDB tables.
@item
Fixed that @code{GROUP BY expr DESC} works.
sql/mysql_priv.h
View file @
bdc5a621
...
...
@@ -542,6 +542,7 @@ extern ulong keybuff_size,sortbuff_size,max_item_sort_length,table_cache_size,
max_tmp_tables
,
max_heap_table_size
,
query_buff_size
,
lower_case_table_names
,
thread_stack
,
thread_stack_min
,
binlog_cache_size
,
max_binlog_cache_size
,
record_rnd_cache_size
;
extern
ulong
com_stat
[(
uint
)
SQLCOM_END
],
com_other
;
extern
ulong
specialflag
,
current_pid
;
extern
bool
low_priority_updates
,
using_update_log
,
opt_warnings
;
extern
bool
opt_sql_bin_update
,
opt_safe_show_db
,
opt_safe_user_create
;
...
...
sql/mysqld.cc
View file @
bdc5a621
...
...
@@ -270,6 +270,7 @@ ulong keybuff_size,sortbuff_size,max_item_sort_length,table_cache_size,
net_interactive_timeout
,
slow_launch_time
=
2L
,
net_read_timeout
,
net_write_timeout
,
slave_open_temp_tables
=
0
,
open_files_limit
=
0
,
max_binlog_size
,
record_rnd_cache_size
;
ulong
com_stat
[(
uint
)
SQLCOM_END
],
com_other
;
ulong
slave_net_timeout
;
ulong
thread_cache_size
=
0
,
binlog_cache_size
=
0
,
max_binlog_cache_size
=
0
;
volatile
ulong
cached_thread_count
=
0
;
...
...
@@ -3044,6 +3045,63 @@ struct show_var_st status_vars[]= {
{
"Aborted_connects"
,
(
char
*
)
&
aborted_connects
,
SHOW_LONG
},
{
"Bytes_received"
,
(
char
*
)
&
bytes_received
,
SHOW_LONG
},
{
"Bytes_sent"
,
(
char
*
)
&
bytes_sent
,
SHOW_LONG
},
{
"Com_admin_commands"
,
(
char
*
)
&
com_other
,
SHOW_LONG
},
{
"Com_alter_table"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_ALTER_TABLE
),
SHOW_LONG
},
{
"Com_analyze"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_ANALYZE
),
SHOW_LONG
},
{
"Com_backup_table"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_BACKUP_TABLE
),
SHOW_LONG
},
{
"Com_begin"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_BEGIN
),
SHOW_LONG
},
{
"Com_change_db"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_CHANGE_DB
),
SHOW_LONG
},
{
"Com_change_master"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_CHANGE_MASTER
),
SHOW_LONG
},
{
"Com_check"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_CHECK
),
SHOW_LONG
},
{
"Com_commit"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_COMMIT
),
SHOW_LONG
},
{
"Com_create_db"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_CREATE_DB
),
SHOW_LONG
},
{
"Com_create_function"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_CREATE_FUNCTION
),
SHOW_LONG
},
{
"Com_create_index"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_CREATE_INDEX
),
SHOW_LONG
},
{
"Com_create_table"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_CREATE_TABLE
),
SHOW_LONG
},
{
"Com_delete"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_DELETE
),
SHOW_LONG
},
{
"Com_drop_db"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_DROP_DB
),
SHOW_LONG
},
{
"Com_drop_function"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_DROP_FUNCTION
),
SHOW_LONG
},
{
"Com_drop_index"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_DROP_INDEX
),
SHOW_LONG
},
{
"Com_drop_table"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_DROP_TABLE
),
SHOW_LONG
},
{
"Com_flush"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_FLUSH
),
SHOW_LONG
},
{
"Com_grant"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_GRANT
),
SHOW_LONG
},
{
"Com_insert"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_INSERT
),
SHOW_LONG
},
{
"Com_insert_select"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_INSERT_SELECT
),
SHOW_LONG
},
{
"Com_kill"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_KILL
),
SHOW_LONG
},
{
"Com_load"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_LOAD
),
SHOW_LONG
},
{
"Com_load_master_table"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_LOAD_MASTER_TABLE
),
SHOW_LONG
},
{
"Com_lock_tables"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_LOCK_TABLES
),
SHOW_LONG
},
{
"Com_optimize"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_OPTIMIZE
),
SHOW_LONG
},
{
"Com_purge"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_PURGE
),
SHOW_LONG
},
{
"Com_rename_table"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_RENAME_TABLE
),
SHOW_LONG
},
{
"Com_repair"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_REPAIR
),
SHOW_LONG
},
{
"Com_replace"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_REPLACE
),
SHOW_LONG
},
{
"Com_replace_select"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_REPLACE_SELECT
),
SHOW_LONG
},
{
"Com_reset"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_RESET
),
SHOW_LONG
},
{
"Com_restore_table"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_RESTORE_TABLE
),
SHOW_LONG
},
{
"Com_revoke"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_REVOKE
),
SHOW_LONG
},
{
"Com_rollback"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_ROLLBACK
),
SHOW_LONG
},
{
"Com_select"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_SELECT
),
SHOW_LONG
},
{
"Com_set_option"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_SET_OPTION
),
SHOW_LONG
},
{
"Com_show_binlogs"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_SHOW_BINLOGS
),
SHOW_LONG
},
{
"Com_show_create"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_SHOW_CREATE
),
SHOW_LONG
},
{
"Com_show_databases"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_SHOW_DATABASES
),
SHOW_LONG
},
{
"Com_show_fields"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_SHOW_FIELDS
),
SHOW_LONG
},
{
"Com_show_grants"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_SHOW_GRANTS
),
SHOW_LONG
},
{
"Com_show_keys"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_SHOW_KEYS
),
SHOW_LONG
},
{
"Com_show_logs"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_SHOW_LOGS
),
SHOW_LONG
},
{
"Com_show_master_STAT"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_SHOW_MASTER_STAT
),
SHOW_LONG
},
{
"Com_show_open_tables"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_SHOW_OPEN_TABLES
),
SHOW_LONG
},
{
"Com_show_processlist"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_SHOW_PROCESSLIST
),
SHOW_LONG
},
{
"Com_show_slave_stat"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_SHOW_SLAVE_STAT
),
SHOW_LONG
},
{
"Com_show_status"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_SHOW_STATUS
),
SHOW_LONG
},
{
"Com_show_tables"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_SHOW_TABLES
),
SHOW_LONG
},
{
"Com_show_variables"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_SHOW_VARIABLES
),
SHOW_LONG
},
{
"Com_slave_start"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_SLAVE_START
),
SHOW_LONG
},
{
"Com_slave_stop"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_SLAVE_STOP
),
SHOW_LONG
},
{
"Com_truncate"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_TRUNCATE
),
SHOW_LONG
},
{
"Com_unlock_tables"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_UNLOCK_TABLES
),
SHOW_LONG
},
{
"Com_update"
,
(
char
*
)
(
com_stat
+
(
uint
)
SQLCOM_UPDATE
),
SHOW_LONG
},
{
"Connections"
,
(
char
*
)
&
thread_id
,
SHOW_LONG_CONST
},
{
"Created_tmp_disk_tables"
,
(
char
*
)
&
created_tmp_disk_tables
,
SHOW_LONG
},
{
"Created_tmp_tables"
,
(
char
*
)
&
created_tmp_tables
,
SHOW_LONG
},
...
...
sql/sql_lex.h
View file @
bdc5a621
...
...
@@ -53,7 +53,8 @@ enum enum_sql_command {
SQLCOM_BEGIN
,
SQLCOM_LOAD_MASTER_TABLE
,
SQLCOM_CHANGE_MASTER
,
SQLCOM_RENAME_TABLE
,
SQLCOM_BACKUP_TABLE
,
SQLCOM_RESTORE_TABLE
,
SQLCOM_RESET
,
SQLCOM_PURGE
,
SQLCOM_SHOW_BINLOGS
,
SQLCOM_SHOW_OPEN_TABLES
SQLCOM_SHOW_OPEN_TABLES
,
SQLCOM_END
};
enum
lex_states
{
STATE_START
,
STATE_CHAR
,
STATE_IDENT
,
...
...
sql/sql_parse.cc
View file @
bdc5a621
...
...
@@ -705,7 +705,6 @@ err:
}
/* Execute one command from socket (query or simple command) */
bool
do_command
(
THD
*
thd
)
...
...
@@ -756,11 +755,13 @@ bool do_command(THD *thd)
thd
->
lex
.
options
=
0
;
// We store status here
switch
(
command
)
{
case
COM_INIT_DB
:
thread_safe_increment
(
com_stat
[
SQLCOM_CHANGE_DB
],
&
LOCK_thread_count
);
if
(
!
mysql_change_db
(
thd
,
packet
+
1
))
mysql_log
.
write
(
thd
,
command
,
"%s"
,
thd
->
db
);
break
;
case
COM_TABLE_DUMP
:
{
thread_safe_increment
(
com_other
,
&
LOCK_thread_count
);
slow_command
=
TRUE
;
char
*
data
=
packet
+
1
;
uint
db_len
=
*
data
;
...
...
@@ -778,6 +779,7 @@ bool do_command(THD *thd)
}
case
COM_CHANGE_USER
:
{
thread_safe_increment
(
com_other
,
&
LOCK_thread_count
);
char
*
user
=
(
char
*
)
packet
+
1
;
char
*
passwd
=
strend
(
user
)
+
1
;
char
*
db
=
strend
(
passwd
)
+
1
;
...
...
@@ -843,6 +845,7 @@ bool do_command(THD *thd)
{
char
*
fields
;
TABLE_LIST
table_list
;
thread_safe_increment
(
com_stat
[
SQLCOM_SHOW_FIELDS
],
&
LOCK_thread_count
);
bzero
((
char
*
)
&
table_list
,
sizeof
(
table_list
));
if
(
!
(
table_list
.
db
=
thd
->
db
))
{
...
...
@@ -866,6 +869,7 @@ bool do_command(THD *thd)
}
#endif
case
COM_QUIT
:
/* We don't calculate statistics for this command */
mysql_log
.
write
(
thd
,
command
,
NullS
);
net
->
error
=
0
;
// Don't give 'abort' message
error
=
TRUE
;
// End server
...
...
@@ -874,6 +878,7 @@ bool do_command(THD *thd)
case
COM_CREATE_DB
:
{
char
*
db
=
thd
->
strdup
(
packet
+
1
);
thread_safe_increment
(
com_stat
[
SQLCOM_CREATE_DB
],
&
LOCK_thread_count
);
// null test to handle EOM
if
(
!
db
||
!
stripp_sp
(
db
)
||
check_db_name
(
db
))
{
...
...
@@ -889,6 +894,7 @@ bool do_command(THD *thd)
case
COM_DROP_DB
:
{
char
*
db
=
thd
->
strdup
(
packet
+
1
);
thread_safe_increment
(
com_stat
[
SQLCOM_DROP_DB
],
&
LOCK_thread_count
);
// null test to handle EOM
if
(
!
db
||
!
stripp_sp
(
db
)
||
check_db_name
(
db
))
{
...
...
@@ -903,6 +909,7 @@ bool do_command(THD *thd)
}
case
COM_BINLOG_DUMP
:
{
thread_safe_increment
(
com_other
,
&
LOCK_thread_count
);
slow_command
=
TRUE
;
if
(
check_access
(
thd
,
FILE_ACL
,
any_db
))
break
;
...
...
@@ -926,6 +933,7 @@ bool do_command(THD *thd)
case
COM_REFRESH
:
{
uint
options
=
(
uchar
)
packet
[
1
];
thread_safe_increment
(
com_stat
[
SQLCOM_FLUSH
],
&
LOCK_thread_count
);
if
(
check_access
(
thd
,
RELOAD_ACL
,
any_db
))
break
;
mysql_log
.
write
(
thd
,
command
,
NullS
);
...
...
@@ -936,6 +944,7 @@ bool do_command(THD *thd)
break
;
}
case
COM_SHUTDOWN
:
thread_safe_increment
(
com_other
,
&
LOCK_thread_count
);
if
(
check_access
(
thd
,
SHUTDOWN_ACL
,
any_db
))
break
;
/* purecov: inspected */
DBUG_PRINT
(
"quit"
,(
"Got shutdown command"
));
...
...
@@ -957,6 +966,7 @@ bool do_command(THD *thd)
case
COM_STATISTICS
:
{
mysql_log
.
write
(
thd
,
command
,
NullS
);
thread_safe_increment
(
com_stat
[
SQLCOM_SHOW_STATUS
],
&
LOCK_thread_count
);
char
buff
[
200
];
ulong
uptime
=
(
ulong
)
(
thd
->
start_time
-
start_time
);
sprintf
((
char
*
)
buff
,
...
...
@@ -975,9 +985,11 @@ bool do_command(THD *thd)
break
;
}
case
COM_PING
:
thread_safe_increment
(
com_other
,
&
LOCK_thread_count
);
send_ok
(
net
);
// Tell client we are alive
break
;
case
COM_PROCESS_INFO
:
thread_safe_increment
(
com_stat
[
SQLCOM_SHOW_PROCESSLIST
],
&
LOCK_thread_count
);
if
(
!
thd
->
priv_user
[
0
]
&&
check_process_priv
(
thd
))
break
;
mysql_log
.
write
(
thd
,
command
,
NullS
);
...
...
@@ -986,11 +998,13 @@ bool do_command(THD *thd)
break
;
case
COM_PROCESS_KILL
:
{
thread_safe_increment
(
com_stat
[
SQLCOM_KILL
],
&
LOCK_thread_count
);
ulong
id
=
(
ulong
)
uint4korr
(
packet
+
1
);
kill_one_thread
(
thd
,
id
);
break
;
}
case
COM_DEBUG
:
thread_safe_increment
(
com_other
,
&
LOCK_thread_count
);
if
(
check_process_priv
(
thd
))
break
;
/* purecov: inspected */
mysql_print_status
(
thd
);
...
...
@@ -1062,6 +1076,7 @@ mysql_execute_command(void)
// rules have been given and the table list says the query should not be
// replicated
thread_safe_increment
(
com_stat
[
lex
->
sql_command
],
&
LOCK_thread_count
);
switch
(
lex
->
sql_command
)
{
case
SQLCOM_SELECT
:
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment