mirror of
https://github.com/isar/libmdbx.git
synced 2025-01-06 18:34:13 +08:00
mdbx: drops old/obsolete API (mdbx_env_copy and mdbx_env_copydf).
This commit is contained in:
parent
0eee938c5f
commit
398b839b98
39
mdbx.h
39
mdbx.h
@ -563,37 +563,6 @@ LIBMDBX_API int mdbx_env_open(MDB_env *env, const char *path, unsigned flags,
|
|||||||
LIBMDBX_API int mdbx_env_open_ex(MDB_env *env, const char *path, unsigned flags,
|
LIBMDBX_API int mdbx_env_open_ex(MDB_env *env, const char *path, unsigned flags,
|
||||||
mode_t mode, int *exclusive);
|
mode_t mode, int *exclusive);
|
||||||
|
|
||||||
/* Copy an LMDB environment to the specified path.
|
|
||||||
*
|
|
||||||
* This function may be used to make a backup of an existing environment.
|
|
||||||
* No lockfile is created, since it gets recreated at need.
|
|
||||||
* Note: This call can trigger significant file size growth if run in
|
|
||||||
* parallel with write transactions, because it employs a read-only
|
|
||||||
* transaction. See long-lived transactions under caveats_sec.
|
|
||||||
* [in] env An environment handle returned by mdbx_env_create(). It
|
|
||||||
* must have already been opened successfully.
|
|
||||||
* [in] path The directory in which the copy will reside. This
|
|
||||||
* directory must already exist and be writable but must otherwise be
|
|
||||||
* empty.
|
|
||||||
*
|
|
||||||
* Returns A non-zero error value on failure and 0 on success. */
|
|
||||||
LIBMDBX_API int mdbx_env_copy(MDB_env *env, const char *path);
|
|
||||||
|
|
||||||
/* Copy an LMDB environment to the specified file descriptor.
|
|
||||||
*
|
|
||||||
* This function may be used to make a backup of an existing environment.
|
|
||||||
* No lockfile is created, since it gets recreated at need.
|
|
||||||
* Note: This call can trigger significant file size growth if run in
|
|
||||||
* parallel with write transactions, because it employs a read-only
|
|
||||||
* transaction. See long-lived transactions under caveats_sec.
|
|
||||||
* [in] env An environment handle returned by mdbx_env_create(). It
|
|
||||||
* must have already been opened successfully.
|
|
||||||
* [in] fd The filedescriptor to write the copy to. It must
|
|
||||||
* have already been opened for Write access.
|
|
||||||
*
|
|
||||||
* Returns A non-zero error value on failure and 0 on success. */
|
|
||||||
LIBMDBX_API int mdbx_env_copyfd(MDB_env *env, mdbx_filehandle_t fd);
|
|
||||||
|
|
||||||
/* Copy an LMDB environment to the specified path, with options.
|
/* Copy an LMDB environment to the specified path, with options.
|
||||||
*
|
*
|
||||||
* This function may be used to make a backup of an existing environment.
|
* This function may be used to make a backup of an existing environment.
|
||||||
@ -617,14 +586,14 @@ LIBMDBX_API int mdbx_env_copyfd(MDB_env *env, mdbx_filehandle_t fd);
|
|||||||
*leak.
|
*leak.
|
||||||
*
|
*
|
||||||
* Returns A non-zero error value on failure and 0 on success. */
|
* Returns A non-zero error value on failure and 0 on success. */
|
||||||
LIBMDBX_API int mdbx_env_copy2(MDB_env *env, const char *path, unsigned flags);
|
LIBMDBX_API int mdbx_env_copy(MDB_env *env, const char *path, unsigned flags);
|
||||||
|
|
||||||
/* Copy an LMDB environment to the specified file descriptor,
|
/* Copy an LMDB environment to the specified file descriptor,
|
||||||
* with options.
|
* with options.
|
||||||
*
|
*
|
||||||
* This function may be used to make a backup of an existing environment.
|
* This function may be used to make a backup of an existing environment.
|
||||||
* No lockfile is created, since it gets recreated at need. See
|
* No lockfile is created, since it gets recreated at need. See
|
||||||
* mdbx_env_copy2() for further details.
|
* mdbx_env_copy() for further details.
|
||||||
* Note: This call can trigger significant file size growth if run in
|
* Note: This call can trigger significant file size growth if run in
|
||||||
* parallel with write transactions, because it employs a read-only
|
* parallel with write transactions, because it employs a read-only
|
||||||
* transaction. See long-lived transactions under caveats_sec.
|
* transaction. See long-lived transactions under caveats_sec.
|
||||||
@ -633,10 +602,10 @@ LIBMDBX_API int mdbx_env_copy2(MDB_env *env, const char *path, unsigned flags);
|
|||||||
* [in] fd The filedescriptor to write the copy to. It must
|
* [in] fd The filedescriptor to write the copy to. It must
|
||||||
* have already been opened for Write access.
|
* have already been opened for Write access.
|
||||||
* [in] flags Special options for this operation.
|
* [in] flags Special options for this operation.
|
||||||
* See mdbx_env_copy2() for options.
|
* See mdbx_env_copy() for options.
|
||||||
*
|
*
|
||||||
* Returns A non-zero error value on failure and 0 on success. */
|
* Returns A non-zero error value on failure and 0 on success. */
|
||||||
LIBMDBX_API int mdbx_env_copyfd2(MDB_env *env, mdbx_filehandle_t fd,
|
LIBMDBX_API int mdbx_env_copy2fd(MDB_env *env, mdbx_filehandle_t fd,
|
||||||
unsigned flags);
|
unsigned flags);
|
||||||
|
|
||||||
/* Return statistics about the LMDB environment.
|
/* Return statistics about the LMDB environment.
|
||||||
|
22
src/mdbx.c
22
src/mdbx.c
@ -8448,7 +8448,7 @@ done:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Copy environment with compaction. */
|
/** Copy environment with compaction. */
|
||||||
static int __cold mdbx_env_copyfd1(MDB_env *env, mdbx_filehandle_t fd) {
|
static int __cold mdbx_env_compact(MDB_env *env, mdbx_filehandle_t fd) {
|
||||||
MDB_meta *mm;
|
MDB_meta *mm;
|
||||||
MDB_page *mp;
|
MDB_page *mp;
|
||||||
mdbx_copy my;
|
mdbx_copy my;
|
||||||
@ -8548,7 +8548,7 @@ done2:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Copy environment as-is. */
|
/** Copy environment as-is. */
|
||||||
static int __cold mdbx_env_copyfd0(MDB_env *env, mdbx_filehandle_t fd) {
|
static int __cold mdbx_env_copy_asis(MDB_env *env, mdbx_filehandle_t fd) {
|
||||||
MDB_txn *txn = NULL;
|
MDB_txn *txn = NULL;
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
@ -8585,19 +8585,15 @@ bailout:
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
int __cold mdbx_env_copyfd2(MDB_env *env, mdbx_filehandle_t fd,
|
int __cold mdbx_env_copy2fd(MDB_env *env, mdbx_filehandle_t fd,
|
||||||
unsigned flags) {
|
unsigned flags) {
|
||||||
if (flags & MDB_CP_COMPACT)
|
if (flags & MDB_CP_COMPACT)
|
||||||
return mdbx_env_copyfd1(env, fd);
|
return mdbx_env_compact(env, fd);
|
||||||
else
|
else
|
||||||
return mdbx_env_copyfd0(env, fd);
|
return mdbx_env_copy_asis(env, fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
int __cold mdbx_env_copyfd(MDB_env *env, mdbx_filehandle_t fd) {
|
int __cold mdbx_env_copy(MDB_env *env, const char *path, unsigned flags) {
|
||||||
return mdbx_env_copyfd2(env, fd, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
int __cold mdbx_env_copy2(MDB_env *env, const char *path, unsigned flags) {
|
|
||||||
int rc, len;
|
int rc, len;
|
||||||
char *lck_pathname;
|
char *lck_pathname;
|
||||||
mdbx_filehandle_t newfd = INVALID_HANDLE_VALUE;
|
mdbx_filehandle_t newfd = INVALID_HANDLE_VALUE;
|
||||||
@ -8627,7 +8623,7 @@ int __cold mdbx_env_copy2(MDB_env *env, const char *path, unsigned flags) {
|
|||||||
(void)fcntl(newfd, F_SETFL, rc | O_DIRECT);
|
(void)fcntl(newfd, F_SETFL, rc | O_DIRECT);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
rc = mdbx_env_copyfd2(env, newfd, flags);
|
rc = mdbx_env_copy2fd(env, newfd, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(env->me_flags & MDB_NOSUBDIR))
|
if (!(env->me_flags & MDB_NOSUBDIR))
|
||||||
@ -8642,10 +8638,6 @@ int __cold mdbx_env_copy2(MDB_env *env, const char *path, unsigned flags) {
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
int __cold mdbx_env_copy(MDB_env *env, const char *path) {
|
|
||||||
return mdbx_env_copy2(env, path, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
int __cold mdbx_env_set_flags(MDB_env *env, unsigned flags, int onoff) {
|
int __cold mdbx_env_set_flags(MDB_env *env, unsigned flags, int onoff) {
|
||||||
if (unlikely(flags & ~CHANGEABLE))
|
if (unlikely(flags & ~CHANGEABLE))
|
||||||
return MDBX_EINVAL;
|
return MDBX_EINVAL;
|
||||||
|
@ -63,9 +63,9 @@ int main(int argc, char *argv[]) {
|
|||||||
if (rc == MDB_SUCCESS) {
|
if (rc == MDB_SUCCESS) {
|
||||||
act = "copying";
|
act = "copying";
|
||||||
if (argc == 2)
|
if (argc == 2)
|
||||||
rc = mdbx_env_copyfd2(env, STDOUT_FILENO, cpflags);
|
rc = mdbx_env_copy2fd(env, STDOUT_FILENO, cpflags);
|
||||||
else
|
else
|
||||||
rc = mdbx_env_copy2(env, argv[2], cpflags);
|
rc = mdbx_env_copy(env, argv[2], cpflags);
|
||||||
}
|
}
|
||||||
if (rc)
|
if (rc)
|
||||||
fprintf(stderr, "%s: %s failed, error %d (%s)\n", progname, act, rc,
|
fprintf(stderr, "%s: %s failed, error %d (%s)\n", progname, act, rc,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user