Bug #529. On Unix, combine pthreed locks with file locking because file
[idzebra-moved-to-github.git] / index / invstat.c
index 76b99a3..df2af05 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: invstat.c,v 1.47 2006-02-20 12:41:42 adam Exp $
+/* $Id: invstat.c,v 1.52 2006-06-07 10:14:41 adam Exp $
    Copyright (C) 1995-2005
    Index Data ApS
 
@@ -58,7 +58,7 @@ static void print_dict_item (ZebraHandle zh, const char *s, zint count,
        *dst = '\0';
     else
     {
-        zebraExplain_lookup_ord (zh->reg->zei, ord, &index_type, &db, 0, 0);
+        zebraExplain_lookup_ord (zh->reg->zei, ord, &index_type, &db, 0);
 
         zebra_term_untrans(zh, index_type, dst, s + len);
     }
@@ -120,7 +120,7 @@ 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;
@@ -149,6 +149,28 @@ static int inv_stat_handle (char *name, const char *info, int pos,
     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;
@@ -161,6 +183,8 @@ int zebra_register_statistics (ZebraHandle zh, int dumpdict)
     if (zebra_begin_read (zh))
        return 1;
 
+    show_bfs_stats(zebra_get_bfs(zh));
+
     stat_info.zh = zh;
     stat_info.dumpwords=dumpdict;
 
@@ -218,13 +242,13 @@ int zebra_register_statistics (ZebraHandle zh, int 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");
        }
     }
@@ -275,3 +299,11 @@ int zebra_register_statistics (ZebraHandle zh, int dumpdict)
     return 0;
 }
 
+/*
+ * Local variables:
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ * vim: shiftwidth=4 tabstop=8 expandtab
+ */
+