398
398
class sys_var_enum_const :public sys_var
400
uint32_t SV::*offset;
401
401
TYPELIB *enum_names;
403
sys_var_enum_const(sys_var_chain *chain, const char *name_arg, ulong SV::*offset_arg,
403
sys_var_enum_const(sys_var_chain *chain, const char *name_arg, uint32_t SV::*offset_arg,
404
404
TYPELIB *typelib, sys_after_update_func func)
405
405
:sys_var(name_arg,func), offset(offset_arg), enum_names(typelib)
406
406
{ chain_sys_var(chain); }
822
822
void set_default(Session *session, enum_var_type type);
826
class sys_var_set :public sys_var
832
sys_var_set(sys_var_chain *chain, const char *name_arg, ulong *value_arg,
833
TYPELIB *typelib, sys_after_update_func func)
834
:sys_var(name_arg, func), value(value_arg), enum_names(typelib)
835
{ chain_sys_var(chain); }
836
virtual bool check(Session *session, set_var *var)
838
return check_set(session, var, enum_names);
840
virtual void set_default(Session *session __attribute__((unused)),
841
enum_var_type type __attribute__((unused)))
845
bool update(Session *session, set_var *var);
846
unsigned char *value_ptr(Session *session, enum_var_type type, LEX_STRING *base);
847
bool check_update_type(Item_result type __attribute__((unused)))
849
SHOW_TYPE show_type() { return SHOW_CHAR; }
852
class sys_var_set_slave_mode :public sys_var_set
855
sys_var_set_slave_mode(sys_var_chain *chain, const char *name_arg,
857
TYPELIB *typelib, sys_after_update_func func) :
858
sys_var_set(chain, name_arg, value_arg, typelib, func) {}
859
void set_default(Session *session, enum_var_type type);
860
bool check(Session *session, set_var *var);
861
bool update(Session *session, set_var *var);
864
class sys_var_log_output :public sys_var
869
sys_var_log_output(sys_var_chain *chain, const char *name_arg, ulong *value_arg,
870
TYPELIB *typelib, sys_after_update_func func)
871
:sys_var(name_arg,func), value(value_arg), enum_names(typelib)
873
chain_sys_var(chain);
874
set_allow_empty_value(false);
876
virtual bool check(Session *session, set_var *var)
878
return check_set(session, var, enum_names);
880
bool update(Session *session, set_var *var);
881
unsigned char *value_ptr(Session *session, enum_var_type type, LEX_STRING *base);
882
bool check_update_type(Item_result type __attribute__((unused)))
884
void set_default(Session *session, enum_var_type type);
885
SHOW_TYPE show_type() { return SHOW_CHAR; }
889
825
/* Variable that you can only read from */
891
827
class sys_var_readonly: public sys_var