mirror of
https://github.com/MariaDB/server.git
synced 2026-05-14 19:07:15 +02:00
Merge 10.0-base -> mwl253.
This commit is contained in:
commit
2713bab291
655 changed files with 17510 additions and 18371 deletions
24
sql/field.cc
24
sql/field.cc
|
|
@ -199,7 +199,7 @@ static enum_field_types field_types_merge_rules [FIELDTYPE_NUM][FIELDTYPE_NUM]=
|
|||
//MYSQL_TYPE_NULL MYSQL_TYPE_TIMESTAMP
|
||||
MYSQL_TYPE_LONG, MYSQL_TYPE_VARCHAR,
|
||||
//MYSQL_TYPE_LONGLONG MYSQL_TYPE_INT24
|
||||
MYSQL_TYPE_LONGLONG, MYSQL_TYPE_INT24,
|
||||
MYSQL_TYPE_LONGLONG, MYSQL_TYPE_LONG,
|
||||
//MYSQL_TYPE_DATE MYSQL_TYPE_TIME
|
||||
MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR,
|
||||
//MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR
|
||||
|
|
@ -230,7 +230,7 @@ static enum_field_types field_types_merge_rules [FIELDTYPE_NUM][FIELDTYPE_NUM]=
|
|||
//MYSQL_TYPE_NULL MYSQL_TYPE_TIMESTAMP
|
||||
MYSQL_TYPE_FLOAT, MYSQL_TYPE_VARCHAR,
|
||||
//MYSQL_TYPE_LONGLONG MYSQL_TYPE_INT24
|
||||
MYSQL_TYPE_FLOAT, MYSQL_TYPE_INT24,
|
||||
MYSQL_TYPE_FLOAT, MYSQL_TYPE_FLOAT,
|
||||
//MYSQL_TYPE_DATE MYSQL_TYPE_TIME
|
||||
MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR,
|
||||
//MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR
|
||||
|
|
@ -261,7 +261,7 @@ static enum_field_types field_types_merge_rules [FIELDTYPE_NUM][FIELDTYPE_NUM]=
|
|||
//MYSQL_TYPE_NULL MYSQL_TYPE_TIMESTAMP
|
||||
MYSQL_TYPE_DOUBLE, MYSQL_TYPE_VARCHAR,
|
||||
//MYSQL_TYPE_LONGLONG MYSQL_TYPE_INT24
|
||||
MYSQL_TYPE_DOUBLE, MYSQL_TYPE_INT24,
|
||||
MYSQL_TYPE_DOUBLE, MYSQL_TYPE_DOUBLE,
|
||||
//MYSQL_TYPE_DATE MYSQL_TYPE_TIME
|
||||
MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR,
|
||||
//MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR
|
||||
|
|
@ -292,7 +292,7 @@ static enum_field_types field_types_merge_rules [FIELDTYPE_NUM][FIELDTYPE_NUM]=
|
|||
//MYSQL_TYPE_NULL MYSQL_TYPE_TIMESTAMP
|
||||
MYSQL_TYPE_NULL, MYSQL_TYPE_TIMESTAMP,
|
||||
//MYSQL_TYPE_LONGLONG MYSQL_TYPE_INT24
|
||||
MYSQL_TYPE_LONGLONG, MYSQL_TYPE_INT24,
|
||||
MYSQL_TYPE_LONGLONG, MYSQL_TYPE_LONGLONG,
|
||||
//MYSQL_TYPE_DATE MYSQL_TYPE_TIME
|
||||
MYSQL_TYPE_NEWDATE, MYSQL_TYPE_TIME,
|
||||
//MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR
|
||||
|
|
@ -7675,6 +7675,19 @@ int Field_geom::store(const char *from, uint length, CHARSET_INFO *cs)
|
|||
if (wkb_type < (uint32) Geometry::wkb_point ||
|
||||
wkb_type > (uint32) Geometry::wkb_last)
|
||||
goto err;
|
||||
|
||||
if (geom_type != Field::GEOM_GEOMETRY &&
|
||||
geom_type != Field::GEOM_GEOMETRYCOLLECTION &&
|
||||
(uint32) geom_type != wkb_type)
|
||||
{
|
||||
my_printf_error(ER_TRUNCATED_WRONG_VALUE_FOR_FIELD,
|
||||
ER(ER_TRUNCATED_WRONG_VALUE_FOR_FIELD), MYF(0),
|
||||
Geometry::ci_collection[geom_type]->m_name.str,
|
||||
Geometry::ci_collection[wkb_type]->m_name.str, field_name,
|
||||
(ulong) table->in_use->warning_info->current_row_for_warning());
|
||||
goto err_exit;
|
||||
}
|
||||
|
||||
Field_blob::store_length(length);
|
||||
if (table->copy_blobs || length <= MAX_FIELD_WIDTH)
|
||||
{ // Must make a copy
|
||||
|
|
@ -7686,9 +7699,10 @@ int Field_geom::store(const char *from, uint length, CHARSET_INFO *cs)
|
|||
return 0;
|
||||
|
||||
err:
|
||||
bzero(ptr, Field_blob::pack_length());
|
||||
my_message(ER_CANT_CREATE_GEOMETRY_OBJECT,
|
||||
ER(ER_CANT_CREATE_GEOMETRY_OBJECT), MYF(0));
|
||||
err_exit:
|
||||
bzero(ptr, Field_blob::pack_length());
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue