From: Date: March 27 2007 4:07pm Subject: bk commit into 5.1 tree (gluh:1.2504) BUG#27327 List-Archive: http://lists.mysql.com/commits/23014 X-Bug: 27327 Message-Id: <20070327140759.CE90324A0079@eagle.localdomain> Below is the list of changes that have just been committed into a local 5.1 repository of gluh. When gluh does a push these changes will be propagated to the main repository and, within 24 hours after the push, to the public repository. For information on how to access the public repository see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html ChangeSet@stripped, 2007-03-27 19:07:54+05:00, gluh@stripped +9 -0 Bug#27327 information_schema status views, variable_value conversion added convertion of Slave_running & SSL_session_cache_mode status variables into numeric values mysql-test/r/compress.result@stripped, 2007-03-27 19:07:52+05:00, gluh@stripped +3 -0 test result mysql-test/r/rpl_packet.result@stripped, 2007-03-27 19:07:52+05:00, gluh@stripped +6 -0 test result mysql-test/r/ssl.result@stripped, 2007-03-27 19:07:52+05:00, gluh@stripped +7 -0 test result mysql-test/t/compress.test@stripped, 2007-03-27 19:07:52+05:00, gluh@stripped +1 -0 test case mysql-test/t/rpl_packet.test@stripped, 2007-03-27 19:07:53+05:00, gluh@stripped +2 -0 test case mysql-test/t/ssl.test@stripped, 2007-03-27 19:07:53+05:00, gluh@stripped +8 -0 test case sql/mysqld.cc@stripped, 2007-03-27 19:07:53+05:00, gluh@stripped +11 -23 added convertion of Slave_running & SSL_session_cache_mode status variables into numeric values sql/sql_plugin.h@stripped, 2007-03-27 19:07:53+05:00, gluh@stripped +2 -1 added convertion of Slave_running & SSL_session_cache_mode status variables into numeric values sql/sql_show.cc@stripped, 2007-03-27 19:07:53+05:00, gluh@stripped +41 -0 added convertion of Slave_running & SSL_session_cache_mode status variables into numeric values # This is a BitKeeper patch. What follows are the unified diffs for the # set of deltas contained in the patch. The rest of the patch, the part # that BitKeeper cares about, is below these diffs. # User: gluh # Host: eagle.(none) # Root: /home/gluh/MySQL/Bugs/5.1.27327 --- 1.622/sql/mysqld.cc 2007-03-20 01:37:31 +04:00 +++ 1.623/sql/mysqld.cc 2007-03-27 19:07:53 +05:00 @@ -6510,10 +6510,11 @@ static int show_rpl_status(THD *thd, SHO static int show_slave_running(THD *thd, SHOW_VAR *var, char *buff) { - var->type= SHOW_CHAR; + var->type= SHOW_MY_BOOL; pthread_mutex_lock(&LOCK_active_mi); - var->value= const_cast((active_mi && active_mi->slave_running && - active_mi->rli.slave_running) ? "ON" : "OFF"); + var->value= buff; + *((my_bool *)buff)= (my_bool) (active_mi && active_mi->slave_running && + active_mi->rli.slave_running); pthread_mutex_unlock(&LOCK_active_mi); return 0; } @@ -6705,27 +6706,13 @@ static int show_ssl_ctx_get_verify_depth static int show_ssl_ctx_get_session_cache_mode(THD *thd, SHOW_VAR *var, char *buff) { - var->type= SHOW_CHAR; + var->type= SHOW_LONG; + var->value= buff; if (!ssl_acceptor_fd) - var->value= const_cast("NONE"); + *((long *)buff)= (long) -1; else - switch (SSL_CTX_get_session_cache_mode(ssl_acceptor_fd->ssl_context)) - { - case SSL_SESS_CACHE_OFF: - var->value= const_cast("OFF"); break; - case SSL_SESS_CACHE_CLIENT: - var->value= const_cast("CLIENT"); break; - case SSL_SESS_CACHE_SERVER: - var->value= const_cast("SERVER"); break; - case SSL_SESS_CACHE_BOTH: - var->value= const_cast("BOTH"); break; - case SSL_SESS_CACHE_NO_AUTO_CLEAR: - var->value= const_cast("NO_AUTO_CLEAR"); break; - case SSL_SESS_CACHE_NO_INTERNAL_LOOKUP: - var->value= const_cast("NO_INTERNAL_LOOKUP"); break; - default: - var->value= const_cast("Unknown"); break; - } + *((long *)buff)= + (long) SSL_CTX_get_session_cache_mode(ssl_acceptor_fd->ssl_context); return 0; } @@ -7015,7 +7002,8 @@ SHOW_VAR status_vars[]= { {"Ssl_finished_connects", (char*) &show_ssl_ctx_sess_connect_good, SHOW_FUNC}, {"Ssl_session_cache_hits", (char*) &show_ssl_ctx_sess_hits, SHOW_FUNC}, {"Ssl_session_cache_misses", (char*) &show_ssl_ctx_sess_misses, SHOW_FUNC}, - {"Ssl_session_cache_mode", (char*) &show_ssl_ctx_get_session_cache_mode, SHOW_FUNC}, + {"Ssl_session_cache_mode", (char*) &show_ssl_ctx_get_session_cache_mode, + SHOW_SSL_SESSION_CACHE_MODE}, {"Ssl_session_cache_overflows", (char*) &show_ssl_ctx_sess_cache_full, SHOW_FUNC}, {"Ssl_session_cache_size", (char*) &show_ssl_ctx_sess_get_cache_size, SHOW_FUNC}, {"Ssl_session_cache_timeouts", (char*) &show_ssl_ctx_sess_timeouts, SHOW_FUNC}, --- 1.400/sql/sql_show.cc 2007-03-20 01:44:15 +04:00 +++ 1.401/sql/sql_show.cc 2007-03-27 19:07:53 +05:00 @@ -2135,6 +2135,44 @@ static bool show_status_array(THD *thd, value= (char*) dflt_key_cache + (ulong)value; end= longlong10_to_str(*(longlong*) value, buff, 10); break; +#ifdef HAVE_OPENSSL + case SHOW_SSL_SESSION_CACHE_MODE: + { + long tmp_val= *(long*) value; + if (tmp_val == -1) + end= strmov(buff, "NONE"); + else + { + const char *tmp_str; + switch (tmp_val) + { + case SSL_SESS_CACHE_OFF: + tmp_str= "OFF"; + break; + case SSL_SESS_CACHE_CLIENT: + tmp_str= "CLIENT"; + break; + case SSL_SESS_CACHE_SERVER: + tmp_str= "SERVER"; + break; + case SSL_SESS_CACHE_BOTH: + tmp_str= "BOTH"; + break; + case SSL_SESS_CACHE_NO_AUTO_CLEAR: + tmp_str= "NO_AUTO_CLEAR"; + break; + case SSL_SESS_CACHE_NO_INTERNAL_LOOKUP: + tmp_str= "NO_INTERNAL_LOOKUP"; + break; + default: + tmp_str= "Unknown"; + break; + } + end= strmov(buff, tmp_str); + } + break; + } +#endif case SHOW_UNDEF: break; // Return empty string case SHOW_SYS: // Cannot happen @@ -5218,6 +5256,9 @@ int fill_schema_status(THD *thd, SHOW_VA case SHOW_LONG_STATUS: value= (char*) status_var + (ulong) value; /* fall through */ +#ifdef HAVE_OPENSSL + case SHOW_SSL_SESSION_CACHE_MODE: +#endif case SHOW_LONG: case SHOW_LONG_NOFLUSH: /* the difference lies in refresh_status() */ table->field[1]->store((longlong) *(long*) value, false); --- 1.4/mysql-test/r/rpl_packet.result 2007-03-16 18:25:15 +04:00 +++ 1.5/mysql-test/r/rpl_packet.result 2007-03-27 19:07:52 +05:00 @@ -14,6 +14,12 @@ INSERT INTO `t1`(`f1`) VALUES ('aaaaaaaa select count(*) from `DB_NAME_OF_MAX_LENGTH_AKA_NAME_LEN_64_BYTES_____________________`.`t1` /* must be 1 */; count(*) 1 +SHOW STATUS LIKE 'Slave_running'; +Variable_name Value +Slave_running ON +select * from information_schema.session_status where variable_name= 'SLAVE_RUNNING'; +VARIABLE_NAME VARIABLE_VALUE +SLAVE_RUNNING 1.0000000 drop database DB_NAME_OF_MAX_LENGTH_AKA_NAME_LEN_64_BYTES_____________________; SET @@global.max_allowed_packet=4096; SET @@global.net_buffer_length=4096; --- 1.4/mysql-test/t/rpl_packet.test 2007-03-16 18:25:15 +04:00 +++ 1.5/mysql-test/t/rpl_packet.test 2007-03-27 19:07:53 +05:00 @@ -29,6 +29,8 @@ connection slave; sync_with_master; eval select count(*) from `$db`.`t1` /* must be 1 */; +SHOW STATUS LIKE 'Slave_running'; +select * from information_schema.session_status where variable_name= 'SLAVE_RUNNING'; connection master; eval drop database $db; save_master_pos; --- 1.13/sql/sql_plugin.h 2006-12-23 23:33:29 +04:00 +++ 1.14/sql/sql_plugin.h 2007-03-27 19:07:53 +05:00 @@ -22,7 +22,8 @@ */ #define SHOW_FUNC SHOW_FUNC, SHOW_KEY_CACHE_LONG, SHOW_KEY_CACHE_LONGLONG, \ SHOW_LONG_STATUS, SHOW_DOUBLE_STATUS, SHOW_HAVE, \ - SHOW_MY_BOOL, SHOW_HA_ROWS, SHOW_SYS, SHOW_LONG_NOFLUSH + SHOW_MY_BOOL, SHOW_HA_ROWS, SHOW_SYS, SHOW_LONG_NOFLUSH, \ + SHOW_SSL_SESSION_CACHE_MODE #include #undef SHOW_FUNC typedef enum enum_mysql_show_type SHOW_TYPE; --- 1.7/mysql-test/r/compress.result 2006-07-28 22:26:55 +05:00 +++ 1.8/mysql-test/r/compress.result 2007-03-27 19:07:52 +05:00 @@ -1,6 +1,9 @@ SHOW STATUS LIKE 'Compression'; Variable_name Value Compression ON +select * from information_schema.session_status where variable_name= 'COMPRESSION'; +VARIABLE_NAME VARIABLE_VALUE +COMPRESSION 1.0000000 drop table if exists t1,t2,t3,t4; CREATE TABLE t1 ( Period smallint(4) unsigned zerofill DEFAULT '0000' NOT NULL, --- 1.7/mysql-test/r/ssl.result 2006-07-30 19:25:48 +05:00 +++ 1.8/mysql-test/r/ssl.result 2007-03-27 19:07:52 +05:00 @@ -2157,3 +2157,10 @@ drop table t1; SHOW STATUS LIKE 'Ssl_cipher'; Variable_name Value Ssl_cipher DHE-RSA-AES256-SHA +show status like 'Ssl_session_cache_mode'; +Variable_name Value +Ssl_session_cache_mode # +select * from information_schema.session_status +where variable_name = 'SSL_SESSION_CACHE_MODE'; +VARIABLE_NAME VARIABLE_VALUE +SSL_SESSION_CACHE_MODE # --- 1.5/mysql-test/t/compress.test 2006-02-25 22:35:06 +04:00 +++ 1.6/mysql-test/t/compress.test 2007-03-27 19:07:52 +05:00 @@ -10,6 +10,7 @@ connect (comp_con,localhost,root,,,,,COM # Check compression turned on SHOW STATUS LIKE 'Compression'; +select * from information_schema.session_status where variable_name= 'COMPRESSION'; # Source select test case -- source include/common-tests.inc --- 1.4/mysql-test/t/ssl.test 2007-03-05 13:03:40 +04:00 +++ 1.5/mysql-test/t/ssl.test 2007-03-27 19:07:53 +05:00 @@ -14,4 +14,12 @@ SHOW STATUS LIKE 'Ssl_cipher'; # Check ssl turned on SHOW STATUS LIKE 'Ssl_cipher'; +# +#Bug#27327 information_schema status views, variable_value conversion +# +--replace_column 2 # +show status like 'Ssl_session_cache_mode'; +--replace_column 2 # +select * from information_schema.session_status +where variable_name = 'SSL_SESSION_CACHE_MODE';