Commit 2b13192c authored by jimw@mysql.com's avatar jimw@mysql.com

Merge mysql.com:/home/jimw/my/mysql-5.0-1039

into  mysql.com:/home/jimw/my/mysql-5.0-clean
parents 49eeb1bb ebe38efa
...@@ -20,12 +20,6 @@ ...@@ -20,12 +20,6 @@
"Enable SSL for connection (automatically enabled with other flags). Disable with --skip-ssl.", "Enable SSL for connection (automatically enabled with other flags). Disable with --skip-ssl.",
(gptr*) &opt_use_ssl, (gptr*) &opt_use_ssl, 0, GET_BOOL, NO_ARG, 0, 0, 0, (gptr*) &opt_use_ssl, (gptr*) &opt_use_ssl, 0, GET_BOOL, NO_ARG, 0, 0, 0,
0, 0, 0}, 0, 0, 0},
{"ssl-key", OPT_SSL_KEY, "X509 key in PEM format (implies --ssl).",
(gptr*) &opt_ssl_key, (gptr*) &opt_ssl_key, 0, GET_STR, REQUIRED_ARG,
0, 0, 0, 0, 0, 0},
{"ssl-cert", OPT_SSL_CERT, "X509 cert in PEM format (implies --ssl).",
(gptr*) &opt_ssl_cert, (gptr*) &opt_ssl_cert, 0, GET_STR, REQUIRED_ARG,
0, 0, 0, 0, 0, 0},
{"ssl-ca", OPT_SSL_CA, {"ssl-ca", OPT_SSL_CA,
"CA file in PEM format (check OpenSSL docs, implies --ssl).", "CA file in PEM format (check OpenSSL docs, implies --ssl).",
(gptr*) &opt_ssl_ca, (gptr*) &opt_ssl_ca, 0, GET_STR, REQUIRED_ARG, (gptr*) &opt_ssl_ca, (gptr*) &opt_ssl_ca, 0, GET_STR, REQUIRED_ARG,
...@@ -34,9 +28,15 @@ ...@@ -34,9 +28,15 @@
"CA directory (check OpenSSL docs, implies --ssl).", "CA directory (check OpenSSL docs, implies --ssl).",
(gptr*) &opt_ssl_capath, (gptr*) &opt_ssl_capath, 0, GET_STR, REQUIRED_ARG, (gptr*) &opt_ssl_capath, (gptr*) &opt_ssl_capath, 0, GET_STR, REQUIRED_ARG,
0, 0, 0, 0, 0, 0}, 0, 0, 0, 0, 0, 0},
{"ssl-cert", OPT_SSL_CERT, "X509 cert in PEM format (implies --ssl).",
(gptr*) &opt_ssl_cert, (gptr*) &opt_ssl_cert, 0, GET_STR, REQUIRED_ARG,
0, 0, 0, 0, 0, 0},
{"ssl-cipher", OPT_SSL_CIPHER, "SSL cipher to use (implies --ssl).", {"ssl-cipher", OPT_SSL_CIPHER, "SSL cipher to use (implies --ssl).",
(gptr*) &opt_ssl_cipher, (gptr*) &opt_ssl_cipher, 0, GET_STR, REQUIRED_ARG, (gptr*) &opt_ssl_cipher, (gptr*) &opt_ssl_cipher, 0, GET_STR, REQUIRED_ARG,
0, 0, 0, 0, 0, 0}, 0, 0, 0, 0, 0, 0},
{"ssl-key", OPT_SSL_KEY, "X509 key in PEM format (implies --ssl).",
(gptr*) &opt_ssl_key, (gptr*) &opt_ssl_key, 0, GET_STR, REQUIRED_ARG,
0, 0, 0, 0, 0, 0},
#ifdef MYSQL_CLIENT #ifdef MYSQL_CLIENT
{"ssl-verify-server-cert", OPT_SSL_VERIFY_SERVER_CERT, {"ssl-verify-server-cert", OPT_SSL_VERIFY_SERVER_CERT,
"Verify server's \"Common Name\" in its cert against hostname used when connecting. This option is disabled by default.", "Verify server's \"Common Name\" in its cert against hostname used when connecting. This option is disabled by default.",
......
...@@ -15,13 +15,18 @@ ...@@ -15,13 +15,18 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
#ifdef HAVE_OPENSSL #ifdef HAVE_OPENSSL
static my_bool opt_use_ssl = 0; #ifdef SSL_VARS_NOT_STATIC
static char *opt_ssl_key = 0; #define SSL_STATIC
static char *opt_ssl_cert = 0; #else
static char *opt_ssl_ca = 0; #define SSL_STATIC static
static char *opt_ssl_capath = 0; #endif
static char *opt_ssl_cipher = 0; SSL_STATIC my_bool opt_use_ssl = 0;
SSL_STATIC char *opt_ssl_ca = 0;
SSL_STATIC char *opt_ssl_capath = 0;
SSL_STATIC char *opt_ssl_cert = 0;
SSL_STATIC char *opt_ssl_cipher = 0;
SSL_STATIC char *opt_ssl_key = 0;
#ifdef MYSQL_CLIENT #ifdef MYSQL_CLIENT
static my_bool opt_ssl_verify_server_cert= 0; SSL_STATIC my_bool opt_ssl_verify_server_cert= 0;
#endif #endif
#endif #endif
...@@ -639,6 +639,35 @@ select @@version, @@version_comment, @@version_compile_machine, ...@@ -639,6 +639,35 @@ select @@version, @@version_comment, @@version_compile_machine,
@@version_compile_os; @@version_compile_os;
@@version @@version_comment @@version_compile_machine @@version_compile_os @@version @@version_comment @@version_compile_machine @@version_compile_os
# # # # # # # #
select @@basedir, @@datadir, @@tmpdir;
@@basedir @@datadir @@tmpdir
# # #
show variables like 'basedir';
Variable_name Value
basedir #
show variables like 'datadir';
Variable_name Value
datadir #
show variables like 'tmpdir';
Variable_name Value
tmpdir #
select @@ssl_ca, @@ssl_capath, @@ssl_cert, @@ssl_cipher, @@ssl_key;
@@ssl_ca @@ssl_capath @@ssl_cert @@ssl_cipher @@ssl_key
# # # # #
show variables like 'ssl%';
Variable_name Value
ssl_ca #
ssl_capath #
ssl_cert #
ssl_cipher #
ssl_key #
select @@log_queries_not_using_indexes;
@@log_queries_not_using_indexes
0
show variables like 'log_queries_not_using_indexes';
Variable_name Value
log_queries_not_using_indexes OFF
End of 5.0 tests
set global binlog_cache_size =@my_binlog_cache_size; set global binlog_cache_size =@my_binlog_cache_size;
set global connect_timeout =@my_connect_timeout; set global connect_timeout =@my_connect_timeout;
set global delayed_insert_timeout =@my_delayed_insert_timeout; set global delayed_insert_timeout =@my_delayed_insert_timeout;
...@@ -666,4 +695,3 @@ set global server_id =@my_server_id; ...@@ -666,4 +695,3 @@ set global server_id =@my_server_id;
set global slow_launch_time =@my_slow_launch_time; set global slow_launch_time =@my_slow_launch_time;
set global storage_engine =@my_storage_engine; set global storage_engine =@my_storage_engine;
set global thread_cache_size =@my_thread_cache_size; set global thread_cache_size =@my_thread_cache_size;
End of 5.0 tests
...@@ -540,7 +540,42 @@ select @@version, @@version_comment, @@version_compile_machine, ...@@ -540,7 +540,42 @@ select @@version, @@version_comment, @@version_compile_machine,
@@version_compile_os; @@version_compile_os;
# #
# Bug #19263: variables.test doesn't clean up after itself (II/II -- restore) # Bug #1039: make tmpdir and datadir available as @@variables (also included
# basedir)
#
# Don't actually output, since it depends on the system
--replace_column 1 # 2 # 3 #
select @@basedir, @@datadir, @@tmpdir;
--replace_column 2 #
show variables like 'basedir';
--replace_column 2 #
show variables like 'datadir';
--replace_column 2 #
show variables like 'tmpdir';
#
# Bug #19606: make ssl settings available via SHOW VARIABLES and @@variables
#
# Don't actually output, since it depends on the system
--replace_column 1 # 2 # 3 # 4 # 5 #
select @@ssl_ca, @@ssl_capath, @@ssl_cert, @@ssl_cipher, @@ssl_key;
--replace_column 2 #
show variables like 'ssl%';
#
# Bug #19616: make log_queries_not_using_indexes available in SHOW VARIABLES
# and as @@log_queries_not_using_indexes
#
select @@log_queries_not_using_indexes;
show variables like 'log_queries_not_using_indexes';
--echo End of 5.0 tests
# This is at the very after the versioned tests, since it involves doing
# cleanup
#
# Bug #19263: variables.test doesn't clean up after itself (II/II --
# restore)
# #
set global binlog_cache_size =@my_binlog_cache_size; set global binlog_cache_size =@my_binlog_cache_size;
set global connect_timeout =@my_connect_timeout; set global connect_timeout =@my_connect_timeout;
...@@ -569,5 +604,3 @@ set global server_id =@my_server_id; ...@@ -569,5 +604,3 @@ set global server_id =@my_server_id;
set global slow_launch_time =@my_slow_launch_time; set global slow_launch_time =@my_slow_launch_time;
set global storage_engine =@my_storage_engine; set global storage_engine =@my_storage_engine;
set global thread_cache_size =@my_thread_cache_size; set global thread_cache_size =@my_thread_cache_size;
--echo End of 5.0 tests
...@@ -1179,6 +1179,7 @@ extern my_bool locked_in_memory; ...@@ -1179,6 +1179,7 @@ extern my_bool locked_in_memory;
extern bool opt_using_transactions, mysqld_embedded; extern bool opt_using_transactions, mysqld_embedded;
extern bool using_update_log, opt_large_files, server_id_supplied; extern bool using_update_log, opt_large_files, server_id_supplied;
extern bool opt_log, opt_update_log, opt_bin_log, opt_slow_log, opt_error_log; extern bool opt_log, opt_update_log, opt_bin_log, opt_slow_log, opt_error_log;
extern my_bool opt_log_queries_not_using_indexes;
extern bool opt_disable_networking, opt_skip_show_db; extern bool opt_disable_networking, opt_skip_show_db;
extern my_bool opt_character_set_client_handshake; extern my_bool opt_character_set_client_handshake;
extern bool volatile abort_loop, shutdown_in_progress, grant_option; extern bool volatile abort_loop, shutdown_in_progress, grant_option;
......
...@@ -311,7 +311,6 @@ static bool volatile ready_to_exit; ...@@ -311,7 +311,6 @@ static bool volatile ready_to_exit;
static my_bool opt_debugging= 0, opt_external_locking= 0, opt_console= 0; static my_bool opt_debugging= 0, opt_external_locking= 0, opt_console= 0;
static my_bool opt_bdb, opt_isam, opt_ndbcluster; static my_bool opt_bdb, opt_isam, opt_ndbcluster;
static my_bool opt_short_log_format= 0; static my_bool opt_short_log_format= 0;
static my_bool opt_log_queries_not_using_indexes= 0;
static uint kill_cached_threads, wake_thread; static uint kill_cached_threads, wake_thread;
static ulong killed_threads, thread_created; static ulong killed_threads, thread_created;
static ulong max_used_connections; static ulong max_used_connections;
...@@ -337,6 +336,7 @@ static my_bool opt_sync_bdb_logs; ...@@ -337,6 +336,7 @@ static my_bool opt_sync_bdb_logs;
/* Global variables */ /* Global variables */
bool opt_log, opt_update_log, opt_bin_log, opt_slow_log; bool opt_log, opt_update_log, opt_bin_log, opt_slow_log;
my_bool opt_log_queries_not_using_indexes= 0;
bool opt_error_log= IF_WIN(1,0); bool opt_error_log= IF_WIN(1,0);
bool opt_disable_networking=0, opt_skip_show_db=0; bool opt_disable_networking=0, opt_skip_show_db=0;
my_bool opt_character_set_client_handshake= 1; my_bool opt_character_set_client_handshake= 1;
...@@ -603,6 +603,7 @@ my_bool opt_enable_shared_memory; ...@@ -603,6 +603,7 @@ my_bool opt_enable_shared_memory;
HANDLE smem_event_connect_request= 0; HANDLE smem_event_connect_request= 0;
#endif #endif
#define SSL_VARS_NOT_STATIC
#include "sslopt-vars.h" #include "sslopt-vars.h"
#ifdef HAVE_OPENSSL #ifdef HAVE_OPENSSL
#include <openssl/crypto.h> #include <openssl/crypto.h>
......
...@@ -122,6 +122,7 @@ static byte *get_error_count(THD *thd); ...@@ -122,6 +122,7 @@ static byte *get_error_count(THD *thd);
static byte *get_warning_count(THD *thd); static byte *get_warning_count(THD *thd);
static byte *get_prepared_stmt_count(THD *thd); static byte *get_prepared_stmt_count(THD *thd);
static byte *get_have_innodb(THD *thd); static byte *get_have_innodb(THD *thd);
static byte *get_tmpdir(THD *thd);
/* /*
Variable definition list Variable definition list
...@@ -138,6 +139,7 @@ sys_var_thd_ulong sys_auto_increment_offset("auto_increment_offset", ...@@ -138,6 +139,7 @@ sys_var_thd_ulong sys_auto_increment_offset("auto_increment_offset",
sys_var_bool_ptr sys_automatic_sp_privileges("automatic_sp_privileges", sys_var_bool_ptr sys_automatic_sp_privileges("automatic_sp_privileges",
&sp_automatic_privileges); &sp_automatic_privileges);
sys_var_const_str sys_basedir("basedir", mysql_home);
sys_var_long_ptr sys_binlog_cache_size("binlog_cache_size", sys_var_long_ptr sys_binlog_cache_size("binlog_cache_size",
&binlog_cache_size); &binlog_cache_size);
sys_var_thd_ulong sys_bulk_insert_buff_size("bulk_insert_buffer_size", sys_var_thd_ulong sys_bulk_insert_buff_size("bulk_insert_buffer_size",
...@@ -161,6 +163,7 @@ sys_var_long_ptr sys_concurrent_insert("concurrent_insert", ...@@ -161,6 +163,7 @@ sys_var_long_ptr sys_concurrent_insert("concurrent_insert",
&myisam_concurrent_insert); &myisam_concurrent_insert);
sys_var_long_ptr sys_connect_timeout("connect_timeout", sys_var_long_ptr sys_connect_timeout("connect_timeout",
&connect_timeout); &connect_timeout);
sys_var_const_str sys_datadir("datadir", mysql_real_data_home);
sys_var_enum sys_delay_key_write("delay_key_write", sys_var_enum sys_delay_key_write("delay_key_write",
&delay_key_write_options, &delay_key_write_options,
&delay_key_write_typelib, &delay_key_write_typelib,
...@@ -208,6 +211,9 @@ sys_trust_routine_creators("log_bin_trust_routine_creators", ...@@ -208,6 +211,9 @@ sys_trust_routine_creators("log_bin_trust_routine_creators",
sys_var_bool_ptr sys_var_bool_ptr
sys_trust_function_creators("log_bin_trust_function_creators", sys_trust_function_creators("log_bin_trust_function_creators",
&trust_function_creators); &trust_function_creators);
sys_var_bool_ptr
sys_log_queries_not_using_indexes("log_queries_not_using_indexes",
&opt_log_queries_not_using_indexes);
sys_var_thd_ulong sys_log_warnings("log_warnings", &SV::log_warnings); sys_var_thd_ulong sys_log_warnings("log_warnings", &SV::log_warnings);
sys_var_thd_ulong sys_long_query_time("long_query_time", sys_var_thd_ulong sys_long_query_time("long_query_time",
&SV::long_query_time); &SV::long_query_time);
...@@ -331,6 +337,7 @@ sys_var_thd_ulong sys_query_alloc_block_size("query_alloc_block_size", ...@@ -331,6 +337,7 @@ sys_var_thd_ulong sys_query_alloc_block_size("query_alloc_block_size",
sys_var_thd_ulong sys_query_prealloc_size("query_prealloc_size", sys_var_thd_ulong sys_query_prealloc_size("query_prealloc_size",
&SV::query_prealloc_size, &SV::query_prealloc_size,
0, fix_thd_mem_root); 0, fix_thd_mem_root);
sys_var_readonly sys_tmpdir("tmpdir", OPT_GLOBAL, SHOW_CHAR, get_tmpdir);
sys_var_thd_ulong sys_trans_alloc_block_size("transaction_alloc_block_size", sys_var_thd_ulong sys_trans_alloc_block_size("transaction_alloc_block_size",
&SV::trans_alloc_block_size, &SV::trans_alloc_block_size,
0, fix_trans_mem_root); 0, fix_trans_mem_root);
...@@ -367,6 +374,21 @@ sys_var_thd_ulong sys_sort_buffer("sort_buffer_size", ...@@ -367,6 +374,21 @@ sys_var_thd_ulong sys_sort_buffer("sort_buffer_size",
&SV::sortbuff_size); &SV::sortbuff_size);
sys_var_thd_sql_mode sys_sql_mode("sql_mode", sys_var_thd_sql_mode sys_sql_mode("sql_mode",
&SV::sql_mode); &SV::sql_mode);
#ifdef HAVE_OPENSSL
extern char *opt_ssl_ca, *opt_ssl_capath, *opt_ssl_cert, *opt_ssl_cipher,
*opt_ssl_key;
sys_var_const_str_ptr sys_ssl_ca("ssl_ca", &opt_ssl_ca);
sys_var_const_str_ptr sys_ssl_capath("ssl_capath", &opt_ssl_capath);
sys_var_const_str_ptr sys_ssl_cert("ssl_cert", &opt_ssl_cert);
sys_var_const_str_ptr sys_ssl_cipher("ssl_cipher", &opt_ssl_cipher);
sys_var_const_str_ptr sys_ssl_key("ssl_key", &opt_ssl_key);
#else
sys_var_const_str sys_ssl_ca("ssl_ca", NULL);
sys_var_const_str sys_ssl_capath("ssl_capath", NULL);
sys_var_const_str sys_ssl_cert("ssl_cert", NULL);
sys_var_const_str sys_ssl_cipher("ssl_cipher", NULL);
sys_var_const_str sys_ssl_key("ssl_key", NULL);
#endif
sys_var_thd_enum sys_var_thd_enum
sys_updatable_views_with_limit("updatable_views_with_limit", sys_updatable_views_with_limit("updatable_views_with_limit",
&SV::updatable_views_with_limit, &SV::updatable_views_with_limit,
...@@ -582,6 +604,7 @@ sys_var *sys_variables[]= ...@@ -582,6 +604,7 @@ sys_var *sys_variables[]=
&sys_auto_increment_offset, &sys_auto_increment_offset,
&sys_autocommit, &sys_autocommit,
&sys_automatic_sp_privileges, &sys_automatic_sp_privileges,
&sys_basedir,
&sys_big_tables, &sys_big_tables,
&sys_big_selects, &sys_big_selects,
&sys_binlog_cache_size, &sys_binlog_cache_size,
...@@ -600,6 +623,7 @@ sys_var *sys_variables[]= ...@@ -600,6 +623,7 @@ sys_var *sys_variables[]=
&sys_completion_type, &sys_completion_type,
&sys_concurrent_insert, &sys_concurrent_insert,
&sys_connect_timeout, &sys_connect_timeout,
&sys_datadir,
&sys_date_format, &sys_date_format,
&sys_datetime_format, &sys_datetime_format,
&sys_div_precincrement, &sys_div_precincrement,
...@@ -631,6 +655,7 @@ sys_var *sys_variables[]= ...@@ -631,6 +655,7 @@ sys_var *sys_variables[]=
&sys_local_infile, &sys_local_infile,
&sys_log_binlog, &sys_log_binlog,
&sys_log_off, &sys_log_off,
&sys_log_queries_not_using_indexes,
&sys_log_update, &sys_log_update,
&sys_log_warnings, &sys_log_warnings,
&sys_long_query_time, &sys_long_query_time,
...@@ -710,6 +735,11 @@ sys_var *sys_variables[]= ...@@ -710,6 +735,11 @@ sys_var *sys_variables[]=
&sys_sql_mode, &sys_sql_mode,
&sys_sql_warnings, &sys_sql_warnings,
&sys_sql_notes, &sys_sql_notes,
&sys_ssl_ca,
&sys_ssl_capath,
&sys_ssl_cert,
&sys_ssl_cipher,
&sys_ssl_key,
&sys_storage_engine, &sys_storage_engine,
#ifdef HAVE_REPLICATION #ifdef HAVE_REPLICATION
&sys_sync_binlog_period, &sys_sync_binlog_period,
...@@ -724,6 +754,7 @@ sys_var *sys_variables[]= ...@@ -724,6 +754,7 @@ sys_var *sys_variables[]=
&sys_timed_mutexes, &sys_timed_mutexes,
&sys_timestamp, &sys_timestamp,
&sys_time_zone, &sys_time_zone,
&sys_tmpdir,
&sys_tmp_table_size, &sys_tmp_table_size,
&sys_trans_alloc_block_size, &sys_trans_alloc_block_size,
&sys_trans_prealloc_size, &sys_trans_prealloc_size,
...@@ -775,7 +806,7 @@ struct show_var_st init_vars[]= { ...@@ -775,7 +806,7 @@ struct show_var_st init_vars[]= {
{"auto_increment_offset", (char*) &sys_auto_increment_offset, SHOW_SYS}, {"auto_increment_offset", (char*) &sys_auto_increment_offset, SHOW_SYS},
{sys_automatic_sp_privileges.name,(char*) &sys_automatic_sp_privileges, SHOW_SYS}, {sys_automatic_sp_privileges.name,(char*) &sys_automatic_sp_privileges, SHOW_SYS},
{"back_log", (char*) &back_log, SHOW_LONG}, {"back_log", (char*) &back_log, SHOW_LONG},
{"basedir", mysql_home, SHOW_CHAR}, {sys_basedir.name, (char*) &sys_basedir, SHOW_SYS},
#ifdef HAVE_BERKELEY_DB #ifdef HAVE_BERKELEY_DB
{"bdb_cache_size", (char*) &berkeley_cache_size, SHOW_LONG}, {"bdb_cache_size", (char*) &berkeley_cache_size, SHOW_LONG},
{"bdb_home", (char*) &berkeley_home, SHOW_CHAR_PTR}, {"bdb_home", (char*) &berkeley_home, SHOW_CHAR_PTR},
...@@ -801,7 +832,7 @@ struct show_var_st init_vars[]= { ...@@ -801,7 +832,7 @@ struct show_var_st init_vars[]= {
{sys_completion_type.name, (char*) &sys_completion_type, SHOW_SYS}, {sys_completion_type.name, (char*) &sys_completion_type, SHOW_SYS},
{sys_concurrent_insert.name,(char*) &sys_concurrent_insert, SHOW_SYS}, {sys_concurrent_insert.name,(char*) &sys_concurrent_insert, SHOW_SYS},
{sys_connect_timeout.name, (char*) &sys_connect_timeout, SHOW_SYS}, {sys_connect_timeout.name, (char*) &sys_connect_timeout, SHOW_SYS},
{"datadir", mysql_real_data_home, SHOW_CHAR}, {sys_datadir.name, (char*) &sys_datadir, SHOW_SYS},
{sys_date_format.name, (char*) &sys_date_format, SHOW_SYS}, {sys_date_format.name, (char*) &sys_date_format, SHOW_SYS},
{sys_datetime_format.name, (char*) &sys_datetime_format, SHOW_SYS}, {sys_datetime_format.name, (char*) &sys_datetime_format, SHOW_SYS},
{sys_default_week_format.name, (char*) &sys_default_week_format, SHOW_SYS}, {sys_default_week_format.name, (char*) &sys_default_week_format, SHOW_SYS},
...@@ -899,6 +930,8 @@ struct show_var_st init_vars[]= { ...@@ -899,6 +930,8 @@ struct show_var_st init_vars[]= {
{"log_bin", (char*) &opt_bin_log, SHOW_BOOL}, {"log_bin", (char*) &opt_bin_log, SHOW_BOOL},
{sys_trust_function_creators.name,(char*) &sys_trust_function_creators, SHOW_SYS}, {sys_trust_function_creators.name,(char*) &sys_trust_function_creators, SHOW_SYS},
{"log_error", (char*) log_error_file, SHOW_CHAR}, {"log_error", (char*) log_error_file, SHOW_CHAR},
{sys_log_queries_not_using_indexes.name,
(char*) &sys_log_queries_not_using_indexes, SHOW_SYS},
#ifdef HAVE_REPLICATION #ifdef HAVE_REPLICATION
{"log_slave_updates", (char*) &opt_log_slave_updates, SHOW_MY_BOOL}, {"log_slave_updates", (char*) &opt_log_slave_updates, SHOW_MY_BOOL},
#endif #endif
...@@ -1017,6 +1050,11 @@ struct show_var_st init_vars[]= { ...@@ -1017,6 +1050,11 @@ struct show_var_st init_vars[]= {
{sys_sql_mode.name, (char*) &sys_sql_mode, SHOW_SYS}, {sys_sql_mode.name, (char*) &sys_sql_mode, SHOW_SYS},
{"sql_notes", (char*) &sys_sql_notes, SHOW_SYS}, {"sql_notes", (char*) &sys_sql_notes, SHOW_SYS},
{"sql_warnings", (char*) &sys_sql_warnings, SHOW_SYS}, {"sql_warnings", (char*) &sys_sql_warnings, SHOW_SYS},
{sys_ssl_ca.name, (char*) &sys_ssl_ca, SHOW_SYS},
{sys_ssl_capath.name, (char*) &sys_ssl_capath, SHOW_SYS},
{sys_ssl_cert.name, (char*) &sys_ssl_cert, SHOW_SYS},
{sys_ssl_cipher.name, (char*) &sys_ssl_cipher, SHOW_SYS},
{sys_ssl_key.name, (char*) &sys_ssl_key, SHOW_SYS},
{sys_storage_engine.name, (char*) &sys_storage_engine, SHOW_SYS}, {sys_storage_engine.name, (char*) &sys_storage_engine, SHOW_SYS},
#ifdef HAVE_REPLICATION #ifdef HAVE_REPLICATION
{sys_sync_binlog_period.name,(char*) &sys_sync_binlog_period, SHOW_SYS}, {sys_sync_binlog_period.name,(char*) &sys_sync_binlog_period, SHOW_SYS},
...@@ -1037,7 +1075,7 @@ struct show_var_st init_vars[]= { ...@@ -1037,7 +1075,7 @@ struct show_var_st init_vars[]= {
{"time_zone", (char*) &sys_time_zone, SHOW_SYS}, {"time_zone", (char*) &sys_time_zone, SHOW_SYS},
{sys_timed_mutexes.name, (char*) &sys_timed_mutexes, SHOW_SYS}, {sys_timed_mutexes.name, (char*) &sys_timed_mutexes, SHOW_SYS},
{sys_tmp_table_size.name, (char*) &sys_tmp_table_size, SHOW_SYS}, {sys_tmp_table_size.name, (char*) &sys_tmp_table_size, SHOW_SYS},
{"tmpdir", (char*) &opt_mysql_tmpdir, SHOW_CHAR_PTR}, {sys_tmpdir.name, (char*) &sys_tmpdir, SHOW_SYS},
{sys_trans_alloc_block_size.name, (char*) &sys_trans_alloc_block_size, {sys_trans_alloc_block_size.name, (char*) &sys_trans_alloc_block_size,
SHOW_SYS}, SHOW_SYS},
{sys_trans_prealloc_size.name, (char*) &sys_trans_prealloc_size, SHOW_SYS}, {sys_trans_prealloc_size.name, (char*) &sys_trans_prealloc_size, SHOW_SYS},
...@@ -2863,6 +2901,31 @@ static byte *get_prepared_stmt_count(THD *thd) ...@@ -2863,6 +2901,31 @@ static byte *get_prepared_stmt_count(THD *thd)
return (byte*) &thd->sys_var_tmp.ulong_value; return (byte*) &thd->sys_var_tmp.ulong_value;
} }
/*
Get the tmpdir that was specified or chosen by default
SYNOPSIS
get_tmpdir()
thd thread handle
DESCRIPTION
This is necessary because if the user does not specify a temporary
directory via the command line, one is chosen based on the environment
or system defaults. But we can't just always use mysql_tmpdir, because
that is actually a call to my_tmpdir() which cycles among possible
temporary directories.
RETURN VALUES
ptr pointer to NUL-terminated string
*/
static byte *get_tmpdir(THD *thd)
{
if (opt_mysql_tmpdir)
return (byte *)opt_mysql_tmpdir;
return (byte*)mysql_tmpdir;
}
/**************************************************************************** /****************************************************************************
Main handling of variables: Main handling of variables:
- Initialisation - Initialisation
......
...@@ -222,6 +222,35 @@ class sys_var_const_str :public sys_var ...@@ -222,6 +222,35 @@ class sys_var_const_str :public sys_var
}; };
class sys_var_const_str_ptr :public sys_var
{
public:
char **value; // Pointer to const value
sys_var_const_str_ptr(const char *name_arg, char **value_arg)
:sys_var(name_arg),value(value_arg)
{}
bool check(THD *thd, set_var *var)
{
return 1;
}
bool update(THD *thd, set_var *var)
{
return 1;
}
SHOW_TYPE type() { return SHOW_CHAR; }
byte *value_ptr(THD *thd, enum_var_type type, LEX_STRING *base)
{
return (byte*) *value;
}
bool check_update_type(Item_result type)
{
return 1;
}
bool check_default(enum_var_type type) { return 1; }
bool is_readonly() const { return 1; }
};
class sys_var_enum :public sys_var class sys_var_enum :public sys_var
{ {
uint *value; uint *value;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment