mdbx: backport - fix MDBX_EKEYMISMATCH while update multi-value with MDBX_CURRENT.

Change-Id: I3095620a94f694fb2c29b9c4faab9ea02b9bd7b7
This commit is contained in:
Leonid Yuriev 2018-08-10 18:39:19 +03:00
parent 3979ba4784
commit bff6aa460a

View File

@ -7460,7 +7460,7 @@ int mdbx_cursor_put(MDBX_cursor *mc, MDBX_val *key, MDBX_val *data,
DVAL((flags & MDBX_RESERVE) ? nullptr : data), data->iov_len); DVAL((flags & MDBX_RESERVE) ? nullptr : data), data->iov_len);
int dupdata_flag = 0; int dupdata_flag = 0;
if (flags & MDBX_CURRENT) { if ((flags & MDBX_CURRENT) != 0 && (mc->mc_flags & C_SUB) == 0) {
/* Опция MDBX_CURRENT означает, что запрошено обновление текущей записи, /* Опция MDBX_CURRENT означает, что запрошено обновление текущей записи,
* на которой сейчас стоит курсор. Проверяем что переданный ключ совпадает * на которой сейчас стоит курсор. Проверяем что переданный ключ совпадает
* со значением в текущей позиции курсора. * со значением в текущей позиции курсора.