+
+static void isamh_reduceblock(ISAMH is, ISAMH_PP pp, int numKeys)
+{
+ if (pp->is->method->debug > 2)
+ logf(LOG_LOG,"isamh_reduce: block p=%d c=%d o=%d nk=%d ",
+ pp->pos, pp->cat, pp->offset, numKeys);
+ if (pp->pos != 0)
+ return; /* already allocated in some size */
+ while ( ( pp->cat > 0 ) &&
+ ( pp->offset < is->method->filecat[pp->cat-1].bsize) &&
+ ( numKeys < is->method->filecat[pp->cat-1].mblocks) )
+ pp->cat--;
+ pp->pos = isamh_alloc_block(is,pp->cat) ;
+ if (pp->is->method->debug > 2)
+ logf(LOG_LOG,"isamh_reduced block p=%d to c=%d o=%d nk=%d bs=%d",
+ pp->pos, pp->cat, pp->offset, numKeys,
+ is->method->filecat[pp->cat].bsize);
+
+
+} /* reduceblock */
+