Set/clear mp_pad, md_pad (MDB_DUPFIXED data size).

mdb_xcursor_init1(): md_pad is only used when MDB_DUPFIXED.
mdb_page_split():    Copy mp_pad too. Used by mdb_page_list().
mdb.RE/0.9
Hallvard Furuseth 10 years ago
parent c616689d9a
commit 3f6fa7aece
  1. 3
      libraries/liblmdb/mdb.c

@ -7157,7 +7157,7 @@ mdb_xcursor_init1(MDB_cursor *mc, MDB_node *node)
mx->mx_cursor.mc_flags = C_SUB; mx->mx_cursor.mc_flags = C_SUB;
} else { } else {
MDB_page *fp = NODEDATA(node); MDB_page *fp = NODEDATA(node);
mx->mx_db.md_pad = mc->mc_pg[mc->mc_top]->mp_pad; mx->mx_db.md_pad = 0;
mx->mx_db.md_flags = 0; mx->mx_db.md_flags = 0;
mx->mx_db.md_depth = 1; mx->mx_db.md_depth = 1;
mx->mx_db.md_branch_pages = 0; mx->mx_db.md_branch_pages = 0;
@ -8152,6 +8152,7 @@ mdb_page_split(MDB_cursor *mc, MDB_val *newkey, MDB_val *newdata, pgno_t newpgno
/* Create a right sibling. */ /* Create a right sibling. */
if ((rc = mdb_page_new(mc, mp->mp_flags, 1, &rp))) if ((rc = mdb_page_new(mc, mp->mp_flags, 1, &rp)))
return rc; return rc;
rp->mp_pad = mp->mp_pad;
DPRINTF(("new right sibling: page %"Z"u", rp->mp_pgno)); DPRINTF(("new right sibling: page %"Z"u", rp->mp_pgno));
if (mc->mc_snum < 2) { if (mc->mc_snum < 2) {

Loading…
Cancel
Save