]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#8704 Add MDB_PREVMETA support to tools
authorHoward Chu <hyc@openldap.org>
Mon, 31 Jul 2017 18:15:21 +0000 (19:15 +0100)
committerHoward Chu <hyc@openldap.org>
Thu, 17 Jan 2019 18:59:30 +0000 (18:59 +0000)
libraries/liblmdb/mdb_copy.1
libraries/liblmdb/mdb_copy.c
libraries/liblmdb/mdb_dump.1
libraries/liblmdb/mdb_dump.c
libraries/liblmdb/mdb_stat.1
libraries/liblmdb/mdb_stat.c

index 594ff1241bcf78b30d1187e4e753fc779a9d9d76..30e4754f13765c1c732841cccdf311cf88ad89ed 100644 (file)
@@ -1,5 +1,5 @@
-.TH MDB_COPY 1 "2014/07/01" "LMDB 0.9.14"
-.\" Copyright 2012-2018 Howard Chu, Symas Corp. All Rights Reserved.
+.TH MDB_COPY 1 "2017/07/31" "LMDB 0.9.70"
+.\" Copyright 2012-2019 Howard Chu, Symas Corp. All Rights Reserved.
 .\" Copying restrictions apply.  See COPYRIGHT/LICENSE.
 .SH NAME
 mdb_copy \- LMDB environment copy tool
@@ -11,6 +11,8 @@ mdb_copy \- LMDB environment copy tool
 .BR \-c ]
 [\c
 .BR \-n ]
+[\c
+.BR \-v ]
 .B srcpath
 [\c
 .BR dstpath ]
@@ -40,6 +42,10 @@ Currently it fails if the environment has suffered a page leak.
 .TP
 .BR \-n
 Open LDMB environment(s) which do not use subdirectories.
+.TP
+.BR \-v
+Use the previous environment state instead of the latest state.
+This may be useful if the latest state has been corrupted.
 
 .SH DIAGNOSTICS
 Exit status is zero if no errors occur.
