174
173
static sys_var_bool_ptr sys_automatic_sp_privileges(&vars, "automatic_sp_privileges",
175
174
&sp_automatic_privileges);
177
static sys_var_const_str sys_basedir(&vars, "basedir", mysql_home);
176
static sys_var_const sys_back_log(&vars, "back_log",
177
OPT_GLOBAL, SHOW_LONG,
179
static sys_var_const_os_str sys_basedir(&vars, "basedir", mysql_home);
178
180
static sys_var_long_ptr sys_binlog_cache_size(&vars, "binlog_cache_size",
179
181
&binlog_cache_size);
180
182
static sys_var_thd_binlog_format sys_binlog_format(&vars, "binlog_format",
181
183
&SV::binlog_format);
182
184
static sys_var_thd_ulong sys_bulk_insert_buff_size(&vars, "bulk_insert_buffer_size",
183
185
&SV::bulk_insert_buff_size);
186
static sys_var_const_os sys_character_sets_dir(&vars,
187
"character_sets_dir",
188
OPT_GLOBAL, SHOW_CHAR,
184
191
static sys_var_character_set_sv
185
192
sys_character_set_server(&vars, "character_set_server",
186
193
&SV::collation_server, &default_charset_info, 0,
249
256
&expire_logs_days);
250
257
static sys_var_bool_ptr sys_flush(&vars, "flush", &myisam_flush);
251
258
static sys_var_long_ptr sys_flush_time(&vars, "flush_time", &flush_time);
252
static sys_var_str sys_ft_boolean_syntax(&vars, "ft_boolean_syntax",
253
sys_check_ftb_syntax,
254
sys_update_ftb_syntax,
255
sys_default_ftb_syntax,
259
static sys_var_str sys_ft_boolean_syntax(&vars, "ft_boolean_syntax",
260
sys_check_ftb_syntax,
261
sys_update_ftb_syntax,
262
sys_default_ftb_syntax,
264
static sys_var_const sys_ft_max_word_len(&vars, "ft_max_word_len",
265
OPT_GLOBAL, SHOW_LONG,
266
(uchar*) &ft_max_word_len);
267
static sys_var_const sys_ft_min_word_len(&vars, "ft_min_word_len",
268
OPT_GLOBAL, SHOW_LONG,
269
(uchar*) &ft_min_word_len);
270
static sys_var_const sys_ft_query_expansion_limit(&vars,
271
"ft_query_expansion_limit",
272
OPT_GLOBAL, SHOW_LONG,
274
&ft_query_expansion_limit);
275
static sys_var_const sys_ft_stopword_file(&vars, "ft_stopword_file",
276
OPT_GLOBAL, SHOW_CHAR_PTR,
277
(uchar*) &ft_stopword_file);
257
278
sys_var_str sys_init_connect(&vars, "init_connect", 0,
258
279
sys_update_init_connect,
259
280
sys_default_init_connect,0);
281
static sys_var_const sys_init_file(&vars, "init_file",
282
OPT_GLOBAL, SHOW_CHAR_PTR,
283
(uchar*) &opt_init_file);
260
284
sys_var_str sys_init_slave(&vars, "init_slave", 0,
261
285
sys_update_init_slave,
262
286
sys_default_init_slave,0);
274
298
static sys_var_key_cache_long sys_key_cache_age_threshold(&vars, "key_cache_age_threshold",
275
299
offsetof(KEY_CACHE,
276
300
param_age_threshold));
301
static sys_var_const sys_language(&vars, "language",
302
OPT_GLOBAL, SHOW_CHAR,
304
static sys_var_const sys_large_files_support(&vars, "large_files_support",
305
OPT_GLOBAL, SHOW_BOOL,
306
(uchar*) &opt_large_files);
307
static sys_var_const sys_large_page_size(&vars, "large_page_size",
308
OPT_GLOBAL, SHOW_INT,
309
(uchar*) &opt_large_page_size);
310
static sys_var_const sys_large_pages(&vars, "large_pages",
311
OPT_GLOBAL, SHOW_MY_BOOL,
312
(uchar*) &opt_large_pages);
277
313
static sys_var_bool_ptr sys_local_infile(&vars, "local_infile",
278
314
&opt_local_infile);
316
static sys_var_const sys_locked_in_memory(&vars, "locked_in_memory",
317
OPT_GLOBAL, SHOW_MY_BOOL,
318
(uchar*) &locked_in_memory);
320
static sys_var_const sys_log_bin(&vars, "log_bin",
321
OPT_GLOBAL, SHOW_BOOL,
322
(uchar*) &opt_bin_log);
279
323
static sys_var_trust_routine_creators
280
324
sys_trust_routine_creators(&vars, "log_bin_trust_routine_creators",
281
325
&trust_function_creators);
282
326
static sys_var_bool_ptr
283
327
sys_trust_function_creators(&vars, "log_bin_trust_function_creators",
284
328
&trust_function_creators);
329
static sys_var_const sys_log_error(&vars, "log_error",
330
OPT_GLOBAL, SHOW_CHAR,
331
(uchar*) log_error_file);
285
332
static sys_var_bool_ptr
286
333
sys_log_queries_not_using_indexes(&vars, "log_queries_not_using_indexes",
287
334
&opt_log_queries_not_using_indexes);
296
343
&SV::low_priority_updates,
297
344
fix_low_priority_updates);
299
static sys_var_thd_ulong sys_max_allowed_packet(&vars, "max_allowed_packet",
346
static sys_var_const sys_lower_case_file_system(&vars,
347
"lower_case_file_system",
348
OPT_GLOBAL, SHOW_MY_BOOL,
350
&lower_case_file_system);
351
static sys_var_const sys_lower_case_table_names(&vars,
352
"lower_case_table_names",
353
OPT_GLOBAL, SHOW_INT,
355
&lower_case_table_names);
356
static sys_var_thd_ulong_session_readonly sys_max_allowed_packet(&vars, "max_allowed_packet",
300
357
&SV::max_allowed_packet);
301
358
static sys_var_long_ptr sys_max_binlog_cache_size(&vars, "max_binlog_cache_size",
302
359
&max_binlog_cache_size);
359
416
static sys_var_long_ptr sys_myisam_data_pointer_size(&vars, "myisam_data_pointer_size",
360
417
&myisam_data_pointer_size);
361
418
static sys_var_thd_ulonglong sys_myisam_max_sort_file_size(&vars, "myisam_max_sort_file_size", &SV::myisam_max_sort_file_size, fix_myisam_max_sort_file_size, 1);
419
static sys_var_const sys_myisam_recover_options(&vars, "myisam_recover_options",
420
OPT_GLOBAL, SHOW_CHAR_PTR,
422
&myisam_recover_options_str);
362
423
static sys_var_thd_ulong sys_myisam_repair_threads(&vars, "myisam_repair_threads", &SV::myisam_repair_threads);
363
424
static sys_var_thd_ulong sys_myisam_sort_buffer_size(&vars, "myisam_sort_buffer_size", &SV::myisam_sort_buff_size);
364
425
static sys_var_bool_ptr sys_myisam_use_mmap(&vars, "myisam_use_mmap",
387
455
sys_var_thd_bool sys_old_alter_table(&vars, "old_alter_table",
388
456
&SV::old_alter_table);
389
457
sys_var_thd_bool sys_old_passwords(&vars, "old_passwords", &SV::old_passwords);
458
static sys_var_const sys_open_files_limit(&vars, "open_files_limit",
459
OPT_GLOBAL, SHOW_LONG,
390
462
static sys_var_thd_ulong sys_optimizer_prune_level(&vars, "optimizer_prune_level",
391
463
&SV::optimizer_prune_level);
392
464
static sys_var_thd_ulong sys_optimizer_search_depth(&vars, "optimizer_search_depth",
393
465
&SV::optimizer_search_depth);
466
static sys_var_const sys_pid_file(&vars, "pid_file",
467
OPT_GLOBAL, SHOW_CHAR,
468
(uchar*) pidfile_name);
469
static sys_var_const_os sys_plugin_dir(&vars, "plugin_dir",
470
OPT_GLOBAL, SHOW_CHAR,
471
(uchar*) opt_plugin_dir);
472
static sys_var_const sys_port(&vars, "port",
473
OPT_GLOBAL, SHOW_INT,
474
(uchar*) &mysqld_port);
394
475
static sys_var_thd_ulong sys_preload_buff_size(&vars, "preload_buffer_size",
395
476
&SV::preload_buff_size);
477
static sys_var_const sys_protocol_version(&vars, "protocol_version",
478
OPT_GLOBAL, SHOW_INT,
396
481
static sys_var_thd_ulong sys_read_buff_size(&vars, "read_buffer_size",
397
482
&SV::read_buff_size);
398
483
static sys_var_opt_readonly sys_readonly(&vars, "read_only", &opt_readonly);
414
499
static sys_var_thd_ulong sys_query_prealloc_size(&vars, "query_prealloc_size",
415
500
&SV::query_prealloc_size,
416
501
0, fix_thd_mem_root);
417
static sys_var_readonly sys_tmpdir(&vars, "tmpdir", OPT_GLOBAL, SHOW_CHAR, get_tmpdir);
503
/* purecov: begin tested */
504
static sys_var_const sys_shared_memory(&vars, "shared_memory",
505
OPT_GLOBAL, SHOW_MY_BOOL,
507
&opt_enable_shared_memory);
508
static sys_var_const sys_shared_memory_base_name(&vars,
509
"shared_memory_base_name",
510
OPT_GLOBAL, SHOW_CHAR_PTR,
512
&shared_memory_base_name);
515
static sys_var_const sys_skip_external_locking(&vars,
516
"skip_external_locking",
517
OPT_GLOBAL, SHOW_MY_BOOL,
519
&my_disable_locking);
520
static sys_var_const sys_skip_networking(&vars, "skip_networking",
521
OPT_GLOBAL, SHOW_BOOL,
522
(uchar*) &opt_disable_networking);
523
static sys_var_const sys_skip_show_database(&vars, "skip_show_database",
524
OPT_GLOBAL, SHOW_BOOL,
525
(uchar*) &opt_skip_show_db);
527
static sys_var_const sys_socket(&vars, "socket",
528
OPT_GLOBAL, SHOW_CHAR_PTR,
529
(uchar*) &mysqld_unix_port);
531
#ifdef HAVE_THR_SETCONCURRENCY
532
/* purecov: begin tested */
533
static sys_var_const sys_thread_concurrency(&vars, "thread_concurrency",
534
OPT_GLOBAL, SHOW_LONG,
535
(uchar*) &concurrency);
538
static sys_var_const sys_thread_stack(&vars, "thread_stack",
539
OPT_GLOBAL, SHOW_LONG,
540
(uchar*) &my_thread_stack_size);
541
static sys_var_readonly_os sys_tmpdir(&vars, "tmpdir", OPT_GLOBAL, SHOW_CHAR, get_tmpdir);
418
542
static sys_var_thd_ulong sys_trans_alloc_block_size(&vars, "transaction_alloc_block_size",
419
543
&SV::trans_alloc_block_size,
420
544
0, fix_trans_mem_root);
465
589
#ifdef HAVE_OPENSSL
466
590
extern char *opt_ssl_ca, *opt_ssl_capath, *opt_ssl_cert, *opt_ssl_cipher,
468
static sys_var_const_str_ptr sys_ssl_ca(&vars, "ssl_ca", &opt_ssl_ca);
469
static sys_var_const_str_ptr sys_ssl_capath(&vars, "ssl_capath", &opt_ssl_capath);
470
static sys_var_const_str_ptr sys_ssl_cert(&vars, "ssl_cert", &opt_ssl_cert);
471
static sys_var_const_str_ptr sys_ssl_cipher(&vars, "ssl_cipher", &opt_ssl_cipher);
472
static sys_var_const_str_ptr sys_ssl_key(&vars, "ssl_key", &opt_ssl_key);
592
static sys_var_const_os_str_ptr sys_ssl_ca(&vars, "ssl_ca", &opt_ssl_ca);
593
static sys_var_const_os_str_ptr sys_ssl_capath(&vars, "ssl_capath", &opt_ssl_capath);
594
static sys_var_const_os_str_ptr sys_ssl_cert(&vars, "ssl_cert", &opt_ssl_cert);
595
static sys_var_const_os_str_ptr sys_ssl_cipher(&vars, "ssl_cipher", &opt_ssl_cipher);
596
static sys_var_const_os_str_ptr sys_ssl_key(&vars, "ssl_key", &opt_ssl_key);
474
static sys_var_const_str sys_ssl_ca(&vars, "ssl_ca", NULL);
475
static sys_var_const_str sys_ssl_capath(&vars, "ssl_capath", NULL);
476
static sys_var_const_str sys_ssl_cert(&vars, "ssl_cert", NULL);
477
static sys_var_const_str sys_ssl_cipher(&vars, "ssl_cipher", NULL);
478
static sys_var_const_str sys_ssl_key(&vars, "ssl_key", NULL);
598
static sys_var_const_os_str sys_ssl_ca(&vars, "ssl_ca", NULL);
599
static sys_var_const_os_str sys_ssl_capath(&vars, "ssl_capath", NULL);
600
static sys_var_const_os_str sys_ssl_cert(&vars, "ssl_cert", NULL);
601
static sys_var_const_os_str sys_ssl_cipher(&vars, "ssl_cipher", NULL);
602
static sys_var_const_os_str sys_ssl_key(&vars, "ssl_key", NULL);
480
604
static sys_var_thd_enum
481
605
sys_updatable_views_with_limit(&vars, "updatable_views_with_limit",
764
888
&log_output_typelib, 0);
768
Additional variables (not derived from sys_var class, not accessible as
769
@@varname in SELECT or SET). Sorted in alphabetical order to facilitate
770
maintenance - SHOW VARIABLES will sort its output.
771
TODO: remove this list completely
774
#define FIXED_VARS_SIZE (sizeof(fixed_vars) / sizeof(SHOW_VAR))
775
static SHOW_VAR fixed_vars[]= {
776
{"back_log", (char*) &back_log, SHOW_LONG},
777
{"character_sets_dir", mysql_charsets_dir, SHOW_CHAR},
778
{"ft_max_word_len", (char*) &ft_max_word_len, SHOW_LONG},
779
{"ft_min_word_len", (char*) &ft_min_word_len, SHOW_LONG},
780
{"ft_query_expansion_limit",(char*) &ft_query_expansion_limit, SHOW_LONG},
781
{"ft_stopword_file", (char*) &ft_stopword_file, SHOW_CHAR_PTR},
782
{"init_file", (char*) &opt_init_file, SHOW_CHAR_PTR},
783
{"language", language, SHOW_CHAR},
784
{"large_files_support", (char*) &opt_large_files, SHOW_BOOL},
785
{"large_page_size", (char*) &opt_large_page_size, SHOW_INT},
786
{"large_pages", (char*) &opt_large_pages, SHOW_MY_BOOL},
788
{"locked_in_memory", (char*) &locked_in_memory, SHOW_MY_BOOL},
790
{"log_bin", (char*) &opt_bin_log, SHOW_BOOL},
791
{"log_error", (char*) log_error_file, SHOW_CHAR},
792
{"lower_case_file_system", (char*) &lower_case_file_system, SHOW_MY_BOOL},
793
{"lower_case_table_names", (char*) &lower_case_table_names, SHOW_INT},
794
{"myisam_recover_options", (char*) &myisam_recover_options_str, SHOW_CHAR_PTR},
796
{"named_pipe", (char*) &opt_enable_named_pipe, SHOW_MY_BOOL},
798
{"open_files_limit", (char*) &open_files_limit, SHOW_LONG},
799
{"pid_file", (char*) pidfile_name, SHOW_CHAR},
800
{"plugin_dir", (char*) opt_plugin_dir, SHOW_CHAR},
801
{"port", (char*) &mysqld_port, SHOW_INT},
802
{"protocol_version", (char*) &protocol_version, SHOW_INT},
804
{"shared_memory", (char*) &opt_enable_shared_memory, SHOW_MY_BOOL},
805
{"shared_memory_base_name", (char*) &shared_memory_base_name, SHOW_CHAR_PTR},
807
{"skip_external_locking", (char*) &my_disable_locking, SHOW_MY_BOOL},
808
{"skip_networking", (char*) &opt_disable_networking, SHOW_BOOL},
809
{"skip_show_database", (char*) &opt_skip_show_db, SHOW_BOOL},
811
{"socket", (char*) &mysqld_unix_port, SHOW_CHAR_PTR},
813
#ifdef HAVE_THR_SETCONCURRENCY
814
{"thread_concurrency", (char*) &concurrency, SHOW_LONG},
816
{"thread_stack", (char*) &my_thread_stack_size, SHOW_LONG},
820
891
bool sys_var::check(THD *thd, set_var *var)
822
893
var->save_result.ulonglong_value= var->value->val_int();
1455
1527
ulonglong tmp= var->save_result.ulonglong_value;
1457
1529
/* Don't use bigger value than given with --maximum-variable-name=.. */
1458
if ((ulong) tmp > max_system_variables.*offset)
1530
if (tmp > max_system_variables.*offset)
1460
1532
throw_bounds_warning(thd, TRUE, TRUE, name, (longlong) tmp);
1461
1533
tmp= max_system_variables.*offset;
1464
1536
if (option_limits)
1465
tmp= (ulong) fix_unsigned(thd, tmp, option_limits);
1537
tmp= fix_unsigned(thd, tmp, option_limits);
1466
1538
#if SIZEOF_LONG < SIZEOF_LONG_LONG
1467
1539
else if (tmp > ULONG_MAX)
1738
Return an Item for a variable.
1740
Used with @@[global.]variable_name.
1742
If type is not given, return local value if exists, else global.
1745
Item *sys_var::item(THD *thd, enum_var_type var_type, LEX_STRING *base)
1810
CHARSET_INFO *sys_var::charset(THD *thd)
1747
if (check_type(var_type))
1749
if (var_type != OPT_DEFAULT)
1751
my_error(ER_INCORRECT_GLOBAL_LOCAL_VAR, MYF(0),
1752
name, var_type == OPT_GLOBAL ? "SESSION" : "GLOBAL");
1755
/* As there was no local variable, return the global value */
1756
var_type= OPT_GLOBAL;
1758
switch (show_type()) {
1762
pthread_mutex_lock(&LOCK_global_system_variables);
1763
value= *(uint*) value_ptr(thd, var_type, base);
1764
pthread_mutex_unlock(&LOCK_global_system_variables);
1765
return new Item_uint((ulonglong) value);
1770
pthread_mutex_lock(&LOCK_global_system_variables);
1771
value= *(ulong*) value_ptr(thd, var_type, base);
1772
pthread_mutex_unlock(&LOCK_global_system_variables);
1773
return new Item_uint((ulonglong) value);
1778
pthread_mutex_lock(&LOCK_global_system_variables);
1779
value= *(longlong*) value_ptr(thd, var_type, base);
1780
pthread_mutex_unlock(&LOCK_global_system_variables);
1781
return new Item_int(value);
1786
pthread_mutex_lock(&LOCK_global_system_variables);
1787
value= *(double*) value_ptr(thd, var_type, base);
1788
pthread_mutex_unlock(&LOCK_global_system_variables);
1789
/* 6, as this is for now only used with microseconds */
1790
return new Item_float(value, 6);
1795
pthread_mutex_lock(&LOCK_global_system_variables);
1796
value= *(ha_rows*) value_ptr(thd, var_type, base);
1797
pthread_mutex_unlock(&LOCK_global_system_variables);
1798
return new Item_int((ulonglong) value);
1803
pthread_mutex_lock(&LOCK_global_system_variables);
1804
value= *(my_bool*) value_ptr(thd, var_type, base);
1805
pthread_mutex_unlock(&LOCK_global_system_variables);
1806
return new Item_int(value,1);
1811
pthread_mutex_lock(&LOCK_global_system_variables);
1812
char *str= *(char**) value_ptr(thd, var_type, base);
1815
uint length= strlen(str);
1816
tmp= new Item_string(thd->strmake(str, length), length,
1817
system_charset_info, DERIVATION_SYSCONST);
1821
tmp= new Item_null();
1822
tmp->collation.set(system_charset_info, DERIVATION_SYSCONST);
1824
pthread_mutex_unlock(&LOCK_global_system_variables);
1830
pthread_mutex_lock(&LOCK_global_system_variables);
1831
char *str= (char*) value_ptr(thd, var_type, base);
1833
tmp= new Item_string(str, strlen(str),
1834
system_charset_info, DERIVATION_SYSCONST);
1837
tmp= new Item_null();
1838
tmp->collation.set(system_charset_info, DERIVATION_SYSCONST);
1840
pthread_mutex_unlock(&LOCK_global_system_variables);
1844
my_error(ER_VAR_CANT_BE_READ, MYF(0), name);
1812
return is_os_charset ? thd->variables.character_set_filesystem :
1813
system_charset_info;