List:Commits« Previous MessageNext Message »
From:Sergey Petrunia Date:August 26 2008 8:40pm
Subject:bzr push into mysql-6.0-bka-preview branch (sergefp:2645 to 2646)
View as plain text  
 2646 Sergey Petrunia	2008-08-27
      Make multi_range_read_info() return ha_rows instead of int.
modified:
  sql/ha_ndbcluster.cc
  sql/ha_ndbcluster.h
  sql/handler.cc
  sql/handler.h
  sql/sql_select.cc
  storage/falcon/ha_falcon.cpp
  storage/falcon/ha_falcon.h
  storage/innobase/handler/ha_innodb.cc
  storage/innobase/handler/ha_innodb.h
  storage/myisam/ha_myisam.cc
  storage/myisam/ha_myisam.h

 2645 Jonas Oreland	2008-08-18 [merge]
      merge 6.0-ndb into 6.0-bka-preview
removed:
  dbug/.cvsignore
  dbug/doinstall.sh
  dbug/install.sh
  dbug/mklintlib.sh
  dbug/qmake.cmd
  dbug/vargs.h
  extra/yassl/taocrypt/taocrypt.dsp
  extra/yassl/taocrypt/taocrypt.dsw
  extra/yassl/taocrypt/taocrypt.vcproj
  extra/yassl/yassl.dsp
  extra/yassl/yassl.dsw
  include/atomic/generic-msvc.h
  mysql-test/suite/funcs_1/data/
  mysql-test/suite/funcs_1/triggers/triggers_master.test
  mysql-test/suite/parts/inc/partition_alter1.inc
  mysql-test/suite/parts/r/ndb_blob_partition.result
  mysql-test/suite/parts/r/ndb_partition_error.result
  mysql-test/suite/parts/r/ndb_partition_list.result
  mysql-test/suite/parts/r/ndb_partition_range.result
  mysql-test/suite/parts/r/rpl_ndb_dd_partitions.result
  mysql-test/suite/parts/t/ndb_blob_partition.test
  mysql-test/suite/parts/t/ndb_partition_error.test
  mysql-test/suite/parts/t/ndb_partition_list.test
  mysql-test/suite/parts/t/ndb_partition_range.test
  mysql-test/suite/parts/t/partition_alter1_ndb.test
  mysql-test/suite/parts/t/rpl_ndb_dd_partitions.test
  mysql-test/suite/rpl/r/rpl_colSize.result
added:
  include/atomic/generic-msvc.h
  include/lf.h
  include/my_bit.h
  mysql-test/include/show_qc_status.inc
  mysql-test/r/rpl_slave_allow_batching_basic.result
  mysql-test/r/rpl_slave_compressed_protocol_basic.result
  mysql-test/r/rpl_slave_exec_mode_basic.result
  mysql-test/r/rpl_slave_net_timeout_basic.result
  mysql-test/std_data/ndb_apply_status.frm
  mysql-test/suite/funcs_1/r/ndb_trig_0102.result
  mysql-test/suite/funcs_1/r/ndb_trig_03.result
  mysql-test/suite/funcs_1/r/ndb_trig_0407.result
  mysql-test/suite/funcs_1/r/ndb_trig_08.result
  mysql-test/suite/funcs_1/r/ndb_trig_09.result
  mysql-test/suite/funcs_1/r/ndb_trig_1011ext.result
  mysql-test/suite/funcs_1/t/ndb_trig_0102.test
  mysql-test/suite/funcs_1/t/ndb_trig_03.test
  mysql-test/suite/funcs_1/t/ndb_trig_0407.test
  mysql-test/suite/funcs_1/t/ndb_trig_08.test
  mysql-test/suite/funcs_1/t/ndb_trig_09.test
  mysql-test/suite/funcs_1/t/ndb_trig_1011ext.test
  mysql-test/suite/ndb/r/bug36547.result
  mysql-test/suite/ndb/r/ndb_cache_trans.result
  mysql-test/suite/ndb/t/bug36547.test
  mysql-test/suite/ndb/t/ndb_cache_trans.test
  mysql-test/suite/ndb_binlog/r/ndb_binlog_restore.result
  mysql-test/suite/ndb_binlog/t/ndb_binlog_restore.test
  mysql-test/suite/rpl/r/rpl_colSize.result
  mysql-test/t/rpl_slave_allow_batching_basic.test
  mysql-test/t/rpl_slave_compressed_protocol_basic.test
  mysql-test/t/rpl_slave_exec_mode_basic.test
  mysql-test/t/rpl_slave_net_timeout_basic.test
  mysys/lf_alloc-pin.c
  mysys/lf_dynarray.c
  mysys/lf_hash.c
  mysys/tests/
  mysys/tests/Makefile.am
  sql/backup/debug.h
  storage/ndb/src/common/util/ndb_show_compat.cpp
