Commit 0237d9b0 authored by unknown's avatar unknown
Browse files

String::set(double) and set(longlong) -> set_real() and set_int()

fix Field::store(double) being used instead of store(longlong)

NB: overloading functions is evil

parent 2996b49a
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -4978,7 +4978,7 @@ int Field_time::store_time(TIME *ltime, timestamp_type type)
            (ltime->minute * 100 + ltime->second);
  if (ltime->neg)
    tmp= -tmp;
  return Field_time::store((longlong) tmp);
  return Field_time::store((longlong) tmp, TRUE);
}


@@ -7117,7 +7117,7 @@ int Field_blob::store(const char *from,uint length,CHARSET_INFO *cs)
int Field_blob::store(double nr)
{
  CHARSET_INFO *cs=charset();
  value.set(nr, 2, cs);
  value.set_real(nr, 2, cs);
  return Field_blob::store(value.ptr(),(uint) value.length(), cs);
}

@@ -7125,7 +7125,7 @@ int Field_blob::store(double nr)
int Field_blob::store(longlong nr, bool unsigned_val)
{
  CHARSET_INFO *cs=charset();
  value.set(nr, unsigned_val, cs);
  value.set_int(nr, unsigned_val, cs);
  return Field_blob::store(value.ptr(), (uint) value.length(), cs);
}

@@ -8216,7 +8216,7 @@ int Field_bit::store_decimal(const my_decimal *val)
{
  int err= 0;
  longlong i= convert_decimal2longlong(val, 1, &err);
  return test(err | store(i));
  return test(err | store(i, TRUE));
}


+8 −8
Original line number Diff line number Diff line
@@ -61,7 +61,7 @@ Hybrid_type_traits::val_decimal(Hybrid_type *val, my_decimal *to) const
String *
Hybrid_type_traits::val_str(Hybrid_type *val, String *to, uint8 decimals) const
{
  to->set(val->real, decimals, &my_charset_bin);
  to->set_real(val->real, decimals, &my_charset_bin);
  return to;
}

@@ -202,7 +202,7 @@ String *Item::val_string_from_real(String *str)
  double nr= val_real();
  if (null_value)
    return 0;					/* purecov: inspected */
  str->set(nr,decimals, &my_charset_bin);
  str->set_real(nr,decimals, &my_charset_bin);
  return str;
}

@@ -212,7 +212,7 @@ String *Item::val_string_from_int(String *str)
  longlong nr= val_int();
  if (null_value)
    return 0;
  str->set(nr, unsigned_flag, &my_charset_bin);
  str->set_int(nr, unsigned_flag, &my_charset_bin);
  return str;
}

@@ -2038,7 +2038,7 @@ String *Item_float::val_str(String *str)
{
  // following assert is redundant, because fixed=1 assigned in constructor
  DBUG_ASSERT(fixed == 1);
  str->set(value,decimals,&my_charset_bin);
  str->set_real(value,decimals,&my_charset_bin);
  return str;
}

@@ -2633,7 +2633,7 @@ String *Item_param::val_str(String* str)
  case LONG_DATA_VALUE:
    return &str_value_ptr;
  case REAL_VALUE:
    str->set(value.real, NOT_FIXED_DEC, &my_charset_bin);
    str->set_real(value.real, NOT_FIXED_DEC, &my_charset_bin);
    return str;
  case INT_VALUE:
    str->set(value.integer, &my_charset_bin);
@@ -2673,7 +2673,7 @@ const String *Item_param::query_val_str(String* str) const
    str->set(value.integer, &my_charset_bin);
    break;
  case REAL_VALUE:
    str->set(value.real, NOT_FIXED_DEC, &my_charset_bin);
    str->set_real(value.real, NOT_FIXED_DEC, &my_charset_bin);
    break;
  case DECIMAL_VALUE:
    if (my_decimal2string(E_DEC_FATAL_ERROR, &decimal_value,
@@ -4326,7 +4326,7 @@ void Item_float::print(String *str)
  }
  char buffer[20];
  String num(buffer, sizeof(buffer), &my_charset_bin);
  num.set(value, decimals, &my_charset_bin);
  num.set_real(value, decimals, &my_charset_bin);
  str->append(num);
}

@@ -5768,7 +5768,7 @@ longlong Item_cache_real::val_int()
String* Item_cache_real::val_str(String *str)
{
  DBUG_ASSERT(fixed == 1);
  str->set(value, decimals, default_charset());
  str->set_real(value, decimals, default_charset());
  return str;
}

