#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 */
};
| Thread |
|---|
| • bzr commit into mysql-5.0 branch (sergefp:2677) Bug#36639 | Sergey Petrunia | 26 Aug |