List:Commits« Previous MessageNext Message »
From:Alexander Nozdrin Date:June 18 2009 8:20am
Subject:bzr commit into mysql-5.4-bugfixing branch (alik:2802) Bug#45029
View as plain text  
#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#45029Alexander Nozdrin19 Jun