~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/set_var.h

  • Committer: Brian Aker
  • Date: 2008-11-25 23:49:22 UTC
  • Revision ID: brian@tangent.org-20081125234922-d8k0rhcmblv1z49z
ulong fixes

Show diffs side-by-side

added added

removed removed

Lines of Context:
397
397
 
398
398
class sys_var_enum_const :public sys_var
399
399
{
400
 
  ulong SV::*offset;
 
400
  uint32_t SV::*offset;
401
401
  TYPELIB *enum_names;
402
402
public:
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);
823
823
};
824
824
 
825
 
 
826
 
class sys_var_set :public sys_var
827
 
{
828
 
protected:
829
 
  ulong *value;
830
 
  TYPELIB *enum_names;
831
 
public:
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)
837
 
  {
838
 
    return check_set(session, var, enum_names);
839
 
  }
840
 
  virtual void set_default(Session *session __attribute__((unused)),
841
 
                           enum_var_type type __attribute__((unused)))
842
 
  {
843
 
    *value= 0;
844
 
  }
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)))
848
 
  { return 0; }
849
 
  SHOW_TYPE show_type() { return SHOW_CHAR; }
850
 
};
851
 
 
852
 
class sys_var_set_slave_mode :public sys_var_set
853
 
{
854
 
public:
855
 
  sys_var_set_slave_mode(sys_var_chain *chain, const char *name_arg,
856
 
                         ulong *value_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);
862
 
};
863
 
 
864
 
class sys_var_log_output :public sys_var
865
 
{
866
 
  ulong *value;
867
 
  TYPELIB *enum_names;
868
 
public:
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)
872
 
  {
873
 
    chain_sys_var(chain);
874
 
    set_allow_empty_value(false);
875
 
  }
876
 
  virtual bool check(Session *session, set_var *var)
877
 
  {
878
 
    return check_set(session, var, enum_names);
879
 
  }
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)))
883
 
  { return 0; }
884
 
  void set_default(Session *session, enum_var_type type);
885
 
  SHOW_TYPE show_type() { return SHOW_CHAR; }
886
 
};
887
 
 
888
 
 
889
825
/* Variable that you can only read from */
890
826
 
891
827
class sys_var_readonly: public sys_var