diff options
author | Sergei Golubchik <sergii@pisem.net> | 2013-01-25 17:22:21 +0100 |
---|---|---|
committer | Sergei Golubchik <sergii@pisem.net> | 2013-01-25 17:22:21 +0100 |
commit | e400450f2d5f615dbe8033b46eda01c68338614f (patch) | |
tree | 7027a614639c971867af4aef59794a87bb0e1c64 /sql/opt_range.cc | |
parent | 9142c50b0751c1ee964b9b56ef2378fc2bef202c (diff) | |
parent | 7f208d3c356e559d3be15f161df8a0adbfa2dd1c (diff) | |
download | mariadb-git-e400450f2d5f615dbe8033b46eda01c68338614f.tar.gz |
5.1 merge
Diffstat (limited to 'sql/opt_range.cc')
-rw-r--r-- | sql/opt_range.cc | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sql/opt_range.cc b/sql/opt_range.cc index 2d0656333bd..6bc7c047da6 100644 --- a/sql/opt_range.cc +++ b/sql/opt_range.cc @@ -10826,9 +10826,10 @@ int QUICK_GROUP_MIN_MAX_SELECT::next_min() */ if (min_max_arg_part && min_max_arg_part->field->is_null()) { + uchar *tmp_key_buff= (uchar*)my_alloca(max_used_key_length); /* Find the first subsequent record without NULL in the MIN/MAX field. */ - key_copy(tmp_record, record, index_info, max_used_key_length); - result= file->ha_index_read_map(record, tmp_record, + key_copy(tmp_key_buff, record, index_info, max_used_key_length); + result= file->ha_index_read_map(record, tmp_key_buff, make_keypart_map(real_key_parts), HA_READ_AFTER_KEY); /* @@ -10844,10 +10845,11 @@ int QUICK_GROUP_MIN_MAX_SELECT::next_min() if (!result) { if (key_cmp(index_info->key_part, group_prefix, real_prefix_len)) - key_restore(record, tmp_record, index_info, 0); + key_restore(record, tmp_key_buff, index_info, 0); } else if (result == HA_ERR_KEY_NOT_FOUND || result == HA_ERR_END_OF_FILE) result= 0; /* There is a result in any case. */ + my_afree(tmp_key_buff); } } |