-/* $Id: invstat.c,v 1.46 2005-04-13 13:03:47 adam Exp $
- Copyright (C) 1995-2005
+/* $Id: invstat.c,v 1.54 2007-01-15 15:10:16 adam Exp $
+ Copyright (C) 1995-2007
Index Data ApS
This file is part of the Zebra server.
for more details.
You should have received a copy of the GNU General Public License
-along with Zebra; see the file LICENSE.zebra. If not, write to the
-Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA.
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
*/
#define SINGLETON_TYPE 8 /* the type to use for singletons that */
/* have no block and no block type */
-static void print_dict_item (ZebraMaps zm, const char *s, zint count,
+static void print_dict_item (ZebraHandle zh, const char *s, zint count,
int firstsys, int firstseq, int lastsys, int lastseq )
{
- int reg_type = s[1];
- char keybuf[IT_MAX_WORD+1];
- char *to = keybuf;
- const char *from = s + 2;
-
- while (*from)
+ char dst[IT_MAX_WORD+1];
+ int ord;
+ int len = key_SU_decode(&ord, (const unsigned char *) s);
+ int index_type;
+ const char *db = 0;
+
+ if (!zh)
+ *dst = '\0';
+ else
{
- const char *res = zebra_maps_output (zm, reg_type, &from);
- if (!res)
- *to++ = *from++;
- else
- while (*res)
- *to++ = *res++;
+ zebraExplain_lookup_ord (zh->reg->zei, ord, &index_type, &db, 0);
+
+ zebra_term_untrans(zh, index_type, dst, s + len);
}
- *to = '\0';
- /* yaz_log (YLOG_LOG, "%s", keybuf); */
- printf("%10" ZINT_FORMAT0 " %s %d.%d - %d.%d\n", count, keybuf,
- firstsys,firstseq, lastsys,lastseq);
+ printf("%02d:%10" ZINT_FORMAT0 " %s %d.%d - %d.%d\n", ord, count, dst,
+ firstsys, firstseq, lastsys, lastseq);
}
static int inv_stat_handle (char *name, const char *info, int pos,
{
ISAMB_PP pp;
struct it_key key;
- int cat = (int) (isam_p & 3);
+ int cat = CAST_ZINT_TO_INT(isam_p & 3);
int level;
zint size;
zint blocks;
i++;
++(stat_info->isam_occurrences[i]);
if (stat_info->dumpwords)
- print_dict_item(stat_info->zh->reg->zebra_maps, name, occur,
- firstsys,firstseq, lastsys, lastseq);
+ print_dict_item(stat_info->zh, name, occur,
+ firstsys, firstseq, lastsys, lastseq);
return 0;
}
+static void show_bfs_stats(BFiles bfs)
+{
+ int i = 0;
+ const char *directory = 0;
+ double used_bytes, max_bytes;
+ printf("Register:\n");
+ while (bfs_register_directory_stat(bfs, i, &directory,
+ &used_bytes, &max_bytes))
+ {
+ printf ("%s %10.0lf %10.0lf\n", directory, used_bytes, max_bytes);
+ i++;
+ }
+ i = 0;
+ printf("Shadow:\n");
+ while (bfs_shadow_directory_stat(bfs, i, &directory,
+ &used_bytes, &max_bytes))
+ {
+ printf ("%s %10.0lf %10.0lf\n", directory, used_bytes, max_bytes);
+ i++;
+ }
+}
+
int zebra_register_statistics (ZebraHandle zh, int dumpdict)
{
int i, prev;
if (zebra_begin_read (zh))
return 1;
+ show_bfs_stats(zebra_get_bfs(zh));
+
stat_info.zh = zh;
stat_info.dumpwords=dumpdict;
stat_info.no_isam_entries[i]);
if (stat_info.no_isam_entries[i])
- fprintf (stdout, " %8d %f",
- (int) ((1023.0 + (double)
- isamc_block_used(zh->reg->isamc, i) *
- isamc_block_size(zh->reg->isamc,i))/1024),
- ((double) isamc_block_used(zh->reg->isamc, i) *
+ fprintf(stdout, " %8d %f",
+ (int) ((1023.0 + (double)
+ isamc_block_used(zh->reg->isamc, i) *
+ isamc_block_size(zh->reg->isamc,i))/1024),
+ ((double) isamc_block_used(zh->reg->isamc, i) *
isamc_block_size(zh->reg->isamc,i))/
- stat_info.no_isam_entries[i]);
+ stat_info.no_isam_entries[i]);
fprintf (stdout, "\n");
}
}
return 0;
}
+/*
+ * Local variables:
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ * vim: shiftwidth=4 tabstop=8 expandtab
+ */
+