Commit e0711894 authored by Alexander Barkov's avatar Alexander Barkov

MDEV-17250 Remove unused Item_copy_xxx

parent 935a163d
......@@ -4169,31 +4169,6 @@ void Item_param::make_field(Send_field *field)
field->type= m_out_param_info->type;
}
/****************************************************************************
Item_copy
****************************************************************************/
Item_copy *Item_copy::create (Item *item)
{
switch (item->result_type())
{
case STRING_RESULT:
return new Item_copy_string (item);
case REAL_RESULT:
return new Item_copy_float (item);
case INT_RESULT:
return item->unsigned_flag ?
new Item_copy_uint (item) : new Item_copy_int (item);
case DECIMAL_RESULT:
return new Item_copy_decimal (item);
case TIME_RESULT:
case ROW_RESULT:
case IMPOSSIBLE_RESULT:
DBUG_ASSERT (0);
}
/* should not happen */
return NULL;
}
/****************************************************************************
Item_copy_string
......@@ -4251,156 +4226,6 @@ my_decimal *Item_copy_string::val_decimal(my_decimal *decimal_value)
}
/****************************************************************************
Item_copy_int
****************************************************************************/
void Item_copy_int::copy()
{
cached_value= item->val_int();
null_value=item->null_value;
}
static int save_int_value_in_field (Field *, longlong, bool, bool);
int Item_copy_int::save_in_field(Field *field, bool no_conversions)
{
return save_int_value_in_field(field, cached_value,
null_value, unsigned_flag);
}
String *Item_copy_int::val_str(String *str)
{
if (null_value)
return (String *) 0;
str->set(cached_value, &my_charset_bin);
return str;
}
my_decimal *Item_copy_int::val_decimal(my_decimal *decimal_value)
{
if (null_value)
return (my_decimal *) 0;
int2my_decimal(E_DEC_FATAL_ERROR, cached_value, unsigned_flag, decimal_value);
return decimal_value;
}
/****************************************************************************
Item_copy_uint
****************************************************************************/
String *Item_copy_uint::val_str(String *str)
{
if (null_value)
return (String *) 0;
str->set((ulonglong) cached_value, &my_charset_bin);
return str;
}
/****************************************************************************
Item_copy_float
****************************************************************************/
String *Item_copy_float::val_str(String *str)
{
if (null_value)
return (String *) 0;
else
{
double nr= val_real();
str->set_real(nr,decimals, &my_charset_bin);
return str;
}
}
my_decimal *Item_copy_float::val_decimal(my_decimal *decimal_value)
{
if (null_value)
return (my_decimal *) 0;
else
{
double nr= val_real();
double2my_decimal(E_DEC_FATAL_ERROR, nr, decimal_value);
return decimal_value;
}
}
int Item_copy_float::save_in_field(Field *field, bool no_conversions)
{
if (null_value)
return set_field_to_null(field);
field->set_notnull();
return field->store(cached_value);
}
/****************************************************************************
Item_copy_decimal
****************************************************************************/
int Item_copy_decimal::save_in_field(Field *field, bool no_conversions)
{
if (null_value)
return set_field_to_null(field);
field->set_notnull();
return field->store_decimal(&cached_value);
}
String *Item_copy_decimal::val_str(String *result)
{
if (null_value)
return (String *) 0;
result->set_charset(&my_charset_bin);
my_decimal2string(E_DEC_FATAL_ERROR, &cached_value, 0, 0, 0, result);
return result;
}
double Item_copy_decimal::val_real()
{
if (null_value)
return 0.0;
else
{
double result;
my_decimal2double(E_DEC_FATAL_ERROR, &cached_value, &result);
return result;
}
}
longlong Item_copy_decimal::val_int()
{
if (null_value)
return LL(0);
else
{
longlong result;
my_decimal2int(E_DEC_FATAL_ERROR, &cached_value, unsigned_flag, &result);
return result;
}
}
void Item_copy_decimal::copy()
{
my_decimal *nr= item->val_decimal(&cached_value);
if (nr && nr != &cached_value)
my_decimal2decimal (nr, &cached_value);
null_value= item->null_value;
}
/*
Functions to convert item to field (for send_result_set_metadata)
*/
......
......@@ -3664,13 +3664,6 @@ class Item_copy :public Item
}
public:
/**
Factory method to create the appropriate subclass dependent on the type of
the original item.
@param item the original item.
*/
static Item_copy *create (Item *item);
/**
Update the cache with the value of the original item
......@@ -3732,89 +3725,6 @@ class Item_copy_string : public Item_copy
};
class Item_copy_int : public Item_copy
{
protected:
longlong cached_value;
public:
Item_copy_int (Item *i) : Item_copy(i) {}
int save_in_field(Field *field, bool no_conversions);
virtual String *val_str(String*);
virtual my_decimal *val_decimal(my_decimal *);
virtual double val_real()
{
return null_value ? 0.0 : (double) cached_value;
}
virtual longlong val_int()
{
return null_value ? LL(0) : cached_value;
}
virtual void copy();
};
class Item_copy_uint : public Item_copy_int
{
public:
Item_copy_uint (Item *item) : Item_copy_int(item)
{
unsigned_flag= 1;
}
String *val_str(String*);
double val_real()
{
return null_value ? 0.0 : (double) (ulonglong) cached_value;
}
};
class Item_copy_float : public Item_copy
{
protected:
double cached_value;
public:
Item_copy_float (Item *i) : Item_copy(i) {}
int save_in_field(Field *field, bool no_conversions);
String *val_str(String*);
my_decimal *val_decimal(my_decimal *);
double val_real()
{
return null_value ? 0.0 : cached_value;
}
longlong val_int()
{
return (longlong) rint(val_real());
}
void copy()
{
cached_value= item->val_real();
null_value= item->null_value;
}
};
class Item_copy_decimal : public Item_copy
{
protected:
my_decimal cached_value;
public:
Item_copy_decimal (Item *i) : Item_copy(i) {}
int save_in_field(Field *field, bool no_conversions);
String *val_str(String*);
my_decimal *val_decimal(my_decimal *)
{
return null_value ? NULL: &cached_value;
}
double val_real();
longlong val_int();
void copy();
};
/*
Cached_item_XXX objects are not exactly caches. They do the following:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment