X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=isamb%2Fisamb.c;h=ed288098d223289cdafcdf2beebc899d608776db;hb=49682406526f450628e224b2dcc96f342a4c3cc1;hp=706d0df18a3d476f4c80ee6213390dd5e95a2cc9;hpb=0b366aebe8bbba8de457b4b2d9571cbf2dd43352;p=idzebra-moved-to-github.git diff --git a/isamb/isamb.c b/isamb/isamb.c index 706d0df..ed28809 100644 --- a/isamb/isamb.c +++ b/isamb/isamb.c @@ -2,7 +2,7 @@ * Copyright (c) 1995-1998, Index Data. * See the file LICENSE for details. * - * $Id: isamb.c,v 1.4 2002-04-17 08:17:13 adam Exp $ + * $Id: isamb.c,v 1.7 2002-04-17 09:44:56 adam Exp $ */ #include #include @@ -436,9 +436,8 @@ int insert_flat (ISAMB b, const void *new_item, ISAMC_P *posp) p->dirty = 1; } new_size = dst - dst_buf + ISAMB_DATA_OFFSET; - if (p && new_size > p->size) + if (p && new_size > b->file[p->cat].head.block_size) { - yaz_log (LOG_LOG, "resize %d -> %d", p->size, new_size); close_block (b, p); /* delete it too!! */ p = 0; /* make a new one anyway */ @@ -472,10 +471,11 @@ int isamb_insert_one (ISAMB b, const void *item, ISAMC_P pos) else { /* b-tree insert */ - struct ISAMB_block *p, *sp = 0; + struct ISAMB_block *p = open_block (b, pos), *sp = 0; char sub_item[DST_ITEM_MAX]; int sub_size; + insert_sub (b, p, item, &sp, sub_item, &sub_size); if (sp) { /* increase level of tree by one */