mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Additional fix for bug #12267 (Can't use POINT for primary key)
mysql-test/r/gis.result: result fixed mysql-test/t/gis.test: testcase added sql/sql_table.cc: no need to specify keylength for Point type sql/sql_yacc.yy: no need to specify length for Point type
This commit is contained in:
@ -682,6 +682,9 @@ POINT(1 1)
|
|||||||
drop function fn3;
|
drop function fn3;
|
||||||
create table t1(pt POINT);
|
create table t1(pt POINT);
|
||||||
alter table t1 add primary key pti(pt);
|
alter table t1 add primary key pti(pt);
|
||||||
|
drop table t1;
|
||||||
|
create table t1(pt GEOMETRY);
|
||||||
|
alter table t1 add primary key pti(pt);
|
||||||
ERROR 42000: BLOB/TEXT column 'pt' used in key specification without a key length
|
ERROR 42000: BLOB/TEXT column 'pt' used in key specification without a key length
|
||||||
alter table t1 add primary key pti(pt(20));
|
alter table t1 add primary key pti(pt(20));
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
@ -399,6 +399,9 @@ drop function fn3;
|
|||||||
# Bug #12267 (primary key over GIS)
|
# Bug #12267 (primary key over GIS)
|
||||||
#
|
#
|
||||||
create table t1(pt POINT);
|
create table t1(pt POINT);
|
||||||
|
alter table t1 add primary key pti(pt);
|
||||||
|
drop table t1;
|
||||||
|
create table t1(pt GEOMETRY);
|
||||||
--error 1170
|
--error 1170
|
||||||
alter table t1 add primary key pti(pt);
|
alter table t1 add primary key pti(pt);
|
||||||
alter table t1 add primary key pti(pt(20));
|
alter table t1 add primary key pti(pt(20));
|
||||||
|
@ -1156,6 +1156,9 @@ static int mysql_prepare_table(THD *thd, HA_CREATE_INFO *create_info,
|
|||||||
my_error(ER_BLOB_USED_AS_KEY, MYF(0), column->field_name);
|
my_error(ER_BLOB_USED_AS_KEY, MYF(0), column->field_name);
|
||||||
DBUG_RETURN(-1);
|
DBUG_RETURN(-1);
|
||||||
}
|
}
|
||||||
|
if (f_is_geom(sql_field->pack_flag) && sql_field->geom_type ==
|
||||||
|
Field::GEOM_POINT)
|
||||||
|
column->length= 21;
|
||||||
if (!column->length)
|
if (!column->length)
|
||||||
{
|
{
|
||||||
my_error(ER_BLOB_KEY_WITHOUT_LENGTH, MYF(0), column->field_name);
|
my_error(ER_BLOB_KEY_WITHOUT_LENGTH, MYF(0), column->field_name);
|
||||||
|
@ -2969,7 +2969,9 @@ type:
|
|||||||
spatial_type:
|
spatial_type:
|
||||||
GEOMETRY_SYM { $$= Field::GEOM_GEOMETRY; }
|
GEOMETRY_SYM { $$= Field::GEOM_GEOMETRY; }
|
||||||
| GEOMETRYCOLLECTION { $$= Field::GEOM_GEOMETRYCOLLECTION; }
|
| GEOMETRYCOLLECTION { $$= Field::GEOM_GEOMETRYCOLLECTION; }
|
||||||
| POINT_SYM { $$= Field::GEOM_POINT; }
|
| POINT_SYM { Lex->length= (char*)"21";
|
||||||
|
$$= Field::GEOM_POINT;
|
||||||
|
}
|
||||||
| MULTIPOINT { $$= Field::GEOM_MULTIPOINT; }
|
| MULTIPOINT { $$= Field::GEOM_MULTIPOINT; }
|
||||||
| LINESTRING { $$= Field::GEOM_LINESTRING; }
|
| LINESTRING { $$= Field::GEOM_LINESTRING; }
|
||||||
| MULTILINESTRING { $$= Field::GEOM_MULTILINESTRING; }
|
| MULTILINESTRING { $$= Field::GEOM_MULTILINESTRING; }
|
||||||
|
Reference in New Issue
Block a user