summaryrefslogtreecommitdiff
path: root/sql/opt_range.cc
diff options
context:
space:
mode:
authorIgor Babaev <igor@askmonty.org>2011-06-04 19:56:06 -0700
committerIgor Babaev <igor@askmonty.org>2011-06-04 19:56:06 -0700
commitf03a3ee54fb8b5aeeba590677f48b54a57ab45cf (patch)
treeafb1235c5417019a563b1c1d64443f3b890d05df /sql/opt_range.cc
parentf0f2ec3086000a22e83ce9ca33d59a3347784e0c (diff)
parent35c35858f859f23c23a414cdb21fdfe39d5de11c (diff)
downloadmariadb-git-f03a3ee54fb8b5aeeba590677f48b54a57ab45cf.tar.gz
Merged the code of mwl 106 into the latest 5.3 with mwl 90 pushed.
Resolved all conflicts and failures.
Diffstat (limited to 'sql/opt_range.cc')
-rw-r--r--sql/opt_range.cc11
1 files changed, 8 insertions, 3 deletions
diff --git a/sql/opt_range.cc b/sql/opt_range.cc
index 6d5970ae4b9..dc987e196f4 100644
--- a/sql/opt_range.cc
+++ b/sql/opt_range.cc
@@ -9497,7 +9497,7 @@ ha_rows check_quick_select(PARAM *param, uint idx, bool index_only,
SEL_ARG_RANGE_SEQ seq;
RANGE_SEQ_IF seq_if = {NULL, sel_arg_range_seq_init, sel_arg_range_seq_next, 0, 0};
handler *file= param->table->file;
- ha_rows rows;
+ ha_rows rows= HA_POS_ERROR;
uint keynr= param->real_keynr[idx];
DBUG_ENTER("check_quick_select");
@@ -9537,8 +9537,13 @@ ha_rows check_quick_select(PARAM *param, uint idx, bool index_only,
*mrr_flags |= HA_MRR_USE_DEFAULT_IMPL;
*bufsize= param->thd->variables.mrr_buff_size;
- rows= file->multi_range_read_info_const(keynr, &seq_if, (void*)&seq, 0,
- bufsize, mrr_flags, cost);
+ /*
+ Skip materialized derived table/view result table from MRR check as
+ they aren't contain any data yet.
+ */
+ if (param->table->pos_in_table_list->is_non_derived())
+ rows= file->multi_range_read_info_const(keynr, &seq_if, (void*)&seq, 0,
+ bufsize, mrr_flags, cost);
if (rows != HA_POS_ERROR)
{
param->quick_rows[keynr]= rows;