create sys_var::val_str(), sys_var::val_int(), sys_var::val_real().

Change Item_func_get_system_var::val_xxx functions to use that.

mysql-test/t/variables.test:
  @@GLOBAL.INIT_CONNECT is never NULL anymore. Nor it ever was.
  It was a bug that empty string system variables appeared as NULL
  in the *integer context* (but not in a string, real, or decimal context!)
This commit is contained in:
Sergei Golubchik 2013-04-09 23:27:19 +02:00
commit 7d3288129f
6 changed files with 127 additions and 196 deletions

View file

@ -108,6 +108,10 @@ public:
bool set_default(THD *thd, enum_var_type type);
bool update(THD *thd, set_var *var);
longlong val_int(bool *is_null, THD *thd, enum_var_type type, LEX_STRING *base);
String *val_str(String *str, THD *thd, enum_var_type type, LEX_STRING *base);
double val_real(bool *is_null, THD *thd, enum_var_type type, LEX_STRING *base);
SHOW_TYPE show_type() { return show_val_type; }
int scope() const { return flags & SCOPE_MASK; }
CHARSET_INFO *charset(THD *thd);