summaryrefslogtreecommitdiff
path: root/myisammrg/myrg_rprev.c
diff options
context:
space:
mode:
authorunknown <serg@serg.mysql.com>2001-05-16 23:06:30 +0200
committerunknown <serg@serg.mysql.com>2001-05-16 23:06:30 +0200
commit89ec1da4fb9cb5d61f4c78e36092548a28c5dbac (patch)
tree2a70f22e99c521af3c0c2174fd0bbf8ed02fa073 /myisammrg/myrg_rprev.c
parentb59b5f4b6ec6bd5b0eb8cee832b6d4f51fa646fc (diff)
downloadmariadb-git-89ec1da4fb9cb5d61f4c78e36092548a28c5dbac.tar.gz
Fulltext manual changed, MERGE bug fixed
Docs/manual.texi: Fulltext manual changed, MERGE bug added to changelog myisammrg/mymrgdef.h: MERGE bug fixed myisammrg/myrg_rkey.c: MERGE bug fixed myisammrg/myrg_rnext.c: MERGE bug fixed myisammrg/myrg_rprev.c: MERGE bug fixed mysql-test/r/merge.result: MERGE bug fixed mysql-test/t/merge.test: MERGE bug fixed
Diffstat (limited to 'myisammrg/myrg_rprev.c')
-rw-r--r--myisammrg/myrg_rprev.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/myisammrg/myrg_rprev.c b/myisammrg/myrg_rprev.c
index c63c73b4200..d8089e80498 100644
--- a/myisammrg/myrg_rprev.c
+++ b/myisammrg/myrg_rprev.c
@@ -29,7 +29,11 @@ int myrg_rprev(MYRG_INFO *info, byte *buf, int inx)
if ((err=mi_rprev(info->current_table->table,NULL,inx)))
{
if (err == HA_ERR_END_OF_FILE)
+ {
queue_remove(&(info->by_key),0);
+ if (!info->by_key.elements)
+ return HA_ERR_END_OF_FILE;
+ }
else
return err;
}
@@ -40,16 +44,7 @@ int myrg_rprev(MYRG_INFO *info, byte *buf, int inx)
queue_replaced(&(info->by_key));
}
- /* next, let's finish myrg_rkey's initial scan */
- if ((err=_myrg_finish_scan(info, inx, HA_READ_KEY_OR_PREV)))
- return err;
-
- if (!info->by_key.elements)
- return HA_ERR_END_OF_FILE;
-
/* now, mymerge's read_prev is as simple as one queue_top */
mi=(info->current_table=(MYRG_TABLE *)queue_top(&(info->by_key)))->table;
return mi_rrnd(mi,buf,mi->lastpos);
}
-
-