renamed:
  include/lf.h => include/lf.h.moved
  include/my_bit.h => include/my_bit.h.moved
  mysql-test/r/rpl_slave_allow_batching_basic.result => mysql-test/r/rpl_slave_allow_batching_basic.result.moved
  mysql-test/r/rpl_slave_compressed_protocol_basic.result => mysql-test/r/rpl_slave_compressed_protocol_basic.result.moved
  mysql-test/r/rpl_slave_exec_mode_basic.result => mysql-test/r/rpl_slave_exec_mode_basic.result.moved
  mysql-test/r/rpl_slave_net_timeout_basic.result => mysql-test/r/rpl_slave_net_timeout_basic.result.moved
  mysql-test/t/rpl_slave_allow_batching_basic.test => mysql-test/t/rpl_slave_allow_batching_basic.test.moved
  mysql-test/t/rpl_slave_compressed_protocol_basic.test => mysql-test/t/rpl_slave_compressed_protocol_basic.test.moved
  mysql-test/t/rpl_slave_exec_mode_basic.test => mysql-test/t/rpl_slave_exec_mode_basic.test.moved
  mysql-test/t/rpl_slave_net_timeout_basic.test => mysql-test/t/rpl_slave_net_timeout_basic.test.moved
  mysys/lf_alloc-pin.c => mysys/lf_alloc-pin.c.moved
  mysys/lf_dynarray.c => mysys/lf_dynarray.c.moved
  mysys/lf_hash.c => mysys/lf_hash.c.moved
  mysys/test_charset.c => mysys/tests/test_charset.c
  mysys/test_dir.c => mysys/tests/test_dir.c
  mysys/testhash.c => mysys/tests/testhash.c
  storage/ndb/src/common/util/ndb_init.c => storage/ndb/src/common/util/ndb_init.cpp
