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
e12119dc
Commit
e12119dc
authored
Dec 13, 2001
by
unknown
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added status variables for all MySQL commands.
Docs/manual.texi: Changelog
parent
c0de7ffc
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 @
e12119dc
...
...
@@ -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 @
e12119dc
...
...
@@ -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 @
e12119dc
...
...
@@ -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 @
e12119dc
...
...
@@ -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 @
e12119dc
...
...
@@ -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