|
|
@ -8658,7 +8658,7 @@ mdb_page_split(MDB_cursor *mc, MDB_val *newkey, MDB_val *newdata, pgno_t newpgno |
|
|
|
m3->mc_ki[k+1] = m3->mc_ki[k]; |
|
|
|
m3->mc_ki[k+1] = m3->mc_ki[k]; |
|
|
|
m3->mc_pg[k+1] = m3->mc_pg[k]; |
|
|
|
m3->mc_pg[k+1] = m3->mc_pg[k]; |
|
|
|
} |
|
|
|
} |
|
|
|
if (m3->mc_ki[0] > nkeys) { |
|
|
|
if (m3->mc_ki[0] >= nkeys) { |
|
|
|
m3->mc_ki[0] = 1; |
|
|
|
m3->mc_ki[0] = 1; |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
m3->mc_ki[0] = 0; |
|
|
|
m3->mc_ki[0] = 0; |
|
|
@ -8700,6 +8700,7 @@ mdb_put(MDB_txn *txn, MDB_dbi dbi, |
|
|
|
{ |
|
|
|
{ |
|
|
|
MDB_cursor mc; |
|
|
|
MDB_cursor mc; |
|
|
|
MDB_xcursor mx; |
|
|
|
MDB_xcursor mx; |
|
|
|
|
|
|
|
int rc; |
|
|
|
|
|
|
|
|
|
|
|
if (!key || !data || !TXN_DBI_EXIST(txn, dbi, DB_USRVALID)) |
|
|
|
if (!key || !data || !TXN_DBI_EXIST(txn, dbi, DB_USRVALID)) |
|
|
|
return EINVAL; |
|
|
|
return EINVAL; |
|
|
@ -8711,7 +8712,11 @@ mdb_put(MDB_txn *txn, MDB_dbi dbi, |
|
|
|
return (txn->mt_flags & MDB_TXN_RDONLY) ? EACCES : MDB_BAD_TXN; |
|
|
|
return (txn->mt_flags & MDB_TXN_RDONLY) ? EACCES : MDB_BAD_TXN; |
|
|
|
|
|
|
|
|
|
|
|
mdb_cursor_init(&mc, txn, dbi, &mx); |
|
|
|
mdb_cursor_init(&mc, txn, dbi, &mx); |
|
|
|
return mdb_cursor_put(&mc, key, data, flags); |
|
|
|
mc.mc_next = txn->mt_cursors[dbi]; |
|
|
|
|
|
|
|
txn->mt_cursors[dbi] = &mc; |
|
|
|
|
|
|
|
rc = mdb_cursor_put(&mc, key, data, flags); |
|
|
|
|
|
|
|
txn->mt_cursors[dbi] = mc.mc_next; |
|
|
|
|
|
|
|
return rc; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#ifndef MDB_WBUF |
|
|
|
#ifndef MDB_WBUF |
|
|
|