~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/sys_var.h

  • Committer: Olaf van der Spek
  • Date: 2011-10-26 12:03:22 UTC
  • mto: This revision was merged to the branch mainline in revision 2456.
  • Revision ID: olafvdspek@gmail.com-20111026120322-njk994x6jappi66p
Refactor

Show diffs side-by-side

added added

removed removed

Lines of Context:
153
153
  {
154
154
    return SHOW_UNDEF;
155
155
  }
156
 
  virtual unsigned char *value_ptr(Session *, sql_var_t, const lex_string_t *)
157
 
  {
158
 
    return 0;
159
 
  }
 
156
  virtual unsigned char *value_ptr(Session*, sql_var_t) = 0;
160
157
  virtual bool check_type(sql_var_t type)
161
158
  {
162
159
    return type != OPT_GLOBAL;
198
195
{
199
196
  uint32_t *value;
200
197
public:
201
 
  sys_var_uint32_t_ptr(const char *name_arg,
202
 
                       uint32_t *value_ptr_arg)
 
198
  sys_var_uint32_t_ptr(const char *name_arg, uint32_t *value_ptr_arg)
203
199
    :sys_var(name_arg),value(value_ptr_arg)
204
200
  {  }
205
 
  sys_var_uint32_t_ptr(const char *name_arg,
206
 
                       uint32_t *value_ptr_arg,
207
 
                       sys_after_update_func func)
 
201
  sys_var_uint32_t_ptr(const char *name_arg, uint32_t *value_ptr_arg, sys_after_update_func func)
208
202
    :sys_var(name_arg,func), value(value_ptr_arg)
209
203
  {  }
210
204
  bool check(Session *session, set_var *var);
211
205
  bool update(Session *session, set_var *var);
212
206
  void set_default(Session *session, sql_var_t type);
213
207
  SHOW_TYPE show_type() { return SHOW_INT; }
214
 
  unsigned char *value_ptr(Session *, sql_var_t, const lex_string_t *)
 
208
  unsigned char *value_ptr(Session *, sql_var_t)
215
209
  { return (unsigned char*) value; }
216
210
};
217
211
 
219
213
  public sys_var_uint32_t_ptr
220
214
{
221
215
public:
222
 
  sys_var_uint32_t_ptr_readonly(const char *name_arg,
223
 
                                uint32_t *value_ptr_arg) :
 
216
  sys_var_uint32_t_ptr_readonly(const char *name_arg, uint32_t *value_ptr_arg) :
224
217
    sys_var_uint32_t_ptr(name_arg, value_ptr_arg)
225
218
  {}
226
219
 
285
278
    return (not have_default_value) && option_limits == 0;
286
279
  }
287
280
  SHOW_TYPE show_type() { return SHOW_LONGLONG; }
288
 
  unsigned char *value_ptr(Session *, sql_var_t, const lex_string_t *)
 
281
  unsigned char *value_ptr(Session *, sql_var_t)
289
282
  { return (unsigned char*) value; }
290
283
};
291
284
 
303
296
  bool update(Session *session, set_var *var);
304
297
  void set_default(Session *session, sql_var_t type);
305
298
  SHOW_TYPE show_type() { return SHOW_SIZE; }
306
 
  unsigned char *value_ptr(Session *, sql_var_t, const lex_string_t *)
 
299
  unsigned char *value_ptr(Session *, sql_var_t)
307
300
  { return (unsigned char*) value; }
308
301
};
309
302
 
334
327
  bool update(Session *session, set_var *var);
335
328
  void set_default(Session *session, sql_var_t type);
336
329
  SHOW_TYPE show_type() { return SHOW_MY_BOOL; }
337
 
  unsigned char *value_ptr(Session *, sql_var_t, const lex_string_t *)
 
330
  unsigned char *value_ptr(Session *, sql_var_t)
338
331
  { return (unsigned char*) value; }
339
332
  bool check_update_type(Item_result)
340
333
  { return 0; }
378
371
    (*set_default_func)(session, type);
379
372
  }
380
373
  SHOW_TYPE show_type() { return SHOW_CHAR; }
381
 
  unsigned char *value_ptr(Session *, sql_var_t, const lex_string_t *)
 
374
  unsigned char *value_ptr(Session *, sql_var_t)
382
375
  { return (unsigned char*) value; }