modified:
  .bzrignore
  BUILD/autorun.sh
  Makefile.am
  client/Makefile.am
  client/mysqltest.c
  cluster_change_hist.txt
  config/ac-macros/ha_ndbcluster.m4
  config/ac-macros/zlib.m4
  configure.in
  dbug/Makefile.am
  extra/Makefile.am
  include/my_base.h
  include/mysql_com.h
  libmysql/Makefile.am
  libmysql/Makefile.shared
  libmysqld/Makefile.am
  libmysqld/examples/Makefile.am
  mysql-test/extra/rpl_tests/rpl_row_basic.test
  mysql-test/mysql-test-run.pl
  mysql-test/r/subselect.result
  mysql-test/r/subselect_no_mat.result
  mysql-test/r/subselect_no_opts.result
  mysql-test/r/subselect_no_semijoin.result
  mysql-test/suite/binlog/r/binlog_multi_engine.result
  mysql-test/suite/ndb/r/ndb_alter_table3.result
  mysql-test/suite/ndb/r/ndb_alter_table_backup.result
  mysql-test/suite/ndb/r/ndb_basic.result
  mysql-test/suite/ndb/r/ndb_blob.result
  mysql-test/suite/ndb/r/ndb_condition_pushdown.result
  mysql-test/suite/ndb/r/ndb_multi_row.result
  mysql-test/suite/ndb/r/ndb_restore.result
  mysql-test/suite/ndb/r/ndb_restore_compat.result
  mysql-test/suite/ndb/r/ndb_restore_different_endian_data.result
  mysql-test/suite/ndb/r/ndb_trigger.result
  mysql-test/suite/ndb/t/disabled.def
  mysql-test/suite/ndb/t/ndb_alter_table3.test
  mysql-test/suite/ndb/t/ndb_alter_table_backup.test
  mysql-test/suite/ndb/t/ndb_blob.test
  mysql-test/suite/ndb/t/ndb_condition_pushdown.test
  mysql-test/suite/ndb/t/ndb_restore.test
  mysql-test/suite/ndb/t/ndb_restore_compat.test
  mysql-test/suite/ndb/t/ndb_restore_different_endian_data.test
  mysql-test/suite/ndb/t/ndb_trigger.test
  mysql-test/suite/ndb_binlog/r/ndb_binlog_ddl_multi.result
  mysql-test/suite/ndb_binlog/r/ndb_binlog_format.result
  mysql-test/suite/ndb_binlog/r/ndb_binlog_log_bin.result
  mysql-test/suite/ndb_team/r/ndb_dd_backuprestore.result
  mysql-test/suite/ndb_team/t/rpl_ndb_dd_advance.test
  mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result
  mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result
  mysql-test/suite/rpl/t/disabled.def
  mysql-test/suite/rpl_ndb_big/r/rpl_ndb_apply_status.result
  mysql-test/suite/rpl_ndb_big/r/rpl_row_basic_7ndb.result
  mysql-test/suite/rpl_ndb_big/t/rpl_ndb_apply_status.test
  mysql-test/t/status.test
  mysql-test/t/subselect.test
  mysys/Makefile.am
  mysys/my_bitmap.c
  mysys/queues.c
  netware/Makefile.am
  regex/Makefile.am
  scripts/mysql_config.sh
  sql/Makefile.am
  sql/field.cc
  sql/ha_ndbcluster.cc
  sql/ha_ndbcluster.h
  sql/ha_ndbcluster_binlog.cc
  sql/ha_ndbcluster_connection.cc
  sql/ha_ndbcluster_connection.h
  sql/handler.cc
  sql/handler.h
  sql/log.cc
  sql/mysql_priv.h
  sql/mysqld.cc
  sql/rpl_injector.cc
  sql/rpl_injector.h
  sql/sql_repl.cc
  sql/sql_table.cc
  sql/table.cc
  storage/archive/Makefile.am
  storage/heap/Makefile.am
  storage/maria/Makefile.am
  storage/maria/unittest/Makefile.am
  storage/myisam/Makefile.am
  storage/ndb/config/type_ndbapitest.mk.am
  storage/ndb/config/type_ndbapitools.mk.am
  storage/ndb/include/kernel/signaldata/DumpStateOrd.hpp
  storage/ndb/include/kernel/signaldata/KeyInfo.hpp
  storage/ndb/include/kernel/signaldata/ListTables.hpp
  storage/ndb/include/kernel/signaldata/SumaImpl.hpp
  storage/ndb/include/mgmapi/mgmapi.h
  storage/ndb/include/mgmapi/mgmapi_config_parameters.h
  storage/ndb/include/ndb_version.h.in
  storage/ndb/include/ndbapi/NdbIndexScanOperation.hpp
  storage/ndb/include/ndbapi/NdbOperation.hpp
  storage/ndb/include/ndbapi/NdbReceiver.hpp
  storage/ndb/include/ndbapi/NdbScanOperation.hpp
  storage/ndb/include/ndbapi/NdbTransaction.hpp
  storage/ndb/include/util/OutputStream.hpp
  storage/ndb/include/util/SimpleProperties.hpp
  storage/ndb/include/util/SocketServer.hpp
  storage/ndb/src/Makefile.am
  storage/ndb/src/common/debugger/EventLogger.cpp
  storage/ndb/src/common/logger/Logger.cpp
  storage/ndb/src/common/portlib/NdbCondition.c
  storage/ndb/src/common/portlib/NdbTick.c
  storage/ndb/src/common/transporter/TCP_Transporter.cpp
  storage/ndb/src/common/transporter/Transporter.cpp
  storage/ndb/src/common/transporter/TransporterRegistry.cpp
  storage/ndb/src/common/util/Makefile.am
  storage/ndb/src/common/util/OutputStream.cpp
  storage/ndb/src/common/util/SocketServer.cpp
  storage/ndb/src/common/util/version.c
  storage/ndb/src/cw/cpcd/Makefile.am
  storage/ndb/src/kernel/Makefile.am
  storage/ndb/src/kernel/blocks/ERROR_codes.txt
  storage/ndb/src/kernel/blocks/Makefile.am
  storage/ndb/src/kernel/blocks/backup/Backup.cpp
  storage/ndb/src/kernel/blocks/backup/Makefile.am
  storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp
  storage/ndb/src/kernel/blocks/dbacc/Dbacc.hpp
  storage/ndb/src/kernel/blocks/dbacc/DbaccInit.cpp
  storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp
  storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp
  storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp
  storage/ndb/src/kernel/blocks/dbdict/Makefile.am
  storage/ndb/src/kernel/blocks/dbdih/Dbdih.hpp
  storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp
  storage/ndb/src/kernel/blocks/dbdih/Makefile.am
  storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp
  storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
  storage/ndb/src/kernel/blocks/dblqh/Makefile.am
  storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp
  storage/ndb/src/kernel/blocks/dbtc/DbtcInit.cpp
  storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp
  storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp
  storage/ndb/src/kernel/blocks/dbtup/DbtupDebug.cpp
  storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp
  storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp
  storage/ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp
  storage/ndb/src/kernel/blocks/dbtup/DbtupTabDesMan.cpp
  storage/ndb/src/kernel/blocks/dbtup/Makefile.am
  storage/ndb/src/kernel/blocks/dbtux/Dbtux.hpp
  storage/ndb/src/kernel/blocks/dbtux/DbtuxDebug.cpp
  storage/ndb/src/kernel/blocks/lgman.cpp
  storage/ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp
  storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp
  storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp
  storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp
  storage/ndb/src/kernel/blocks/suma/Suma.cpp
  storage/ndb/src/kernel/blocks/suma/Suma.hpp
  storage/ndb/src/kernel/blocks/suma/SumaInit.cpp
  storage/ndb/src/kernel/blocks/tsman.cpp
  storage/ndb/src/kernel/error/ErrorReporter.cpp
  storage/ndb/src/kernel/main.cpp
  storage/ndb/src/kernel/vm/Configuration.cpp
  storage/ndb/src/kernel/vm/Emulator.cpp
  storage/ndb/src/kernel/vm/Makefile.am
  storage/ndb/src/kernel/vm/SimplePropertiesSection.cpp
  storage/ndb/src/kernel/vm/SimulatedBlock.cpp
  storage/ndb/src/kernel/vm/SimulatedBlock.hpp
  storage/ndb/src/kernel/vm/WatchDog.cpp
  storage/ndb/src/kernel/vm/bench_pool.cpp
  storage/ndb/src/kernel/vm/ndbd_malloc_impl.cpp
  storage/ndb/src/kernel/vm/pc.hpp
  storage/ndb/src/mgmclient/Makefile.am
  storage/ndb/src/mgmsrv/Makefile.am
  storage/ndb/src/mgmsrv/MgmtSrvr.cpp
  storage/ndb/src/mgmsrv/Services.cpp
  storage/ndb/src/mgmsrv/main.cpp
  storage/ndb/src/ndbapi/ClusterMgr.cpp
  storage/ndb/src/ndbapi/DictCache.cpp
  storage/ndb/src/ndbapi/Makefile.am
  storage/ndb/src/ndbapi/Ndb.cpp
  storage/ndb/src/ndbapi/NdbApiSignal.hpp
  storage/ndb/src/ndbapi/NdbBlob.cpp
  storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp
  storage/ndb/src/ndbapi/NdbDictionaryImpl.hpp
  storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp
  storage/ndb/src/ndbapi/NdbIndexStat.cpp
  storage/ndb/src/ndbapi/NdbInterpretedCode.cpp
  storage/ndb/src/ndbapi/NdbOperation.cpp
  storage/ndb/src/ndbapi/NdbOperationDefine.cpp
  storage/ndb/src/ndbapi/NdbOperationExec.cpp
  storage/ndb/src/ndbapi/NdbOperationInt.cpp
  storage/ndb/src/ndbapi/NdbOperationSearch.cpp
  storage/ndb/src/ndbapi/NdbRecord.hpp
  storage/ndb/src/ndbapi/NdbScanFilter.cpp
  storage/ndb/src/ndbapi/NdbScanOperation.cpp
  storage/ndb/src/ndbapi/NdbTransaction.cpp
  storage/ndb/src/ndbapi/Ndbif.cpp
  storage/ndb/src/ndbapi/Ndbinit.cpp
  storage/ndb/src/ndbapi/ObjectMap.cpp
  storage/ndb/src/ndbapi/ObjectMap.hpp
  storage/ndb/src/ndbapi/TransporterFacade.cpp
  storage/ndb/src/ndbapi/TransporterFacade.hpp
  storage/ndb/src/ndbapi/ndb_cluster_connection.cpp
  storage/ndb/src/ndbapi/ndberror.c
  storage/ndb/test/ndbapi/testBlobs.cpp
  storage/ndb/test/ndbapi/testDict.cpp
  storage/ndb/test/ndbapi/testInterpreter.cpp
  storage/ndb/test/ndbapi/testNdbApi.cpp
  storage/ndb/test/ndbapi/testNodeRestart.cpp
  storage/ndb/test/ndbapi/testOIBasic.cpp
  storage/ndb/test/ndbapi/testSRBank.cpp
  storage/ndb/test/ndbapi/testScan.cpp
  storage/ndb/test/ndbapi/testScanFilter.cpp
  storage/ndb/test/ndbapi/testSystemRestart.cpp
  storage/ndb/test/ndbapi/test_event.cpp
  storage/ndb/test/run-test/Makefile.am
  storage/ndb/test/run-test/autotest-boot.sh
  storage/ndb/test/run-test/daily-basic-tests.txt
  storage/ndb/tools/ndb_size.pl
  storage/ndb/tools/restore/Restore.cpp
  storage/ndb/tools/restore/consumer_restore.cpp
  storage/ndb/tools/restore/restore_main.cpp
  storage/ndb/tools/waiter.cpp
  strings/Makefile.am
  unittest/mysys/Makefile.am
  storage/ndb/src/common/util/ndb_init.cpp

