Full_Name: Howard Chu Version: RE24/master OS: URL: ftp://ftp.openldap.org/incoming/ Submission from: (NULL) (78.155.233.73) Submitted by: hyc
This is the last remaining FIXME in liblmdb/mdb.c...
mdb_rebalance() is always called after a delete operation. If the tree needs balancing and it needs to move a node from one page to its sibling, the parent page's separator keys will need updating. If the new separator key is larger than the old one, it may not fit into the parent page, and mdb_update_key() will return MDB_PAGE_FULL.
Instead of giving up, mdb_update_key() should invoke mdb_page_split() to make room for the new key.