ITS#7121 fix page splits when newindx == 0

vmware
Howard Chu 13 years ago
parent b9cbcb0588
commit 1c8de1883c
  1. 4
      libraries/libmdb/mdb.c

@ -5585,6 +5585,8 @@ newsep:
ins_new = 1; ins_new = 1;
/* Update page and index for the new key. */ /* Update page and index for the new key. */
if (!newindx)
mc->mc_pg[mc->mc_top] = copy;
mc->mc_ki[mc->mc_top] = j; mc->mc_ki[mc->mc_top] = j;
} else if (i == nkeys) { } else if (i == nkeys) {
break; break;
@ -5620,7 +5622,7 @@ newsep:
mc->mc_txn->mt_env->me_psize - copy->mp_upper); mc->mc_txn->mt_env->me_psize - copy->mp_upper);
/* reset back to original page */ /* reset back to original page */
if (newindx < split_indx) { if (!newindx || (newindx < split_indx)) {
mc->mc_pg[mc->mc_top] = mp; mc->mc_pg[mc->mc_top] = mp;
if (nflags & MDB_RESERVE) { if (nflags & MDB_RESERVE) {
node = NODEPTR(mp, mc->mc_ki[mc->mc_top]); node = NODEPTR(mp, mc->mc_ki[mc->mc_top]);

Loading…
Cancel
Save