~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/sys_var.h

  • Committer: Mark Atwood
  • Date: 2011-08-12 04:08:33 UTC
  • mfrom: (2385.2.17 refactor5)
  • Revision ID: me@mark.atwood.name-20110812040833-u6j85nc6ahuc0dtz
mergeĀ lp:~olafvdspek/drizzle/refactor5

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
18
18
 */
19
19
 
20
 
#ifndef DRIZZLED_SYS_VAR_H
21
 
#define DRIZZLED_SYS_VAR_H
 
20
#pragma once
22
21
 
23
22
#include <string>
24
23
#include <boost/filesystem.hpp>
25
24
 
 
25
#include <drizzled/common_fwd.h>
26
26
#include <drizzled/constrained_value.h>
27
27
#include <drizzled/set_var.h>
28
28
#include <drizzled/show_type.h>
29
29
#include <drizzled/item_result.h>
30
30
#include <drizzled/base.h>
31
 
#include <drizzled/global_charset_info.h>
 
31
#include <drizzled/charset.h>
32
32
#include <drizzled/lex_string.h>
33
 
 
34
33
#include <drizzled/visibility.h>
35
34
 
36
 
namespace drizzled
37
 
{
38
 
 
39
 
class sys_var;
40
 
class Time_zone;
41
 
typedef struct my_locale_st MY_LOCALE;
42
 
typedef struct st_typelib TYPELIB;
 
35
namespace drizzled {
43
36
 
44
37
typedef int (*sys_check_func)(Session *,  set_var *);
45
38
typedef bool (*sys_update_func)(Session *, set_var *);
59
52
extern boost::filesystem::path basedir;
60
53
extern boost::filesystem::path pid_file;
61
54
extern boost::filesystem::path secure_file_priv;
62
 
extern char *opt_tc_log_file;
 
55
extern const char *opt_tc_log_file;
63
56
extern uint64_t session_startup_options;
64
57
extern uint32_t global_thread_id;
65
58
extern uint64_t table_cache_size;
66
59
extern back_log_constraints back_log;
67
60
extern uint32_t ha_open_options;
68
 
extern char *drizzled_bind_host;
 
61
extern const char *drizzled_bind_host;
69
62
extern uint32_t dropping_tables;
70
63
extern bool opt_endinfo;
71
64
extern uint32_t volatile thread_running;
74
67
extern const char *opt_scheduler;
75
68
extern size_t transaction_message_threshold;
76
69
 
77
 
uint64_t fix_unsigned(Session *, uint64_t, const struct option *);
 
70
uint64_t fix_unsigned(Session*, uint64_t, const option&);
78
71
 
79
 
const std::string &getServerHostname();
 
72
DRIZZLED_API const std::string &getServerHostname();
80
73
int sys_var_init();
81
74
 
82
75
/**
160
153
  {
161
154
    return SHOW_UNDEF;
162
155
  }
163
 
  virtual unsigned char *value_ptr(Session *, sql_var_t, const LEX_STRING *)
 
156
  virtual unsigned char *value_ptr(Session *, sql_var_t, const lex_string_t *)
164
157
  {
165
158
    return 0;
166
159
  }
176
169
  {
177
170
    return option_limits == 0;
178
171
  }
179
 
  Item *item(Session *session, sql_var_t type, const LEX_STRING *base);
 
172
  Item *item(Session *session, sql_var_t type, const lex_string_t *base);
180
173
  virtual bool is_readonly() const
181
174
  {
182
175
    return 0;
218
211
  bool update(Session *session, set_var *var);
219
212
  void set_default(Session *session, sql_var_t type);
220
213
  SHOW_TYPE show_type() { return SHOW_INT; }
221
 
  unsigned char *value_ptr(Session *, sql_var_t, const LEX_STRING *)
 
214
  unsigned char *value_ptr(Session *, sql_var_t, const lex_string_t *)
222
215
  { return (unsigned char*) value; }
223
216
};
224
217
 
293
286
  }
294
287
  SHOW_TYPE show_type() { return SHOW_LONGLONG; }
295
288
  unsigned char *value_ptr(Session *, sql_var_t,
296
 
                           const LEX_STRING *)
 
289
                           const lex_string_t *)
297
290
  { return (unsigned char*) value; }
298
291
};
299
292
 
311
304
  bool update(Session *session, set_var *var);
312
305
  void set_default(Session *session, sql_var_t type);
313
306
  SHOW_TYPE show_type() { return SHOW_SIZE; }
314
 
  unsigned char *value_ptr(Session *, sql_var_t, const LEX_STRING *)
 
307
  unsigned char *value_ptr(Session *, sql_var_t, const lex_string_t *)
315
308
  { return (unsigned char*) value; }
316
309
};
317
310
 
342
335
  bool update(Session *session, set_var *var);
343
336
  void set_default(Session *session, sql_var_t type);
344
337
  SHOW_TYPE show_type() { return SHOW_MY_BOOL; }
345
 
  unsigned char *value_ptr(Session *, sql_var_t, const LEX_STRING *)
 
338
  unsigned char *value_ptr(Session *, sql_var_t, const lex_string_t *)
346
339
  { return (unsigned char*) value; }
347
340
  bool check_update_type(Item_result)
348
341
  { return 0; }
386
379
    (*set_default_func)(session, type);
387
380
  }
388
381
  SHOW_TYPE show_type() { return SHOW_CHAR; }
389
 
  unsigned char *value_ptr(Session *, sql_var_t, const LEX_STRING *)
 
382
  unsigned char *value_ptr(Session *, sql_var_t, const lex_string_t *)
390
383
  { return (unsigned char*) value; }
391
384
  bool check_update_type(Item_result type)
392
385
  {
420
413
    return true;
421
414
  }
422
415
  SHOW_TYPE show_type() { return SHOW_CHAR; }
423
 
  unsigned char *value_ptr(Session *, sql_var_t, const LEX_STRING *)
 
416
  unsigned char *value_ptr(Session *, sql_var_t, const lex_string_t *)
424
417
  {
425
418
    return (unsigned char*)(value.file_string().c_str());
426
419
  }
487
480
    value= default_value;
488
481
  }
489
482
 
490
 
  unsigned char *value_ptr(Session *, sql_var_t, const LEX_STRING *)
 
483
  unsigned char *value_ptr(Session *, sql_var_t, const lex_string_t *)
491
484
  {
492
485
    basic_value= value.get();
493
486
    return (unsigned char*)&basic_value;
599
592
    return false;
600
593
  }
601
594
  SHOW_TYPE show_type() { return SHOW_CHAR; }
602
 
  unsigned char *value_ptr(Session *, sql_var_t, const LEX_STRING *)
 
595
  unsigned char *value_ptr(Session *, sql_var_t, const lex_string_t *)
603
596
  {
604
597
    return (unsigned char*)(value.c_str());
605
598
  }
635
628
    return true;
636
629
  }
637
630
  SHOW_TYPE show_type() { return SHOW_CHAR; }
638
 
  unsigned char *value_ptr(Session *, sql_var_t, const LEX_STRING *)
 
631
  unsigned char *value_ptr(Session *, sql_var_t, const lex_string_t *)
639
632
  {
640
633
    return (unsigned char*)(value.c_str());
641
634
  }
670
663
    return true;
671
664
  }
672
665
  SHOW_TYPE show_type() { return SHOW_CHAR; }
673
 
  unsigned char *value_ptr(Session *, sql_var_t, const LEX_STRING *)
 
666
  unsigned char *value_ptr(Session *, sql_var_t, const lex_string_t *)
674
667
  {
675
668
    return (unsigned char*)(value.c_str());
676
669
  }
703
696
    return 1;
704
697
  }
705
698
  SHOW_TYPE show_type() { return SHOW_CHAR; }
706
 
  unsigned char *value_ptr(Session *, sql_var_t, const LEX_STRING *)
 
699
  unsigned char *value_ptr(Session *, sql_var_t, const lex_string_t *)
707
700
  {
708
701
    return (unsigned char*) value;
709
702
  }
733
726
    return 1;
734
727
  }
735
728
  SHOW_TYPE show_type() { return SHOW_CHAR; }
736
 
  unsigned char *value_ptr(Session *, sql_var_t, const LEX_STRING *)
 
729
  unsigned char *value_ptr(Session *, sql_var_t, const lex_string_t *)
737
730
  {
738
731
    return (unsigned char*) *value;
739
732
  }
779
772
  void set_default(Session *session, sql_var_t type);
780
773
  SHOW_TYPE show_type() { return SHOW_INT; }
781
774
  unsigned char *value_ptr(Session *session, sql_var_t type,
782
 
                           const LEX_STRING *base);
 
775
                           const lex_string_t *base);
783
776
};
784
777
 
785
778
 
800
793
  void set_default(Session *session, sql_var_t type);
801
794
  SHOW_TYPE show_type() { return SHOW_HA_ROWS; }
802
795
  unsigned char *value_ptr(Session *session, sql_var_t type,
803
 
                           const LEX_STRING *base);
 
796
                           const lex_string_t *base);
804
797
};
805
798
 
806
799
 
833
826
  void set_default(Session *session, sql_var_t type);
834
827
  SHOW_TYPE show_type() { return SHOW_LONGLONG; }
835
828
  unsigned char *value_ptr(Session *session, sql_var_t type,
836
 
                           const LEX_STRING *base);
 
829
                           const lex_string_t *base);
837
830
  bool check(Session *session, set_var *var);
838
831
  bool check_default(sql_var_t type)
839
832
  {
873
866
  void set_default(Session *session, sql_var_t type);
874
867
  SHOW_TYPE show_type() { return SHOW_SIZE; }
875
868
  unsigned char *value_ptr(Session *session, sql_var_t type,
876
 
                           const LEX_STRING *base);
 
869
                           const lex_string_t *base);
877
870
  bool check(Session *session, set_var *var);
878
871
  bool check_default(sql_var_t type)
879
872
  {
901
894
  void set_default(Session *session, sql_var_t type);
902
895
  SHOW_TYPE show_type() { return SHOW_MY_BOOL; }
903
896
  unsigned char *value_ptr(Session *session, sql_var_t type,
904
 
                           const LEX_STRING *base);
 
897
                           const lex_string_t *base);
905
898
  bool check(Session *session, set_var *var);
906
899
  bool check_update_type(Item_result)
907
900
  { return 0; }
933
926
  void set_default(Session *session, sql_var_t type);
934
927
  SHOW_TYPE show_type() { return SHOW_CHAR; }
935
928
  unsigned char *value_ptr(Session *session, sql_var_t type,
936
 
                           const LEX_STRING *base);
 
929
                           const lex_string_t *base);
937
930
  bool check_update_type(Item_result)
938
931
  { return 0; }
939
932
};
956
949
  void set_default(Session *session, sql_var_t type);
957
950
  bool update(Session *session, set_var *var);
958
951
  unsigned char *value_ptr(Session *session, sql_var_t type,
959
 
                           const LEX_STRING *base);
 
952
                           const lex_string_t *base);
960
953
};
961
954
 
962
955
class DRIZZLED_API sys_var_session_bit :public sys_var_session
979
972
  bool check_type(sql_var_t type) { return type == OPT_GLOBAL; }
980
973
  SHOW_TYPE show_type() { return SHOW_MY_BOOL; }
981
974
  unsigned char *value_ptr(Session *session, sql_var_t type,
982
 
                           const LEX_STRING *base);
 
975
                           const lex_string_t *base);
983
976
};
984
977
 
985
978
/* some variables that require special handling */
997
990
  { return 0; }
998
991
  SHOW_TYPE show_type(void) { return SHOW_LONG; }
999
992
  unsigned char *value_ptr(Session *session, sql_var_t type,
1000
 
                           const LEX_STRING *base);
 
993
                           const lex_string_t *base);
1001
994
};
1002
995
 
