diff --git a/myisam/mi_check.c b/myisam/mi_check.c index ce8fb04874e..64aa0b76877 100644 --- a/myisam/mi_check.c +++ b/myisam/mi_check.c @@ -454,7 +454,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)) diff --git a/mysql-test/r/gis.result b/mysql-test/r/gis.result index ff4673d4c0f..49162d23818 100644 --- a/mysql-test/r/gis.result +++ b/mysql-test/r/gis.result @@ -754,4 +754,12 @@ geomdatawkb longblob YES NULL drop table t1; drop table t2; drop table t3; +create table t1(col1 geometry not 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 diff --git a/mysql-test/t/gis.test b/mysql-test/t/gis.test index 3b9514bebbd..4ed400699be 100644 --- a/mysql-test/t/gis.test +++ b/mysql-test/t/gis.test @@ -458,4 +458,15 @@ drop table t1; drop table t2; drop table t3; +# +# Bug #30284 spatial key corruption +# + +create table t1(col1 geometry not 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