Loading mysql-test/r/ps.result +52 −49 Original line number Diff line number Diff line Loading @@ -795,12 +795,12 @@ set @old_max_prepared_stmt_count= @@max_prepared_stmt_count; show variables like 'max_prepared_stmt_count'; Variable_name Value max_prepared_stmt_count 16382 show variables like 'prepared_stmt_count'; show status like 'prepared_stmt_count'; Variable_name Value prepared_stmt_count 0 select @@max_prepared_stmt_count, @@prepared_stmt_count; @@max_prepared_stmt_count @@prepared_stmt_count 16382 0 Prepared_stmt_count 0 select @@max_prepared_stmt_count; @@max_prepared_stmt_count 16382 set global max_prepared_stmt_count=-1; select @@max_prepared_stmt_count; @@max_prepared_stmt_count Loading @@ -819,67 +819,70 @@ set max_prepared_stmt_count=1; ERROR HY000: Variable 'max_prepared_stmt_count' is a GLOBAL variable and should be set with SET GLOBAL set local max_prepared_stmt_count=1; ERROR HY000: Variable 'max_prepared_stmt_count' is a GLOBAL variable and should be set with SET GLOBAL set local prepared_stmt_count=0; ERROR HY000: Variable 'prepared_stmt_count' is a read only variable set @@prepared_stmt_count=0; ERROR HY000: Variable 'prepared_stmt_count' is a read only variable set global prepared_stmt_count=1; ERROR HY000: Variable 'prepared_stmt_count' is a read only variable set global max_prepared_stmt_count=1; select @@max_prepared_stmt_count; @@max_prepared_stmt_count 1 set global max_prepared_stmt_count=0; select @@max_prepared_stmt_count, @@prepared_stmt_count; @@max_prepared_stmt_count @@prepared_stmt_count 0 0 select @@max_prepared_stmt_count; @@max_prepared_stmt_count 0 show status like 'prepared_stmt_count'; Variable_name Value Prepared_stmt_count 0 prepare stmt from "select 1"; ERROR 42000: Can't create more than max_prepared_stmt_count statements (current value: 0) select @@prepared_stmt_count; @@prepared_stmt_count 0 show status like 'prepared_stmt_count'; Variable_name Value Prepared_stmt_count 0 set global max_prepared_stmt_count=1; prepare stmt from "select 1"; select @@prepared_stmt_count; @@prepared_stmt_count 1 show status like 'prepared_stmt_count'; Variable_name Value Prepared_stmt_count 1 prepare stmt1 from "select 1"; ERROR 42000: Can't create more than max_prepared_stmt_count statements (current value: 1) select @@prepared_stmt_count; @@prepared_stmt_count 1 show status like 'prepared_stmt_count'; Variable_name Value Prepared_stmt_count 1 deallocate prepare stmt; select @@prepared_stmt_count; @@prepared_stmt_count 0 show status like 'prepared_stmt_count'; Variable_name Value Prepared_stmt_count 0 prepare stmt from "select 1"; select @@prepared_stmt_count; @@prepared_stmt_count 1 show status like 'prepared_stmt_count'; Variable_name Value Prepared_stmt_count 1 prepare stmt from "select 2"; select @@prepared_stmt_count; @@prepared_stmt_count show status like 'prepared_stmt_count'; Variable_name Value Prepared_stmt_count 1 show status like 'prepared_stmt_count'; Variable_name Value Prepared_stmt_count 1 select @@max_prepared_stmt_count; @@max_prepared_stmt_count 1 select @@prepared_stmt_count, @@max_prepared_stmt_count; @@prepared_stmt_count @@max_prepared_stmt_count 1 1 set global max_prepared_stmt_count=0; prepare stmt from "select 1"; ERROR 42000: Can't create more than max_prepared_stmt_count statements (current value: 0) execute stmt; ERROR HY000: Unknown prepared statement handler (stmt) given to EXECUTE select @@prepared_stmt_count; @@prepared_stmt_count 0 show status like 'prepared_stmt_count'; Variable_name Value Prepared_stmt_count 0 prepare stmt from "select 1"; ERROR 42000: Can't create more than max_prepared_stmt_count statements (current value: 0) select @@prepared_stmt_count; @@prepared_stmt_count 0 show status like 'prepared_stmt_count'; Variable_name Value Prepared_stmt_count 0 set global max_prepared_stmt_count=3; select @@max_prepared_stmt_count, @@prepared_stmt_count; @@max_prepared_stmt_count @@prepared_stmt_count 3 0 select @@max_prepared_stmt_count; @@max_prepared_stmt_count 3 show status like 'prepared_stmt_count'; Variable_name Value Prepared_stmt_count 0 prepare stmt from "select 1"; prepare stmt from "select 2"; prepare stmt1 from "select 3"; Loading @@ -887,13 +890,13 @@ prepare stmt2 from "select 4"; ERROR 42000: Can't create more than max_prepared_stmt_count statements (current value: 3) prepare stmt2 from "select 4"; ERROR 42000: Can't create more than max_prepared_stmt_count statements (current value: 3) select @@max_prepared_stmt_count, @@prepared_stmt_count; @@max_prepared_stmt_count @@prepared_stmt_count 3 3 select @@max_prepared_stmt_count; @@max_prepared_stmt_count 3 show status like 'prepared_stmt_count'; Variable_name Value Prepared_stmt_count 3 deallocate prepare stmt; select @@max_prepared_stmt_count, @@prepared_stmt_count; @@max_prepared_stmt_count @@prepared_stmt_count 3 0 set global max_prepared_stmt_count= @old_max_prepared_stmt_count; drop table if exists t1; create temporary table if not exists t1 (a1 int); Loading mysql-test/t/ps.test +28 −34 Original line number Diff line number Diff line Loading @@ -848,6 +848,9 @@ drop table t1; # Bug#16365 Prepared Statements: DoS with too many open statements # Check that the limit @@max_prpeared_stmt_count works. # # This is also the test for bug#23159 prepared_stmt_count should be # status variable. # # Save the old value set @old_max_prepared_stmt_count= @@max_prepared_stmt_count; # Loading @@ -857,17 +860,17 @@ set @old_max_prepared_stmt_count= @@max_prepared_stmt_count; # --disable_ps_protocol # # A. Check that the new variables are present in SHOW VARIABLES list. # A. Check that the new variables are present in SHOW VARIABLES and # SHOW STATUS lists. # show variables like 'max_prepared_stmt_count'; show variables like 'prepared_stmt_count'; show status like 'prepared_stmt_count'; # # B. Check that the new variables are selectable. # B. Check that the new system variable is selectable. # select @@max_prepared_stmt_count, @@prepared_stmt_count; select @@max_prepared_stmt_count; # # C. Check that max_prepared_stmt_count is settable (global only), # whereas prepared_stmt_count is readonly. # C. Check that max_prepared_stmt_count is settable (global only). # set global max_prepared_stmt_count=-1; select @@max_prepared_stmt_count; Loading @@ -881,12 +884,6 @@ set @@max_prepared_stmt_count=1; set max_prepared_stmt_count=1; --error ER_GLOBAL_VARIABLE set local max_prepared_stmt_count=1; --error ER_INCORRECT_GLOBAL_LOCAL_VAR set local prepared_stmt_count=0; --error ER_INCORRECT_GLOBAL_LOCAL_VAR set @@prepared_stmt_count=0; --error ER_INCORRECT_GLOBAL_LOCAL_VAR set global prepared_stmt_count=1; # set to a reasonable limit works set global max_prepared_stmt_count=1; select @@max_prepared_stmt_count; Loading @@ -894,47 +891,50 @@ select @@max_prepared_stmt_count; # D. Check that the variables actually work. # set global max_prepared_stmt_count=0; select @@max_prepared_stmt_count, @@prepared_stmt_count; select @@max_prepared_stmt_count; show status like 'prepared_stmt_count'; --error ER_MAX_PREPARED_STMT_COUNT_REACHED prepare stmt from "select 1"; select @@prepared_stmt_count; show status like 'prepared_stmt_count'; set global max_prepared_stmt_count=1; prepare stmt from "select 1"; select @@prepared_stmt_count; show status like 'prepared_stmt_count'; --error ER_MAX_PREPARED_STMT_COUNT_REACHED prepare stmt1 from "select 1"; select @@prepared_stmt_count; show status like 'prepared_stmt_count'; deallocate prepare stmt; select @@prepared_stmt_count; show status like 'prepared_stmt_count'; # # E. Check that we can prepare a statement with the same name # successfully, without hitting the limit. # prepare stmt from "select 1"; select @@prepared_stmt_count; show status like 'prepared_stmt_count'; prepare stmt from "select 2"; select @@prepared_stmt_count; show status like 'prepared_stmt_count'; # # F. We can set the max below the current count. In this case no new # statements should be allowed to prepare. # select @@prepared_stmt_count, @@max_prepared_stmt_count; show status like 'prepared_stmt_count'; select @@max_prepared_stmt_count; set global max_prepared_stmt_count=0; --error ER_MAX_PREPARED_STMT_COUNT_REACHED prepare stmt from "select 1"; # Result: the old statement is deallocated, the new is not created. --error 1243 # ER_UNKNOWN_STMT_HANDLER --error ER_UNKNOWN_STMT_HANDLER execute stmt; select @@prepared_stmt_count; show status like 'prepared_stmt_count'; --error ER_MAX_PREPARED_STMT_COUNT_REACHED prepare stmt from "select 1"; select @@prepared_stmt_count; show status like 'prepared_stmt_count'; # # G. Show that the variables are up to date even after a connection with all # statements in it was terminated. # set global max_prepared_stmt_count=3; select @@max_prepared_stmt_count, @@prepared_stmt_count; select @@max_prepared_stmt_count; show status like 'prepared_stmt_count'; prepare stmt from "select 1"; connect (con1,localhost,root,,); connection con1; Loading @@ -945,24 +945,18 @@ prepare stmt2 from "select 4"; connection default; --error ER_MAX_PREPARED_STMT_COUNT_REACHED prepare stmt2 from "select 4"; select @@max_prepared_stmt_count, @@prepared_stmt_count; select @@max_prepared_stmt_count; show status like 'prepared_stmt_count'; disconnect con1; connection default; # Wait for the connection to die: deal with a possible race deallocate prepare stmt; let $count= `select @@prepared_stmt_count`; if ($count) { --sleep 2 let $count= `select @@prepared_stmt_count`; } select @@max_prepared_stmt_count, @@prepared_stmt_count; # # Restore the old value. # set global max_prepared_stmt_count= @old_max_prepared_stmt_count; --enable_ps_protocol # # Bug#19399 "Stored Procedures 'Lost Connection' when dropping/creating # tables" Loading sql/mysqld.cc +2 −0 Original line number Diff line number Diff line Loading @@ -6177,6 +6177,7 @@ struct show_var_st status_vars[]= { {"Open_streams", (char*) &my_stream_opened, SHOW_LONG_CONST}, {"Open_tables", (char*) 0, SHOW_OPENTABLES}, {"Opened_tables", (char*) offsetof(STATUS_VAR, opened_tables), SHOW_LONG_STATUS}, {"Prepared_stmt_count", (char*) &prepared_stmt_count, SHOW_LONG_CONST}, #ifdef HAVE_QUERY_CACHE {"Qcache_free_blocks", (char*) &query_cache.free_memory_blocks, SHOW_LONG_CONST}, {"Qcache_free_memory", (char*) &query_cache.free_memory, SHOW_LONG_CONST}, Loading Loading @@ -6346,6 +6347,7 @@ static void mysql_init_variables(void) binlog_cache_use= binlog_cache_disk_use= 0; max_used_connections= slow_launch_threads = 0; mysqld_user= mysqld_chroot= opt_init_file= opt_bin_logname = 0; prepared_stmt_count= 0; errmesg= 0; mysqld_unix_port= opt_mysql_tmpdir= my_bind_addr_str= NullS; bzero((gptr) &mysql_tmpdir_list, sizeof(mysql_tmpdir_list)); Loading sql/set_var.cc +0 −15 Original line number Diff line number Diff line Loading @@ -121,7 +121,6 @@ static KEY_CACHE *create_key_cache(const char *name, uint length); void fix_sql_mode_var(THD *thd, enum_var_type type); static byte *get_error_count(THD *thd); static byte *get_warning_count(THD *thd); static byte *get_prepared_stmt_count(THD *thd); static byte *get_have_innodb(THD *thd); static byte *get_tmpdir(THD *thd); Loading Loading @@ -567,9 +566,6 @@ static sys_var_readonly sys_warning_count("warning_count", OPT_SESSION, SHOW_LONG, get_warning_count); static sys_var_readonly sys_prepared_stmt_count("prepared_stmt_count", OPT_GLOBAL, SHOW_LONG, get_prepared_stmt_count); /* alias for last_insert_id() to be compatible with Sybase */ #ifdef HAVE_REPLICATION Loading Loading @@ -701,7 +697,6 @@ sys_var *sys_variables[]= &sys_optimizer_prune_level, &sys_optimizer_search_depth, &sys_preload_buff_size, &sys_prepared_stmt_count, &sys_pseudo_thread_id, &sys_query_alloc_block_size, &sys_query_cache_size, Loading Loading @@ -1008,7 +1003,6 @@ struct show_var_st init_vars[]= { {"pid_file", (char*) pidfile_name, SHOW_CHAR}, {"port", (char*) &mysqld_port, SHOW_INT}, {sys_preload_buff_size.name, (char*) &sys_preload_buff_size, SHOW_SYS}, {sys_prepared_stmt_count.name, (char*) &sys_prepared_stmt_count, SHOW_SYS}, {"protocol_version", (char*) &protocol_version, SHOW_INT}, {sys_query_alloc_block_size.name, (char*) &sys_query_alloc_block_size, SHOW_SYS}, Loading Loading @@ -2946,15 +2940,6 @@ static byte *get_have_innodb(THD *thd) } static byte *get_prepared_stmt_count(THD *thd) { pthread_mutex_lock(&LOCK_prepared_stmt_count); thd->sys_var_tmp.ulong_value= prepared_stmt_count; pthread_mutex_unlock(&LOCK_prepared_stmt_count); return (byte*) &thd->sys_var_tmp.ulong_value; } /* Get the tmpdir that was specified or chosen by default Loading Loading
mysql-test/r/ps.result +52 −49 Original line number Diff line number Diff line Loading @@ -795,12 +795,12 @@ set @old_max_prepared_stmt_count= @@max_prepared_stmt_count; show variables like 'max_prepared_stmt_count'; Variable_name Value max_prepared_stmt_count 16382 show variables like 'prepared_stmt_count'; show status like 'prepared_stmt_count'; Variable_name Value prepared_stmt_count 0 select @@max_prepared_stmt_count, @@prepared_stmt_count; @@max_prepared_stmt_count @@prepared_stmt_count 16382 0 Prepared_stmt_count 0 select @@max_prepared_stmt_count; @@max_prepared_stmt_count 16382 set global max_prepared_stmt_count=-1; select @@max_prepared_stmt_count; @@max_prepared_stmt_count Loading @@ -819,67 +819,70 @@ set max_prepared_stmt_count=1; ERROR HY000: Variable 'max_prepared_stmt_count' is a GLOBAL variable and should be set with SET GLOBAL set local max_prepared_stmt_count=1; ERROR HY000: Variable 'max_prepared_stmt_count' is a GLOBAL variable and should be set with SET GLOBAL set local prepared_stmt_count=0; ERROR HY000: Variable 'prepared_stmt_count' is a read only variable set @@prepared_stmt_count=0; ERROR HY000: Variable 'prepared_stmt_count' is a read only variable set global prepared_stmt_count=1; ERROR HY000: Variable 'prepared_stmt_count' is a read only variable set global max_prepared_stmt_count=1; select @@max_prepared_stmt_count; @@max_prepared_stmt_count 1 set global max_prepared_stmt_count=0; select @@max_prepared_stmt_count, @@prepared_stmt_count; @@max_prepared_stmt_count @@prepared_stmt_count 0 0 select @@max_prepared_stmt_count; @@max_prepared_stmt_count 0 show status like 'prepared_stmt_count'; Variable_name Value Prepared_stmt_count 0 prepare stmt from "select 1"; ERROR 42000: Can't create more than max_prepared_stmt_count statements (current value: 0) select @@prepared_stmt_count; @@prepared_stmt_count 0 show status like 'prepared_stmt_count'; Variable_name Value Prepared_stmt_count 0 set global max_prepared_stmt_count=1; prepare stmt from "select 1"; select @@prepared_stmt_count; @@prepared_stmt_count 1 show status like 'prepared_stmt_count'; Variable_name Value Prepared_stmt_count 1 prepare stmt1 from "select 1"; ERROR 42000: Can't create more than max_prepared_stmt_count statements (current value: 1) select @@prepared_stmt_count; @@prepared_stmt_count 1 show status like 'prepared_stmt_count'; Variable_name Value Prepared_stmt_count 1 deallocate prepare stmt; select @@prepared_stmt_count; @@prepared_stmt_count 0 show status like 'prepared_stmt_count'; Variable_name Value Prepared_stmt_count 0 prepare stmt from "select 1"; select @@prepared_stmt_count; @@prepared_stmt_count 1 show status like 'prepared_stmt_count'; Variable_name Value Prepared_stmt_count 1 prepare stmt from "select 2"; select @@prepared_stmt_count; @@prepared_stmt_count show status like 'prepared_stmt_count'; Variable_name Value Prepared_stmt_count 1 show status like 'prepared_stmt_count'; Variable_name Value Prepared_stmt_count 1 select @@max_prepared_stmt_count; @@max_prepared_stmt_count 1 select @@prepared_stmt_count, @@max_prepared_stmt_count; @@prepared_stmt_count @@max_prepared_stmt_count 1 1 set global max_prepared_stmt_count=0; prepare stmt from "select 1"; ERROR 42000: Can't create more than max_prepared_stmt_count statements (current value: 0) execute stmt; ERROR HY000: Unknown prepared statement handler (stmt) given to EXECUTE select @@prepared_stmt_count; @@prepared_stmt_count 0 show status like 'prepared_stmt_count'; Variable_name Value Prepared_stmt_count 0 prepare stmt from "select 1"; ERROR 42000: Can't create more than max_prepared_stmt_count statements (current value: 0) select @@prepared_stmt_count; @@prepared_stmt_count 0 show status like 'prepared_stmt_count'; Variable_name Value Prepared_stmt_count 0 set global max_prepared_stmt_count=3; select @@max_prepared_stmt_count, @@prepared_stmt_count; @@max_prepared_stmt_count @@prepared_stmt_count 3 0 select @@max_prepared_stmt_count; @@max_prepared_stmt_count 3 show status like 'prepared_stmt_count'; Variable_name Value Prepared_stmt_count 0 prepare stmt from "select 1"; prepare stmt from "select 2"; prepare stmt1 from "select 3"; Loading @@ -887,13 +890,13 @@ prepare stmt2 from "select 4"; ERROR 42000: Can't create more than max_prepared_stmt_count statements (current value: 3) prepare stmt2 from "select 4"; ERROR 42000: Can't create more than max_prepared_stmt_count statements (current value: 3) select @@max_prepared_stmt_count, @@prepared_stmt_count; @@max_prepared_stmt_count @@prepared_stmt_count 3 3 select @@max_prepared_stmt_count; @@max_prepared_stmt_count 3 show status like 'prepared_stmt_count'; Variable_name Value Prepared_stmt_count 3 deallocate prepare stmt; select @@max_prepared_stmt_count, @@prepared_stmt_count; @@max_prepared_stmt_count @@prepared_stmt_count 3 0 set global max_prepared_stmt_count= @old_max_prepared_stmt_count; drop table if exists t1; create temporary table if not exists t1 (a1 int); Loading
mysql-test/t/ps.test +28 −34 Original line number Diff line number Diff line Loading @@ -848,6 +848,9 @@ drop table t1; # Bug#16365 Prepared Statements: DoS with too many open statements # Check that the limit @@max_prpeared_stmt_count works. # # This is also the test for bug#23159 prepared_stmt_count should be # status variable. # # Save the old value set @old_max_prepared_stmt_count= @@max_prepared_stmt_count; # Loading @@ -857,17 +860,17 @@ set @old_max_prepared_stmt_count= @@max_prepared_stmt_count; # --disable_ps_protocol # # A. Check that the new variables are present in SHOW VARIABLES list. # A. Check that the new variables are present in SHOW VARIABLES and # SHOW STATUS lists. # show variables like 'max_prepared_stmt_count'; show variables like 'prepared_stmt_count'; show status like 'prepared_stmt_count'; # # B. Check that the new variables are selectable. # B. Check that the new system variable is selectable. # select @@max_prepared_stmt_count, @@prepared_stmt_count; select @@max_prepared_stmt_count; # # C. Check that max_prepared_stmt_count is settable (global only), # whereas prepared_stmt_count is readonly. # C. Check that max_prepared_stmt_count is settable (global only). # set global max_prepared_stmt_count=-1; select @@max_prepared_stmt_count; Loading @@ -881,12 +884,6 @@ set @@max_prepared_stmt_count=1; set max_prepared_stmt_count=1; --error ER_GLOBAL_VARIABLE set local max_prepared_stmt_count=1; --error ER_INCORRECT_GLOBAL_LOCAL_VAR set local prepared_stmt_count=0; --error ER_INCORRECT_GLOBAL_LOCAL_VAR set @@prepared_stmt_count=0; --error ER_INCORRECT_GLOBAL_LOCAL_VAR set global prepared_stmt_count=1; # set to a reasonable limit works set global max_prepared_stmt_count=1; select @@max_prepared_stmt_count; Loading @@ -894,47 +891,50 @@ select @@max_prepared_stmt_count; # D. Check that the variables actually work. # set global max_prepared_stmt_count=0; select @@max_prepared_stmt_count, @@prepared_stmt_count; select @@max_prepared_stmt_count; show status like 'prepared_stmt_count'; --error ER_MAX_PREPARED_STMT_COUNT_REACHED prepare stmt from "select 1"; select @@prepared_stmt_count; show status like 'prepared_stmt_count'; set global max_prepared_stmt_count=1; prepare stmt from "select 1"; select @@prepared_stmt_count; show status like 'prepared_stmt_count'; --error ER_MAX_PREPARED_STMT_COUNT_REACHED prepare stmt1 from "select 1"; select @@prepared_stmt_count; show status like 'prepared_stmt_count'; deallocate prepare stmt; select @@prepared_stmt_count; show status like 'prepared_stmt_count'; # # E. Check that we can prepare a statement with the same name # successfully, without hitting the limit. # prepare stmt from "select 1"; select @@prepared_stmt_count; show status like 'prepared_stmt_count'; prepare stmt from "select 2"; select @@prepared_stmt_count; show status like 'prepared_stmt_count'; # # F. We can set the max below the current count. In this case no new # statements should be allowed to prepare. # select @@prepared_stmt_count, @@max_prepared_stmt_count; show status like 'prepared_stmt_count'; select @@max_prepared_stmt_count; set global max_prepared_stmt_count=0; --error ER_MAX_PREPARED_STMT_COUNT_REACHED prepare stmt from "select 1"; # Result: the old statement is deallocated, the new is not created. --error 1243 # ER_UNKNOWN_STMT_HANDLER --error ER_UNKNOWN_STMT_HANDLER execute stmt; select @@prepared_stmt_count; show status like 'prepared_stmt_count'; --error ER_MAX_PREPARED_STMT_COUNT_REACHED prepare stmt from "select 1"; select @@prepared_stmt_count; show status like 'prepared_stmt_count'; # # G. Show that the variables are up to date even after a connection with all # statements in it was terminated. # set global max_prepared_stmt_count=3; select @@max_prepared_stmt_count, @@prepared_stmt_count; select @@max_prepared_stmt_count; show status like 'prepared_stmt_count'; prepare stmt from "select 1"; connect (con1,localhost,root,,); connection con1; Loading @@ -945,24 +945,18 @@ prepare stmt2 from "select 4"; connection default; --error ER_MAX_PREPARED_STMT_COUNT_REACHED prepare stmt2 from "select 4"; select @@max_prepared_stmt_count, @@prepared_stmt_count; select @@max_prepared_stmt_count; show status like 'prepared_stmt_count'; disconnect con1; connection default; # Wait for the connection to die: deal with a possible race deallocate prepare stmt; let $count= `select @@prepared_stmt_count`; if ($count) { --sleep 2 let $count= `select @@prepared_stmt_count`; } select @@max_prepared_stmt_count, @@prepared_stmt_count; # # Restore the old value. # set global max_prepared_stmt_count= @old_max_prepared_stmt_count; --enable_ps_protocol # # Bug#19399 "Stored Procedures 'Lost Connection' when dropping/creating # tables" Loading
sql/mysqld.cc +2 −0 Original line number Diff line number Diff line Loading @@ -6177,6 +6177,7 @@ struct show_var_st status_vars[]= { {"Open_streams", (char*) &my_stream_opened, SHOW_LONG_CONST}, {"Open_tables", (char*) 0, SHOW_OPENTABLES}, {"Opened_tables", (char*) offsetof(STATUS_VAR, opened_tables), SHOW_LONG_STATUS}, {"Prepared_stmt_count", (char*) &prepared_stmt_count, SHOW_LONG_CONST}, #ifdef HAVE_QUERY_CACHE {"Qcache_free_blocks", (char*) &query_cache.free_memory_blocks, SHOW_LONG_CONST}, {"Qcache_free_memory", (char*) &query_cache.free_memory, SHOW_LONG_CONST}, Loading Loading @@ -6346,6 +6347,7 @@ static void mysql_init_variables(void) binlog_cache_use= binlog_cache_disk_use= 0; max_used_connections= slow_launch_threads = 0; mysqld_user= mysqld_chroot= opt_init_file= opt_bin_logname = 0; prepared_stmt_count= 0; errmesg= 0; mysqld_unix_port= opt_mysql_tmpdir= my_bind_addr_str= NullS; bzero((gptr) &mysql_tmpdir_list, sizeof(mysql_tmpdir_list)); Loading
sql/set_var.cc +0 −15 Original line number Diff line number Diff line Loading @@ -121,7 +121,6 @@ static KEY_CACHE *create_key_cache(const char *name, uint length); void fix_sql_mode_var(THD *thd, enum_var_type type); static byte *get_error_count(THD *thd); static byte *get_warning_count(THD *thd); static byte *get_prepared_stmt_count(THD *thd); static byte *get_have_innodb(THD *thd); static byte *get_tmpdir(THD *thd); Loading Loading @@ -567,9 +566,6 @@ static sys_var_readonly sys_warning_count("warning_count", OPT_SESSION, SHOW_LONG, get_warning_count); static sys_var_readonly sys_prepared_stmt_count("prepared_stmt_count", OPT_GLOBAL, SHOW_LONG, get_prepared_stmt_count); /* alias for last_insert_id() to be compatible with Sybase */ #ifdef HAVE_REPLICATION Loading Loading @@ -701,7 +697,6 @@ sys_var *sys_variables[]= &sys_optimizer_prune_level, &sys_optimizer_search_depth, &sys_preload_buff_size, &sys_prepared_stmt_count, &sys_pseudo_thread_id, &sys_query_alloc_block_size, &sys_query_cache_size, Loading Loading @@ -1008,7 +1003,6 @@ struct show_var_st init_vars[]= { {"pid_file", (char*) pidfile_name, SHOW_CHAR}, {"port", (char*) &mysqld_port, SHOW_INT}, {sys_preload_buff_size.name, (char*) &sys_preload_buff_size, SHOW_SYS}, {sys_prepared_stmt_count.name, (char*) &sys_prepared_stmt_count, SHOW_SYS}, {"protocol_version", (char*) &protocol_version, SHOW_INT}, {sys_query_alloc_block_size.name, (char*) &sys_query_alloc_block_size, SHOW_SYS}, Loading Loading @@ -2946,15 +2940,6 @@ static byte *get_have_innodb(THD *thd) } static byte *get_prepared_stmt_count(THD *thd) { pthread_mutex_lock(&LOCK_prepared_stmt_count); thd->sys_var_tmp.ulong_value= prepared_stmt_count; pthread_mutex_unlock(&LOCK_prepared_stmt_count); return (byte*) &thd->sys_var_tmp.ulong_value; } /* Get the tmpdir that was specified or chosen by default Loading