summaryrefslogtreecommitdiff
path: root/myisam/rt_index.c
diff options
context:
space:
mode:
Diffstat (limited to 'myisam/rt_index.c')
-rw-r--r--myisam/rt_index.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/myisam/rt_index.c b/myisam/rt_index.c
index 131ab5bd0b7..e3f64940203 100644
--- a/myisam/rt_index.c
+++ b/myisam/rt_index.c
@@ -158,7 +158,10 @@ int rtree_find_first(MI_INFO *info, uint keynr, uchar *key, uint key_length,
MI_KEYDEF *keyinfo = info->s->keyinfo + keynr;
if ((root = info->s->state.key_root[keynr]) == HA_OFFSET_ERROR)
+ {
+ my_errno= HA_ERR_END_OF_FILE;
return -1;
+ }
/* Save searched key */
memcpy(info->lastkey2, key, keyinfo->keylength - info->s->base.rec_reflength);
@@ -217,7 +220,10 @@ int rtree_find_next(MI_INFO *info, uint keynr, uint search_flag)
}
}
if ((root = info->s->state.key_root[keynr]) == HA_OFFSET_ERROR)
+ {
+ my_errno= HA_ERR_END_OF_FILE;
return -1;
+ }
nod_cmp_flag = ((search_flag & (MBR_EQUAL | MBR_WITHIN)) ?
MBR_WITHIN : MBR_INTERSECT);
@@ -340,7 +346,10 @@ int rtree_get_first(MI_INFO *info, uint keynr, uint key_length)
MI_KEYDEF *keyinfo = info->s->keyinfo + keynr;
if ((root = info->s->state.key_root[keynr]) == HA_OFFSET_ERROR)
+ {
+ my_errno= HA_ERR_END_OF_FILE;
return -1;
+ }
info->rtree_recursion_depth = -1;
info->buff_used = 1;
@@ -383,7 +392,10 @@ int rtree_get_next(MI_INFO *info, uint keynr, uint key_length)
else
{
if ((root = info->s->state.key_root[keynr]) == HA_OFFSET_ERROR)
+ {
+ my_errno= HA_ERR_END_OF_FILE;
return -1;
+ }
return rtree_get_req(info, &keyinfo[keynr], key_length, root, 0);
}
@@ -732,7 +744,7 @@ int rtree_delete(MI_INFO *info, uint keynr, uchar *key, uint key_length)
if ((old_root = info->s->state.key_root[keynr]) == HA_OFFSET_ERROR)
{
- my_errno = HA_ERR_KEY_NOT_FOUND;
+ my_errno= HA_ERR_END_OF_FILE;
return -1;
}