index 1b89396eb9de4e7e4c88d82c2f276c9c602a3113..98df57aedc7adc048f8393081a084376326d0979 100644 (file)
@@ -38,6 +38,8 @@ int main(int argc,char * argv[])
        for (; argc > 1 && argv[1][0] == '-'; argc--, argv++) {
                if (argv[1][1] == 'n' && argv[1][2] == '\0')
                        flags |= MDB_NOSUBDIR;
+               else if (argv[1][1] == 'v' && argv[1][2] == '\0')
+                       flags |= MDB_PREVMETA;
                else if (argv[1][1] == 'c' && argv[1][2] == '\0')
                        cpflags |= MDB_CP_COMPACT;
                else if (argv[1][1] == 'V' && argv[1][2] == '\0') {
@@ -48,7 +50,7 @@ int main(int argc,char * argv[])
        }
 
        if (argc<2 || argc>3) {
-               fprintf(stderr, "usage: %s [-V] [-c] [-n] srcpath [dstpath]\n", progname);
+               fprintf(stderr, "usage: %s [-V] [-c] [-n] [-v] srcpath [dstpath]\n", progname);
                exit(EXIT_FAILURE);
        }
 
index 72cf6ca844c6e7c55536592bf7296af084aa9d9a..424ad9321cfa9be576ee656ce636dab24a3da45d 100644 (file)
@@ -1,5 +1,5 @@
-.TH MDB_DUMP 1 "2015/09/30" "LMDB 0.9.17"
-.\" Copyright 2014-2018 Howard Chu, Symas Corp. All Rights Reserved.
+.TH MDB_DUMP 1 "2017/07/31" "LMDB 0.9.70"
+.\" Copyright 2014-2017 Howard Chu, Symas Corp. All Rights Reserved.
 .\" Copying restrictions apply.  See COPYRIGHT/LICENSE.
 .SH NAME
 mdb_dump \- LMDB environment export tool
@@ -14,6 +14,8 @@ mdb_dump \- LMDB environment export tool
 [\c
 .BR \-n ]
 [\c
+.BR \-v ]
+[\c
 .BR \-p ]
 [\c
 .BR \-a \ |
@@ -42,6 +44,10 @@ names will be listed, no data will be output.
 .BR \-n
 Dump an LMDB database which does not use subdirectories.
 .TP
+.BR \-v
+Use the previous environment state instead of the latest state.
+This may be useful if the latest state has been corrupted.
+.TP
 .BR \-p
 If characters in either the key or data items are printing characters (as
 defined by isprint(3)), output them directly. This option permits users to
index b3b9dbad6ddea9984f4a8bad1fbd4aab3fe3acf3..8ba688d922872d5bf7925931df82a484f53be321 100644 (file)
@@ -151,7 +151,7 @@ static int dumpit(MDB_txn *txn, MDB_dbi dbi, char *name)
 
 static void usage(char *prog)
 {
-       fprintf(stderr, "usage: %s [-V] [-f output] [-l] [-n] [-p] [-a|-s subdb] dbpath\n", prog);
+       fprintf(stderr, "usage: %s [-V] [-f output] [-l] [-n] [-p] [-v] [-a|-s subdb] dbpath\n", prog);
        exit(EXIT_FAILURE);
 }
 
@@ -175,6 +175,7 @@ int main(int argc, char *argv[])
         * -n: use NOSUBDIR flag on env_open
         * -p: use printable characters
         * -f: write to file instead of stdout
+        * -v: use previous metapage
         * -V: print version and exit
         * (default) dump only the main DB
         */
@@ -202,6 +203,9 @@ int main(int argc, char *argv[])
                case 'n':
                        envflags |= MDB_NOSUBDIR;
                        break;
+               case 'v':
+                       envflags |= MDB_PREVMETA;
+                       break;
                case 'p':
                        mode |= PRINT;
                        break;
index 7c3f2846401a9efa0f9be669e87fd8a8248ac91b..83988a0fa0224d38fafff6d31fee8109324abd5b 100644 (file)
@@ -1,5 +1,5 @@
-.TH MDB_STAT 1 "2015/09/30" "LMDB 0.9.17"
-.\" Copyright 2012-2018 Howard Chu, Symas Corp. All Rights Reserved.
+.TH MDB_STAT 1 "2017/07/31" "LMDB 0.9.70"
+.\" Copyright 2012-2019 Howard Chu, Symas Corp. All Rights Reserved.
 .\" Copying restrictions apply.  See COPYRIGHT/LICENSE.
 .SH NAME
 mdb_stat \- LMDB environment status tool
@@ -14,6 +14,8 @@ mdb_stat \- LMDB environment status tool
 [\c
 .BR \-n ]
 [\c
+.BR \-v ]
+[\c
 .BR \-r [ r ]]
 [\c
 .BR \-a \ |
@@ -39,6 +41,10 @@ If \fB\-fff\fP is given, display the full list of page IDs in the freelist.
 .BR \-n
 Display the status of an LMDB database which does not use subdirectories.
 .TP
+.BR \-v
+Use the previous environment state instead of the latest state.
+This may be useful if the latest state has been corrupted.
+.TP
 .BR \-r
 Display information about the environment reader table.
 Shows the process ID, thread ID, and transaction ID for each active
index d5d795d851212af7f12024dac653c162caa6c099..1ec1042170c6182d02f7087d016715ebfe39e0da 100644 (file)
@@ -34,7 +34,7 @@ static void prstat(MDB_stat *ms)
 
 static void usage(char *prog)
 {
-       fprintf(stderr, "usage: %s [-V] [-n] [-e] [-r[r]] [-f[f[f]]] [-a|-s subdb] dbpath\n", prog);
+       fprintf(stderr, "usage: %s [-V] [-n] [-e] [-r[r]] [-f[f[f]]] [-v] [-a|-s subdb] dbpath\n", prog);
        exit(EXIT_FAILURE);
 }
 
@@ -61,6 +61,7 @@ int main(int argc, char *argv[])
         * -f: print freelist info
         * -r: print reader info
         * -n: use NOSUBDIR flag on env_open
+        * -v: use previous metapage
         * -V: print version and exit
         * (default) print stat of only the main DB
         */
@@ -84,6 +85,9 @@ int main(int argc, char *argv[])
                case 'n':
                        envflags |= MDB_NOSUBDIR;
                        break;
+               case 'v':
+                       envflags |= MDB_PREVMETA;
+                       break;
                case 'r':
                        rdrinfo++;
                        break;