177
180
* A base class for all variables that require its access to
178
181
* be guarded with a mutex.
180
class DRIZZLED_API sys_var_global : public sys_var
183
class DRIZZLED_API sys_var_global: public sys_var
183
186
pthread_mutex_t *guard;
185
sys_var_global(const char *name_arg, sys_after_update_func after_update_arg, pthread_mutex_t *guard_arg) :
186
sys_var(name_arg, after_update_arg),
188
sys_var_global(const char *name_arg,
189
sys_after_update_func after_update_arg,
190
pthread_mutex_t *guard_arg)
192
sys_var(name_arg, after_update_arg),
191
class DRIZZLED_API sys_var_uint32_t_ptr : public sys_var
197
class DRIZZLED_API sys_var_uint32_t_ptr :public sys_var
195
sys_var_uint32_t_ptr(const char *name_arg, uint32_t *value_ptr_arg) :
196
sys_var(name_arg), value(value_ptr_arg)
201
sys_var_uint32_t_ptr(const char *name_arg,
202
uint32_t *value_ptr_arg)
203
:sys_var(name_arg),value(value_ptr_arg)
198
sys_var_uint32_t_ptr(const char *name_arg, uint32_t *value_ptr_arg, sys_after_update_func func) :
199
sys_var(name_arg,func), value(value_ptr_arg)
205
sys_var_uint32_t_ptr(const char *name_arg,
206
uint32_t *value_ptr_arg,
207
sys_after_update_func func)
208
:sys_var(name_arg,func), value(value_ptr_arg)
201
210
bool check(Session *session, set_var *var);
202
211
bool update(Session *session, set_var *var);
203
212
void set_default(Session *session, sql_var_t type);
204
213
SHOW_TYPE show_type() { return SHOW_INT; }
205
unsigned char *value_ptr(Session *, sql_var_t)
214
unsigned char *value_ptr(Session *, sql_var_t, const lex_string_t *)
206
215
{ return (unsigned char*) value; }
209
class DRIZZLED_API sys_var_uint32_t_ptr_readonly : public sys_var_uint32_t_ptr
218
class DRIZZLED_API sys_var_uint32_t_ptr_readonly :
219
public sys_var_uint32_t_ptr
212
sys_var_uint32_t_ptr_readonly(const char *name_arg, uint32_t *value_ptr_arg) :
222
sys_var_uint32_t_ptr_readonly(const char *name_arg,
223
uint32_t *value_ptr_arg) :
213
224
sys_var_uint32_t_ptr(name_arg, value_ptr_arg)
274
285
return (not have_default_value) && option_limits == 0;
276
287
SHOW_TYPE show_type() { return SHOW_LONGLONG; }
277
unsigned char *value_ptr(Session *, sql_var_t)
288
unsigned char *value_ptr(Session *, sql_var_t,
289
const lex_string_t *)
278
290
{ return (unsigned char*) value; }
292
304
bool update(Session *session, set_var *var);
293
305
void set_default(Session *session, sql_var_t type);
294
306
SHOW_TYPE show_type() { return SHOW_SIZE; }
295
unsigned char *value_ptr(Session *, sql_var_t)
307
unsigned char *value_ptr(Session *, sql_var_t, const lex_string_t *)
296
308
{ return (unsigned char*) value; }
323
335
bool update(Session *session, set_var *var);
324
336
void set_default(Session *session, sql_var_t type);
325
337
SHOW_TYPE show_type() { return SHOW_MY_BOOL; }
326
unsigned char *value_ptr(Session *, sql_var_t)
338
unsigned char *value_ptr(Session *, sql_var_t, const lex_string_t *)
327
339
{ return (unsigned char*) value; }
328
340
bool check_update_type(Item_result)
367
379
(*set_default_func)(session, type);
369
381
SHOW_TYPE show_type() { return SHOW_CHAR; }
370
unsigned char *value_ptr(Session *, sql_var_t)
382
unsigned char *value_ptr(Session *, sql_var_t, const lex_string_t *)
371
383
{ return (unsigned char*) value; }
372
384
bool check_update_type(Item_result type)
759
771
bool update(Session *session, set_var *var);
760
772
void set_default(Session *session, sql_var_t type);
761
773
SHOW_TYPE show_type() { return SHOW_INT; }
762
unsigned char *value_ptr(Session *session, sql_var_t type);
774
unsigned char *value_ptr(Session *session, sql_var_t type,
775
const lex_string_t *base);
779
792
bool update(Session *session, set_var *var);
780
793
void set_default(Session *session, sql_var_t type);
781
794
SHOW_TYPE show_type() { return SHOW_HA_ROWS; }
782
unsigned char *value_ptr(Session *session, sql_var_t type);
795
unsigned char *value_ptr(Session *session, sql_var_t type,
796
const lex_string_t *base);
811
825
bool update(Session *session, set_var *var);
812
826
void set_default(Session *session, sql_var_t type);
813
827
SHOW_TYPE show_type() { return SHOW_LONGLONG; }
814
unsigned char *value_ptr(Session *session, sql_var_t type);
828
unsigned char *value_ptr(Session *session, sql_var_t type,
829
const lex_string_t *base);
815
830
bool check(Session *session, set_var *var);
816
831
bool check_default(sql_var_t type)
850
865
bool update(Session *session, set_var *var);
851
866
void set_default(Session *session, sql_var_t type);
852
867
SHOW_TYPE show_type() { return SHOW_SIZE; }
853
unsigned char *value_ptr(Session *session, sql_var_t type);
868
unsigned char *value_ptr(Session *session, sql_var_t type,
869
const lex_string_t *base);
854
870
bool check(Session *session, set_var *var);
855
871
bool check_default(sql_var_t type)
877
893
bool update(Session *session, set_var *var);
878
894
void set_default(Session *session, sql_var_t type);
879
895
SHOW_TYPE show_type() { return SHOW_MY_BOOL; }
880
unsigned char *value_ptr(Session *session, sql_var_t type);
896
unsigned char *value_ptr(Session *session, sql_var_t type,
897
const lex_string_t *base);
881
898
bool check(Session *session, set_var *var);
882
899
bool check_update_type(Item_result)
908
925
bool update(Session *session, set_var *var);
909
926
void set_default(Session *session, sql_var_t type);
910
927
SHOW_TYPE show_type() { return SHOW_CHAR; }
911
unsigned char *value_ptr(Session *session, sql_var_t type);
928
unsigned char *value_ptr(Session *session, sql_var_t type,
929
const lex_string_t *base);
912
930
bool check_update_type(Item_result)
931
949
void set_default(Session *session, sql_var_t type);
932
950
bool update(Session *session, set_var *var);
933
unsigned char *value_ptr(Session *session, sql_var_t type);
951
unsigned char *value_ptr(Session *session, sql_var_t type,
952
const lex_string_t *base);
936
955
class DRIZZLED_API sys_var_session_bit :public sys_var_session
953
972
bool check_type(sql_var_t type) { return type == OPT_GLOBAL; }
954
973
SHOW_TYPE show_type() { return SHOW_MY_BOOL; }
955
unsigned char *value_ptr(Session *session, sql_var_t type);
974
unsigned char *value_ptr(Session *session, sql_var_t type,
975
const lex_string_t *base);
958
978
/* some variables that require special handling */
969
989
bool check_default(sql_var_t)
971
991
SHOW_TYPE show_type(void) { return SHOW_LONG; }
972
unsigned char *value_ptr(Session *session, sql_var_t type);
992
unsigned char *value_ptr(Session *session, sql_var_t type,
993
const lex_string_t *base);
982
1003
bool update(Session *session, set_var *var);
983
1004
bool check_type(sql_var_t type) { return type == OPT_GLOBAL; }
984
1005
SHOW_TYPE show_type() { return SHOW_LONGLONG; }
985
unsigned char *value_ptr(Session *session, sql_var_t type);
1006
unsigned char *value_ptr(Session *session, sql_var_t type,
1007
const lex_string_t *base);
1017
1039
bool update(Session *session, set_var *var);
1018
1040
void set_default(Session *session, sql_var_t type);
1019
unsigned char *value_ptr(Session *session, sql_var_t type);
1041
unsigned char *value_ptr(Session *session, sql_var_t type,
1042
const lex_string_t *base);
1022
1045
/* Variable that you can only read from */
1040
1063
bool check_type(sql_var_t type) { return type != var_type; }
1041
1064
bool check_update_type(Item_result)
1043
unsigned char *value_ptr(Session *session, sql_var_t)
1066
unsigned char *value_ptr(Session *session, sql_var_t,
1067
const lex_string_t *)
1045
1069
return (*value_ptr_func)(session);
1082
1106
bool check_default(sql_var_t)
1084
1108
bool update(Session *session, set_var *var);
1085
unsigned char *value_ptr(Session *session, sql_var_t type);
1109
unsigned char *value_ptr(Session *session, sql_var_t type,
1110
const lex_string_t *base);
1086
1111
virtual void set_default(Session *session, sql_var_t type);
1089
1116
/* For sql_yacc */
1090
1117
struct sys_var_with_base
1093
1120
lex_string_t base_name;
1097
1124
Prototypes for helper functions
1100
drizzle_show_var* enumerate_sys_vars(Session*);
1101
void add_sys_var_to_list(sys_var*, option*);
1102
void add_sys_var_to_list(sys_var*);
1103
sys_var* find_sys_var(const std::string&);
1127
drizzle_show_var* enumerate_sys_vars(Session *session);
1128
void add_sys_var_to_list(sys_var *var, struct option *long_options);
1129
void add_sys_var_to_list(sys_var *var);
1130
sys_var *find_sys_var(const std::string &name);
1131
extern sys_var_session_bit sys_autocommit;
1132
const charset_info_st *get_old_charset_by_name(const char *old_name);
1105
1134
extern sys_var_str sys_var_general_log_path, sys_var_slow_log_path;
1107
1136
} /* namespace drizzled */