summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Bostic <keith@wiredtiger.com>2013-12-10 15:25:16 -0500
committerKeith Bostic <keith@wiredtiger.com>2013-12-10 15:25:16 -0500
commitee6e36335686a9519878fd74ad2b869433b376e2 (patch)
tree095845696cb6ff5ad2be03fe7a0e77b90881f132
parent1d9f9b163fc74e0cda5621540f7498829f0c047a (diff)
downloadmongo-ee6e36335686a9519878fd74ad2b869433b376e2.tar.gz
I don't believe it's possible for a key/value pair to be deleted without
instantiating the key, which makes this call to __wt_row_leaf_key_work unnecessary; assert the fact.
-rw-r--r--src/btree/rec_write.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/src/btree/rec_write.c b/src/btree/rec_write.c
index 6fd89ca9429..4840e863eb0 100644
--- a/src/btree/rec_write.c
+++ b/src/btree/rec_write.c
@@ -3454,22 +3454,19 @@ __rec_row_leaf(WT_SESSION_IMPL *session,
if (WT_UPDATE_DELETED_ISSET(upd)) {
/*
* Overflow keys referencing discarded values
- * are no longer useful, schedule the discard
- * of the backing blocks. Don't worry about
- * reuse, reusing the key in this reconciliation
- * is unlikely.
+ * are no longer useful, discard the backing
+ * blocks. Don't worry about reuse, reusing
+ * keys from a row-store page reconciliation
+ * seems unlikely enough to ignore.
*
* Keys are part of the name-space though, we
* can't remove them from the in-memory tree;
- * if an overflow key was never instantiated,
- * do it now.
+ * assert the key was instantiated, otherwise
+ * we might try and look it up.
*/
__wt_cell_unpack(cell, unpack);
if (unpack->ovfl) {
- if (ikey == NULL)
- WT_ERR(__wt_row_leaf_key_work(
- session,
- page, rip, NULL, 1));
+ WT_ASSERT(session, ikey != NULL);
/*
* Acquire the overflow lock to avoid