diff --git a/sql/multi_range_read.cc b/sql/multi_range_read.cc index c72c92889f5..7d859a71e50 100644 --- a/sql/multi_range_read.cc +++ b/sql/multi_range_read.cc @@ -1122,7 +1122,7 @@ bool DsMrr_impl::setup_buffer_sharing(uint key_size_in_keybuf, (ulonglong2double(rowids_size) + key_buff_elem_size)); size_t bytes_for_rowids= - round(fraction_for_rowids * (full_buf_end - full_buf)); + (size_t)round(fraction_for_rowids * (full_buf_end - full_buf)); long bytes_for_keys= (full_buf_end - full_buf) - bytes_for_rowids; diff --git a/sql/multi_range_read.h b/sql/multi_range_read.h index a22ef0fef61..07e6295a021 100644 --- a/sql/multi_range_read.h +++ b/sql/multi_range_read.h @@ -346,7 +346,14 @@ private: /* TRUE <=> index_reader->refill_buffer() call has returned EOF */ bool index_reader_exhausted; + /* + TRUE <=> We should call index_reader->refill_buffer(). This happens if + 1. we've made index_reader->get_next() call which returned EOF + 2. we haven't made any index_reader calls (and our first call should + be index_reader->refill_buffer(initial=TRUE) + */ bool index_reader_needs_refill; + /* TRUE <=> need range association, buffers hold {rowid, range_id} pairs */ bool is_mrr_assoc;