From: Date: August 25 2008 7:03pm Subject: bzr commit into mysql-5.0 branch (sergefp:2677) Bug#36639 List-Archive: http://lists.mysql.com/commits/52594 X-Bug: 36639 Message-Id: <20080825170304.72C0215A0CF@pslp2.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7BIT #At file:///home/spetrunia/dev/mysql-5.0-bugteam-bug36639/ 2677 Sergey Petrunia 2008-08-25 BUG#36639: subselect.test crashes on 64 bit pentium4 when compiled for valgrind, commit into 5.0 - Use the compiler's default copy constructor for QUICK_RANGE_SELECT. bcopy(this, copy, ...) call caused some odd action on gcc-4.1.2 on x86_64 modified: sql/opt_range.cc sql/opt_range.h per-file messages: sql/opt_range.cc BUG#36639: subselect.test crashes on 64 bit pentium4 when compiled for valgrind - Set QUICK_SELECT_DESC not to use MRR implementation (code moved to here from opt_range.h) sql/opt_range.h BUG#36639: subselect.test crashes on 64 bit pentium4 when compiled for valgrind - Use the compiler's default copy constructor for QUICK_RANGE_SELECT. bcopy(this, copy, ...) call caused some odd action on gcc-4.1.2 on x86_64 === modified file 'sql/opt_range.cc' --- a/sql/opt_range.cc 2008-07-23 11:25:00 +0000 +++ b/sql/opt_range.cc 2008-08-25 17:02:54 +0000 @@ -7103,6 +7103,13 @@ QUICK_SELECT_DESC::QUICK_SELECT_DESC(QUI 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; === modified file 'sql/opt_range.h' --- a/sql/opt_range.h 2008-07-23 11:25:00 +0000 +++ b/sql/opt_range.h 2008-08-25 17:02:54 +0000 @@ -329,14 +329,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 */ };