Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Joe Martin
OpenLDAP
Commits
503561bd
Commit
503561bd
authored
Jan 07, 2014
by
Quanah Gibson-Mount
Browse files
Merge remote-tracking branch 'origin/mdb.master' into OPENLDAP_REL_ENG_2_4
parents
28e182d7
5bda3565
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
libraries/liblmdb/CHANGES
View file @
503561bd
...
...
@@ -16,7 +16,7 @@ LMDB 0.9.9 Release (2013/10/24)
Fix mdb_page_merge() cursor fixup (ITS#7722)
Fix mdb_cursor_del() on last delete (ITS#7718)
Fix adding WRITEMAP on existing env (ITS#7715)
Fix
es for
nested txns (ITS#7515)
Fix nested txns (ITS#7515)
Fix mdb_env_copy() O_DIRECT bug (ITS#7682)
Fix mdb_cursor_set(SET_RANGE) return code (ITS#7681)
Fix mdb_rebalance() cursor fixup (ITS#7701)
...
...
libraries/liblmdb/lmdb.h
View file @
503561bd
...
...
@@ -263,8 +263,6 @@ typedef int (MDB_cmp_func)(const MDB_val *a, const MDB_val *b);
typedef
void
(
MDB_rel_func
)(
MDB_val
*
item
,
void
*
oldptr
,
void
*
newptr
,
void
*
relctx
);
/** @defgroup mdb_env Environment Flags
*
* Values do not overlap Database Flags.
* @{
*/
/** mmap at a fixed address (experimental) */
...
...
@@ -292,8 +290,6 @@ typedef void (MDB_rel_func)(MDB_val *item, void *oldptr, void *newptr, void *rel
/** @} */
/** @defgroup mdb_dbi_open Database Flags
*
* Values do not overlap Environment Flags.
* @{
*/
/** use reverse string keys */
...
...
@@ -797,15 +793,47 @@ int mdb_env_get_maxreaders(MDB_env *env, unsigned int *readers);
*/
int
mdb_env_set_maxdbs
(
MDB_env
*
env
,
MDB_dbi
dbs
);
/** @brief Get the maximum size of
a
key
for the environment
.
/** @brief Get the maximum size of key
s and #MDB_DUPSORT data we can write
.
*
*
This is
the compile-time constant #MDB_MAXKEYSIZE
, d
efault 511.
*
Depends on
the compile-time constant #MDB_MAXKEYSIZE
. D
efault 511.
* See @ref MDB_val.
* @param[in] env An environment handle returned by #mdb_env_create()
* @return The maximum size of a key
* @return The maximum size of a key
we can write
*/
int
mdb_env_get_maxkeysize
(
MDB_env
*
env
);
/** @brief Set application information associated with the #MDB_env.
*
* @param[in] env An environment handle returned by #mdb_env_create()
* @param[in] ctx An arbitrary pointer for whatever the application needs.
* @return A non-zero error value on failure and 0 on success.
*/
int
mdb_env_set_userctx
(
MDB_env
*
env
,
void
*
ctx
);
/** @brief Get the application information associated with the #MDB_env.
*
* @param[in] env An environment handle returned by #mdb_env_create()
* @return The pointer set by #mdb_env_set_userctx().
*/
void
*
mdb_env_get_userctx
(
MDB_env
*
env
);
/** @brief A callback function for most MDB assert() failures,
* called before printing the message and aborting.
*
* @param[in] env An environment handle returned by #mdb_env_create().
* @param[in] msg The assertion message, not including newline.
*/
typedef
void
MDB_assert_func
(
MDB_env
*
env
,
const
char
*
msg
);
/** Set or reset the assert() callback of the environment.
* Disabled if liblmdb is buillt with NDEBUG.
* @note This hack should become obsolete as lmdb's error handling matures.
* @param[in] env An environment handle returned by #mdb_env_create().
* @parem[in] func An #MDB_assert_func function, or 0.
* @return A non-zero error value on failure and 0 on success.
*/
int
mdb_env_set_assert
(
MDB_env
*
env
,
MDB_assert_func
*
func
);
/** @brief Create a transaction for use with the environment.
*
* The transaction handle may be discarded using #mdb_txn_abort() or #mdb_txn_commit().
...
...
@@ -1409,7 +1437,7 @@ int mdb_dcmp(MDB_txn *txn, MDB_dbi dbi, const MDB_val *a, const MDB_val *b);
*
* @param[in] msg The string to be printed.
* @param[in] ctx An arbitrary context pointer for the callback.
* @return < 0 on failure, 0 on success.
* @return < 0 on failure,
>=
0 on success.
*/
typedef
int
(
MDB_msg_func
)(
const
char
*
msg
,
void
*
ctx
);
...
...
@@ -1418,7 +1446,7 @@ typedef int (MDB_msg_func)(const char *msg, void *ctx);
* @param[in] env An environment handle returned by #mdb_env_create()
* @param[in] func A #MDB_msg_func function
* @param[in] ctx Anything the message function needs
* @return < 0 on failure, 0 on success.
* @return < 0 on failure,
>=
0 on success.
*/
int
mdb_reader_list
(
MDB_env
*
env
,
MDB_msg_func
*
func
,
void
*
ctx
);
...
...
libraries/liblmdb/mdb.c
View file @
503561bd
This diff is collapsed.
Click to expand it.
libraries/liblmdb/mdb_copy.1
View file @
503561bd
...
...
@@ -5,7 +5,11 @@
mdb_copy \- LMDB environment copy tool
.SH SYNOPSIS
.B mdb_copy
.I srcpath\ [dstpath]
[\c
.BR \-n ]
.B srcpath
[\c
.BR dstpath ]
.SH DESCRIPTION
The
.B mdb_copy
...
...
@@ -19,6 +23,10 @@ is specified it must be the path of an empty directory
for storing the backup. Otherwise, the backup will be
written to stdout.
.SH OPTIONS
.BR \-n
Open LDMB environment(s) which do not use subdirectories.
.SH DIAGNOSTICS
Exit status is zero if no errors occur.
Errors result in a non-zero exit status and
...
...
libraries/liblmdb/mdb_copy.c
View file @
503561bd
...
...
@@ -31,10 +31,18 @@ int main(int argc,char * argv[])
{
int
rc
;
MDB_env
*
env
;
char
*
envname
=
argv
[
1
];
const
char
*
progname
=
argv
[
0
],
*
act
;
unsigned
flags
=
MDB_RDONLY
;
for
(;
argc
>
1
&&
argv
[
1
][
0
]
==
'-'
;
argc
--
,
argv
++
)
{
if
(
argv
[
1
][
1
]
==
'n'
&&
argv
[
1
][
2
]
==
'\0'
)
flags
|=
MDB_NOSUBDIR
;
else
argc
=
0
;
}
if
(
argc
<
2
||
argc
>
3
)
{
fprintf
(
stderr
,
"usage: %s srcpath [dstpath]
\n
"
,
argv
[
0
]
);
fprintf
(
stderr
,
"usage: %s
[-n]
srcpath [dstpath]
\n
"
,
progname
);
exit
(
EXIT_FAILURE
);
}
...
...
@@ -47,19 +55,21 @@ int main(int argc,char * argv[])
signal
(
SIGINT
,
sighandle
);
signal
(
SIGTERM
,
sighandle
);
act
=
"opening environment"
;
rc
=
mdb_env_create
(
&
env
);
rc
=
mdb_env_open
(
env
,
envname
,
MDB_RDONLY
,
0
);
if
(
rc
)
{
printf
(
"mdb_env_open failed, error %d %s
\n
"
,
rc
,
mdb_strerror
(
rc
));
}
else
{
if
(
rc
==
MDB_SUCCESS
)
{
rc
=
mdb_env_open
(
env
,
argv
[
1
],
flags
,
0
);
}
if
(
rc
==
MDB_SUCCESS
)
{
act
=
"copying"
;
if
(
argc
==
2
)
rc
=
mdb_env_copyfd
(
env
,
MDB_STDOUT
);
else
rc
=
mdb_env_copy
(
env
,
argv
[
2
]);
if
(
rc
)
printf
(
"mdb_env_copy failed, error %d %s
\n
"
,
rc
,
mdb_strerror
(
rc
));
}
if
(
rc
)
fprintf
(
stderr
,
"%s: %s failed, error %d (%s)
\n
"
,
progname
,
act
,
rc
,
mdb_strerror
(
rc
));
mdb_env_close
(
env
);
return
rc
?
EXIT_FAILURE
:
EXIT_SUCCESS
;
...
...
libraries/liblmdb/midl.c
View file @
503561bd
...
...
@@ -20,7 +20,6 @@
#include
<stdlib.h>
#include
<errno.h>
#include
<sys/types.h>
#include
<assert.h>
#include
"midl.h"
/** @defgroup internal MDB Internals
...
...
@@ -150,7 +149,7 @@ int mdb_midl_need( MDB_IDL *idp, unsigned num )
num
=
(
num
+
num
/
4
+
(
256
+
2
))
&
-
256
;
if
(
!
(
ids
=
realloc
(
ids
-
1
,
num
*
sizeof
(
MDB_ID
))))
return
ENOMEM
;
*
ids
++
=
num
-
=
2
;
*
ids
++
=
num
-
2
;
*
idp
=
ids
;
}
return
0
;
...
...
@@ -306,7 +305,6 @@ int mdb_mid2l_insert( MDB_ID2L ids, MDB_ID2 *id )
unsigned
x
,
i
;
x
=
mdb_mid2l_search
(
ids
,
id
->
mid
);
assert
(
x
>
0
);
if
(
x
<
1
)
{
/* internal error */
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment