summaryrefslogtreecommitdiff
path: root/isam
diff options
context:
space:
mode:
authormonty@tik.mysql.com <>2000-10-15 18:45:53 +0300
committermonty@tik.mysql.com <>2000-10-15 18:45:53 +0300
commit9323e733ff9bfbbc7555de94cb9b603f47502905 (patch)
tree51edb97a7ba1e486acf5bdba590984b73c775b29 /isam
parent00625e0f8fe6f748763100a3a46787691835d83e (diff)
downloadmariadb-git-9323e733ff9bfbbc7555de94cb9b603f47502905.tar.gz
Changed meaning of HA_EXTRA_RESET and start of hidden primary keys for BDB tables
Diffstat (limited to 'isam')
-rw-r--r--isam/extra.c8
-rw-r--r--isam/pack_isam.c4
2 files changed, 10 insertions, 2 deletions
diff --git a/isam/extra.c b/isam/extra.c
index dc9b6ce2d19..1d333fa372f 100644
--- a/isam/extra.c
+++ b/isam/extra.c
@@ -36,6 +36,14 @@ int nisam_extra(N_INFO *info, enum ha_extra_function function)
switch (function) {
case HA_EXTRA_RESET:
+ if (info->opt_flag & (READ_CACHE_USED | WRITE_CACHE_USED))
+ {
+ info->opt_flag&= ~(READ_CACHE_USED | WRITE_CACHE_USED);
+ error=end_io_cache(&info->rec_cache);
+ }
+ info->opt_flag&= ~(KEY_READ_USED | REMEMBER_OLD_POS);
+
+ case HA_EXTRA_RESET_STATE:
info->lastinx= 0; /* Use first index as def */
info->int_pos=info->lastpos= NI_POS_ERROR;
info->page_changed=1;
diff --git a/isam/pack_isam.c b/isam/pack_isam.c
index 1040096fa4a..cadec5bcef5 100644
--- a/isam/pack_isam.c
+++ b/isam/pack_isam.c
@@ -2012,8 +2012,8 @@ static int mrg_rrnd(MRG_INFO *info,byte *buf)
{
isam_info= *(info->current=info->file);
info->end=info->current+info->count;
- nisam_extra(isam_info,HA_EXTRA_CACHE);
nisam_extra(isam_info,HA_EXTRA_RESET);
+ nisam_extra(isam_info,HA_EXTRA_CACHE);
filepos=isam_info->s->pack.header_length;
}
else
@@ -2035,8 +2035,8 @@ static int mrg_rrnd(MRG_INFO *info,byte *buf)
info->current++;
isam_info= *info->current;
filepos=isam_info->s->pack.header_length;
- nisam_extra(isam_info,HA_EXTRA_CACHE);
nisam_extra(isam_info,HA_EXTRA_RESET);
+ nisam_extra(isam_info,HA_EXTRA_CACHE);
}
}