diff options
author | Sergey Petrunya <psergey@askmonty.org> | 2010-12-16 23:37:26 +0300 |
---|---|---|
committer | Sergey Petrunya <psergey@askmonty.org> | 2010-12-16 23:37:26 +0300 |
commit | 8dc612e6abfadf4e0b20ebc69243e25fcd429f53 (patch) | |
tree | e806e565ab820d8a155cf4672005f51241518884 /sql/multi_range_read.cc | |
parent | 3e633eea666e4ac960ac5466d616a09163397be4 (diff) | |
download | mariadb-git-8dc612e6abfadf4e0b20ebc69243e25fcd429f53.tar.gz |
MWL#121-125 DS-MRR improvements
- Address Monty's review feedback, portion 3
Diffstat (limited to 'sql/multi_range_read.cc')
-rw-r--r-- | sql/multi_range_read.cc | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/sql/multi_range_read.cc b/sql/multi_range_read.cc index b292dea7e95..c30b8df8e13 100644 --- a/sql/multi_range_read.cc +++ b/sql/multi_range_read.cc @@ -414,8 +414,6 @@ void Mrr_ordered_index_reader::resume_read() int Mrr_ordered_index_reader::refill_buffer(bool initial) { KEY_MULTI_RANGE cur_range; - uchar **range_info_ptr= (uchar**)&cur_range.ptr; - uchar *key_ptr; DBUG_ENTER("Mrr_ordered_index_reader::refill_buffer"); DBUG_ASSERT(key_buffer->is_empty()); @@ -425,9 +423,8 @@ int Mrr_ordered_index_reader::refill_buffer(bool initial) buf_manager->reset_buffer_sizes(buf_manager->arg); key_buffer->reset(); - key_buffer->setup_writing(&key_ptr, keypar.key_size_in_keybuf, - is_mrr_assoc? (uchar**)&range_info_ptr : NULL, - is_mrr_assoc? sizeof(uchar*):0); + key_buffer->setup_writing(keypar.key_size_in_keybuf, + is_mrr_assoc? sizeof(char*) : 0); while (key_buffer->can_write() && !(source_exhausted= mrr_funcs.next(mrr_iter, &cur_range))) @@ -435,9 +432,10 @@ int Mrr_ordered_index_reader::refill_buffer(bool initial) DBUG_ASSERT(cur_range.range_flag & EQ_RANGE); /* Put key, or {key, range_id} pair into the buffer */ - key_ptr= (keypar.use_key_pointers)? (uchar*)&cur_range.start_key.key : - (uchar*)cur_range.start_key.key; - + key_buffer->write_ptr1= keypar.use_key_pointers ? + (uchar*)&cur_range.start_key.key : + (uchar*)cur_range.start_key.key; + key_buffer->write_ptr2= (uchar*)&cur_range.ptr; key_buffer->write(); } @@ -591,16 +589,14 @@ void Mrr_index_reader::position() int Mrr_ordered_rndpos_reader::refill_from_index_reader() { char *range_info; - uchar **range_info_ptr= (uchar**)&range_info; int res; DBUG_ENTER("Mrr_ordered_rndpos_reader::refill_from_index_reader"); DBUG_ASSERT(rowid_buffer->is_empty()); index_rowid= index_reader->get_rowid_ptr(); rowid_buffer->reset(); - rowid_buffer->setup_writing(&index_rowid, file->ref_length, - is_mrr_assoc? (uchar**)&range_info_ptr: NULL, - is_mrr_assoc? sizeof(char*):0); + rowid_buffer->setup_writing(file->ref_length, + is_mrr_assoc? sizeof(char*) : 0); last_identical_rowid= NULL; @@ -620,6 +616,8 @@ int Mrr_ordered_rndpos_reader::refill_from_index_reader() index_reader->position(); /* Put rowid, or {rowid, range_id} pair into the buffer */ + rowid_buffer->write_ptr1= index_rowid; + rowid_buffer->write_ptr2= (uchar*)&range_info; rowid_buffer->write(); } |