=== modified file 'sql/ha_ndbcluster.cc'
--- a/sql/ha_ndbcluster.cc	2008-08-18 05:43:50 +0000
+++ b/sql/ha_ndbcluster.cc	2008-08-26 20:38:29 +0000
@@ -9308,11 +9308,11 @@ ha_ndbcluster::multi_range_read_info_con
     See handler::multi_range_read_info.
 */
 
-int 
+ha_rows 
 ha_ndbcluster::multi_range_read_info(uint keyno, uint n_ranges, uint keys,
                                      uint *bufsz, uint *flags, COST_VECT *cost)
 {
-  int res;
+  ha_rows res;
   uint save_bufsize= *bufsz;
   DBUG_ENTER("ha_ndbcluster::multi_range_read_info");
 

=== modified file 'sql/ha_ndbcluster.h'
--- a/sql/ha_ndbcluster.h	2008-08-18 05:43:50 +0000
+++ b/sql/ha_ndbcluster.h	2008-08-26 20:38:29 +0000
@@ -332,8 +332,8 @@ class ha_ndbcluster: public handler
                                       void *seq_init_param, 
                                       uint n_ranges, uint *bufsz,
                                       uint *flags, COST_VECT *cost);
-  int multi_range_read_info(uint keyno, uint n_ranges, uint keys,
-                            uint *bufsz, uint *flags, COST_VECT *cost);
+  ha_rows multi_range_read_info(uint keyno, uint n_ranges, uint keys,
+                                uint *bufsz, uint *flags, COST_VECT *cost);
 private:
   uint first_running_range;
   uint first_range_in_batch;