383
376
  bool check_update_type(Item_result type)
384
377
  {
412
405
    return true;
413
406
  }
414
407
  SHOW_TYPE show_type() { return SHOW_CHAR; }
415
 
  unsigned char *value_ptr(Session *, sql_var_t, const lex_string_t *)
 
408
  unsigned char *value_ptr(Session *, sql_var_t)
416
409
  {
417
410
    return (unsigned char*)(value.file_string().c_str());
418
411
  }
479
472
    value= default_value;
480
473
  }
481
474
 
482
 
  unsigned char *value_ptr(Session *, sql_var_t, const lex_string_t *)
 
475
  unsigned char *value_ptr(Session *, sql_var_t)
483
476
  {
484
477
    basic_value= value.get();
485
478
    return (unsigned char*)&basic_value;
591
584
    return false;
592
585
  }
593
586
  SHOW_TYPE show_type() { return SHOW_CHAR; }
594
 
  unsigned char *value_ptr(Session *, sql_var_t, const lex_string_t *)
 
587
  unsigned char *value_ptr(Session *, sql_var_t)
595
588
  {
596
589
    return (unsigned char*)(value.c_str());
597
590
  }
627
620
    return true;
628
621
  }
629
622
  SHOW_TYPE show_type() { return SHOW_CHAR; }
630
 
  unsigned char *value_ptr(Session *, sql_var_t, const lex_string_t *)
 
623
  unsigned char *value_ptr(Session *, sql_var_t)
631
624
  {
632
625
    return (unsigned char*)(value.c_str());
633
626
  }
662
655
    return true;
663
656
  }
664
657
  SHOW_TYPE show_type() { return SHOW_CHAR; }
665
 
  unsigned char *value_ptr(Session *, sql_var_t, const lex_string_t *)
 
658
  unsigned char *value_ptr(Session *, sql_var_t)
666
659
  {
667
660
    return (unsigned char*)(value.c_str());
668
661
  }
695
688
    return 1;
696
689
  }
697
690
  SHOW_TYPE show_type() { return SHOW_CHAR; }
698
 
  unsigned char *value_ptr(Session *, sql_var_t, const lex_string_t *)
 
691
  unsigned char *value_ptr(Session *, sql_var_t)
699
692
  {
700
693
    return (unsigned char*) value;
701
694
  }
725
718
    return 1;
726
719
  }
727
720
  SHOW_TYPE show_type() { return SHOW_CHAR; }
728
 
  unsigned char *value_ptr(Session *, sql_var_t, const lex_string_t *)
 
721
  unsigned char *value_ptr(Session *, sql_var_t)
729
722
  {
730
723
    return (unsigned char*) *value;
731
724
  }
770
763
  bool update(Session *session, set_var *var);
771
764
  void set_default(Session *session, sql_var_t type);
772
765
  SHOW_TYPE show_type() { return SHOW_INT; }
773
 
  unsigned char *value_ptr(Session *session, sql_var_t type, const lex_string_t *base);
 
766
  unsigned char *value_ptr(Session *session, sql_var_t type);
774
767
};
775
768
 
776
769
 
790
783
  bool update(Session *session, set_var *var);
791
784
  void set_default(Session *session, sql_var_t type);
792
785
  SHOW_TYPE show_type() { return SHOW_HA_ROWS; }
793
 
  unsigned char *value_ptr(Session *session, sql_var_t type, const lex_string_t *base);
 
786
  unsigned char *value_ptr(Session *session, sql_var_t type);
794
787
};
795
788
 
796
789
 
822
815
  bool update(Session *session, set_var *var);
823
816
  void set_default(Session *session, sql_var_t type);
824
817
  SHOW_TYPE show_type() { return SHOW_LONGLONG; }
825
 
  unsigned char *value_ptr(Session *session, sql_var_t type, const lex_string_t *base);
 
818
  unsigned char *value_ptr(Session *session, sql_var_t type);
826
819
  bool check(Session *session, set_var *var);
827
820
  bool check_default(sql_var_t type)
