summaryrefslogtreecommitdiff
path: root/myisam
diff options
context:
space:
mode:
authorhf@deer.(none) <>2004-02-19 17:22:38 +0400
committerhf@deer.(none) <>2004-02-19 17:22:38 +0400
commit9edef96561704cc5c0e56ba58d02f6a03eac08e2 (patch)
treee5c8a87ec7a0e38f469d3dfcc0f4f6f4286ae052 /myisam
parent9aae59176d2ab63d61fc0dc68b44744e60a0bf5d (diff)
downloadmariadb-git-9edef96561704cc5c0e56ba58d02f6a03eac08e2.tar.gz
Fix for #2237 and #2490 (analyze and check for RTree keys)
Now checking of the RTree keys works without errors. Worklog entry about appropriate checkup's routine for the RTree added
Diffstat (limited to 'myisam')
-rw-r--r--myisam/mi_check.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/myisam/mi_check.c b/myisam/mi_check.c
index 4f6aa0b46d4..4d29838ecd0 100644
--- a/myisam/mi_check.c
+++ b/myisam/mi_check.c
@@ -409,7 +409,7 @@ int chk_key(MI_CHECK *param, register MI_INFO *info)
if (chk_index(param,info,keyinfo,share->state.key_root[key],info->buff,
&keys, param->key_crc+key,1))
DBUG_RETURN(-1);
- if(!(keyinfo->flag & HA_FULLTEXT))
+ if(!(keyinfo->flag & (HA_FULLTEXT | HA_SPATIAL)))
{
if (keys != info->state->records)
{
@@ -558,6 +558,10 @@ static int chk_index(MI_CHECK *param, MI_INFO *info, MI_KEYDEF *keyinfo,
DBUG_ENTER("chk_index");
DBUG_DUMP("buff",(byte*) buff,mi_getint(buff));
+ /* TODO: implement appropriate check for RTree keys */
+ if (keyinfo->flag & HA_SPATIAL)
+ DBUG_RETURN(0);
+
if (!(temp_buff=(uchar*) my_alloca((uint) keyinfo->block_length)))
{
mi_check_print_error(param,"Not enough memory for keyblock");
@@ -1073,7 +1077,7 @@ int chk_data_link(MI_CHECK *param, MI_INFO *info,int extend)
for (key=0 ; key < info->s->base.keys; key++)
{
if (key_checksum[key] != param->key_crc[key] &&
- !(info->s->keyinfo[key].flag & HA_FULLTEXT))
+ !(info->s->keyinfo[key].flag & (HA_FULLTEXT | HA_SPATIAL)))
{
mi_check_print_error(param,"Checksum for key: %2d doesn't match checksum for records",
key+1);