~laurynas-biveinis/percona-server/xtradb-changed-page-tracking-55

« back to all changes in this revision

Viewing changes to Percona-Server/sql/sys_vars.h

merge improved option modifiers

Show diffs side-by-side

added added

removed removed

Lines of Context:
135
135
    my_bool fixed= FALSE;
136
136
    ulonglong uv;
137
137
    longlong v;
138
 
 
 
138
    T *vmin, *vmax;
 
139
    
139
140
    v= var->value->val_int();
140
141
    if (var->value->unsigned_flag)
141
142
      uv= (ulonglong) v;
145
146
    var->save_result.ulonglong_value=
146
147
      getopt_ull_limit_value(uv, &option, &fixed);
147
148
 
148
 
    if (max_var_ptr() && var->save_result.ulonglong_value > *max_var_ptr())
149
 
      var->save_result.ulonglong_value= *max_var_ptr();
 
149
    vmin= (T *) getopt_constraint_get_min_value(option.name, 0, FALSE);
 
150
    vmax= (T *) getopt_constraint_get_max_value(option.name, 0, FALSE);
 
151
    if (vmin && var->save_result.ulonglong_value < *vmin)
 
152
      var->save_result.ulonglong_value= *vmin;
 
153
    if (vmax && var->save_result.ulonglong_value > *vmax)
 
154
      var->save_result.ulonglong_value= *vmax;
150
155
 
151
156
    return throw_bounds_warning(thd, name.str,
152
157
                                var->save_result.ulonglong_value != uv,
745
750
  bool do_check(THD *thd, set_var *var)
746
751
  {
747
752
    my_bool fixed;
 
753
    double *vmin, *vmax;
748
754
    double v= var->value->val_real();
749
 
    var->save_result.double_value= getopt_double_limit_value(v, &option, &fixed);
750
 
 
751
 
    return throw_bounds_warning(thd, name.str, fixed, v);
 
755
    var->save_result.double_value= getopt_double_limit_value(v, &option,
 
756
                                                             &fixed);
 
757
 
 
758
    vmin= (double *) getopt_constraint_get_min_value(option.name, 0, FALSE);
 
759
    vmax= (double *) getopt_constraint_get_max_value(option.name, 0, FALSE);
 
760
    if (vmin && var->save_result.double_value < *vmin)
 
761
      var->save_result.double_value= *vmin;
 
762
    if (vmax && var->save_result.double_value > *vmax)
 
763
      var->save_result.double_value= *vmax;
 
764
 
 
765
    return throw_bounds_warning(thd, name.str,
 
766
                                var->save_result.double_value != v, v);
752
767
  }
753
768
  bool session_update(THD *thd, set_var *var)
754
769
  {