mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 02:05:57 +01:00
Fix for #233 (the second one)
sql/field.cc: Field_geom::store() returns -1 as a sign of fatal error sql/field_conv.cc: set_field_to_null* return -1 now as the fatal error sql/item.cc: no sign inversions needed sql/opt_range.cc: -1 is the sign of fatal error now sql/sql_base.cc: -1 is the fatal error
This commit is contained in:
parent
17f8d3d725
commit
b0cfa449a6
5 changed files with 15 additions and 16 deletions
|
@ -5081,7 +5081,7 @@ int Field_geom::store(const char *from, uint length, CHARSET_INFO *cs)
|
|||
wkb_type= uint4korr(from + WKB_HEADER_SIZE);
|
||||
if (wkb_type < (uint32) Geometry::wkb_point ||
|
||||
wkb_type > (uint32) Geometry::wkb_end)
|
||||
return 1;
|
||||
return -1;
|
||||
Field_blob::store_length(length);
|
||||
if (table->copy_blobs || length <= MAX_FIELD_WIDTH)
|
||||
{ // Must make a copy
|
||||
|
@ -5094,7 +5094,7 @@ int Field_geom::store(const char *from, uint length, CHARSET_INFO *cs)
|
|||
|
||||
err:
|
||||
bzero(ptr, Field_blob::pack_length());
|
||||
return 1;
|
||||
return -1;
|
||||
}
|
||||
|
||||
#endif /*HAVE_SPATIAL*/
|
||||
|
|
|
@ -127,7 +127,7 @@ set_field_to_null(Field *field)
|
|||
if (!current_thd->no_errors)
|
||||
my_printf_error(ER_BAD_NULL_ERROR,ER(ER_BAD_NULL_ERROR),MYF(0),
|
||||
field->field_name);
|
||||
return 1;
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
|
@ -145,7 +145,7 @@ set_field_to_null(Field *field)
|
|||
|
||||
RETURN VALUES
|
||||
0 Field could take 0 or an automatic conversion was used
|
||||
1 Field could not take NULL and no conversion was used.
|
||||
-1 Field could not take NULL and no conversion was used.
|
||||
If no_conversion was not set, an error message is printed
|
||||
*/
|
||||
|
||||
|
@ -159,7 +159,7 @@ set_field_to_null_with_conversions(Field *field, bool no_conversions)
|
|||
return 0;
|
||||
}
|
||||
if (no_conversions)
|
||||
return 1;
|
||||
return -1;
|
||||
|
||||
/*
|
||||
Check if this is a special type, which will get a special walue
|
||||
|
@ -184,7 +184,7 @@ set_field_to_null_with_conversions(Field *field, bool no_conversions)
|
|||
if (!current_thd->no_errors)
|
||||
my_printf_error(ER_BAD_NULL_ERROR,ER(ER_BAD_NULL_ERROR),MYF(0),
|
||||
field->field_name);
|
||||
return 1;
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
|
|
13
sql/item.cc
13
sql/item.cc
|
@ -639,7 +639,7 @@ int Item_param::save_in_field(Field *field, bool no_conversions)
|
|||
return 0;
|
||||
}
|
||||
String *result=val_str(&str_value);
|
||||
return (field->store(result->ptr(),result->length(),field->charset())) ? -1 : 0;
|
||||
return field->store(result->ptr(),result->length(),field->charset());
|
||||
}
|
||||
|
||||
bool Item_param::get_time(TIME *res)
|
||||
|
@ -1236,7 +1236,7 @@ int Item::save_in_field(Field *field, bool no_conversions)
|
|||
field->set_notnull();
|
||||
error=field->store(nr);
|
||||
}
|
||||
return (error) ? -1 : 0;
|
||||
return error;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1247,8 +1247,7 @@ int Item_string::save_in_field(Field *field, bool no_conversions)
|
|||
if (null_value)
|
||||
return set_field_to_null(field);
|
||||
field->set_notnull();
|
||||
return (field->store(result->ptr(),result->length(),collation.collation)) ?
|
||||
-1 : 0;
|
||||
return field->store(result->ptr(),result->length(),collation.collation);
|
||||
}
|
||||
|
||||
int Item_uint::save_in_field(Field *field, bool no_conversions)
|
||||
|
@ -1267,7 +1266,7 @@ int Item_int::save_in_field(Field *field, bool no_conversions)
|
|||
if (null_value)
|
||||
return set_field_to_null(field);
|
||||
field->set_notnull();
|
||||
return (field->store(nr)) ? -1 : 0;
|
||||
return field->store(nr);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1277,7 +1276,7 @@ int Item_real::save_in_field(Field *field, bool no_conversions)
|
|||
if (null_value)
|
||||
return set_field_to_null(field);
|
||||
field->set_notnull();
|
||||
return (field->store(nr)) ? -1 : 0;
|
||||
return field->store(nr);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
|
@ -1339,7 +1338,7 @@ int Item_varbinary::save_in_field(Field *field, bool no_conversions)
|
|||
longlong nr=val_int();
|
||||
error=field->store(nr);
|
||||
}
|
||||
return (error) ? -1 : 0;
|
||||
return error;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1095,7 +1095,7 @@ get_mm_leaf(PARAM *param, COND *conf_func, Field *field, KEY_PART *key_part,
|
|||
field->cmp_type() != value->result_type())
|
||||
DBUG_RETURN(0);
|
||||
|
||||
if (value->save_in_field(field, 1) > 0)
|
||||
if (value->save_in_field(field, 1) < 0)
|
||||
{
|
||||
/* This happens when we try to insert a NULL field in a not null column */
|
||||
DBUG_RETURN(&null_element); // cmp with NULL is never true
|
||||
|
|
|
@ -2424,7 +2424,7 @@ fill_record(List<Item> &fields,List<Item> &values, bool ignore_errors)
|
|||
TABLE *table= rfield->table;
|
||||
if (rfield == table->next_number_field)
|
||||
table->auto_increment_field_not_null= true;
|
||||
if (value->save_in_field(rfield, 0) > 0 && !ignore_errors)
|
||||
if ((value->save_in_field(rfield, 0) < 0) && !ignore_errors)
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
DBUG_RETURN(0);
|
||||
|
@ -2445,7 +2445,7 @@ fill_record(Field **ptr,List<Item> &values, bool ignore_errors)
|
|||
TABLE *table= field->table;
|
||||
if (field == table->next_number_field)
|
||||
table->auto_increment_field_not_null= true;
|
||||
if (value->save_in_field(field, 0) == 1 && !ignore_errors)
|
||||
if ((value->save_in_field(field, 0) < 0) && !ignore_errors)
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
DBUG_RETURN(0);
|
||||
|
|
Loading…
Add table
Reference in a new issue