+9 −9
Original line number Diff line number Diff line
@@ -416,7 +416,7 @@ String *Item_real_func::val_str(String *str)
  double nr= val_real();
  if (null_value)
    return 0; /* purecov: inspected */
  str->set(nr,decimals, &my_charset_bin);
  str->set_real(nr,decimals, &my_charset_bin);
  return str;
}

@@ -556,7 +556,7 @@ String *Item_int_func::val_str(String *str)
  longlong nr=val_int();
  if (null_value)
    return 0;
  str->set(nr, unsigned_flag, &my_charset_bin);
  str->set_int(nr, unsigned_flag, &my_charset_bin);
  return str;
}

@@ -698,7 +698,7 @@ String *Item_func_numhybrid::val_str(String *str)
    longlong nr= int_op();
    if (null_value)
      return 0; /* purecov: inspected */
    str->set(nr, unsigned_flag, &my_charset_bin);
    str->set_int(nr, unsigned_flag, &my_charset_bin);
    break;
  }
  case REAL_RESULT:
@@ -706,7 +706,7 @@ String *Item_func_numhybrid::val_str(String *str)
    double nr= real_op();
    if (null_value)
      return 0; /* purecov: inspected */
    str->set(nr,decimals,&my_charset_bin);
    str->set_real(nr,decimals,&my_charset_bin);
    break;
  }
  case STRING_RESULT:
@@ -2052,7 +2052,7 @@ String *Item_func_min_max::val_str(String *str)
    longlong nr=val_int();
    if (null_value)
      return 0;
    str->set(nr, unsigned_flag, &my_charset_bin);
    str->set_int(nr, unsigned_flag, &my_charset_bin);
    return str;
  }
  case DECIMAL_RESULT:
@@ -2068,7 +2068,7 @@ String *Item_func_min_max::val_str(String *str)
    double nr= val_real();
    if (null_value)
      return 0; /* purecov: inspected */
    str->set(nr,decimals,&my_charset_bin);
    str->set_real(nr,decimals,&my_charset_bin);
    return str;
  }
  case STRING_RESULT:
@@ -2819,7 +2819,7 @@ String *Item_func_udf_float::val_str(String *str)
  double nr= val_real();
  if (null_value)
    return 0;					/* purecov: inspected */
  str->set(nr,decimals,&my_charset_bin);
  str->set_real(nr,decimals,&my_charset_bin);
  return str;
}

@@ -2838,7 +2838,7 @@ String *Item_func_udf_int::val_str(String *str)
  longlong nr=val_int();
  if (null_value)
    return 0;
  str->set(nr, unsigned_flag, &my_charset_bin);
  str->set_int(nr, unsigned_flag, &my_charset_bin);
  return str;
}

@@ -3638,7 +3638,7 @@ String *user_var_entry::val_str(my_bool *null_value, String *str,

  switch (type) {
  case REAL_RESULT:
    str->set(*(double*) value, decimals, &my_charset_bin);
    str->set_real(*(double*) value, decimals, &my_charset_bin);
    break;
  case INT_RESULT:
    str->set(*(longlong*) value, &my_charset_bin);
+1 −1
Original line number Diff line number Diff line
@@ -1808,7 +1808,7 @@ String *Item_func_format::val_str(String *str)
      return 0; /* purecov: inspected */
    nr= my_double_round(nr, decimals, FALSE);
    /* Here default_charset() is right as this is not an automatic conversion */
    str->set(nr,decimals, default_charset());
    str->set_real(nr,decimals, default_charset());
    if (isnan(nr))
      return str;
    str_length=str->length();
+2 −2
Original line number Diff line number Diff line
@@ -1578,13 +1578,13 @@ Item_sum_hybrid::val_str(String *str)
  case STRING_RESULT:
    return &value;
  case REAL_RESULT:
    str->set(sum,decimals, &my_charset_bin);
    str->set_real(sum,decimals, &my_charset_bin);
    break;
  case DECIMAL_RESULT:
    my_decimal2string(E_DEC_FATAL_ERROR, &sum_dec, 0, 0, 0, str);
    return str;
  case INT_RESULT:
    str->set(sum_int, unsigned_flag, &my_charset_bin);
    str->set_int(sum_int, unsigned_flag, &my_charset_bin);
    break;
  case ROW_RESULT:
  default:
Loading