summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLuke Chen <luke.chen@mongodb.com>2021-10-18 14:00:17 +1100
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-10-18 03:23:58 +0000
commitfbc4eac4b2ce2a672977ed07fbe20e146ee36148 (patch)
tree6f360f769035975e0de0942e11c5d95d4a2051b4 /src
parent32e3190562cb6c8d530eff765405fa269d5f1553 (diff)
downloadmongo-fbc4eac4b2ce2a672977ed07fbe20e146ee36148.tar.gz
Import wiredtiger: e271f9d668abe181367adcba829eace0c74d8b07 from branch mongodb-5.1
ref: 35f8c7123e..e271f9d668 for: 5.1.0-rc1 WT-5743 Rewrite cells when the transaction ids are cleared for VLCS
Diffstat (limited to 'src')
-rw-r--r--src/third_party/wiredtiger/import.data2
-rw-r--r--src/third_party/wiredtiger/src/reconcile/rec_col.c15
2 files changed, 11 insertions, 6 deletions
diff --git a/src/third_party/wiredtiger/import.data b/src/third_party/wiredtiger/import.data
index 963572d5060..6e23c5dfe7d 100644
--- a/src/third_party/wiredtiger/import.data
+++ b/src/third_party/wiredtiger/import.data
@@ -2,5 +2,5 @@
"vendor": "wiredtiger",
"github": "wiredtiger/wiredtiger.git",
"branch": "mongodb-5.1",
- "commit": "35f8c7123eb1e1c06360153eff955ec5aeaa9a16"
+ "commit": "e271f9d668abe181367adcba829eace0c74d8b07"
}
diff --git a/src/third_party/wiredtiger/src/reconcile/rec_col.c b/src/third_party/wiredtiger/src/reconcile/rec_col.c
index 10dd1d9daea..56390a6c50d 100644
--- a/src/third_party/wiredtiger/src/reconcile/rec_col.c
+++ b/src/third_party/wiredtiger/src/reconcile/rec_col.c
@@ -276,10 +276,15 @@ __wt_rec_col_int(WT_SESSION_IMPL *session, WT_RECONCILE *r, WT_REF *pageref)
addr = ref->addr;
if (addr == NULL) {
__wt_cell_unpack_addr(session, page->dsk, ref->addr, vpack);
- val->buf.data = ref->addr;
- val->buf.size = __wt_cell_total_len(vpack);
- val->cell_len = 0;
- val->len = val->buf.size;
+ if (F_ISSET(vpack, WT_CELL_UNPACK_TIME_WINDOW_CLEARED)) {
+ /* Need to rebuild the cell with the updated time info. */
+ __wt_rec_cell_build_addr(session, r, NULL, vpack, false, ref->ref_recno);
+ } else {
+ val->buf.data = ref->addr;
+ val->buf.size = __wt_cell_total_len(vpack);
+ val->cell_len = 0;
+ val->len = val->buf.size;
+ }
WT_TIME_AGGREGATE_COPY(&ta, &vpack->ta);
} else {
__wt_rec_cell_build_addr(session, r, addr, NULL, false, ref->ref_recno);
@@ -291,7 +296,7 @@ __wt_rec_col_int(WT_SESSION_IMPL *session, WT_RECONCILE *r, WT_REF *pageref)
if (__wt_rec_need_split(r, val->len))
WT_ERR(__wt_rec_split_crossing_bnd(session, r, val->len, false));
- /* Copy the value onto the page. */
+ /* Copy the value (which is in val, val == r->v) onto the page. */
__wt_rec_image_copy(session, r, val);
WT_TIME_AGGREGATE_MERGE(session, &r->cur_ptr->ta, &ta);
}