X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;ds=sidebyside;f=isam%2Fisam.c;h=4a160a88309b3f99e00fa7746b3d8e0fb21cc301;hb=fc5b1ebd4b23c1c55514a973f35ee98f2207597e;hp=e669e9ca4d572a5e67b5b69839ac6afc1ce82d5c;hpb=fa9ad0cb4b1eade3de0853b91df04bd97c3845fa;p=idzebra-moved-to-github.git diff --git a/isam/isam.c b/isam/isam.c index e669e9c..4a160a8 100644 --- a/isam/isam.c +++ b/isam/isam.c @@ -4,7 +4,17 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: isam.c,v $ - * Revision 1.15 1995-12-06 09:59:45 quinn + * Revision 1.18 1996-02-06 10:19:56 quinn + * Attempt at fixing bug. Not all blocks were read before they were unlinked + * prior to a remap operation. + * + * Revision 1.17 1995/12/06 15:48:44 quinn + * Fixed update-problem. + * + * Revision 1.16 1995/12/06 14:48:26 quinn + * Fixed some strange bugs. + * + * Revision 1.15 1995/12/06 09:59:45 quinn * Fixed memory-consumption bug in memory.c * Added more blocksizes to the default ISAM configuration. * @@ -421,6 +431,10 @@ ISAM_P is_merge(ISAM is, ISAM_P pos, int num, char *data) i++; if (i != tab.pos_type) { + /* read remaining blocks */ + for (; tab.cur_mblock; tab.cur_mblock = tab.cur_mblock->next) + if (tab.cur_mblock->state < IS_MBSTATE_CLEAN) + is_m_read_full(&tab, tab.cur_mblock); is_p_unmap(&tab); tab.pos_type = i; } @@ -467,13 +481,11 @@ void is_pt_free(ISPT ip) */ int is_readkey(ISPT ip, void *buf) { -fprintf(stderr, "XXReadkey.\n"); - return is_m_read_record(&ip->tab, buf); + return is_m_read_record(&ip->tab, buf, 0); } int is_numkeys(ISPT ip) { -fprintf(stderr, "XXNumkeys.\n"); return is_m_num_records(&ip->tab); }