1003
996
 
1011
1004
  bool check_type(sql_var_t type) { return type == OPT_GLOBAL; }
1012
1005
  SHOW_TYPE show_type() { return SHOW_LONGLONG; }
1013
1006
  unsigned char *value_ptr(Session *session, sql_var_t type,
1014
 
                           const LEX_STRING *base);
 
1007
                           const lex_string_t *base);
1015
1008
};
1016
1009
 
1017
1010
 
1032
1025
 
1033
1026
class DRIZZLED_API sys_var_collation_sv :public sys_var_collation
1034
1027
{
1035
 
  const CHARSET_INFO *drizzle_system_variables::*offset;
1036
 
  const CHARSET_INFO **global_default;
 
1028
  const charset_info_st *drizzle_system_variables::*offset;
 
1029
  const charset_info_st **global_default;
1037
1030
public:
1038
1031
  sys_var_collation_sv(const char *name_arg,
1039
 
                       const CHARSET_INFO *drizzle_system_variables::*offset_arg,
1040
 
                       const CHARSET_INFO **global_default_arg)
 
1032
                       const charset_info_st *drizzle_system_variables::*offset_arg,
 
1033
                       const charset_info_st **global_default_arg)
1041
1034
    :sys_var_collation(name_arg),
1042
1035
    offset(offset_arg), global_default(global_default_arg)