=== modified file 'sql/handler.cc'
--- a/sql/handler.cc	2008-08-18 05:43:50 +0000
+++ b/sql/handler.cc	2008-08-26 20:38:29 +0000
@@ -4132,8 +4132,8 @@ handler::multi_range_read_info_const(uin
     other Error or can't perform the requested scan
 */
 
-int handler::multi_range_read_info(uint keyno, uint n_ranges, uint n_rows,
-                                   uint *bufsz, uint *flags, COST_VECT *cost)
+ha_rows handler::multi_range_read_info(uint keyno, uint n_ranges, uint n_rows,
+                                       uint *bufsz, uint *flags, COST_VECT *cost)
 {
   *bufsz= 0; /* Default implementation doesn't need a buffer */
 
@@ -4534,10 +4534,10 @@ end:
 /**
   DS-MRR implementation: multi_range_read_info() function
 */
-int DsMrr_impl::dsmrr_info(uint keyno, uint n_ranges, uint rows, uint *bufsz,
-                           uint *flags, COST_VECT *cost)
+ha_rows DsMrr_impl::dsmrr_info(uint keyno, uint n_ranges, uint rows,
+                               uint *bufsz, uint *flags, COST_VECT *cost)
 {  
-  int res;
+  ha_rows res;
   uint def_flags= *flags;
   uint def_bufsz= *bufsz;
 

=== modified file 'sql/handler.h'
--- a/sql/handler.h	2008-08-18 05:43:50 +0000
+++ b/sql/handler.h	2008-08-26 20:38:29 +0000
@@ -1558,8 +1558,8 @@ public:
                                               void *seq_init_param, 
                                               uint n_ranges, uint *bufsz,
                                               uint *flags, COST_VECT *cost);
-  virtual int multi_range_read_info(uint keyno, uint n_ranges, uint keys,
-                                    uint *bufsz, uint *flags, COST_VECT *cost);
+  virtual ha_rows multi_range_read_info(uint keyno, uint n_ranges, uint keys,
+                                        uint *bufsz, uint *flags, COST_VECT *cost);
   virtual int multi_range_read_init(RANGE_SEQ_IF *seq, void *seq_init_param,
                                     uint n_ranges, uint mode,
                                     HANDLER_BUFFER *buf);
@@ -2401,8 +2401,8 @@ public:
   int dsmrr_fill_buffer(handler *h);
   int dsmrr_next(handler *h, char **range_info);
 
-  int dsmrr_info(uint keyno, uint n_ranges, uint keys, uint *bufsz,
-                 uint *flags, COST_VECT *cost);
+  ha_rows dsmrr_info(uint keyno, uint n_ranges, uint keys, uint *bufsz,
+                     uint *flags, COST_VECT *cost);
 
   ha_rows dsmrr_info_const(uint keyno, RANGE_SEQ_IF *seq, 
                             void *seq_init_param, uint n_ranges, uint *bufsz,

=== modified file 'sql/sql_select.cc'
--- a/sql/sql_select.cc	2008-08-18 05:43:50 +0000
+++ b/sql/sql_select.cc	2008-08-26 20:38:29 +0000
@@ -8316,6 +8316,7 @@ bool check_join_cache_usage(JOIN_TAB *ta
   uint cache_level= join->thd->variables.join_cache_level;
   bool force_unlinked_cache= test(cache_level & 1);
   uint i= tab-join->join_tab;
+  ha_rows rows;
   
   if (cache_level == 0)
     return FALSE;
@@ -8360,9 +8361,9 @@ bool check_join_cache_usage(JOIN_TAB *ta
     flags= HA_MRR_NO_NULL_ENDPOINTS;
     if (tab->table->covering_keys.is_set(tab->ref.key))
       flags|= HA_MRR_INDEX_ONLY;
-    tab->table->file->multi_range_read_info(tab->ref.key, 10, 20,
-                                            &bufsz, &flags, &cost);
-    if (!(flags & HA_MRR_USE_DEFAULT_IMPL) &&
+    rows= tab->table->file->multi_range_read_info(tab->ref.key, 10, 20,
+                                                  &bufsz, &flags, &cost);
+    if ((rows != HA_POS_ERROR) && !(flags & HA_MRR_USE_DEFAULT_IMPL) &&
         (!(flags & HA_MRR_NO_ASSOCIATION) || cache_level > 6) &&
         ((options & SELECT_DESCRIBE) ||
          (tab->cache ||

=== modified file 'storage/falcon/ha_falcon.cpp'
--- a/storage/falcon/ha_falcon.cpp	2008-08-16 06:08:18 +0000
+++ b/storage/falcon/ha_falcon.cpp	2008-08-26 20:38:29 +0000
@@ -1770,9 +1770,9 @@ ha_rows StorageInterface::multi_range_re
 }
 
 
-int StorageInterface::multi_range_read_info(uint keyno, uint n_ranges, 
-                                            uint keys, uint *bufsz, 
-                                            uint *flags, COST_VECT *cost)
+ha_rows StorageInterface::multi_range_read_info(uint keyno, uint n_ranges, 
+												uint keys, uint *bufsz, 
+												uint *flags, COST_VECT *cost)
 {
 	ha_rows res;
 	bool native_requested = test(*flags & HA_MRR_USE_DEFAULT_IMPL || 

=== modified file 'storage/falcon/ha_falcon.h'
--- a/storage/falcon/ha_falcon.h	2008-08-16 06:08:18 +0000
+++ b/storage/falcon/ha_falcon.h	2008-08-26 20:38:29 +0000
@@ -79,7 +79,7 @@ public:
 												void *seq_init_param, 
 												uint n_ranges, uint *bufsz,
 												uint *flags, COST_VECT *cost);
-	virtual int		multi_range_read_info(uint keyno, uint n_ranges, uint keys,
+	virtual ha_rows	multi_range_read_info(uint keyno, uint n_ranges, uint keys,
 										  uint *bufsz, uint *flags, COST_VECT *cost);
 	// Multi Range Read interface ends
 

=== modified file 'storage/innobase/handler/ha_innodb.cc'
--- a/storage/innobase/handler/ha_innodb.cc	2008-08-18 05:43:50 +0000
+++ b/storage/innobase/handler/ha_innodb.cc	2008-08-26 20:38:29 +0000
@@ -8340,8 +8340,9 @@ ha_rows ha_innobase::multi_range_read_in
                                  flags, cost);
 }
 
-int ha_innobase::multi_range_read_info(uint keyno, uint n_ranges, uint keys,
-                          uint *bufsz, uint *flags, COST_VECT *cost)
+ha_rows ha_innobase::multi_range_read_info(uint keyno, uint n_ranges, 
+                                           uint keys, uint *bufsz, 
+                                           uint *flags, COST_VECT *cost)
 {
   ds_mrr.init(this, table);
   return ds_mrr.dsmrr_info(keyno, n_ranges, keys, bufsz, flags, cost);

=== modified file 'storage/innobase/handler/ha_innodb.h'
--- a/storage/innobase/handler/ha_innodb.h	2008-06-12 00:08:07 +0000
+++ b/storage/innobase/handler/ha_innodb.h	2008-08-26 20:38:29 +0000
@@ -224,8 +224,8 @@ public:
                                       void *seq_init_param, 
                                       uint n_ranges, uint *bufsz,
                                       uint *flags, COST_VECT *cost);
-  int multi_range_read_info(uint keyno, uint n_ranges, uint keys,
-                            uint *bufsz, uint *flags, COST_VECT *cost);
+  ha_rows multi_range_read_info(uint keyno, uint n_ranges, uint keys,
+                                uint *bufsz, uint *flags, COST_VECT *cost);
   DsMrr_impl ds_mrr;
 
   int read_range_first(const key_range *start_key, const key_range *end_key,

=== modified file 'storage/myisam/ha_myisam.cc'
--- a/storage/myisam/ha_myisam.cc	2008-08-18 05:43:50 +0000
+++ b/storage/myisam/ha_myisam.cc	2008-08-26 20:38:29 +0000
@@ -2070,8 +2070,9 @@ ha_rows ha_myisam::multi_range_read_info
                                  flags, cost);
 }
 
-int ha_myisam::multi_range_read_info(uint keyno, uint n_ranges, uint keys,
-                                     uint *bufsz, uint *flags, COST_VECT *cost)
+ha_rows ha_myisam::multi_range_read_info(uint keyno, uint n_ranges, uint keys,
+                                         uint *bufsz, uint *flags,
+                                         COST_VECT *cost)
 {
   ds_mrr.init(this, table);
   return ds_mrr.dsmrr_info(keyno, n_ranges, keys, bufsz, flags, cost);

=== modified file 'storage/myisam/ha_myisam.h'
--- a/storage/myisam/ha_myisam.h	2008-07-21 16:38:27 +0000
+++ b/storage/myisam/ha_myisam.h	2008-08-26 20:38:29 +0000
@@ -164,8 +164,8 @@ public:
                                       void *seq_init_param, 
                                       uint n_ranges, uint *bufsz,
                                       uint *flags, COST_VECT *cost);
-  int multi_range_read_info(uint keyno, uint n_ranges, uint keys,
-                            uint *bufsz, uint *flags, COST_VECT *cost);
+  ha_rows multi_range_read_info(uint keyno, uint n_ranges, uint keys,
+                                uint *bufsz, uint *flags, COST_VECT *cost);
   
   /* Index condition pushdown implementation */
   Item *idx_cond_push(uint keyno, Item* idx_cond);

Thread
bzr push into mysql-6.0-bka-preview branch (sergefp:2645 to 2646)Sergey Petrunia28 Aug