+ pp = isc_pp_open (stat_info->zh->reg->isamc, isam_p);
+ occur = isc_pp_num (pp);
+ while (isc_pp_read(pp, &key))
+ {
+ stat_info->cksum = stat_info->cksum * 65509 +
+ key.sysno + 11 * key.seqno;
+ occurx++;
+ if (-1==firstsys)
+ {
+ firstseq=key.seqno;
+ firstsys=key.sysno;
+ }
+ lastsys=key.sysno;
+ lastseq=key.seqno;
+ }
+ assert (occurx == occur);
+ stat_info->no_isam_entries[isc_type(isam_p)] += occur;
+ isc_pp_close (pp);
+ }
+ if (stat_info->zh->reg->isamd)
+ {
+ ISAMD_PP pp;
+ int occurx = 0;
+ struct it_key key;
+ /* printf("[%d: %d %d %d %d %d %d] ", */
+ /* info[0], info[1], info[2], info[3], info[4], info[5], info[7]);*/
+ pp = isamd_pp_open (stat_info->zh->reg->isamd, info+1, info[0]);
+
+ occur = isamd_pp_num (pp);
+ while (isamd_pp_read(pp, &key))
+ {
+ stat_info->cksum = stat_info->cksum * 65509 +
+ key.sysno + 11 * key.seqno;
+ occurx++;
+ /* printf("%d.%d ", key.sysno, key.seqno); */ /*!*/
+ if (-1==firstsys)
+ {
+ firstseq=key.seqno;
+ firstsys=key.sysno;
+ }
+ lastsys=key.sysno;
+ lastseq=key.seqno;
+ if ( pp->is->method->debug >8 )
+ logf (LOG_LOG,"sysno=%d seqno=%d (%x/%x) oc=%d/%d ofs=%d ",
+ key.sysno, key.seqno,
+ key.sysno, key.seqno,
+ occur,occurx, pp->offset);
+ }
+ /* printf("\n"); */ /*!*/
+#ifdef SKIPTHIS
+ if ( pp->is->method->debug >7 )
+ logf(LOG_LOG,"item %d=%d:%d says %d keys, counted %d",
+ isam_p, isamd_type(isam_p), isamd_block(isam_p),
+ occur, occurx);
+#endif
+ if (occurx != occur)
+ logf(LOG_LOG,"Count error!!! read %d, counted %d", occur, occurx);
+ assert (occurx == occur);
+ i = pp->cat;
+ if (info[1])
+ i=SINGLETON_TYPE;
+ stat_info->no_isam_entries[i] += occur;
+ isamd_pp_close (pp);
+ }
+ if (stat_info->zh->reg->isamb)
+ {
+ ISAMB_PP pp;
+ struct it_key key;
+ int cat = isam_p & 3;
+ int level;
+ int size;
+ int blocks;
+
+ pp = isamb_pp_open_x(stat_info->zh->reg->isamb, isam_p, &level);
+
+ while (isamb_pp_read(pp, &key))
+ {
+ stat_info->cksum = stat_info->cksum * 65509 +
+ key.sysno + 11 * key.seqno;
+ occur++;
+ if (-1==firstsys)
+ {
+ firstseq=key.seqno;
+ firstsys=key.sysno;
+ }
+ lastsys=key.sysno;
+ lastseq=key.seqno;
+ }
+ isamb_pp_close_x (pp, &size, &blocks);
+ stat_info->isamb_blocks[cat] += blocks;
+ stat_info->isamb_sizes[cat] += size;
+ if (level > 4)
+ level = 4;
+ stat_info->isamb_levels[cat][level] ++;
+ stat_info->no_isam_entries[cat] += occur;
+ }
+ i=0;