Adding a necessary functionality to ::store and ::save_in_field

that will take place properly after pull from 4.0, in order to 
handle conversions from quoted constants to bigint's.
This commit is contained in:
unknown 2002-08-24 14:49:04 +03:00
parent 029dc2b375
commit 7f13b1bdd5
15 changed files with 401 additions and 195 deletions

File diff suppressed because it is too large Load Diff

View File

@ -60,9 +60,9 @@ public:
utype unireg_check_arg, const char *field_name_arg,
struct st_table *table_arg);
virtual ~Field() {}
virtual void store(const char *to,uint length,CHARSET_INFO *cs)=0;
virtual void store(double nr)=0;
virtual void store(longlong nr)=0;
virtual int store(const char *to,uint length,CHARSET_INFO *cs)=0;
virtual int store(double nr)=0;
virtual int store(longlong nr)=0;
virtual void store_time(TIME *ltime,timestamp_type t_type);
virtual double val_real(void)=0;
virtual longlong val_int(void)=0;
@ -281,9 +281,9 @@ public:
enum ha_base_keytype key_type() const
{ return zerofill ? HA_KEYTYPE_BINARY : HA_KEYTYPE_NUM; }
void reset(void);
void store(const char *to,uint length,CHARSET_INFO *charset);
void store(double nr);
void store(longlong nr);
int store(const char *to,uint length,CHARSET_INFO *charset);
int store(double nr);
int store(longlong nr);
double val_real(void);
longlong val_int(void);
String *val_str(String*,String *);
@ -310,9 +310,9 @@ public:
enum_field_types type() const { return FIELD_TYPE_TINY;}
enum ha_base_keytype key_type() const
{ return unsigned_flag ? HA_KEYTYPE_BINARY : HA_KEYTYPE_INT8; }
void store(const char *to,uint length,CHARSET_INFO *charset);
void store(double nr);
void store(longlong nr);
int store(const char *to,uint length,CHARSET_INFO *charset);
int store(double nr);
int store(longlong nr);
void reset(void) { ptr[0]=0; }
double val_real(void);
longlong val_int(void);
@ -339,9 +339,9 @@ public:
enum_field_types type() const { return FIELD_TYPE_SHORT;}
enum ha_base_keytype key_type() const
{ return unsigned_flag ? HA_KEYTYPE_USHORT_INT : HA_KEYTYPE_SHORT_INT;}
void store(const char *to,uint length,CHARSET_INFO *charset);
void store(double nr);
void store(longlong nr);
int store(const char *to,uint length,CHARSET_INFO *charset);
int store(double nr);
int store(longlong nr);
void reset(void) { ptr[0]=ptr[1]=0; }
double val_real(void);
longlong val_int(void);
@ -368,9 +368,9 @@ public:
enum_field_types type() const { return FIELD_TYPE_INT24;}
enum ha_base_keytype key_type() const
{ return unsigned_flag ? HA_KEYTYPE_UINT24 : HA_KEYTYPE_INT24; }
void store(const char *to,uint length,CHARSET_INFO *charset);
void store(double nr);
void store(longlong nr);
int store(const char *to,uint length,CHARSET_INFO *charset);
int store(double nr);
int store(longlong nr);
void reset(void) { ptr[0]=ptr[1]=ptr[2]=0; }
double val_real(void);
longlong val_int(void);
@ -402,9 +402,9 @@ public:
enum_field_types type() const { return FIELD_TYPE_LONG;}
enum ha_base_keytype key_type() const
{ return unsigned_flag ? HA_KEYTYPE_ULONG_INT : HA_KEYTYPE_LONG_INT; }
void store(const char *to,uint length,CHARSET_INFO *charset);
void store(double nr);
void store(longlong nr);
int store(const char *to,uint length,CHARSET_INFO *charset);
int store(double nr);
int store(longlong nr);
void reset(void) { ptr[0]=ptr[1]=ptr[2]=ptr[3]=0; }
double val_real(void);
longlong val_int(void);
@ -438,9 +438,9 @@ public:
enum_field_types type() const { return FIELD_TYPE_LONGLONG;}
enum ha_base_keytype key_type() const
{ return unsigned_flag ? HA_KEYTYPE_ULONGLONG : HA_KEYTYPE_LONGLONG; }
void store(const char *to,uint length,CHARSET_INFO *charset);
void store(double nr);
void store(longlong nr);
int store(const char *to,uint length,CHARSET_INFO *charset);
int store(double nr);
int store(longlong nr);
void reset(void) { ptr[0]=ptr[1]=ptr[2]=ptr[3]=ptr[4]=ptr[5]=ptr[6]=ptr[7]=0; }
double val_real(void);
longlong val_int(void);
@ -465,9 +465,9 @@ public:
{}
enum_field_types type() const { return FIELD_TYPE_FLOAT;}
enum ha_base_keytype key_type() const { return HA_KEYTYPE_FLOAT; }
void store(const char *to,uint length,CHARSET_INFO *charset);
void store(double nr);
void store(longlong nr);
int store(const char *to,uint length,CHARSET_INFO *charset);
int store(double nr);
int store(longlong nr);
void reset(void) { bzero(ptr,sizeof(float)); }
double val_real(void);
longlong val_int(void);
@ -497,9 +497,9 @@ public:
{}
enum_field_types type() const { return FIELD_TYPE_DOUBLE;}
enum ha_base_keytype key_type() const { return HA_KEYTYPE_DOUBLE; }
void store(const char *to,uint length,CHARSET_INFO *charset);
void store(double nr);
void store(longlong nr);
int store(const char *to,uint length,CHARSET_INFO *charset);
int store(double nr);
int store(longlong nr);
void reset(void) { bzero(ptr,sizeof(double)); }
double val_real(void);
longlong val_int(void);
@ -523,9 +523,9 @@ public:
unireg_check_arg, field_name_arg, table_arg, default_charset_info)
{}
enum_field_types type() const { return FIELD_TYPE_NULL;}
void store(const char *to, uint length, CHARSET_INFO *cs) { null[0]=1; }
void store(double nr) { null[0]=1; }
void store(longlong nr) { null[0]=1; }
int store(const char *to, uint length, CHARSET_INFO *cs) { null[0]=1; return 0; }
int store(double nr) { null[0]=1; return 0; }
int store(longlong nr) { null[0]=1; return 0; }
void reset(void) {}
double val_real(void) { return 0.0;}
longlong val_int(void) { return 0;}
@ -547,9 +547,9 @@ public:
enum Item_result result_type () const { return field_length == 8 || field_length == 14 ? INT_RESULT : STRING_RESULT; }
enum_field_types type() const { return FIELD_TYPE_TIMESTAMP;}
enum ha_base_keytype key_type() const { return HA_KEYTYPE_ULONG_INT; }
void store(const char *to,uint length,CHARSET_INFO *charset);
void store(double nr);
void store(longlong nr);
int store(const char *to,uint length,CHARSET_INFO *charset);
int store(double nr);
int store(longlong nr);
void reset(void) { ptr[0]=ptr[1]=ptr[2]=ptr[3]=0; }
double val_real(void);
longlong val_int(void);
@ -587,9 +587,9 @@ public:
unireg_check_arg, field_name_arg, table_arg, 1, 1)
{}
enum_field_types type() const { return FIELD_TYPE_YEAR;}
void store(const char *to,uint length,CHARSET_INFO *charset);
void store(double nr);
void store(longlong nr);
int store(const char *to,uint length,CHARSET_INFO *charset);
int store(double nr);
int store(longlong nr);
double val_real(void);
longlong val_int(void);
String *val_str(String*,String *);
@ -612,9 +612,9 @@ public:
enum_field_types type() const { return FIELD_TYPE_DATE;}
enum ha_base_keytype key_type() const { return HA_KEYTYPE_ULONG_INT; }
enum Item_result cmp_type () const { return INT_RESULT; }
void store(const char *to,uint length,CHARSET_INFO *charset);
void store(double nr);
void store(longlong nr);
int store(const char *to,uint length,CHARSET_INFO *charset);
int store(double nr);
int store(longlong nr);
void reset(void) { ptr[0]=ptr[1]=ptr[2]=ptr[3]=0; }
double val_real(void);
longlong val_int(void);
@ -639,9 +639,9 @@ public:
enum_field_types real_type() const { return FIELD_TYPE_NEWDATE; }
enum ha_base_keytype key_type() const { return HA_KEYTYPE_UINT24; }
enum Item_result cmp_type () const { return INT_RESULT; }
void store(const char *to,uint length,CHARSET_INFO *charset);
void store(double nr);
void store(longlong nr);
int store(const char *to,uint length,CHARSET_INFO *charset);
int store(double nr);
int store(longlong nr);
void store_time(TIME *ltime,timestamp_type type);
void reset(void) { ptr[0]=ptr[1]=ptr[2]=0; }
double val_real(void);
@ -673,9 +673,9 @@ public:
enum_field_types type() const { return FIELD_TYPE_TIME;}
enum ha_base_keytype key_type() const { return HA_KEYTYPE_INT24; }
enum Item_result cmp_type () const { return INT_RESULT; }
void store(const char *to,uint length,CHARSET_INFO *charset);
void store(double nr);
void store(longlong nr);
int store(const char *to,uint length,CHARSET_INFO *charset);
int store(double nr);
int store(longlong nr);
void reset(void) { ptr[0]=ptr[1]=ptr[2]=0; }
double val_real(void);
longlong val_int(void);
@ -707,9 +707,9 @@ public:
enum ha_base_keytype key_type() const { return HA_KEYTYPE_ULONGLONG; }
#endif
enum Item_result cmp_type () const { return INT_RESULT; }
void store(const char *to,uint length,CHARSET_INFO *charset);
void store(double nr);
void store(longlong nr);
int store(const char *to,uint length,CHARSET_INFO *charset);
int store(double nr);
int store(longlong nr);
void store_time(TIME *ltime,timestamp_type type);
void reset(void) { ptr[0]=ptr[1]=ptr[2]=ptr[3]=ptr[4]=ptr[5]=ptr[6]=ptr[7]=0; }
double val_real(void);
@ -761,9 +761,9 @@ public:
bool zero_pack() const { return 0; }
bool binary() const { return binary_flag; }
void reset(void) { bfill(ptr,field_length,' '); }
void store(const char *to,uint length,CHARSET_INFO *charset);
void store(double nr);
void store(longlong nr);
int store(const char *to,uint length,CHARSET_INFO *charset);
int store(double nr);
int store(longlong nr);
double val_real(void);
longlong val_int(void);
String *val_str(String*,String *);
@ -813,9 +813,9 @@ public:
void reset(void) { bzero(ptr,field_length+2); }
uint32 pack_length() const { return (uint32) field_length+2; }
uint32 key_length() const { return (uint32) field_length; }
void store(const char *to,uint length,CHARSET_INFO *charset);
void store(double nr);
void store(longlong nr);
int store(const char *to,uint length,CHARSET_INFO *charset);
int store(double nr);
int store(longlong nr);
double val_real(void);
longlong val_int(void);
String *val_str(String*,String *);
@ -856,9 +856,9 @@ public:
enum_field_types type() const { return FIELD_TYPE_BLOB;}
enum ha_base_keytype key_type() const
{ return binary_flag ? HA_KEYTYPE_VARBINARY : HA_KEYTYPE_VARTEXT; }
void store(const char *to,uint length,CHARSET_INFO *charset);
void store(double nr);
void store(longlong nr);
int store(const char *to,uint length,CHARSET_INFO *charset);
int store(double nr);
int store(longlong nr);
double val_real(void);
longlong val_int(void);
String *val_str(String*,String *);
@ -962,9 +962,9 @@ public:
enum_field_types type() const { return FIELD_TYPE_STRING; }
enum Item_result cmp_type () const { return INT_RESULT; }
enum ha_base_keytype key_type() const;
void store(const char *to,uint length,CHARSET_INFO *charset);
void store(double nr);
void store(longlong nr);
int store(const char *to,uint length,CHARSET_INFO *charset);
int store(double nr);
int store(longlong nr);
void reset() { bzero(ptr,packlength); }
double val_real(void);
longlong val_int(void);
@ -997,9 +997,9 @@ public:
{
flags=(flags & ~ENUM_FLAG) | SET_FLAG;
}
void store(const char *to,uint length,CHARSET_INFO *charset);
void store(double nr) { Field_set::store((longlong) nr); }
void store(longlong nr);
int store(const char *to,uint length,CHARSET_INFO *charset);
int store(double nr) { return Field_set::store((longlong) nr); }
int store(longlong nr);
virtual bool zero_pack() const { return 1; }
String *val_str(String*,String *);
void sql_type(String &str) const;

