+/* mdb_stat.c - memory-mapped database status tool */
+/*
+ * Copyright 2011 Howard Chu, Symas Corp.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted only as authorized by the OpenLDAP
+ * Public License.
+ *
+ * A copy of this license is available in the file LICENSE in the
+ * top-level directory of the distribution or, alternatively, at
+ * <http://www.OpenLDAP.org/license.html>.
+ */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
{
int rc;
MDB_env *env;
- MDB_db *db;
- MDB_stat *mst;
+ MDB_txn *txn;
+ MDB_dbi dbi;
+ MDB_stat mst;
char *envname = argv[1];
char *subname = NULL;
printf("mdbenv_open failed, error %d\n", rc);
exit(1);
}
- rc = mdb_open(env, NULL, NULL, 0, &db);
+ rc = mdb_txn_begin(env, 1, &txn);
+ if (rc) {
+ printf("mdb_txn_begin failed, error %d\n", rc);
+ exit(1);
+ }
+ rc = mdb_open(txn, subname, 0, &dbi);
if (rc) {
printf("mdb_open failed, error %d\n", rc);
exit(1);
}
- rc = mdb_stat(db, &mst);
- 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("Entries: %lu\n", mst->ms_entries);
- mdb_close(db);
+ rc = mdb_stat(txn, dbi, &mst);
+ 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("Entries: %lu\n", mst.ms_entries);
+ mdb_close(txn, dbi);
+ mdb_txn_abort(txn);
mdbenv_close(env);
return 0;