diff --git a/mysql-test/r/gis.result b/mysql-test/r/gis.result index fad65b5906f..73fb9cc69e0 100644 --- a/mysql-test/r/gis.result +++ b/mysql-test/r/gis.result @@ -766,6 +766,14 @@ geomdatawkb longblob YES NULL drop table t1; drop table t2; drop table t3; +create table t1(col1 geometry default null,col15 geometrycollection not +null,spatial index(col15),index(col1(15)))engine=myisam; +insert into t1 set col15 = GeomFromText('POINT(6 5)'); +insert into t1 set col15 = GeomFromText('POINT(6 5)'); +check table t1 extended; +Table Op Msg_type Msg_text +test.t1 check status OK +drop table t1; End of 4.1 tests create table t1 (s1 geometry not null,s2 char(100)); create trigger t1_bu before update on t1 for each row set new.s1 = null; diff --git a/mysql-test/t/gis.test b/mysql-test/t/gis.test index 66235722801..e6b8b91783c 100644 --- a/mysql-test/t/gis.test +++ b/mysql-test/t/gis.test @@ -471,6 +471,17 @@ drop table t1; drop table t2; drop table t3; +# +# Bug #30284 spatial key corruption +# + +create table t1(col1 geometry default null,col15 geometrycollection not +null,spatial index(col15),index(col1(15)))engine=myisam; +insert into t1 set col15 = GeomFromText('POINT(6 5)'); +insert into t1 set col15 = GeomFromText('POINT(6 5)'); +check table t1 extended; +drop table t1; + --echo End of 4.1 tests # diff --git a/storage/myisam/mi_check.c b/storage/myisam/mi_check.c index 7cd35295cb0..7925cad6125 100644 --- a/storage/myisam/mi_check.c +++ b/storage/myisam/mi_check.c @@ -455,7 +455,7 @@ int chk_key(MI_CHECK *param, register MI_INFO *info) if ((!(param->testflag & T_SILENT))) printf ("- check data record references index: %d\n",key+1); - if (keyinfo->flag & HA_FULLTEXT) + if (keyinfo->flag & (HA_FULLTEXT | HA_SPATIAL)) full_text_keys++; if (share->state.key_root[key] == HA_OFFSET_ERROR && (info->state->records == 0 || keyinfo->flag & HA_FULLTEXT))