#At file:///mnt/raid/alik/MySQL/bzr/bug45029/azalea-alik-bug45029/ based on revid:alik@stripped
2802 Alexander Nozdrin 2009-06-18
Bug#45029: MRR does not work with InnoDB.
Disable MRR in 5.4.
modified:
storage/innobase/handler/ha_innodb.cc
storage/innobase/handler/ha_innodb.h
=== modified file 'storage/innobase/handler/ha_innodb.cc'
--- a/storage/innobase/handler/ha_innodb.cc 2009-05-19 08:37:33 +0000
+++ b/storage/innobase/handler/ha_innodb.cc 2009-06-18 08:20:27 +0000
@@ -8540,8 +8540,15 @@ ha_rows ha_innobase::multi_range_read_in
{
/* See comments in ha_myisam::multi_range_read_info_const */
ds_mrr.init(this, table);
- return ds_mrr.dsmrr_info_const(keyno, seq, seq_init_param, n_ranges, bufsz,
- flags, cost);
+ uint orig_flags= *flags;
+
+ ha_rows res= ds_mrr.dsmrr_info_const(keyno, seq, seq_init_param, n_ranges,
+ bufsz, flags, cost);
+
+ /* Disable DS-MRR: enable MS-MRR only after critical bugs are fixed */
+ *bufsz= 0;
+ *flags = orig_flags | HA_MRR_USE_DEFAULT_IMPL;
+ return res;
}
ha_rows ha_innobase::multi_range_read_info(uint keyno, uint n_ranges,
@@ -8549,7 +8556,13 @@ ha_rows ha_innobase::multi_range_read_in
uint *flags, COST_VECT *cost)
{
ds_mrr.init(this, table);
- return ds_mrr.dsmrr_info(keyno, n_ranges, keys, bufsz, flags, cost);
+ uint orig_flags= *flags;
+
+ ha_rows res= ds_mrr.dsmrr_info(keyno, n_ranges, keys, bufsz, flags, cost);
+ /* Disable DS-MRR: enable MS-MRR only after critical bugs are fixed */
+ *bufsz= 0;
+ *flags = orig_flags | HA_MRR_USE_DEFAULT_IMPL;
+ return res;
}
=== modified file 'storage/innobase/handler/ha_innodb.h'
--- a/storage/innobase/handler/ha_innodb.h 2009-04-24 11:32:53 +0000
+++ b/storage/innobase/handler/ha_innodb.h 2009-06-18 08:20:27 +0000
@@ -102,8 +102,11 @@ class ha_innobase: public handler
HA_READ_PREV |
HA_READ_ORDER |
HA_READ_RANGE |
- HA_KEYREAD_ONLY |
- ((idx == primary_key) ? 0 : HA_DO_INDEX_COND_PUSHDOWN));
+ HA_KEYREAD_ONLY);
+ /* Turn off engine_condition_pushdown for InnoDB.
+ It is unstable at this point. */
+ /* HA_KEYREAD_ONLY |
+ ((idx == primary_key)? 0 : HA_DO_INDEX_COND_PUSHDOWN)); */
}
uint max_supported_keys() const { return MAX_KEY; }
/* An InnoDB page must store >= 2 keys;
Attachment: [text/bzr-bundle] bzr/alik@sun.com-20090618082027-hid9vmeg87d4qqhh.bundle
| Thread |
|---|
| • bzr commit into mysql-5.4-bugfixing branch (alik:2802) Bug#45029 | Alexander Nozdrin | 19 Jun |