libmdbx/src/man1/mdbx_load.1

106 lines
3.0 KiB
Groff
Raw Normal View History

.\" Copyright 2015-2022 Leonid Yuriev <leo@yuriev.ru>.
.\" Copyright 2014-2015 Howard Chu, Symas Corp. All Rights Reserved.
.\" Copyright 2015,2016 Peter-Service R&D LLC <http://billing.ru/>.
2015-01-07 16:49:50 +03:00
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
mdbx: release v0.11.8 The stable release with an important fixes and workaround for the critical macOS thread-local-storage issue. Acknowledgements: ----------------- - [Masatoshi Fukunaga](https://github.com/mah0x211) for [Lua bindings](https://github.com/mah0x211/lua-libmdbx). New: ---- - Added most of transactions flags to the public API. - Added `MDBX_NOSUCCESS_EMPTY_COMMIT` build option to return non-success result (`MDBX_RESULT_TRUE`) on empty commit. - Reworked validation and import of DBI-handles into a transaction. Assumes these changes will be invisible to most users, but will cause fewer surprises in complex DBI cases. - Added ability to open DB in without-LCK (exclusive read-only) mode in case no permissions to create/write LCK-file. Fixes: ------ - A series of fixes and improvements for automatically generated documentation (Doxygen). - Fixed copy&paste bug with could lead to `SIGSEGV` (nullptr dereference) in the exclusive/no-lck mode. - Fixed minor warnings from modern Apple's CLANG 13. - Fixed minor warnings from CLANG 14 and in-development CLANG 15. - Fixed `SIGSEGV` regression in without-LCK (exclusive read-only) mode. - Fixed `mdbx_check_fs_local()` for CDROM case on Windows. - Fixed nasty typo of typename which caused false `MDBX_CORRUPTED` error in a rare execution path, when the size of the thread-ID type not equal to 8. - Fixed write-after-free memory corruption on latest `macOS` during finalization/cleanup of thread(s) that executed read transaction(s). > The issue was suddenly discovered by a [CI](https://en.wikipedia.org/wiki/Continuous_integration) > after adding an iteration with macOS 11 "Big Sur", and then reproduced on recent release of macOS 12 "Monterey". > The issue was never noticed nor reported on macOS 10 "Catalina" nor others. > Analysis shown that the problem caused by a change in the behavior of the system library (internals of dyld and pthread) > during thread finalization/cleanup: now a memory allocated for a `__thread` variable(s) is released > before execution of the registered Thread-Local-Storage destructor(s), > thus a TLS-destructor will write-after-free just by legitime dereference any `__thread` variable. > This is unexpected crazy-like behavior since the order of resources releasing/destroying > is not the reverse of ones acquiring/construction order. Nonetheless such surprise > is now workarounded by using atomic compare-and-swap operations on a 64-bit signatures/cookies. - Fixed Elbrus/E2K LCC 1.26 compiler warnings (memory model for atomic operations, etc). Minors: ------- - Refined `release-assets` GNU Make target. - Added logging to `mdbx_fetch_sdb()` to help debugging complex DBI-handels use cases. - Added explicit error message from probe of no-support for `std::filesystem`. - Added contributors "score" table by `git fame` to generated docs. - Added `mdbx_assert_fail()` to public API (mostly for backtracing). - Now C++20 concepts used/enabled only when `__cpp_lib_concepts >= 202002`. - Don't provide nor report package information if used as a CMake subproject. Signed-off-by: Леонид Юрьев (Leonid Yuriev) <leo@yuriev.ru>
2022-06-12 23:47:18 +03:00
.TH MDBX_LOAD 1 "2022-04-22" "MDBX 0.11.8"
2015-01-07 16:49:50 +03:00
.SH NAME
2017-05-24 01:42:10 +03:00
mdbx_load \- MDBX environment import tool
2015-01-07 16:49:50 +03:00
.SH SYNOPSIS
.B mdbx_load
2015-01-07 16:49:50 +03:00
[\c
.BR \-V ]
[\c
2019-12-05 01:43:57 +03:00
.BR \-q ]
2015-01-07 16:49:50 +03:00
[\c
2019-12-05 01:43:57 +03:00
.BR \-a ]
[\c
.BI \-f \ file\fR]
2015-01-07 16:49:50 +03:00
[\c
.BI \-s \ subdb\fR]
[\c
.BR \-N ]
[\c
.BR \-T ]
2019-12-05 01:43:57 +03:00
[\c
.BR \-r ]
[\c
.BR \-n ]
.BR \ dbpath
2015-01-07 16:49:50 +03:00
.SH DESCRIPTION
The
.B mdbx_load
2015-01-07 16:49:50 +03:00
utility reads from the standard input and loads it into the
2017-05-24 01:42:10 +03:00
MDBX environment
2019-12-05 01:43:57 +03:00
.BR dbpath .
2015-01-07 16:49:50 +03:00
The input to
.B mdbx_load
2015-01-07 16:49:50 +03:00
must be in the output format specified by the
.BR mdbx_dump (1)
2015-01-07 16:49:50 +03:00
utility or as specified by the
.B -T
option below.
A simple escape mechanism, where newline and backslash (\\) characters are special, is
applied to the text input. Newline characters are interpreted as record separators.
Backslash characters in the text will be interpreted in one of two ways: If the backslash
character precedes another backslash character, the pair will be interpreted as a literal
backslash. If the backslash character precedes any other character, the two characters
following the backslash will be interpreted as a hexadecimal specification of a single
character; for example, \\0a is a newline character in the ASCII character set.
For this reason, any backslash or newline characters that naturally occur in the text
input must be escaped to avoid misinterpretation by
.BR mdbx_load .
2015-01-07 16:49:50 +03:00
.SH OPTIONS
.TP
.BR \-V
Write the library version number to the standard output, and exit.
.TP
2019-12-05 01:43:57 +03:00
.BR \-q
Be quiet.
.TP
.BR \-a
Append all records in the order they appear in the input. The input is assumed to already be
in correctly sorted order and no sorting or checking for redundant values will be performed.
This option must be used to reload data that was produced by running
.B mdbx_dump
on a database that uses custom compare functions.
.TP
2015-01-07 16:49:50 +03:00
.BR \-f \ file
Read from the specified file instead of from the standard input.
.TP
.BR \-s \ subdb
Load a specific subdatabase. If no database is specified, data is loaded into the main database.
.TP
.BR \-N
Don't overwrite existing records when loading into an already existing database; just skip them.
.TP
.BR \-T
Load data from simple text files. The input must be paired lines of text, where the first
line of the pair is the key item, and the second line of the pair is its corresponding
data item.
2019-12-05 01:43:57 +03:00
.TP
.BR \-r
Rescure mode. Ignore errors to load corrupted DB dump.
.TP
.BR \-n
Load an MDBX database which does not use subdirectories.
This is legacy option. For now MDBX handles this automatically.
2015-01-07 16:49:50 +03:00
.SH DIAGNOSTICS
Exit status is zero if no errors occur.
Errors result in a non-zero exit status and
a diagnostic message being written to standard error.
.SH "SEE ALSO"
.BR mdbx_dump (1),
.BR mdbx_chk (1),
.BR mdbx_stat (1),
.BR mdbx_copy (1)
.BR mdbx_drop (1)
2015-01-07 16:49:50 +03:00
.SH AUTHOR
2019-12-05 01:43:57 +03:00
Howard Chu of Symas Corporation <http://www.symas.com>,
Leonid Yuriev <https://gitflic.ru/user/erthink>