View File

@ -340,7 +340,7 @@ void Item_param::set_long_end()
item_result_type = STRING_RESULT;
};
bool Item_param::save_in_field(Field *field)
int Item_param::save_in_field(Field *field)
{
if (null_value)
return set_field_to_null(field);
@ -349,20 +349,17 @@ bool Item_param::save_in_field(Field *field)
if (item_result_type == INT_RESULT)
{
longlong nr=val_int();
field->store(nr);
return 0;
return (field->store(nr)) ? -1 : 0;
}
if (item_result_type == REAL_RESULT)
{
double nr=val();
field->store(nr);
return 0;
return (field->store(nr)) ? -1 : 0;
}
String *result;
CHARSET_INFO *cs=default_charset_info;//fix this
result=val_str(&str_value);
field->store(result->ptr(),result->length(),cs);
return 0;
return (field->store(result->ptr(),result->length(),cs)) ? -1 : 0;
}
void Item_param::make_field(Send_field *tmp_field)
@ -615,7 +612,7 @@ void Item_field::save_org_in_field(Field *to)
}
}
bool Item_field::save_in_field(Field *to)
int Item_field::save_in_field(Field *to)
{
if (result_field->is_null())
{
@ -632,14 +629,15 @@ bool Item_field::save_in_field(Field *to)
}
bool Item_null::save_in_field(Field *field)
int Item_null::save_in_field(Field *field)
{
return set_field_to_null(field);
}
bool Item::save_in_field(Field *field)
int Item::save_in_field(Field *field)
{
int error;
if (result_type() == STRING_RESULT ||
result_type() == REAL_RESULT &&
field->result_type() == STRING_RESULT)
@ -652,7 +650,7 @@ bool Item::save_in_field(Field *field)
if (null_value)
return set_field_to_null(field);
field->set_notnull();
field->store(result->ptr(),result->length(),cs);
error=field->store(result->ptr(),result->length(),cs);
str_value.set_quick(0, 0, cs);
}
else if (result_type() == REAL_RESULT)
@ -661,7 +659,7 @@ bool Item::save_in_field(Field *field)
if (null_value)
return set_field_to_null(field);
field->set_notnull();
field->store(nr);
error=field->store(nr);
}
else
{
@ -669,12 +667,12 @@ bool Item::save_in_field(Field *field)
if (null_value)
return set_field_to_null(field);
field->set_notnull();
field->store(nr);
error=field->store(nr);
}
return 0;
return (error) ? -1 : 0;
}
bool Item_string::save_in_field(Field *field)
int Item_string::save_in_field(Field *field)
{
String *result;
CHARSET_INFO *cs=field->binary()?default_charset_info:((Field_str*)field)->charset();
@ -682,28 +680,25 @@ bool Item_string::save_in_field(Field *field)
if (null_value)
return set_field_to_null(field);
field->set_notnull();
field->store(result->ptr(),result->length(),cs);
return 0;
return (field->store(result->ptr(),result->length(),cs)) ? -1 : 0;
}
bool Item_int::save_in_field(Field *field)
int Item_int::save_in_field(Field *field)
{
longlong nr=val_int();
if (null_value)
return set_field_to_null(field);
field->set_notnull();
field->store(nr);
return 0;
return (field->store(nr)) ? -1 : 0;
}
bool Item_real::save_in_field(Field *field)
int Item_real::save_in_field(Field *field)
{
double nr=val();
if (null_value)
return set_field_to_null(field);
field->set_notnull();
field->store(nr);
return 0;
return (field->store(nr)) ? -1 : 0;
}
/****************************************************************************
@ -751,20 +746,21 @@ longlong Item_varbinary::val_int()
}
bool Item_varbinary::save_in_field(Field *field)
int Item_varbinary::save_in_field(Field *field)
{
int error;
CHARSET_INFO *cs=field->binary()?default_charset_info:((Field_str*)field)->charset();
field->set_notnull();
if (field->result_type() == STRING_RESULT)
{
field->store(str_value.ptr(),str_value.length(),cs);
error=field->store(str_value.ptr(),str_value.length(),cs);
}
else
{
longlong nr=val_int();
field->store(nr);
error=field->store(nr);
}
return 0;
return (error) ? -1 : 0;
}

View File

@ -53,7 +53,7 @@ public:
void set_name(char* str,uint length=0);
void init_make_field(Send_field *tmp_field,enum enum_field_types type);
virtual bool fix_fields(THD *, struct st_table_list *, Item **);
virtual bool save_in_field(Field *field);
virtual int save_in_field(Field *field);
virtual void save_org_in_field(Field *field)
{ (void) save_in_field(field); }
virtual bool send(THD *thd, String *str);
@ -124,7 +124,7 @@ public:
bool send(THD *thd, String *str_arg) { return result_field->send(thd,str_arg); }
void make_field(Send_field *field);
bool fix_fields(THD *, struct st_table_list *, Item **);
bool save_in_field(Field *field);
int save_in_field(Field *field);
void save_org_in_field(Field *field);
table_map used_tables() const;
enum Item_result result_type () const
@ -149,7 +149,7 @@ public:
longlong val_int();
String *val_str(String *str);
void make_field(Send_field *field);
bool save_in_field(Field *field);
int save_in_field(Field *field);
enum Item_result result_type () const
{ return STRING_RESULT; }
bool send(THD *thd, String *str);
@ -178,7 +178,7 @@ public:
longlong val_int();
String *val_str(String*);
void make_field(Send_field *field);
bool save_in_field(Field *field);
int save_in_field(Field *field);
void set_null();
void set_int(longlong i);
void set_double(float i);
@ -215,7 +215,7 @@ public:
double val() { return (double) value; }
String *val_str(String*);
void make_field(Send_field *field);
bool save_in_field(Field *field);
int save_in_field(Field *field);
bool basic_const_item() const { return 1; }
Item *new_item() { return new Item_int(name,value,max_length); }
void print(String *str);
@ -254,7 +254,7 @@ public:
max_length=length;
}
Item_real(double value_par) :value(value_par) {}
bool save_in_field(Field *field);
int save_in_field(Field *field);
enum Type type() const { return REAL_ITEM; }
double val() { return value; }
longlong val_int() { return (longlong) (value+(value > 0 ? 0.5 : -0.5));}
@ -297,7 +297,7 @@ public:
double val() { return atof(str_value.ptr()); }
longlong val_int() { return strtoll(str_value.ptr(),(char**) 0,10); }
String *val_str(String*) { return (String*) &str_value; }
bool save_in_field(Field *field);
int save_in_field(Field *field);
void make_field(Send_field *field);
enum Item_result result_type () const { return STRING_RESULT; }
bool basic_const_item() const { return 1; }
@ -334,7 +334,7 @@ public:
double val() { return (double) Item_varbinary::val_int(); }
longlong val_int();
String *val_str(String*) { return &str_value; }
bool save_in_field(Field *field);
int save_in_field(Field *field);
void make_field(Send_field *field);
enum Item_result result_type () const { return INT_RESULT; }
};
@ -394,7 +394,7 @@ public:
bool send(THD *thd, String *tmp) { return (*ref)->send(thd, tmp); }
void make_field(Send_field *field) { (*ref)->make_field(field); }
bool fix_fields(THD *, struct st_table_list *, Item **);
bool save_in_field(Field *field) { return (*ref)->save_in_field(field); }
int save_in_field(Field *field) { return (*ref)->save_in_field(field); }
void save_org_in_field(Field *field) { (*ref)->save_org_in_field(field); }
enum Item_result result_type () const { return (*ref)->result_type(); }
table_map used_tables() const { return (*ref)->used_tables(); }
@ -413,7 +413,7 @@ class Item_int_with_ref :public Item_int
public:
Item_int_with_ref(longlong i, Item *ref_arg) :Item_int(i), ref(ref_arg)
{}
bool save_in_field(Field *field)
int save_in_field(Field *field)
{
return ref->save_in_field(field);
}

View File

@ -43,7 +43,8 @@ static bool convert_constant_item(Field *field, Item **item)
{
if ((*item)->const_item())
{
(*item)->save_in_field(field);
if ((*item)->save_in_field(field))
return 0;
if (!((*item)->null_value))
{
Item *tmp=new Item_int_with_ref(field->val_int(), *item);

View File

@ -1915,7 +1915,7 @@ outp:
}
bool Item_func_conv_charset::fix_fields(THD *thd,struct st_table_list *tables)
bool Item_func_conv_charset::fix_fields(THD *thd,struct st_table_list *tables, Item **ref)
{
char buff[STACK_BUFF_ALLOC]; // Max argument in function
binary=0;
@ -1948,7 +1948,7 @@ String *Item_func_set_collation::val_str(String *str)
return str;
}
bool Item_func_set_collation::fix_fields(THD *thd,struct st_table_list *tables)
bool Item_func_set_collation::fix_fields(THD *thd,struct st_table_list *tables, Item **ref)
{
char buff[STACK_BUFF_ALLOC]; // Max argument in function
binary=0;

View File

@ -489,7 +489,7 @@ class Item_func_conv_charset :public Item_str_func
public:
Item_func_conv_charset(Item *a, CHARSET_INFO *cs) :Item_str_func(a)
{ conv_charset=cs; }
bool fix_fields(THD *thd,struct st_table_list *tables);
bool fix_fields(THD *thd,struct st_table_list *tables,Item **ref);
String *val_str(String *);
void fix_length_and_dec();
const char *func_name() const { return "conv_charset"; }
@ -501,7 +501,7 @@ class Item_func_set_collation :public Item_str_func
public:
Item_func_set_collation(Item *a, CHARSET_INFO *cs) :Item_str_func(a)
{ set_collation=cs; }
bool fix_fields(THD *thd,struct st_table_list *tables);
bool fix_fields(THD *thd,struct st_table_list *tables, Item **ref);
String *val_str(String *);
void fix_length_and_dec()
{

View File

@ -410,7 +410,7 @@ String *Item_date::val_str(String *str)
}
bool Item_date::save_in_field(Field *field)
int Item_date::save_in_field(Field *field)
{
TIME ltime;
timestamp_type t_type=TIMESTAMP_FULL;
@ -525,7 +525,7 @@ bool Item_func_now::get_date(TIME *res,
}
bool Item_func_now::save_in_field(Field *to)
int Item_func_now::save_in_field(Field *to)
{
to->set_notnull();
to->store_time(&ltime,TIMESTAMP_FULL);

View File

@ -228,7 +228,7 @@ public:
double val() { return (double) val_int(); }
const char *func_name() const { return "date"; }
void fix_length_and_dec() { decimals=0; max_length=10; }
bool save_in_field(Field *to);
int save_in_field(Field *to);
void make_field(Send_field *tmp_field)
{
init_make_field(tmp_field,FIELD_TYPE_DATE);
@ -311,7 +311,7 @@ public:
enum Item_result result_type () const { return STRING_RESULT; }
double val() { return (double) value; }
longlong val_int() { return value; }
bool save_in_field(Field *to);
int save_in_field(Field *to);
String *val_str(String *str)
{ str_value.set(buff,buff_length,default_charset_info); return &str_value; }
const char *func_name() const { return "now"; }

View File

@ -1028,7 +1028,7 @@ get_mm_leaf(PARAM *param, Field *field, KEY_PART *key_part,
field->cmp_type() != value->result_type())
DBUG_RETURN(0);
if (value->save_in_field(field))
if (value->save_in_field(field) == 1)
{
if (type == Item_func::EQUAL_FUNC)
{

View File

@ -2113,7 +2113,7 @@ fill_record(List<Item> &fields,List<Item> &values)
while ((field=(Item_field*) f++))
{
value=v++;
if (value->save_in_field(field->field))
if (value->save_in_field(field->field) == 1)
DBUG_RETURN(1);
}
DBUG_RETURN(0);
@ -2131,7 +2131,7 @@ fill_record(Field **ptr,List<Item> &values)
while ((field = *ptr++))
{
value=v++;
if (value->save_in_field(field))
if (value->save_in_field(field) == 1)
DBUG_RETURN(1);
}
DBUG_RETURN(0);

View File

@ -179,7 +179,7 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
Item *item;
for (key_len=0 ; (item=it_ke++) ; key_part++)
{
item->save_in_field(key_part->field);
(void) item->save_in_field(key_part->field);
key_len+=key_part->store_length;
}
if (!(key= (byte*) sql_calloc(ALIGN_SIZE(key_len))))

View File

@ -2478,7 +2478,7 @@ store_val_in_field(Field *field,Item *item)
THD *thd=current_thd;
ulong cuted_fields=thd->cuted_fields;
thd->count_cuted_fields=1;
item->save_in_field(field);
(void) item->save_in_field(field);
thd->count_cuted_fields=0;
return cuted_fields != thd->cuted_fields;
}

View File

@ -338,7 +338,7 @@ public:
{}
bool copy()
{
item->save_in_field(to_field);
(void) item->save_in_field(to_field);
return err != 0;
}
const char *name() const { return "func"; }
@ -362,7 +362,7 @@ public:
if (!inited)
{
inited=1;
item->save_in_field(to_field);
(void)item->save_in_field(to_field);
}
return err != 0;
}

View File

@ -590,7 +590,7 @@ static bool make_empty_rec(File file,enum db_type table_type,
if (field->def &&
(regfield->real_type() != FIELD_TYPE_YEAR ||
field->def->val_int() != 0))
field->def->save_in_field(regfield);
(void) field->def->save_in_field(regfield);
else if (regfield->real_type() == FIELD_TYPE_ENUM &&
(field->flags & NOT_NULL_FLAG))
{