]> git.sur5r.net Git - openldap/blobdiff - libraries/liblmdb/mdb_dump.c
Silence some clang warnings
[openldap] / libraries / liblmdb / mdb_dump.c
index c6843759797f4fac053042ee354e49c9222ad420..0eb85fd20e676c38f09cbc5ef706bea2730ad961 100644 (file)
 #include <signal.h>
 #include "lmdb.h"
 
+#ifdef _WIN32
+#define Z      "I"
+#else
+#define Z      "z"
+#endif
+
 #define PRINT  1
 static int mode;
 
@@ -91,6 +97,7 @@ static int dumpit(MDB_txn *txn, MDB_dbi dbi, char *name)
        MDB_cursor *mc;
        MDB_stat ms;
        MDB_val key, data;
+       MDB_envinfo info;
        unsigned int flags;
        int rc, i;
 
@@ -100,11 +107,18 @@ static int dumpit(MDB_txn *txn, MDB_dbi dbi, char *name)
        rc = mdb_stat(txn, dbi, &ms);
        if (rc) return rc;
 
+       rc = mdb_env_info(mdb_txn_env(txn), &info);
+       if (rc) return rc;
+
        printf("VERSION=3\n");
        printf("format=%s\n", mode & PRINT ? "print" : "bytevalue");
        if (name)
                printf("database=%s\n", name);
        printf("type=btree\n");
+       printf("mapsize=%" Z "u\n", info.me_mapsize);
+       if (info.me_mapaddr)
+               printf("mapaddr=%p\n", info.me_mapaddr);
+       printf("maxreaders=%u\n", info.me_maxreaders);
 
        if (flags & MDB_DUPSORT)
                printf("duplicates=1\n");
@@ -219,6 +233,10 @@ int main(int argc, char *argv[])
 
        envname = argv[optind];
        rc = mdb_env_create(&env);
+       if (rc) {
+               fprintf(stderr, "mdb_env_create failed, error %d %s\n", rc, mdb_strerror(rc));
+               return EXIT_FAILURE;
+       }
 
        if (alldbs || subname) {
                mdb_env_set_maxdbs(env, 2);
@@ -226,19 +244,19 @@ int main(int argc, char *argv[])
 
        rc = mdb_env_open(env, envname, envflags | MDB_RDONLY, 0664);
        if (rc) {
-               printf("mdb_env_open failed, error %d %s\n", rc, mdb_strerror(rc));
+               fprintf(stderr, "mdb_env_open failed, error %d %s\n", rc, mdb_strerror(rc));
                goto env_close;
        }
 
        rc = mdb_txn_begin(env, NULL, MDB_RDONLY, &txn);
        if (rc) {
-               printf("mdb_txn_begin failed, error %d %s\n", rc, mdb_strerror(rc));
+               fprintf(stderr, "mdb_txn_begin failed, error %d %s\n", rc, mdb_strerror(rc));
                goto env_close;
        }
 
        rc = mdb_open(txn, subname, 0, &dbi);
        if (rc) {
-               printf("mdb_open failed, error %d %s\n", rc, mdb_strerror(rc));
+               fprintf(stderr, "mdb_open failed, error %d %s\n", rc, mdb_strerror(rc));
                goto txn_abort;
        }
 
@@ -249,7 +267,7 @@ int main(int argc, char *argv[])
 
                rc = mdb_cursor_open(txn, dbi, &cursor);
                if (rc) {
-                       printf("mdb_cursor_open failed, error %d %s\n", rc, mdb_strerror(rc));
+                       fprintf(stderr, "mdb_cursor_open failed, error %d %s\n", rc, mdb_strerror(rc));
                        goto txn_abort;
                }
                while ((rc = mdb_cursor_get(cursor, &key, NULL, MDB_NEXT_NODUP)) == 0) {