diff options
author | Keith Bostic <keith@wiredtiger.com> | 2013-12-10 14:53:20 -0800 |
---|---|---|
committer | Keith Bostic <keith@wiredtiger.com> | 2013-12-10 14:53:20 -0800 |
commit | eb65b8638c01f304cd506eb35b7f20260eeaea59 (patch) | |
tree | b577c65e7e973ffffd6c9a7824fc5d2ca3238d7f | |
parent | 1d9f9b163fc74e0cda5621540f7498829f0c047a (diff) | |
parent | 316982d8c60fc491d4863d75cbb02c8b858568b9 (diff) | |
download | mongo-eb65b8638c01f304cd506eb35b7f20260eeaea59.tar.gz |
Merge pull request #799 from wiredtiger/overflow-instantiate
Remove call to instantiate a deleted overflow key during reconciliation.
-rw-r--r-- | src/btree/rec_write.c | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/src/btree/rec_write.c b/src/btree/rec_write.c index 6fd89ca9429..93f50ced337 100644 --- a/src/btree/rec_write.c +++ b/src/btree/rec_write.c @@ -3454,18 +3454,21 @@ __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. - * - * 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. + * 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. */ __wt_cell_unpack(cell, unpack); if (unpack->ovfl) { + /* + * Keys are part of the name-space, we + * can't remove them from the in-memory + * tree; if an overflow key was deleted + * without being instantiated (for + * example, cursor-based trunction, do + * it now. + */ if (ikey == NULL) WT_ERR(__wt_row_leaf_key_work( session, |