mirror of
https://github.com/isar/libmdbx.git
synced 2024-10-29 23:19:20 +08:00
mdbx: корректировка mdbx_enumerate_subdb()
.
This commit is contained in:
parent
bdfec14992
commit
8e8ac09e14
13
mdbx.h
13
mdbx.h
@ -4583,17 +4583,24 @@ typedef int(MDBX_subdb_enum_func)(void *ctx, const MDBX_txn *txn,
|
||||
const struct MDBX_stat *stat,
|
||||
MDBX_dbi dbi) MDBX_CXX17_NOEXCEPT;
|
||||
|
||||
/** \brief Enumerate the entries in the reader lock table.
|
||||
/** \brief Перечисляет пользовательские именнованные таблицы.
|
||||
*
|
||||
* Производит перечисление пользовательских именнованных таблиц, вызывая
|
||||
* специфицируемую пользователем функцию-визитер для каждой именованной таблицы.
|
||||
* Перечисление продолжается до исчерпания именованных таблиц, либо до возврата
|
||||
* отличного от нуля результата из заданной пользователем функции, которое будет
|
||||
* сразу возвращено в качестве результата.
|
||||
*
|
||||
* \ingroup c_statinfo
|
||||
* \see MDBX_subdb_enum_func
|
||||
*
|
||||
* \param [in] txn Транзакция запущенная посредством
|
||||
* \ref mdbx_txn_begin().
|
||||
* \param [in] func Указатель на пользовательскую функцию-перечислитель
|
||||
* \param [in] func Указатель на пользовательскую функцию
|
||||
* с сигнатурой \ref MDBX_subdb_enum_func,
|
||||
* которая будет вызвана для каждой таблицы.
|
||||
* \param [in] ctx Указатель на некоторый контект, который будет передан
|
||||
* в функцию-перечислитель как есть.
|
||||
* в функцию `func()` как есть.
|
||||
*
|
||||
* \returns Ненулевое значение кода ошибки, либо 0 при успешном выполнении. */
|
||||
LIBMDBX_API int mdbx_enumerate_subdb(const MDBX_txn *txn,
|
||||
|
@ -1026,9 +1026,11 @@ __cold int mdbx_enumerate_subdb(const MDBX_txn *txn, MDBX_subdb_enum_func *func,
|
||||
stat_get(tree, &stat, sizeof(stat));
|
||||
rc = func(ctx, txn, &name, tree->flags, &stat, dbi);
|
||||
if (rc != MDBX_SUCCESS)
|
||||
break;
|
||||
goto bailout;
|
||||
}
|
||||
txn->cursors[MAIN_DBI] = cx.outer.next;
|
||||
rc = (rc == MDBX_NOTFOUND) ? MDBX_SUCCESS : rc;
|
||||
|
||||
return (rc == MDBX_NOTFOUND) ? MDBX_SUCCESS : rc;
|
||||
bailout:
|
||||
txn->cursors[MAIN_DBI] = cx.outer.next;
|
||||
return rc;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user