From: Mattias Jonsson Date: March 3 2011 10:27pm Subject: bzr commit into mysql-trunk branch (mattias.jonsson:3723) List-Archive: http://lists.mysql.com/commits/132416 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit #At file:///C:/ade/mysql-bzr/topush-trunk/ based on revid:alexander.barkov@stripped 3723 Mattias Jonsson 2011-03-03 [merge] merge modified: mysql-test/r/partition.result mysql-test/t/partition.test sql/opt_range.cc === modified file 'mysql-test/r/partition.result' === modified file 'mysql-test/r/partition.result' --- a/mysql-test/r/partition.result 2011-03-01 14:47:01 +0000 +++ b/mysql-test/r/partition.result 2011-03-03 22:26:19 +0000 @@ -1,5 +1,18 @@ drop table if exists t1, t2; # +# Bug#59503: explain extended crash in get_mm_leaf +# +CREATE TABLE t1 (a VARCHAR(51) CHARACTER SET latin1) +ENGINE=MyISAM +PARTITION BY KEY (a) PARTITIONS 1; +INSERT INTO t1 VALUES ('a'),('b'),('c'); +EXPLAIN EXTENDED SELECT 1 FROM t1 WHERE a > 1; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where +Warnings: +Note 1003 select 1 AS `1` from `test`.`t1` where (`test`.`t1`.`a` > 1) +DROP TABLE t1; +# # Bug#57778: failed primary key add to partitioned innodb table # inconsistent and crashes # === modified file 'mysql-test/t/partition.test' --- a/mysql-test/t/partition.test 2011-03-01 14:47:01 +0000 +++ b/mysql-test/t/partition.test 2011-03-03 22:26:19 +0000 @@ -15,6 +15,16 @@ --enable_warnings --echo # +--echo # Bug#59503: explain extended crash in get_mm_leaf +--echo # +CREATE TABLE t1 (a VARCHAR(51) CHARACTER SET latin1) +ENGINE=MyISAM +PARTITION BY KEY (a) PARTITIONS 1; +INSERT INTO t1 VALUES ('a'),('b'),('c'); +EXPLAIN EXTENDED SELECT 1 FROM t1 WHERE a > 1; +DROP TABLE t1; + +--echo # --echo # Bug#57778: failed primary key add to partitioned innodb table --echo # inconsistent and crashes --echo # === modified file 'sql/opt_range.cc' --- a/sql/opt_range.cc 2011-02-02 22:02:29 +0000 +++ b/sql/opt_range.cc 2011-03-03 22:26:19 +0000 @@ -692,7 +692,8 @@ /* If true, the index descriptions describe real indexes (and it is ok to call field->optimize_range(real_keynr[...], ...). - Otherwise index description describes fake indexes. + Otherwise index description describes fake indexes, like a partitioning + expression. */ bool using_real_indexes; @@ -5780,7 +5781,8 @@ !(conf_func->compare_collation()->state & MY_CS_BINSORT && (type == Item_func::EQUAL_FUNC || type == Item_func::EQ_FUNC))) { - if (param->thd->lex->describe & DESCRIBE_EXTENDED) + if (param->using_real_indexes && + param->thd->lex->describe & DESCRIBE_EXTENDED) push_warning_printf( param->thd, MYSQL_ERROR::WARN_LEVEL_WARN, @@ -5912,7 +5914,8 @@ value->result_type() != STRING_RESULT && field->cmp_type() != value->result_type()) { - if (param->thd->lex->describe & DESCRIBE_EXTENDED) + if (param->using_real_indexes && + param->thd->lex->describe & DESCRIBE_EXTENDED) push_warning_printf( param->thd, MYSQL_ERROR::WARN_LEVEL_WARN, No bundle (reason: revision is a merge (you can force generation of a bundle with env var BZR_FORCE_BUNDLE=1)).