Loading mysql-test/r/gis.result +5 −0 Original line number Diff line number Diff line Loading @@ -680,3 +680,8 @@ select astext(fn3()); astext(fn3()) POINT(1 1) drop function fn3; create table t1(pt POINT); alter table t1 add primary key pti(pt); ERROR 42000: BLOB/TEXT column 'pt' used in key specification without a key length alter table t1 add primary key pti(pt(20)); drop table t1; mysql-test/t/gis.test +8 −0 Original line number Diff line number Diff line Loading @@ -395,3 +395,11 @@ show create function fn3; select astext(fn3()); drop function fn3; # # Bug #12267 (primary key over GIS) # create table t1(pt POINT); --error 1170 alter table t1 add primary key pti(pt); alter table t1 add primary key pti(pt(20)); drop table t1; sql/sql_table.cc +2 −1 Original line number Diff line number Diff line Loading @@ -1148,7 +1148,8 @@ static int mysql_prepare_table(THD *thd, HA_CREATE_INFO *create_info, { column->length*= sql_field->charset->mbmaxlen; if (f_is_blob(sql_field->pack_flag)) if (f_is_blob(sql_field->pack_flag) || (f_is_geom(sql_field->pack_flag) && key->type != Key::SPATIAL)) { if (!(file->table_flags() & HA_CAN_INDEX_BLOBS)) { Loading Loading
mysql-test/r/gis.result +5 −0 Original line number Diff line number Diff line Loading @@ -680,3 +680,8 @@ select astext(fn3()); astext(fn3()) POINT(1 1) drop function fn3; create table t1(pt POINT); alter table t1 add primary key pti(pt); ERROR 42000: BLOB/TEXT column 'pt' used in key specification without a key length alter table t1 add primary key pti(pt(20)); drop table t1;
mysql-test/t/gis.test +8 −0 Original line number Diff line number Diff line Loading @@ -395,3 +395,11 @@ show create function fn3; select astext(fn3()); drop function fn3; # # Bug #12267 (primary key over GIS) # create table t1(pt POINT); --error 1170 alter table t1 add primary key pti(pt); alter table t1 add primary key pti(pt(20)); drop table t1;
sql/sql_table.cc +2 −1 Original line number Diff line number Diff line Loading @@ -1148,7 +1148,8 @@ static int mysql_prepare_table(THD *thd, HA_CREATE_INFO *create_info, { column->length*= sql_field->charset->mbmaxlen; if (f_is_blob(sql_field->pack_flag)) if (f_is_blob(sql_field->pack_flag) || (f_is_geom(sql_field->pack_flag) && key->type != Key::SPATIAL)) { if (!(file->table_flags() & HA_CAN_INDEX_BLOBS)) { Loading