decode_ptr(&src, &isamb->file[i].head.first_block);
decode_ptr(&src, &isamb->file[i].head.last_block);
decode_ptr(&src, &zint_tmp);
decode_ptr(&src, &isamb->file[i].head.first_block);
decode_ptr(&src, &isamb->file[i].head.last_block);
decode_ptr(&src, &zint_tmp);
decode_ptr(&src, &isamb->file[i].head.free_list);
}
assert (isamb->file[i].head.block_size >= isamb->file[i].head.block_offset);
decode_ptr(&src, &isamb->file[i].head.free_list);
}
assert (isamb->file[i].head.block_size >= isamb->file[i].head.block_offset);
-static int get_block (ISAMB b, ISAMC_P pos, char *userbuf, int wr)
+static int cache_block (ISAMB b, ISAMC_P pos, char *userbuf, int wr)
bf_write(b->file[cat].bf, ce_this->pos, 0, 0, ce_this->buf);
}
xfree(ce_this->buf);
bf_write(b->file[cat].bf, ce_this->pos, 0, 0, ce_this->buf);
}
xfree(ce_this->buf);
if (!bf_read(b->file[cat].bf, norm, 0, 0, ce_this->buf))
memset (ce_this->buf, 0, ISAMB_CACHE_ENTRY_SIZE);
if (wr)
if (!bf_read(b->file[cat].bf, norm, 0, 0, ce_this->buf))
memset (ce_this->buf, 0, ISAMB_CACHE_ENTRY_SIZE);
if (wr)
yaz_log(YLOG_DEBUG, "isamb_close level leaf-%d: "ZINT_FORMAT" read, "
ZINT_FORMAT" skipped",
i, isamb->accessed_nodes[i], isamb->skipped_nodes[i]);
yaz_log(YLOG_DEBUG, "isamb_close level leaf-%d: "ZINT_FORMAT" read, "
ZINT_FORMAT" skipped",
i, isamb->accessed_nodes[i], isamb->skipped_nodes[i]);
- if (!get_block (b, pos, p->buf, 0))
+ if (!cache_block (b, pos, p->buf, 0))
{
yaz_log(b->log_io, "bf_read: open_block");
if (!bf_read(b->file[cat].bf, pos/CAT_MAX, 0, 0, p->buf))
{
yaz_log(b->log_io, "bf_read: open_block");
if (!bf_read(b->file[cat].bf, pos/CAT_MAX, 0, 0, p->buf))
- if (!get_block (b, p->pos, p->buf, 0))
+ if (!cache_block (b, p->pos, p->buf, 0))
{
yaz_log(b->log_io, "bf_read: new_block");
if (!bf_read(b->file[cat].bf, p->pos/CAT_MAX, 0, 0, p->buf))
{
yaz_log(b->log_io, "bf_read: new_block");
if (!bf_read(b->file[cat].bf, p->pos/CAT_MAX, 0, 0, p->buf))
p->pos, p->cat, p->pos/CAT_MAX);
memcpy (p->buf, &b->file[p->cat].head.free_list, sizeof(zint));
b->file[p->cat].head.free_list = p->pos;
p->pos, p->cat, p->pos/CAT_MAX);
memcpy (p->buf, &b->file[p->cat].head.free_list, sizeof(zint));
b->file[p->cat].head.free_list = p->pos;
- if (!get_block (b, p->pos, p->buf, 1))
+ if (!cache_block (b, p->pos, p->buf, 1))
{
yaz_log(b->log_io, "bf_write: close_block (deleted)");
bf_write(b->file[p->cat].bf, p->pos/CAT_MAX, 0, 0, p->buf);
{
yaz_log(b->log_io, "bf_write: close_block (deleted)");
bf_write(b->file[p->cat].bf, p->pos/CAT_MAX, 0, 0, p->buf);
- if (!get_block (b, p->pos, p->buf, 1))
+ if (!cache_block (b, p->pos, p->buf, 1))
{
yaz_log(b->log_io, "bf_write: close_block");
bf_write(b->file[p->cat].bf, p->pos/CAT_MAX, 0, 0, p->buf);
{
yaz_log(b->log_io, "bf_write: close_block");
bf_write(b->file[p->cat].bf, p->pos/CAT_MAX, 0, 0, p->buf);
int cut_item_size = 0;
int no_items = 0; /* number of items (total) */
int no_items_1 = 0; /* number of items (first half) */
int cut_item_size = 0;
int no_items = 0; /* number of items (total) */
int no_items_1 = 0; /* number of items (first half) */
/* this loop runs when we are "appending" to a leaf page. That is
either it's empty (new) or all file items have been read in
previous loop */
/* this loop runs when we are "appending" to a leaf page. That is
either it's empty (new) or all file items have been read in
previous loop */
memcpy (p->bytes, dst_buf, half1 - dst_buf);
p->no_items = no_items_1;
memcpy (p->bytes, dst_buf, half1 - dst_buf);
p->no_items = no_items_1;
memcpy (first_dst, half2, dst - half2);
(*sp2)->size = (first_dst - (*sp2)->bytes) + (dst - half2);
memcpy (first_dst, half2, dst - half2);
(*sp2)->size = (first_dst - (*sp2)->bytes) + (dst - half2);
return isamb_pp_open_x(isamb, pos, 0, scope);
}
return isamb_pp_open_x(isamb, pos, 0, scope);
}
yaz_log(YLOG_DEBUG, "isamb_pp_close lev=%d returned "ZINT_FORMAT" values, "
"skipped "ZINT_FORMAT,
pp->maxlevel, pp->skipped_numbers, pp->returned_numbers);
yaz_log(YLOG_DEBUG, "isamb_pp_close lev=%d returned "ZINT_FORMAT" values, "
"skipped "ZINT_FORMAT,
pp->maxlevel, pp->skipped_numbers, pp->returned_numbers);
if (pp->skipped_nodes[i] || pp->accessed_nodes[i])
yaz_log(YLOG_DEBUG, "isamb_pp_close level leaf-%d: "
ZINT_FORMAT" read, "ZINT_FORMAT" skipped", i,
pp->accessed_nodes[i], pp->skipped_nodes[i]);
pp->isamb->skipped_numbers += pp->skipped_numbers;
pp->isamb->returned_numbers += pp->returned_numbers;
if (pp->skipped_nodes[i] || pp->accessed_nodes[i])
yaz_log(YLOG_DEBUG, "isamb_pp_close level leaf-%d: "
ZINT_FORMAT" read, "ZINT_FORMAT" skipped", i,
pp->accessed_nodes[i], pp->skipped_nodes[i]);
pp->isamb->skipped_numbers += pp->skipped_numbers;
pp->isamb->returned_numbers += pp->returned_numbers;
{
pp->isamb->accessed_nodes[i] += pp->accessed_nodes[i];
pp->isamb->skipped_nodes[i] += pp->skipped_nodes[i];
{
pp->isamb->accessed_nodes[i] += pp->accessed_nodes[i];
pp->isamb->skipped_nodes[i] += pp->skipped_nodes[i];
- yaz_log(YLOG_DEBUG, "isamb_pp_forward (f) returning (C) "
- "at level %d node %d ofs=%d sz=%d",
- pp->level, p->pos, p->offset, p->size);
+ yaz_log(YLOG_DEBUG, "isamb_pp_forward (f) returning (c) "
+ "at level %d node %d ofs=%d sz=%d",
+ pp->level, p->pos, p->offset, p->size);
*current = (double) pp->returned_numbers;
#if ISAMB_DEBUG
yaz_log(YLOG_LOG, "isamb_pp_pos returning: cur= %0.1f tot=%0.1f rn="
*current = (double) pp->returned_numbers;
#if ISAMB_DEBUG
yaz_log(YLOG_LOG, "isamb_pp_pos returning: cur= %0.1f tot=%0.1f rn="