Bug #28405 | please add a Com_change_user status variable | ||
---|---|---|---|
Submitted: | 13 May 2007 18:50 | Modified: | 14 May 2007 9:39 |
Reporter: | Shane Bester (Platinum Quality Contributor) | Email Updates: | |
Status: | Verified | Impact on me: | |
Category: | MySQL Server: General | Severity: | S4 (Feature request) |
Version: | 5.0, 5.1, 5.5 | OS: | Any |
Assigned to: | Geir Høydalsvik | CPU Architecture: | Any |
Tags: | Com_change_user, mysql_change_user |
[13 May 2007 18:50]
Shane Bester
[14 May 2007 9:39]
Valeriy Kravchuk
Thank you for a reasonable feature request.
[3 Mar 2010 5:08]
MySQL Verification Team
related: bug #51667 (Need status variable for com_ping)
[3 Mar 2010 11:03]
Mark Leith
I have extended the patch from Bug#51667 to include this as well. Based on the mysql-next-mr tree: === modified file 'sql/mysqld.cc' --- sql/mysqld.cc revid:alik@sun.com-20100114090008-3rsdmlp1w2mqgrhg +++ sql/mysqld.cc 2010-03-03 09:57:40 +0000 @@ -3131,6 +3131,7 @@ {"call_procedure", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_CALL]), SHOW_LONG_STATUS}, {"change_db", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_CHANGE_DB]), SHOW_LONG_STATUS}, {"change_master", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_CHANGE_MASTER]), SHOW_LONG_STATUS}, + {"change_user", (char*) offsetof(STATUS_VAR, com_change_user), SHOW_LONG_STATUS}, {"check", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_CHECK]), SHOW_LONG_STATUS}, {"checksum", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_CHECKSUM]), SHOW_LONG_STATUS}, {"commit", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_COMMIT]), SHOW_LONG_STATUS}, @@ -3174,6 +3175,7 @@ {"load", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_LOAD]), SHOW_LONG_STATUS}, {"lock_tables", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_LOCK_TABLES]), SHOW_LONG_STATUS}, {"optimize", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_OPTIMIZE]), SHOW_LONG_STATUS}, + {"ping", (char*) offsetof(STATUS_VAR, com_ping), SHOW_LONG_STATUS}, {"preload_keys", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_PRELOAD_KEYS]), SHOW_LONG_STATUS}, {"prepare_sql", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_PREPARE]), SHOW_LONG_STATUS}, {"purge", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_PURGE]), SHOW_LONG_STATUS}, @@ -3350,11 +3352,13 @@ We have few debug-only commands in com_status_vars, only visible in debug builds. for simplicity we enable the assert only in debug builds - There are 8 Com_ variables which don't have corresponding SQLCOM_ values: + There are 10 Com_ variables which don't have corresponding SQLCOM_ values: (TODO strictly speaking they shouldn't be here, should not have Com_ prefix that is. Perhaps Stmt_ ? Comstmt_ ? Prepstmt_ ?) Com_admin_commands => com_other + Com_change_user => com_change_user + Com_ping => com_ping Com_stmt_close => com_stmt_close Com_stmt_execute => com_stmt_execute Com_stmt_fetch => com_stmt_fetch @@ -3368,7 +3372,7 @@ of SQLCOM_ constants. */ compile_time_assert(sizeof(com_status_vars)/sizeof(com_status_vars[0]) - 1 == - SQLCOM_END + 8); + SQLCOM_END + 10); #endif if (get_options(&remaining_argc, &remaining_argv)) === modified file 'sql/sql_class.h' --- sql/sql_class.h revid:alik@sun.com-20100114090008-3rsdmlp1w2mqgrhg +++ sql/sql_class.h 2010-03-03 09:56:18 +0000 @@ -443,6 +443,8 @@ ulong ha_discover_count; ulong ha_savepoint_count; ulong ha_savepoint_rollback_count; + ulong com_ping; + ulong com_change_user; /* KEY_CACHE parts. These are copies of the original */ ulong key_blocks_changed; === modified file 'sql/sql_parse.cc' --- sql/sql_parse.cc revid:alik@sun.com-20100114090008-3rsdmlp1w2mqgrhg +++ sql/sql_parse.cc 2010-03-03 09:56:19 +0000 @@ -979,7 +979,7 @@ #endif case COM_CHANGE_USER: { - status_var_increment(thd->status_var.com_other); + status_var_increment(thd->status_var.com_change_user); char *user= (char*) packet, *packet_end= packet + packet_length; /* Safe because there is always a trailing \0 at the end of the packet */ char *passwd= strend(user)+1; @@ -1409,7 +1409,7 @@ break; } case COM_PING: - status_var_increment(thd->status_var.com_other); + status_var_increment(thd->status_var.com_ping); my_ok(thd); // Tell client we are alive break; case COM_PROCESS_INFO: