From: Pekka Nousiainen Date: July 25 2011 5:38pm Subject: bzr push into mysql-5.1-telco-7.0-wl4124-new1 branch (pekka.nousiainen:4417 to 4418) WL#4124 List-Archive: http://lists.mysql.com/commits/140462 Message-Id: <20110725173859.3D0D355875@sama.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 4418 Pekka Nousiainen 2011-07-25 wl#4124 x15_fix.diff bugfix: range where index cols not in order modified: mysql-test/suite/ndb/r/ndb_statistics1.result storage/ndb/src/ndbapi/NdbIndexStatImpl.cpp 4417 Pekka Nousiainen 2011-07-23 wl#4124 x14_fix.diff compile errors modified: sql/ha_ndb_index_stat.cc === modified file 'mysql-test/suite/ndb/r/ndb_statistics1.result' --- a/mysql-test/suite/ndb/r/ndb_statistics1.result 2011-07-23 14:38:08 +0000 +++ b/mysql-test/suite/ndb/r/ndb_statistics1.result 2011-07-25 17:11:41 +0000 @@ -141,7 +141,7 @@ id select_type table type possible_keys EXPLAIN SELECT * FROM t10000 WHERE J = 0 AND K > 1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t10000 range PRIMARY,J J 9 NULL 256 Using where with pushed condition +1 SIMPLE t10000 range PRIMARY,J J 9 NULL 2 Using where with pushed condition EXPLAIN SELECT * FROM t10000 WHERE J = 0 AND K < 1; id select_type table type possible_keys key key_len ref rows Extra @@ -165,7 +165,7 @@ id select_type table type possible_keys EXPLAIN SELECT * FROM t10000 WHERE I <> 0 AND J <> 1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t10000 range J,I J 5 NULL 9744 Using where with pushed condition +1 SIMPLE t10000 range J,I I 5 NULL 9902 Using where with pushed condition EXPLAIN SELECT * FROM t10000 WHERE J <> 1 AND I = 0; id select_type table type possible_keys key key_len ref rows Extra @@ -177,7 +177,7 @@ id select_type table type possible_keys EXPLAIN SELECT * FROM t10000 WHERE J <> 1 AND I <> 0; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t10000 range J,I J 5 NULL 9744 Using where with pushed condition +1 SIMPLE t10000 range J,I I 5 NULL 9902 Using where with pushed condition DROP TABLE t10,t100,t10000; End of 5.1 tests set @is_enable = @is_enable_default; === modified file 'storage/ndb/src/ndbapi/NdbIndexStatImpl.cpp' --- a/storage/ndb/src/ndbapi/NdbIndexStatImpl.cpp 2011-07-19 16:04:38 +0000 +++ b/storage/ndb/src/ndbapi/NdbIndexStatImpl.cpp 2011-07-25 17:11:41 +0000 @@ -1838,7 +1838,9 @@ NdbIndexStatImpl::convert_range(Range& r Uint32 len_out; for (uint i = 0; i < key_count; i++) { - const NdbRecord::Attr& attr = key_record->columns[i]; + const uint i2 = key_record->key_indexes[i]; + require(i2 < key_record->noOfColumns); + const NdbRecord::Attr& attr = key_record->columns[i2]; if (!attr.is_null(key)) { const char* data = key + attr.offset; No bundle (reason: useless for push emails).