summaryrefslogtreecommitdiff
path: root/sql/multi_range_read.cc
diff options
context:
space:
mode:
authorSergey Petrunya <psergey@askmonty.org>2014-06-06 21:28:42 +0400
committerSergey Petrunya <psergey@askmonty.org>2014-06-06 21:28:42 +0400
commitee6f400fe1487b2b77e731189b92a753f6816e9a (patch)
treeb794dfb41ce6bd8ac1b16bff045c6c9479cf11d0 /sql/multi_range_read.cc
parent216fbe2af3c8dc81f492af79dee61d6a3d333678 (diff)
downloadmariadb-git-ee6f400fe1487b2b77e731189b92a753f6816e9a.tar.gz
MDEV-5976: TokuDB: Wrong query result using mrr=on
- Key_value_records_iterator::get_next() should pass pointer to the key to handler->ha_index_next_same(). Because of a typo bug, pointer-to-pointer was passed instead in certain cases.
Diffstat (limited to 'sql/multi_range_read.cc')
-rw-r--r--sql/multi_range_read.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/sql/multi_range_read.cc b/sql/multi_range_read.cc
index 0c35ac5b029..b63db9ecea2 100644
--- a/sql/multi_range_read.cc
+++ b/sql/multi_range_read.cc
@@ -1341,8 +1341,14 @@ int Key_value_records_iterator::get_next(range_id_t *range_info)
}
handler *h= owner->file;
+ uchar *lookup_key;
+ if (owner->keypar.use_key_pointers)
+ memcpy(&lookup_key, identical_key_it.read_ptr1, sizeof(void*));
+ else
+ lookup_key= identical_key_it.read_ptr1;
+
if ((res= h->ha_index_next_same(h->get_table()->record[0],
- identical_key_it.read_ptr1,
+ lookup_key,
owner->keypar.key_tuple_length)))
{
/* It's either HA_ERR_END_OF_FILE or some other error */