diff --git a/sql/opt_range.cc b/sql/opt_range.cc index d0ca4ea7b23..28ee8af0699 100644 --- a/sql/opt_range.cc +++ b/sql/opt_range.cc @@ -8564,6 +8564,13 @@ QUICK_SELECT_DESC::QUICK_SELECT_DESC(QUICK_RANGE_SELECT *q, used_key_parts (used_key_parts_arg) { QUICK_RANGE *r; + /* + Use default MRR implementation for reverse scans. No table engine + currently can do an MRR scan with output in reverse index order. + */ + multi_range_length= 0; + multi_range= NULL; + multi_range_buff= NULL; QUICK_RANGE **pr= (QUICK_RANGE**)ranges.buffer; QUICK_RANGE **end_range= pr + ranges.elements; diff --git a/sql/opt_range.h b/sql/opt_range.h index 2a647c77686..8d2ba1bb0a6 100644 --- a/sql/opt_range.h +++ b/sql/opt_range.h @@ -345,14 +345,7 @@ public: void dbug_dump(int indent, bool verbose); #endif private: - /* Used only by QUICK_SELECT_DESC */ - QUICK_RANGE_SELECT(const QUICK_RANGE_SELECT& org) : QUICK_SELECT_I() - { - bcopy(&org, this, sizeof(*this)); - multi_range_length= 0; - multi_range= NULL; - multi_range_buff= NULL; - } + /* Default copy ctor used by QUICK_SELECT_DESC */ };