828
821
  {
861
854
  bool update(Session *session, set_var *var);
862
855
  void set_default(Session *session, sql_var_t type);
863
856
  SHOW_TYPE show_type() { return SHOW_SIZE; }
864
 
  unsigned char *value_ptr(Session *session, sql_var_t type, const lex_string_t *base);
 
857
  unsigned char *value_ptr(Session *session, sql_var_t type);
865
858
  bool check(Session *session, set_var *var);
866
859
  bool check_default(sql_var_t type)
867
860
  {
888
881
  bool update(Session *session, set_var *var);
889
882
  void set_default(Session *session, sql_var_t type);
890
883
  SHOW_TYPE show_type() { return SHOW_MY_BOOL; }
891
 
  unsigned char *value_ptr(Session *session, sql_var_t type, const lex_string_t *base);
 
884
  unsigned char *value_ptr(Session *session, sql_var_t type);
892
885
  bool check(Session *session, set_var *var);
893
886
  bool check_update_type(Item_result)
894
887
  { return 0; }
919
912
  bool update(Session *session, set_var *var);
920
913
  void set_default(Session *session, sql_var_t type);
921
914
  SHOW_TYPE show_type() { return SHOW_CHAR; }
922
 
  unsigned char *value_ptr(Session *session, sql_var_t type, const lex_string_t *base);
 
915
  unsigned char *value_ptr(Session *session, sql_var_t type);
923
916
  bool check_update_type(Item_result)
924
917
  { return 0; }
925
918
};
941
934
  }
942
935
  void set_default(Session *session, sql_var_t type);
943
936
  bool update(Session *session, set_var *var);
944
 
  unsigned char *value_ptr(Session *session, sql_var_t type, const lex_string_t *base);
 
937
  unsigned char *value_ptr(Session *session, sql_var_t type);
945
938
};
946
939
 
947
940
class DRIZZLED_API sys_var_session_bit :public sys_var_session
963
956
  { return 0; }
964
957
  bool check_type(sql_var_t type) { return type == OPT_GLOBAL; }
965
958
  SHOW_TYPE show_type() { return SHOW_MY_BOOL; }
966
 
  unsigned char *value_ptr(Session *session, sql_var_t type, const lex_string_t *base);
 
959
  unsigned char *value_ptr(Session *session, sql_var_t type);
967
960
};
968
961
 
969
962
/* some variables that require special handling */
980
973
  bool check_default(sql_var_t)
981
974
  { return 0; }
982
975
  SHOW_TYPE show_type(void) { return SHOW_LONG; }
983
 
  unsigned char *value_ptr(Session *session, sql_var_t type, const lex_string_t *base);
 
976
  unsigned char *value_ptr(Session *session, sql_var_t type);
984
977
};
985
978
 
986
979
 
993
986
  bool update(Session *session, set_var *var);
994
987
  bool check_type(sql_var_t type) { return type == OPT_GLOBAL; }
995
988
  SHOW_TYPE show_type() { return SHOW_LONGLONG; }
996
 
  unsigned char *value_ptr(Session *session, sql_var_t type, const lex_string_t *base);
 
989
  unsigned char *value_ptr(Session *session, sql_var_t type);
997
990
};
998
991
 
999
992
 
1027
1020
  }
1028
1021
  bool update(Session *session, set_var *var);
1029
1022
  void set_default(Session *session, sql_var_t type);
1030
 
  unsigned char *value_ptr(Session *session, sql_var_t type, const lex_string_t *base);
 
1023
  unsigned char *value_ptr(Session *session, sql_var_t type);
1031
1024
};
1032
1025
 
1033
1026
/* Variable that you can only read from */
1051
1044
  bool check_type(sql_var_t type) { return type != var_type; }
1052
1045
  bool check_update_type(Item_result)
1053
1046
  { return 1; }
1054
 
  unsigned char *value_ptr(Session *session, sql_var_t, const lex_string_t *)
 
1047
  unsigned char *value_ptr(Session *session, sql_var_t)
1055
1048
  {
1056
1049
    return (*value_ptr_func)(session);
1057
1050
  }
1093
1086
  bool check_default(sql_var_t)
1094
1087
  { return 0; }
1095
1088
  bool update(Session *session, set_var *var);
1096
 
  unsigned char *value_ptr(Session *session, sql_var_t type, const lex_string_t *base);
 
1089
  unsigned char *value_ptr(Session *session, sql_var_t type);
1097
1090
  virtual void set_default(Session *session, sql_var_t type);
1098
1091
};
1099
1092