mirror of
https://github.com/isar/libmdbx.git
synced 2025-01-30 22:47:16 +08:00
mdbx-doc: документирование mdbx_cursor_compare()
.
This commit is contained in:
parent
183d1e1a44
commit
f8836aefa0
24
mdbx.h
24
mdbx.h
@ -5024,10 +5024,30 @@ LIBMDBX_API MDBX_dbi mdbx_cursor_dbi(const MDBX_cursor *cursor);
|
|||||||
* \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_cursor_copy(const MDBX_cursor *src, MDBX_cursor *dest);
|
LIBMDBX_API int mdbx_cursor_copy(const MDBX_cursor *src, MDBX_cursor *dest);
|
||||||
|
|
||||||
/** FIXME */
|
/** \brief Сравнивает позицию курсоров.
|
||||||
|
* \ingroup c_cursors
|
||||||
|
*
|
||||||
|
* Функция предназначена для сравнения позиций двух
|
||||||
|
* инициализированных/установленных курсоров, связанных с одной транзакцией и
|
||||||
|
* одной таблицей (DBI-дескриптором).
|
||||||
|
* Если же курсоры связаны с разными транзакциями, либо с разными таблицами,
|
||||||
|
* либо один из них не инициализирован, то результат сравнения не определен
|
||||||
|
* (поведением может быть изменено в последующих версиях).
|
||||||
|
*
|
||||||
|
* \param [in] left Левый курсор для сравнения позиций.
|
||||||
|
* \param [in] right Правый курсор для сравнения позиций.
|
||||||
|
* \param [in] ignore_multival Булевой флаг, влияющий на результат только при
|
||||||
|
* сравнении курсоров для таблиц с мульти-значениями, т.е. с флагом
|
||||||
|
* \ref MDBX_DUPSORT. В случае `true`, позиции курсоров сравниваются
|
||||||
|
* только по ключам, без учета позиционирования среди мульти-значений.
|
||||||
|
* Иначе, в случае `false`, при совпадении позиций по ключам,
|
||||||
|
* сравниваются также позиции по мульти-значениям.
|
||||||
|
*
|
||||||
|
* \retval Значение со знаком в семантике оператора `<=>` (меньше нуля, ноль,
|
||||||
|
* либо больше нуля) как результат сравнения позиций курсоров. */
|
||||||
LIBMDBX_API int mdbx_cursor_compare(const MDBX_cursor *left,
|
LIBMDBX_API int mdbx_cursor_compare(const MDBX_cursor *left,
|
||||||
const MDBX_cursor *right,
|
const MDBX_cursor *right,
|
||||||
bool ignore_nested);
|
bool ignore_multival);
|
||||||
|
|
||||||
/** \brief Retrieve by cursor.
|
/** \brief Retrieve by cursor.
|
||||||
* \ingroup c_crud
|
* \ingroup c_crud
|
||||||
|
@ -19806,7 +19806,7 @@ int mdbx_cursor_renew(const MDBX_txn *txn, MDBX_cursor *mc) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int mdbx_cursor_compare(const MDBX_cursor *l, const MDBX_cursor *r,
|
int mdbx_cursor_compare(const MDBX_cursor *l, const MDBX_cursor *r,
|
||||||
bool ignore_nested) {
|
bool ignore_multival) {
|
||||||
const int incomparable = INT16_MAX + 1;
|
const int incomparable = INT16_MAX + 1;
|
||||||
if (unlikely(!l))
|
if (unlikely(!l))
|
||||||
return r ? -incomparable * 9 : 0;
|
return r ? -incomparable * 9 : 0;
|
||||||
@ -19847,7 +19847,7 @@ int mdbx_cursor_compare(const MDBX_cursor *l, const MDBX_cursor *r,
|
|||||||
assert((l->mc_xcursor != nullptr) == (r->mc_xcursor != nullptr));
|
assert((l->mc_xcursor != nullptr) == (r->mc_xcursor != nullptr));
|
||||||
if (unlikely((l->mc_xcursor != nullptr) != (r->mc_xcursor != nullptr)))
|
if (unlikely((l->mc_xcursor != nullptr) != (r->mc_xcursor != nullptr)))
|
||||||
return l->mc_xcursor ? incomparable * 2 : -incomparable * 2;
|
return l->mc_xcursor ? incomparable * 2 : -incomparable * 2;
|
||||||
if (ignore_nested || !l->mc_xcursor)
|
if (ignore_multival || !l->mc_xcursor)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
#if MDBX_DEBUG
|
#if MDBX_DEBUG
|
||||||
|
Loading…
x
Reference in New Issue
Block a user