From 8e4c627ef8bff737e072fde733ee39351c17f70b Mon Sep 17 00:00:00 2001 From: Sergey Petrunya Date: Fri, 29 Oct 2010 20:21:26 +0400 Subject: [PATCH] DS-MRR improvements: - Correct buffer re-allocation --- sql/multi_range_read.cc | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/sql/multi_range_read.cc b/sql/multi_range_read.cc index c1b166cb4e7..a968cf2da52 100644 --- a/sql/multi_range_read.cc +++ b/sql/multi_range_read.cc @@ -1092,9 +1092,16 @@ void DsMrr_impl::setup_buffer_sizes(uint key_size_in_keybuf, void DsMrr_impl::reset_buffer_sizes() { - rowid_buffer.set_buffer_space(full_buf, rowid_buffer_end); - key_buffer= &backward_key_buf; - key_buffer->set_buffer_space(rowid_buffer_end, full_buf_end); + if (strategy != index_strategy) + { + /* + Ok we have both ordered index reader and there is a disk rearder. + Redistribute the buffer space. + */ + rowid_buffer.set_buffer_space(full_buf, rowid_buffer_end); + key_buffer= &backward_key_buf; + key_buffer->set_buffer_space(rowid_buffer_end, full_buf_end); + } } /**