]> git.sur5r.net Git - openldap/commitdiff
Return statistics for a DB
authorHoward Chu <hyc@symas.com>
Tue, 28 Jun 2011 07:16:05 +0000 (00:16 -0700)
committerHoward Chu <hyc@symas.com>
Tue, 28 Jun 2011 07:16:05 +0000 (00:16 -0700)
Eventually this will have to grow up to be like BDB db_stat...

libraries/libmdb/mdb_stat.c [new file with mode: 0644]

diff --git a/libraries/libmdb/mdb_stat.c b/libraries/libmdb/mdb_stat.c
new file mode 100644 (file)
index 0000000..505d62e
--- /dev/null
@@ -0,0 +1,43 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+#include "mdb.h"
+
+int main(int argc,char * argv[])
+{
+       int i = 0, rc;
+       MDB_env *env;
+       MDB_db *db;
+       MDB_stat *mst;
+       char *envname = argv[1];
+       char *subname = NULL;
+
+       if (argc > 2)
+               subname = argv[2];
+   
+       rc = mdbenv_create(&env, 0);
+       rc = mdbenv_open(env, envname, MDB_RDONLY, 0);
+       if (rc) {
+               printf("mdbenv_open failed, error %d\n", rc);
+               exit(1);
+       }
+       rc = mdb_open(env, NULL, NULL, 0, &db);
+       if (rc) {
+               printf("mdb_open failed, error %d\n", rc);
+               exit(1);
+       }
+   
+       rc = mdb_stat(db, &mst);
+       printf("Created at %s", ctime(&mst->ms_created_at));
+       printf("Page size: %u\n", mst->ms_psize);
+       printf("Tree depth: %u\n", mst->ms_depth);
+       printf("Branch pages: %lu\n", mst->ms_branch_pages);
+       printf("Leaf pages: %lu\n", mst->ms_leaf_pages);
+       printf("Overflow pages: %lu\n", mst->ms_overflow_pages);
+       printf("Revisions: %lu\n", mst->ms_revisions);
+       printf("Entries: %lu\n", mst->ms_entries);
+       mdb_close(db);
+       mdbenv_close(env);
+
+       return 0;
+}