45
45
typedef struct my_locale_st MY_LOCALE;
47
47
extern TYPELIB bool_typelib;
48
extern TYPELIB optimizer_switch_typelib;
50
49
typedef int (*sys_check_func)(Session *, set_var *);
51
50
typedef bool (*sys_update_func)(Session *, set_var *);
79
78
extern char *drizzled_bind_host;
80
79
extern uint32_t dropping_tables;
81
80
extern bool opt_endinfo;
82
extern bool locked_in_memory;
83
81
extern uint32_t volatile thread_running;
84
82
extern uint32_t volatile global_read_lock;
85
83
extern bool opt_readonly;
182
180
virtual bool check(Session *session, set_var *var);
183
181
bool check_enum(Session *session, set_var *var, const TYPELIB *enum_names);
184
bool check_set(Session *session, set_var *var, TYPELIB *enum_names);
185
182
virtual bool update(Session *session, set_var *var)=0;
186
183
virtual void set_default(Session *, enum_var_type)
429
class sys_var_enum :public sys_var
434
sys_var_enum(sys_var_chain *chain, const char *name_arg, uint32_t *value_arg,
435
TYPELIB *typelib, sys_after_update_func func)
436
:sys_var(name_arg,func), value(value_arg), enum_names(typelib)
437
{ chain_sys_var(chain); }
438
bool check(Session *session, set_var *var)
440
return check_enum(session, var, enum_names);
442
bool update(Session *session, set_var *var);
443
SHOW_TYPE show_type() { return SHOW_CHAR; }
444
unsigned char *value_ptr(Session *session, enum_var_type type,
445
const LEX_STRING *base);
446
bool check_update_type(Item_result)
451
class sys_var_enum_const :public sys_var
453
uint32_t SV::*offset;
456
sys_var_enum_const(sys_var_chain *chain, const char *name_arg, uint32_t SV::*offset_arg,
457
TYPELIB *typelib, sys_after_update_func func)
458
:sys_var(name_arg,func), offset(offset_arg), enum_names(typelib)
459
{ chain_sys_var(chain); }
460
bool check(Session *, set_var *)
462
bool update(Session *, set_var *)
464
SHOW_TYPE show_type() { return SHOW_CHAR; }
465
bool check_update_type(Item_result)
467
bool is_readonly() const { return 1; }
468
unsigned char *value_ptr(Session *session, enum_var_type type,
469
const LEX_STRING *base);
473
426
class sys_var_session :public sys_var
671
class sys_var_session_optimizer_switch :public sys_var_session_enum
674
sys_var_session_optimizer_switch(sys_var_chain *chain, const char *name_arg,
675
uint32_t SV::*offset_arg)
676
:sys_var_session_enum(chain, name_arg, offset_arg, &optimizer_switch_typelib)
678
bool check(Session *session, set_var *var)
680
return check_set(session, var, enum_names);
682
void set_default(Session *session, enum_var_type type);
683
unsigned char *value_ptr(Session *session, enum_var_type type,
684
const LEX_STRING *base);
685
static bool symbolic_mode_representation(Session *session, uint32_t sql_mode,
690
623
class sys_var_session_storage_engine :public sys_var_session
833
class sys_var_have_option: public sys_var
836
virtual SHOW_COMP_OPTION get_option() = 0;
838
sys_var_have_option(sys_var_chain *chain, const char *variable_name):
839
sys_var(variable_name)
840
{ chain_sys_var(chain); }
841
unsigned char *value_ptr(Session *, enum_var_type,
844
return (unsigned char*) show_comp_option_name[get_option()];
846
bool update(Session *, set_var *) { return 1; }
847
bool check_default(enum_var_type)
849
bool check_type(enum_var_type type) { return type != OPT_GLOBAL; }
850
bool check_update_type(Item_result)
852
SHOW_TYPE show_type() { return SHOW_CHAR; }
853
bool is_readonly() const { return 1; }
857
class sys_var_have_variable: public sys_var_have_option
859
SHOW_COMP_OPTION *have_variable;
862
sys_var_have_variable(sys_var_chain *chain, const char *variable_name,
863
SHOW_COMP_OPTION *have_variable_arg):
864
sys_var_have_option(chain, variable_name),
865
have_variable(have_variable_arg)
867
SHOW_COMP_OPTION get_option() { return *have_variable; }
871
class sys_var_have_plugin: public sys_var_have_option
873
const char *plugin_name_str;
874
const uint32_t plugin_name_len;
875
const int plugin_type;
878
sys_var_have_plugin(sys_var_chain *chain, const char *variable_name,
879
const char *plugin_name_str_arg, uint32_t plugin_name_len_arg,
880
int plugin_type_arg):
881
sys_var_have_option(chain, variable_name),
882
plugin_name_str(plugin_name_str_arg), plugin_name_len(plugin_name_len_arg),
883
plugin_type(plugin_type_arg)
885
/* the following method is declared in sql_plugin.cc */
886
SHOW_COMP_OPTION get_option();
890
766
class sys_var_session_time_zone :public sys_var_session