1043
1036
  {
1046
1039
  bool update(Session *session, set_var *var);
1047
1040
  void set_default(Session *session, sql_var_t type);
1048
1041
  unsigned char *value_ptr(Session *session, sql_var_t type,
1049
 
                           const LEX_STRING *base);
 
1042
                           const lex_string_t *base);
1050
1043
};
1051
1044
 
1052
1045
/* Variable that you can only read from */
1071
1064
  bool check_update_type(Item_result)
1072
1065
  { return 1; }
1073
1066
  unsigned char *value_ptr(Session *session, sql_var_t,
1074
 
                           const LEX_STRING *)
 
1067
                           const lex_string_t *)
1075
1068
  {
1076
1069
    return (*value_ptr_func)(session);
1077
1070
  }
1114
1107
  { return 0; }
1115
1108
  bool update(Session *session, set_var *var);
1116
1109
  unsigned char *value_ptr(Session *session, sql_var_t type,
1117
 
                           const LEX_STRING *base);
 
1110
                           const lex_string_t *base);
1118
1111
  virtual void set_default(Session *session, sql_var_t type);
1119
1112
};
1120
1113
 
1124
1117
struct sys_var_with_base
1125
1118
{
1126
1119
  sys_var *var;
1127
 
  LEX_STRING base_name;
 
1120
  lex_string_t base_name;
1128
1121
};
1129
1122
 
1130
1123
/*
1136
1129
void add_sys_var_to_list(sys_var *var);
1137
1130
sys_var *find_sys_var(const std::string &name);
1138
1131
extern sys_var_session_bit sys_autocommit;
1139
 
const CHARSET_INFO *get_old_charset_by_name(const char *old_name);
 
1132
const charset_info_st *get_old_charset_by_name(const char *old_name);
1140
1133
 
1141
1134
extern sys_var_str sys_var_general_log_path, sys_var_slow_log_path;
1142
1135
 
1143
1136
} /* namespace drizzled */
1144
1137
 
1145
 
#endif /* DRIZZLED_SYS_VAR_H */