summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Bostic <keith.bostic@mongodb.com>2016-07-04 00:55:06 -0400
committerMichael Cahill <michael.cahill@mongodb.com>2016-07-29 16:13:30 +1000
commit24cd107c1d7a7402fc8397e4416323651279eaeb (patch)
tree32aed92bc2b53cc795e8ab5108d35799259697c5
parent3dc8860451a88f531c94cf18b38df5a7a6487380 (diff)
downloadmongo-24cd107c1d7a7402fc8397e4416323651279eaeb.tar.gz
WT-2730 column-store incorrectly matches key slots on new pages (#2847)
Reset the column-store saved slot information on each new page, otherwise it's possible for it to match the last page we were traversing. (cherry picked from commit 51a4e1593d484efdd167f0c2477dcff811d0934c)
-rw-r--r--src/btree/bt_curnext.c1
-rw-r--r--src/btree/bt_curprev.c1
-rw-r--r--src/include/cursor.i1
3 files changed, 2 insertions, 1 deletions
diff --git a/src/btree/bt_curnext.c b/src/btree/bt_curnext.c
index 70b3ba56e31..ddf31528ec3 100644
--- a/src/btree/bt_curnext.c
+++ b/src/btree/bt_curnext.c
@@ -179,6 +179,7 @@ __cursor_var_next(WT_CURSOR_BTREE *cbt, bool newpage)
/* Initialize for each new page. */
if (newpage) {
+ cbt->cip_saved = NULL;
cbt->last_standard_recno = __col_var_last_recno(cbt->ref);
if (cbt->last_standard_recno == 0)
return (WT_NOTFOUND);
diff --git a/src/btree/bt_curprev.c b/src/btree/bt_curprev.c
index 872f648446c..ad847671c12 100644
--- a/src/btree/bt_curprev.c
+++ b/src/btree/bt_curprev.c
@@ -325,6 +325,7 @@ __cursor_var_prev(WT_CURSOR_BTREE *cbt, bool newpage)
/* Initialize for each new page. */
if (newpage) {
+ cbt->cip_saved = NULL;
cbt->last_standard_recno = __col_var_last_recno(cbt->ref);
if (cbt->last_standard_recno == 0)
return (WT_NOTFOUND);
diff --git a/src/include/cursor.i b/src/include/cursor.i
index 553dd03f958..339ec2083ac 100644
--- a/src/include/cursor.i
+++ b/src/include/cursor.i
@@ -38,7 +38,6 @@ __cursor_pos_clear(WT_CURSOR_BTREE *cbt)
cbt->ins_head = NULL;
cbt->ins_stack[0] = NULL;
- cbt->cip_saved = NULL;
cbt->rip_saved = NULL;
F_CLR(cbt, WT_CBT_POSITION_MASK);