List:Commits« Previous MessageNext Message »
From:Andrei Elkin Date:April 23 2012 9:04am
Subject:bzr push into mysql-trunk branch (andrei.elkin:3717 to 3719)
View as plain text  
 3719 Andrei Elkin	2012-04-23 [merge]
      null merge from 5.5.

 3718 Andrei Elkin	2012-04-23
      merge bug11754117-45670 fixes from 5.5: fixing error codes shift.
     @ mysql-test/extra/rpl_tests/rpl_loaddata.test
        error code shifted.
     @ mysql-test/extra/rpl_tests/rpl_stm_EE_err2.test
        error code shifted.
     @ mysql-test/r/explain.result
        results updated.
     @ mysql-test/r/get_diagnostics.result
        results updated.
     @ mysql-test/r/innodb_explain_json_non_select_all.result
        results updated.
     @ mysql-test/r/innodb_explain_json_non_select_none.result
        results updated.
     @ mysql-test/r/innodb_explain_non_select_all.result
        results updated.
     @ mysql-test/r/innodb_explain_non_select_none.result
        results updated.
     @ mysql-test/r/myisam_explain_json_non_select_all.result
        results updated.
     @ mysql-test/r/myisam_explain_json_non_select_none.result
        results updated.
     @ mysql-test/r/myisam_explain_non_select_all.result
        results updated.
     @ mysql-test/r/myisam_explain_non_select_none.result
        results updated.
     @ mysql-test/r/partition_error.result
        results updated.
     @ mysql-test/r/partition_exchange.result
        results updated.
     @ mysql-test/r/read_only_innodb.result
        results updated.
     @ mysql-test/r/sp-destruct.result
        results updated.
     @ mysql-test/r/type_time.result
        results updated.
     @ mysql-test/r/variables.result
        results updated.
     @ mysql-test/suite/binlog/r/binlog_rewrite.result
        results updated.
     @ mysql-test/suite/rpl/r/rpl_alter_repository.result
        results updated.
     @ mysql-test/suite/rpl/r/rpl_loaddata.result
        results updated.
     @ mysql-test/suite/rpl/r/rpl_mixed_binlog_max_cache_size.result
        results updated.
     @ mysql-test/suite/rpl/r/rpl_parallel_start_stop.result
        results updated.
     @ mysql-test/suite/rpl/r/rpl_row_binlog_max_cache_size.result
        results updated.
     @ mysql-test/suite/rpl/r/rpl_stm_EE_err2.result
        results updated.
     @ mysql-test/suite/rpl/r/rpl_stm_binlog_max_cache_size.result
        results updated.
     @ mysql-test/suite/rpl/r/rpl_stm_loaddata_concurrent.result
        results updated.
     @ mysql-test/suite/rpl/t/rpl_alter_repository.test
        error code shifted.
     @ mysql-test/suite/rpl/t/rpl_parallel_start_stop.test
        error code shifted.
     @ mysql-test/suite/sys_vars/r/max_binlog_cache_size_basic.result
        results updated.
     @ mysql-test/suite/sys_vars/r/max_binlog_stmt_cache_size_basic.result
        results updated.

    modified:
      mysql-test/extra/rpl_tests/rpl_loaddata.test
      mysql-test/extra/rpl_tests/rpl_stm_EE_err2.test
      mysql-test/r/explain.result
      mysql-test/r/get_diagnostics.result
      mysql-test/r/innodb_explain_json_non_select_all.result
      mysql-test/r/innodb_explain_json_non_select_none.result
      mysql-test/r/innodb_explain_non_select_all.result
      mysql-test/r/innodb_explain_non_select_none.result
      mysql-test/r/myisam_explain_json_non_select_all.result
      mysql-test/r/myisam_explain_json_non_select_none.result
      mysql-test/r/myisam_explain_non_select_all.result
      mysql-test/r/myisam_explain_non_select_none.result
      mysql-test/r/partition_error.result
      mysql-test/r/partition_exchange.result
      mysql-test/r/read_only_innodb.result
      mysql-test/r/sp-destruct.result
      mysql-test/r/type_time.result
      mysql-test/r/variables.result
      mysql-test/suite/binlog/r/binlog_rewrite.result
      mysql-test/suite/rpl/r/rpl_alter_repository.result
      mysql-test/suite/rpl/r/rpl_loaddata.result
      mysql-test/suite/rpl/r/rpl_mixed_binlog_max_cache_size.result
      mysql-test/suite/rpl/r/rpl_parallel_start_stop.result
      mysql-test/suite/rpl/r/rpl_row_binlog_max_cache_size.result
      mysql-test/suite/rpl/r/rpl_stm_EE_err2.result
      mysql-test/suite/rpl/r/rpl_stm_binlog_max_cache_size.result
      mysql-test/suite/rpl/r/rpl_stm_loaddata_concurrent.result
      mysql-test/suite/rpl/t/rpl_alter_repository.test
      mysql-test/suite/rpl/t/rpl_parallel_start_stop.test
      mysql-test/suite/sys_vars/r/max_binlog_cache_size_basic.result
      mysql-test/suite/sys_vars/r/max_binlog_stmt_cache_size_basic.result
 3717 Andrei Elkin	2012-04-23 [merge]
      merge from 5.5 repo

    modified:
      mysql-test/r/bug12427262.result
      mysql-test/suite/innodb/r/innodb-index-online.result
      mysql-test/suite/innodb/t/innodb-index-online.test
      storage/innobase/include/read0read.h
      storage/innobase/include/read0read.ic
      storage/innobase/read/read0read.cc
      storage/innobase/row/row0merge.cc
      storage/innobase/trx/trx0trx.cc
=== modified file 'mysql-test/extra/rpl_tests/rpl_loaddata.test'
--- a/mysql-test/extra/rpl_tests/rpl_loaddata.test	2012-04-18 13:06:39 +0000
+++ b/mysql-test/extra/rpl_tests/rpl_loaddata.test	2012-04-23 08:14:28 +0000
@@ -161,7 +161,7 @@ if (`SELECT @@global.binlog_format != 'R
   # Query causes error on master but not on slave. This causes the slave to
   # stop with error code 0 (which is wrong: see BUG#57287)
   # ER_MTS_INCONSISTENT_DATA
-  --let $slave_sql_errno= 0,1755
+  --let $slave_sql_errno= 0,1756
   --source include/wait_for_slave_sql_error.inc
   drop table t1, t2;
 }

=== modified file 'mysql-test/extra/rpl_tests/rpl_stm_EE_err2.test'
--- a/mysql-test/extra/rpl_tests/rpl_stm_EE_err2.test	2012-04-18 13:06:39 +0000
+++ b/mysql-test/extra/rpl_tests/rpl_stm_EE_err2.test	2012-04-23 08:14:28 +0000
@@ -29,7 +29,7 @@ call mtr.add_suppression("The slave coor
 
 --echo (expect different error codes on master and slave)
 # ER_MTS_INCONSISTENT_DATA
---let $slave_sql_errno= 0,1755
+--let $slave_sql_errno= 0,1756
 # can't print error text. MTS reports a separate error in this case.
 # Todo: to fix single-threaded-slave BUG#57287.
 --let $show_slave_sql_error= 0

=== modified file 'mysql-test/r/explain.result'
--- a/mysql-test/r/explain.result	2012-04-20 13:01:26 +0000
+++ b/mysql-test/r/explain.result	2012-04-23 08:14:28 +0000
@@ -419,8 +419,8 @@ EXPLAIN EXTENDED SELECT * FROM t1 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t1	index	PRIMARY	PRIMARY	1	NULL	5	100.00	Using where; Using index
 Warnings:
-Warning	1738	Cannot use ref access on index 'PRIMARY' due to type or collation conversion on field 'url'
-Warning	1738	Cannot use range access on index 'PRIMARY' due to type or collation conversion on field 'url'
+Warning	1739	Cannot use ref access on index 'PRIMARY' due to type or collation conversion on field 'url'
+Warning	1739	Cannot use range access on index 'PRIMARY' due to type or collation conversion on field 'url'
 Note	1003	/* select#1 */ select `test`.`t1`.`url` AS `url` from `test`.`t1` where (`test`.`t1`.`url` = 1)
 
 # Test that index can't be used for lookup due to collation mismatch
@@ -431,8 +431,8 @@ EXPLAIN EXTENDED SELECT * FROM t1 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t1	index	PRIMARY	PRIMARY	1	NULL	5	100.00	Using where; Using index
 Warnings:
-Warning	1738	Cannot use ref access on index 'PRIMARY' due to type or collation conversion on field 'url'
-Warning	1738	Cannot use range access on index 'PRIMARY' due to type or collation conversion on field 'url'
+Warning	1739	Cannot use ref access on index 'PRIMARY' due to type or collation conversion on field 'url'
+Warning	1739	Cannot use range access on index 'PRIMARY' due to type or collation conversion on field 'url'
 Note	1003	/* select#1 */ select `test`.`t1`.`url` AS `url` from `test`.`t1` where (`test`.`t1`.`url` = <cache>(('1' collate latin1_german2_ci)))
 
 # Normally, range access on primary key is done
@@ -452,7 +452,7 @@ EXPLAIN EXTENDED SELECT * FROM t1 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t1	index	PRIMARY	PRIMARY	1	NULL	5	100.00	Using where; Using index
 Warnings:
-Warning	1738	Cannot use range access on index 'PRIMARY' due to type or collation conversion on field 'url'
+Warning	1739	Cannot use range access on index 'PRIMARY' due to type or collation conversion on field 'url'
 Note	1003	/* select#1 */ select `test`.`t1`.`url` AS `url` from `test`.`t1` where (`test`.`t1`.`url` > 3)
 
 # Test that range access on index can't be done due to collation mismatch
@@ -464,7 +464,7 @@ EXPLAIN EXTENDED SELECT * FROM t1 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t1	index	PRIMARY	PRIMARY	1	NULL	5	100.00	Using where; Using index
 Warnings:
-Warning	1738	Cannot use range access on index 'PRIMARY' due to type or collation conversion on field 'url'
+Warning	1739	Cannot use range access on index 'PRIMARY' due to type or collation conversion on field 'url'
 Note	1003	/* select#1 */ select `test`.`t1`.`url` AS `url` from `test`.`t1` where (`test`.`t1`.`url` > <cache>(('3' collate latin1_german2_ci)))
 
 DROP TABLE t1;

=== modified file 'mysql-test/r/get_diagnostics.result'
--- a/mysql-test/r/get_diagnostics.result	2012-04-18 13:06:39 +0000
+++ b/mysql-test/r/get_diagnostics.result	2012-04-23 08:14:28 +0000
@@ -232,26 +232,26 @@ GET DIAGNOSTICS CONDITION "1" @var = CLA
 SELECT COUNT(max_questions) INTO @var FROM mysql.user;
 GET DIAGNOSTICS CONDITION 9999 @var = CLASS_ORIGIN;
 Warnings:
-Error	1757	Invalid condition number
+Error	1758	Invalid condition number
 GET DIAGNOSTICS CONDITION NULL @var = CLASS_ORIGIN;
 Warnings:
-Error	1757	Invalid condition number
-Error	1757	Invalid condition number
+Error	1758	Invalid condition number
+Error	1758	Invalid condition number
 GET DIAGNOSTICS CONDITION a @var = CLASS_ORIGIN;
 Warnings:
-Error	1757	Invalid condition number
-Error	1757	Invalid condition number
+Error	1758	Invalid condition number
+Error	1758	Invalid condition number
 Error	1054	Unknown column 'a' in 'field list'
 SELECT COUNT(max_questions) INTO @var FROM mysql.user;
 SET @cond = 1;
 GET DIAGNOSTICS CONDITION @cond @var1 = CLASS_ORIGIN;
 Warnings:
-Error	1757	Invalid condition number
+Error	1758	Invalid condition number
 SET @cond = "invalid";
 GET DIAGNOSTICS CONDITION @cond @var1 = CLASS_ORIGIN;
 Warnings:
-Error	1757	Invalid condition number
-Error	1757	Invalid condition number
+Error	1758	Invalid condition number
+Error	1758	Invalid condition number
 SELECT COUNT(max_questions) INTO @var FROM mysql.user;
 CREATE PROCEDURE p1()
 BEGIN
@@ -301,11 +301,11 @@ Warning	1292	Truncated incorrect DECIMAL
 GET DIAGNOSTICS CONDITION 99999 @var = CLASS_ORIGIN;
 Warnings:
 Warning	1292	Truncated incorrect DECIMAL value: ''
-Error	1757	Invalid condition number
+Error	1758	Invalid condition number
 SHOW WARNINGS;
 Level	Code	Message
 Warning	1292	Truncated incorrect DECIMAL value: ''
-Error	1757	Invalid condition number
+Error	1758	Invalid condition number
 
 # Statement information runtime
 
@@ -488,14 +488,14 @@ CALL p1();
 CAST(-19999999999999999999 AS SIGNED)	-9223372036854775808
 errno1	1292
 msg1	Truncated incorrect DECIMAL value: ''
-errno2	1757
+errno2	1758
 msg2	Invalid condition number
 Warnings:
 Level	Warning
 Code	1292
 Message	Truncated incorrect DECIMAL value: ''
 Level	Error
-Code	1757
+Code	1758
 Message	Invalid condition number
 DROP PROCEDURE p1;
 

=== modified file 'mysql-test/r/innodb_explain_json_non_select_all.result'
--- a/mysql-test/r/innodb_explain_json_non_select_all.result	2012-04-18 13:06:39 +0000
+++ b/mysql-test/r/innodb_explain_json_non_select_all.result	2012-04-23 08:14:28 +0000
@@ -2852,8 +2852,8 @@ EXPLAIN EXTENDED DELETE   FROM t1 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t1	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 EXPLAIN FORMAT=JSON DELETE   FROM t1 WHERE i > 10 AND i <= 18 ORDER BY i LIMIT 5;;
@@ -2878,18 +2878,18 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 FLUSH STATUS;
 FLUSH TABLES;
 EXPLAIN EXTENDED SELECT * FROM t1 WHERE i > 10 AND i <= 18 ORDER BY i LIMIT 5;
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t1	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 Note	1003	/* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`i` AS `i` from `test`.`t1` where ((`test`.`t1`.`i` > 10) and (`test`.`t1`.`i` <= 18)) order by `test`.`t1`.`i` limit 5
 # Status of EXPLAIN EXTENDED "equivalent" SELECT query execution
 Variable_name	Value
@@ -2914,10 +2914,10 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 Note	1003	/* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`i` AS `i` from `test`.`t1` where ((`test`.`t1`.`i` > 10) and (`test`.`t1`.`i` <= 18)) order by `test`.`t1`.`i` limit 5
 # Status of "equivalent" SELECT query execution:
 Variable_name	Value
@@ -3133,7 +3133,7 @@ EXPLAIN EXTENDED DELETE   FROM t2 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 EXPLAIN FORMAT=JSON DELETE   FROM t2 WHERE b = 10 ORDER BY a, c LIMIT 5;;
@@ -3158,7 +3158,7 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 FLUSH STATUS;
 FLUSH TABLES;
 EXPLAIN EXTENDED SELECT * FROM t2 WHERE b = 10 ORDER BY a, c LIMIT 5;
@@ -3226,7 +3226,7 @@ EXPLAIN EXTENDED DELETE   FROM t2 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 EXPLAIN FORMAT=JSON DELETE   FROM t2 WHERE b = 10 ORDER BY a, c LIMIT 5;;
@@ -3251,7 +3251,7 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 FLUSH STATUS;
 FLUSH TABLES;
 EXPLAIN EXTENDED SELECT * FROM t2 WHERE b = 10 ORDER BY a, c LIMIT 5;
@@ -3758,8 +3758,8 @@ EXPLAIN EXTENDED UPDATE t2 SET a = 10 WH
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 EXPLAIN FORMAT=JSON UPDATE t2 SET a = 10 WHERE i > 10 AND i <= 18 ORDER BY i LIMIT 5;;
@@ -3784,18 +3784,18 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 FLUSH STATUS;
 FLUSH TABLES;
 EXPLAIN EXTENDED SELECT * FROM t2     WHERE i > 10 AND i <= 18 ORDER BY i LIMIT 5;
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 Note	1003	/* select#1 */ select `test`.`t2`.`a` AS `a`,`test`.`t2`.`i` AS `i` from `test`.`t2` where ((`test`.`t2`.`i` > 10) and (`test`.`t2`.`i` <= 18)) order by `test`.`t2`.`i` limit 5
 # Status of EXPLAIN EXTENDED "equivalent" SELECT query execution
 Variable_name	Value
@@ -3820,10 +3820,10 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 Note	1003	/* select#1 */ select `test`.`t2`.`a` AS `a`,`test`.`t2`.`i` AS `i` from `test`.`t2` where ((`test`.`t2`.`i` > 10) and (`test`.`t2`.`i` <= 18)) order by `test`.`t2`.`i` limit 5
 # Status of "equivalent" SELECT query execution:
 Variable_name	Value
@@ -4041,7 +4041,7 @@ EXPLAIN EXTENDED UPDATE t2 SET d = 10 WH
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 EXPLAIN FORMAT=JSON UPDATE t2 SET d = 10 WHERE b = 10 ORDER BY a, c LIMIT 5;;
@@ -4066,7 +4066,7 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 FLUSH STATUS;
 FLUSH TABLES;
 EXPLAIN EXTENDED SELECT * FROM t2     WHERE b = 10 ORDER BY a, c LIMIT 5;
@@ -4134,7 +4134,7 @@ EXPLAIN EXTENDED UPDATE t2 SET d = 10 WH
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 EXPLAIN FORMAT=JSON UPDATE t2 SET d = 10 WHERE b = 10 ORDER BY a, c LIMIT 5;;
@@ -4159,7 +4159,7 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 FLUSH STATUS;
 FLUSH TABLES;
 EXPLAIN EXTENDED SELECT * FROM t2     WHERE b = 10 ORDER BY a, c LIMIT 5;

=== modified file 'mysql-test/r/innodb_explain_json_non_select_none.result'
--- a/mysql-test/r/innodb_explain_json_non_select_none.result	2012-04-18 13:06:39 +0000
+++ b/mysql-test/r/innodb_explain_json_non_select_none.result	2012-04-23 08:14:28 +0000
@@ -2869,8 +2869,8 @@ EXPLAIN EXTENDED DELETE   FROM t1 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t1	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 EXPLAIN FORMAT=JSON DELETE   FROM t1 WHERE i > 10 AND i <= 18 ORDER BY i LIMIT 5;;
@@ -2895,18 +2895,18 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 FLUSH STATUS;
 FLUSH TABLES;
 EXPLAIN EXTENDED SELECT * FROM t1 WHERE i > 10 AND i <= 18 ORDER BY i LIMIT 5;
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t1	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 Note	1003	/* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`i` AS `i` from `test`.`t1` where ((`test`.`t1`.`i` > 10) and (`test`.`t1`.`i` <= 18)) order by `test`.`t1`.`i` limit 5
 # Status of EXPLAIN EXTENDED "equivalent" SELECT query execution
 Variable_name	Value
@@ -2931,10 +2931,10 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 Note	1003	/* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`i` AS `i` from `test`.`t1` where ((`test`.`t1`.`i` > 10) and (`test`.`t1`.`i` <= 18)) order by `test`.`t1`.`i` limit 5
 # Status of "equivalent" SELECT query execution:
 Variable_name	Value
@@ -3150,7 +3150,7 @@ EXPLAIN EXTENDED DELETE   FROM t2 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 EXPLAIN FORMAT=JSON DELETE   FROM t2 WHERE b = 10 ORDER BY a, c LIMIT 5;;
@@ -3175,7 +3175,7 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 FLUSH STATUS;
 FLUSH TABLES;
 EXPLAIN EXTENDED SELECT * FROM t2 WHERE b = 10 ORDER BY a, c LIMIT 5;
@@ -3243,7 +3243,7 @@ EXPLAIN EXTENDED DELETE   FROM t2 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 EXPLAIN FORMAT=JSON DELETE   FROM t2 WHERE b = 10 ORDER BY a, c LIMIT 5;;
@@ -3268,7 +3268,7 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 FLUSH STATUS;
 FLUSH TABLES;
 EXPLAIN EXTENDED SELECT * FROM t2 WHERE b = 10 ORDER BY a, c LIMIT 5;
@@ -3775,8 +3775,8 @@ EXPLAIN EXTENDED UPDATE t2 SET a = 10 WH
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 EXPLAIN FORMAT=JSON UPDATE t2 SET a = 10 WHERE i > 10 AND i <= 18 ORDER BY i LIMIT 5;;
@@ -3801,18 +3801,18 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 FLUSH STATUS;
 FLUSH TABLES;
 EXPLAIN EXTENDED SELECT * FROM t2     WHERE i > 10 AND i <= 18 ORDER BY i LIMIT 5;
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 Note	1003	/* select#1 */ select `test`.`t2`.`a` AS `a`,`test`.`t2`.`i` AS `i` from `test`.`t2` where ((`test`.`t2`.`i` > 10) and (`test`.`t2`.`i` <= 18)) order by `test`.`t2`.`i` limit 5
 # Status of EXPLAIN EXTENDED "equivalent" SELECT query execution
 Variable_name	Value
@@ -3837,10 +3837,10 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 Note	1003	/* select#1 */ select `test`.`t2`.`a` AS `a`,`test`.`t2`.`i` AS `i` from `test`.`t2` where ((`test`.`t2`.`i` > 10) and (`test`.`t2`.`i` <= 18)) order by `test`.`t2`.`i` limit 5
 # Status of "equivalent" SELECT query execution:
 Variable_name	Value
@@ -4058,7 +4058,7 @@ EXPLAIN EXTENDED UPDATE t2 SET d = 10 WH
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 EXPLAIN FORMAT=JSON UPDATE t2 SET d = 10 WHERE b = 10 ORDER BY a, c LIMIT 5;;
@@ -4083,7 +4083,7 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 FLUSH STATUS;
 FLUSH TABLES;
 EXPLAIN EXTENDED SELECT * FROM t2     WHERE b = 10 ORDER BY a, c LIMIT 5;
@@ -4151,7 +4151,7 @@ EXPLAIN EXTENDED UPDATE t2 SET d = 10 WH
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 EXPLAIN FORMAT=JSON UPDATE t2 SET d = 10 WHERE b = 10 ORDER BY a, c LIMIT 5;;
@@ -4176,7 +4176,7 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 FLUSH STATUS;
 FLUSH TABLES;
 EXPLAIN EXTENDED SELECT * FROM t2     WHERE b = 10 ORDER BY a, c LIMIT 5;

=== modified file 'mysql-test/r/innodb_explain_non_select_all.result'
--- a/mysql-test/r/innodb_explain_non_select_all.result	2012-04-18 13:06:39 +0000
+++ b/mysql-test/r/innodb_explain_non_select_all.result	2012-04-23 08:14:28 +0000
@@ -1312,8 +1312,8 @@ EXPLAIN EXTENDED DELETE   FROM t1 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t1	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 FLUSH STATUS;
@@ -1322,10 +1322,10 @@ EXPLAIN EXTENDED SELECT * FROM t1 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t1	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 Note	1003	/* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`i` AS `i` from `test`.`t1` where ((`test`.`t1`.`i` > 10) and (`test`.`t1`.`i` <= 18)) order by `test`.`t1`.`i` limit 5
 # Status of EXPLAIN EXTENDED "equivalent" SELECT query execution
 Variable_name	Value
@@ -1459,7 +1459,7 @@ EXPLAIN EXTENDED DELETE   FROM t2 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 FLUSH STATUS;
@@ -1510,7 +1510,7 @@ EXPLAIN EXTENDED DELETE   FROM t2 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 FLUSH STATUS;
@@ -1780,8 +1780,8 @@ EXPLAIN EXTENDED UPDATE t2 SET a = 10 WH
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 FLUSH STATUS;
@@ -1790,10 +1790,10 @@ EXPLAIN EXTENDED SELECT * FROM t2     WH
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 Note	1003	/* select#1 */ select `test`.`t2`.`a` AS `a`,`test`.`t2`.`i` AS `i` from `test`.`t2` where ((`test`.`t2`.`i` > 10) and (`test`.`t2`.`i` <= 18)) order by `test`.`t2`.`i` limit 5
 # Status of EXPLAIN EXTENDED "equivalent" SELECT query execution
 Variable_name	Value
@@ -1928,7 +1928,7 @@ EXPLAIN EXTENDED UPDATE t2 SET d = 10 WH
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 FLUSH STATUS;
@@ -1979,7 +1979,7 @@ EXPLAIN EXTENDED UPDATE t2 SET d = 10 WH
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 FLUSH STATUS;

=== modified file 'mysql-test/r/innodb_explain_non_select_none.result'
--- a/mysql-test/r/innodb_explain_non_select_none.result	2012-04-18 13:06:39 +0000
+++ b/mysql-test/r/innodb_explain_non_select_none.result	2012-04-23 08:14:28 +0000
@@ -1314,8 +1314,8 @@ EXPLAIN EXTENDED DELETE   FROM t1 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t1	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 FLUSH STATUS;
@@ -1324,10 +1324,10 @@ EXPLAIN EXTENDED SELECT * FROM t1 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t1	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 Note	1003	/* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`i` AS `i` from `test`.`t1` where ((`test`.`t1`.`i` > 10) and (`test`.`t1`.`i` <= 18)) order by `test`.`t1`.`i` limit 5
 # Status of EXPLAIN EXTENDED "equivalent" SELECT query execution
 Variable_name	Value
@@ -1461,7 +1461,7 @@ EXPLAIN EXTENDED DELETE   FROM t2 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 FLUSH STATUS;
@@ -1512,7 +1512,7 @@ EXPLAIN EXTENDED DELETE   FROM t2 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 FLUSH STATUS;
@@ -1782,8 +1782,8 @@ EXPLAIN EXTENDED UPDATE t2 SET a = 10 WH
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 FLUSH STATUS;
@@ -1792,10 +1792,10 @@ EXPLAIN EXTENDED SELECT * FROM t2     WH
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 Note	1003	/* select#1 */ select `test`.`t2`.`a` AS `a`,`test`.`t2`.`i` AS `i` from `test`.`t2` where ((`test`.`t2`.`i` > 10) and (`test`.`t2`.`i` <= 18)) order by `test`.`t2`.`i` limit 5
 # Status of EXPLAIN EXTENDED "equivalent" SELECT query execution
 Variable_name	Value
@@ -1930,7 +1930,7 @@ EXPLAIN EXTENDED UPDATE t2 SET d = 10 WH
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 FLUSH STATUS;
@@ -1981,7 +1981,7 @@ EXPLAIN EXTENDED UPDATE t2 SET d = 10 WH
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 FLUSH STATUS;

=== modified file 'mysql-test/r/myisam_explain_json_non_select_all.result'
--- a/mysql-test/r/myisam_explain_json_non_select_all.result	2012-04-18 13:06:39 +0000
+++ b/mysql-test/r/myisam_explain_json_non_select_all.result	2012-04-23 08:14:28 +0000
@@ -2754,8 +2754,8 @@ EXPLAIN EXTENDED DELETE   FROM t1 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t1	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 EXPLAIN FORMAT=JSON DELETE   FROM t1 WHERE i > 10 AND i <= 18 ORDER BY i LIMIT 5;;
@@ -2780,18 +2780,18 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 FLUSH STATUS;
 FLUSH TABLES;
 EXPLAIN EXTENDED SELECT * FROM t1 WHERE i > 10 AND i <= 18 ORDER BY i LIMIT 5;
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t1	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 Note	1003	/* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`i` AS `i` from `test`.`t1` where ((`test`.`t1`.`i` > 10) and (`test`.`t1`.`i` <= 18)) order by `test`.`t1`.`i` limit 5
 # Status of EXPLAIN EXTENDED "equivalent" SELECT query execution
 Variable_name	Value
@@ -2816,10 +2816,10 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 Note	1003	/* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`i` AS `i` from `test`.`t1` where ((`test`.`t1`.`i` > 10) and (`test`.`t1`.`i` <= 18)) order by `test`.`t1`.`i` limit 5
 # Status of "equivalent" SELECT query execution:
 Variable_name	Value
@@ -3025,7 +3025,7 @@ EXPLAIN EXTENDED DELETE   FROM t2 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 EXPLAIN FORMAT=JSON DELETE   FROM t2 WHERE b = 10 ORDER BY a, c LIMIT 5;;
@@ -3050,7 +3050,7 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 FLUSH STATUS;
 FLUSH TABLES;
 EXPLAIN EXTENDED SELECT * FROM t2 WHERE b = 10 ORDER BY a, c LIMIT 5;
@@ -3114,7 +3114,7 @@ EXPLAIN EXTENDED DELETE   FROM t2 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 EXPLAIN FORMAT=JSON DELETE   FROM t2 WHERE b = 10 ORDER BY a, c LIMIT 5;;
@@ -3139,7 +3139,7 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 FLUSH STATUS;
 FLUSH TABLES;
 EXPLAIN EXTENDED SELECT * FROM t2 WHERE b = 10 ORDER BY a, c LIMIT 5;
@@ -3643,8 +3643,8 @@ EXPLAIN EXTENDED UPDATE t2 SET a = 10 WH
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 EXPLAIN FORMAT=JSON UPDATE t2 SET a = 10 WHERE i > 10 AND i <= 18 ORDER BY i LIMIT 5;;
@@ -3669,18 +3669,18 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 FLUSH STATUS;
 FLUSH TABLES;
 EXPLAIN EXTENDED SELECT * FROM t2     WHERE i > 10 AND i <= 18 ORDER BY i LIMIT 5;
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 Note	1003	/* select#1 */ select `test`.`t2`.`a` AS `a`,`test`.`t2`.`i` AS `i` from `test`.`t2` where ((`test`.`t2`.`i` > 10) and (`test`.`t2`.`i` <= 18)) order by `test`.`t2`.`i` limit 5
 # Status of EXPLAIN EXTENDED "equivalent" SELECT query execution
 Variable_name	Value
@@ -3705,10 +3705,10 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 Note	1003	/* select#1 */ select `test`.`t2`.`a` AS `a`,`test`.`t2`.`i` AS `i` from `test`.`t2` where ((`test`.`t2`.`i` > 10) and (`test`.`t2`.`i` <= 18)) order by `test`.`t2`.`i` limit 5
 # Status of "equivalent" SELECT query execution:
 Variable_name	Value
@@ -3916,7 +3916,7 @@ EXPLAIN EXTENDED UPDATE t2 SET d = 10 WH
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 EXPLAIN FORMAT=JSON UPDATE t2 SET d = 10 WHERE b = 10 ORDER BY a, c LIMIT 5;;
@@ -3941,7 +3941,7 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 FLUSH STATUS;
 FLUSH TABLES;
 EXPLAIN EXTENDED SELECT * FROM t2     WHERE b = 10 ORDER BY a, c LIMIT 5;
@@ -4004,7 +4004,7 @@ EXPLAIN EXTENDED UPDATE t2 SET d = 10 WH
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 EXPLAIN FORMAT=JSON UPDATE t2 SET d = 10 WHERE b = 10 ORDER BY a, c LIMIT 5;;
@@ -4029,7 +4029,7 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 FLUSH STATUS;
 FLUSH TABLES;
 EXPLAIN EXTENDED SELECT * FROM t2     WHERE b = 10 ORDER BY a, c LIMIT 5;

=== modified file 'mysql-test/r/myisam_explain_json_non_select_none.result'
--- a/mysql-test/r/myisam_explain_json_non_select_none.result	2012-04-18 13:06:39 +0000
+++ b/mysql-test/r/myisam_explain_json_non_select_none.result	2012-04-23 08:14:28 +0000
@@ -2769,8 +2769,8 @@ EXPLAIN EXTENDED DELETE   FROM t1 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t1	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 EXPLAIN FORMAT=JSON DELETE   FROM t1 WHERE i > 10 AND i <= 18 ORDER BY i LIMIT 5;;
@@ -2795,18 +2795,18 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 FLUSH STATUS;
 FLUSH TABLES;
 EXPLAIN EXTENDED SELECT * FROM t1 WHERE i > 10 AND i <= 18 ORDER BY i LIMIT 5;
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t1	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 Note	1003	/* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`i` AS `i` from `test`.`t1` where ((`test`.`t1`.`i` > 10) and (`test`.`t1`.`i` <= 18)) order by `test`.`t1`.`i` limit 5
 # Status of EXPLAIN EXTENDED "equivalent" SELECT query execution
 Variable_name	Value
@@ -2831,10 +2831,10 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 Note	1003	/* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`i` AS `i` from `test`.`t1` where ((`test`.`t1`.`i` > 10) and (`test`.`t1`.`i` <= 18)) order by `test`.`t1`.`i` limit 5
 # Status of "equivalent" SELECT query execution:
 Variable_name	Value
@@ -3040,7 +3040,7 @@ EXPLAIN EXTENDED DELETE   FROM t2 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 EXPLAIN FORMAT=JSON DELETE   FROM t2 WHERE b = 10 ORDER BY a, c LIMIT 5;;
@@ -3065,7 +3065,7 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 FLUSH STATUS;
 FLUSH TABLES;
 EXPLAIN EXTENDED SELECT * FROM t2 WHERE b = 10 ORDER BY a, c LIMIT 5;
@@ -3129,7 +3129,7 @@ EXPLAIN EXTENDED DELETE   FROM t2 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 EXPLAIN FORMAT=JSON DELETE   FROM t2 WHERE b = 10 ORDER BY a, c LIMIT 5;;
@@ -3154,7 +3154,7 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 FLUSH STATUS;
 FLUSH TABLES;
 EXPLAIN EXTENDED SELECT * FROM t2 WHERE b = 10 ORDER BY a, c LIMIT 5;
@@ -3658,8 +3658,8 @@ EXPLAIN EXTENDED UPDATE t2 SET a = 10 WH
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 EXPLAIN FORMAT=JSON UPDATE t2 SET a = 10 WHERE i > 10 AND i <= 18 ORDER BY i LIMIT 5;;
@@ -3684,18 +3684,18 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 FLUSH STATUS;
 FLUSH TABLES;
 EXPLAIN EXTENDED SELECT * FROM t2     WHERE i > 10 AND i <= 18 ORDER BY i LIMIT 5;
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 Note	1003	/* select#1 */ select `test`.`t2`.`a` AS `a`,`test`.`t2`.`i` AS `i` from `test`.`t2` where ((`test`.`t2`.`i` > 10) and (`test`.`t2`.`i` <= 18)) order by `test`.`t2`.`i` limit 5
 # Status of EXPLAIN EXTENDED "equivalent" SELECT query execution
 Variable_name	Value
@@ -3720,10 +3720,10 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 Note	1003	/* select#1 */ select `test`.`t2`.`a` AS `a`,`test`.`t2`.`i` AS `i` from `test`.`t2` where ((`test`.`t2`.`i` > 10) and (`test`.`t2`.`i` <= 18)) order by `test`.`t2`.`i` limit 5
 # Status of "equivalent" SELECT query execution:
 Variable_name	Value
@@ -3931,7 +3931,7 @@ EXPLAIN EXTENDED UPDATE t2 SET d = 10 WH
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 EXPLAIN FORMAT=JSON UPDATE t2 SET d = 10 WHERE b = 10 ORDER BY a, c LIMIT 5;;
@@ -3956,7 +3956,7 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 FLUSH STATUS;
 FLUSH TABLES;
 EXPLAIN EXTENDED SELECT * FROM t2     WHERE b = 10 ORDER BY a, c LIMIT 5;
@@ -4019,7 +4019,7 @@ EXPLAIN EXTENDED UPDATE t2 SET d = 10 WH
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 EXPLAIN FORMAT=JSON UPDATE t2 SET d = 10 WHERE b = 10 ORDER BY a, c LIMIT 5;;
@@ -4044,7 +4044,7 @@ EXPLAIN
   } /* query_block */
 }
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 FLUSH STATUS;
 FLUSH TABLES;
 EXPLAIN EXTENDED SELECT * FROM t2     WHERE b = 10 ORDER BY a, c LIMIT 5;

=== modified file 'mysql-test/r/myisam_explain_non_select_all.result'
--- a/mysql-test/r/myisam_explain_non_select_all.result	2012-04-18 13:06:39 +0000
+++ b/mysql-test/r/myisam_explain_non_select_all.result	2012-04-23 08:14:28 +0000
@@ -1227,8 +1227,8 @@ EXPLAIN EXTENDED DELETE   FROM t1 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t1	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 FLUSH STATUS;
@@ -1237,10 +1237,10 @@ EXPLAIN EXTENDED SELECT * FROM t1 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t1	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 Note	1003	/* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`i` AS `i` from `test`.`t1` where ((`test`.`t1`.`i` > 10) and (`test`.`t1`.`i` <= 18)) order by `test`.`t1`.`i` limit 5
 # Status of EXPLAIN EXTENDED "equivalent" SELECT query execution
 Variable_name	Value
@@ -1364,7 +1364,7 @@ EXPLAIN EXTENDED DELETE   FROM t2 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 FLUSH STATUS;
@@ -1411,7 +1411,7 @@ EXPLAIN EXTENDED DELETE   FROM t2 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 FLUSH STATUS;
@@ -1674,8 +1674,8 @@ EXPLAIN EXTENDED UPDATE t2 SET a = 10 WH
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 FLUSH STATUS;
@@ -1684,10 +1684,10 @@ EXPLAIN EXTENDED SELECT * FROM t2     WH
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 Note	1003	/* select#1 */ select `test`.`t2`.`a` AS `a`,`test`.`t2`.`i` AS `i` from `test`.`t2` where ((`test`.`t2`.`i` > 10) and (`test`.`t2`.`i` <= 18)) order by `test`.`t2`.`i` limit 5
 # Status of EXPLAIN EXTENDED "equivalent" SELECT query execution
 Variable_name	Value
@@ -1812,7 +1812,7 @@ EXPLAIN EXTENDED UPDATE t2 SET d = 10 WH
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 FLUSH STATUS;
@@ -1858,7 +1858,7 @@ EXPLAIN EXTENDED UPDATE t2 SET d = 10 WH
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 FLUSH STATUS;

=== modified file 'mysql-test/r/myisam_explain_non_select_none.result'
--- a/mysql-test/r/myisam_explain_non_select_none.result	2012-04-18 13:06:39 +0000
+++ b/mysql-test/r/myisam_explain_non_select_none.result	2012-04-23 08:14:28 +0000
@@ -1227,8 +1227,8 @@ EXPLAIN EXTENDED DELETE   FROM t1 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t1	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 FLUSH STATUS;
@@ -1237,10 +1237,10 @@ EXPLAIN EXTENDED SELECT * FROM t1 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t1	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 Note	1003	/* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`i` AS `i` from `test`.`t1` where ((`test`.`t1`.`i` > 10) and (`test`.`t1`.`i` <= 18)) order by `test`.`t1`.`i` limit 5
 # Status of EXPLAIN EXTENDED "equivalent" SELECT query execution
 Variable_name	Value
@@ -1364,7 +1364,7 @@ EXPLAIN EXTENDED DELETE   FROM t2 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 FLUSH STATUS;
@@ -1411,7 +1411,7 @@ EXPLAIN EXTENDED DELETE   FROM t2 WHERE 
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 FLUSH STATUS;
@@ -1674,8 +1674,8 @@ EXPLAIN EXTENDED UPDATE t2 SET a = 10 WH
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 FLUSH STATUS;
@@ -1684,10 +1684,10 @@ EXPLAIN EXTENDED SELECT * FROM t2     WH
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	i	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
-Warning	1738	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
+Warning	1739	Cannot use range access on index 'i' due to type or collation conversion on field 'i'
 Note	1003	/* select#1 */ select `test`.`t2`.`a` AS `a`,`test`.`t2`.`i` AS `i` from `test`.`t2` where ((`test`.`t2`.`i` > 10) and (`test`.`t2`.`i` <= 18)) order by `test`.`t2`.`i` limit 5
 # Status of EXPLAIN EXTENDED "equivalent" SELECT query execution
 Variable_name	Value
@@ -1812,7 +1812,7 @@ EXPLAIN EXTENDED UPDATE t2 SET d = 10 WH
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 FLUSH STATUS;
@@ -1858,7 +1858,7 @@ EXPLAIN EXTENDED UPDATE t2 SET d = 10 WH
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	t2	ALL	a	NULL	NULL	NULL	26	100.00	Using where; Using filesort
 Warnings:
-Warning	1738	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
+Warning	1739	Cannot use range access on index 'a' due to type or collation conversion on field 'b'
 # Status of EXPLAIN EXTENDED query
 Variable_name	Value
 FLUSH STATUS;

=== modified file 'mysql-test/r/partition_error.result'
--- a/mysql-test/r/partition_error.result	2012-04-11 13:50:46 +0000
+++ b/mysql-test/r/partition_error.result	2012-04-23 08:14:28 +0000
@@ -1823,8 +1823,8 @@ PARTITION pMax VALUES LESS THAN MAXVALUE
 "This is a long comment (2050 ascii characters)   50 pMax partition comment .80-!.................. 100 ................................................................................................ 200....................................................................................................................................................................................................................................................................................................... 500 ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................!
 ........... 1000 ..............1024-|.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... 1500 .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................!
 ....................... 2000 .................................!
 .....2048-|++"
  (SUBPARTITION `pMaxsp0` ,SUBPARTITION `pMaxsp1` ));
 Warnings:
-Warning	1792	Comment for table partition 'pUpTo10' is too long (max = 1024)
-Warning	1792	Comment for table partition 'pMax' is too long (max = 1024)
+Warning	1793	Comment for table partition 'pUpTo10' is too long (max = 1024)
+Warning	1793	Comment for table partition 'pMax' is too long (max = 1024)
 SHOW CREATE TABLE t1;
 Table	Create Table
 t1	CREATE TABLE `t1` (

=== modified file 'mysql-test/r/partition_exchange.result'
--- a/mysql-test/r/partition_exchange.result	2012-04-18 13:06:39 +0000
+++ b/mysql-test/r/partition_exchange.result	2012-04-23 08:14:28 +0000
@@ -894,8 +894,8 @@ ALTER TABLE tp EXCHANGE PARTITION p0 WIT
 ERROR HY000: Non matching attribute 'MAX_ROWS' between partition and table
 SHOW WARNINGS;
 Level	Code	Message
-Error	1730	Non matching attribute 'MAX_ROWS' between partition and table
-Error	1730	Non matching attribute 'MIN_ROWS' between partition and table
+Error	1731	Non matching attribute 'MAX_ROWS' between partition and table
+Error	1731	Non matching attribute 'MIN_ROWS' between partition and table
 DROP TABLE t;
 RENAME TABLE tmp2 TO t;
 ALTER TABLE t ADD KEY ba_key (b, a);

=== modified file 'mysql-test/r/read_only_innodb.result'
--- a/mysql-test/r/read_only_innodb.result	2012-04-18 13:06:39 +0000
+++ b/mysql-test/r/read_only_innodb.result	2012-04-23 08:14:28 +0000
@@ -97,7 +97,7 @@ a
 2
 ROLLBACK;
 Warnings:
-Warning	1750	The creation of some temporary tables could not be rolled back.
+Warning	1751	The creation of some temporary tables could not be rolled back.
 SELECT * FROM temp;
 a
 DROP TABLE temp;

=== modified file 'mysql-test/r/sp-destruct.result'
--- a/mysql-test/r/sp-destruct.result	2012-04-18 13:06:39 +0000
+++ b/mysql-test/r/sp-destruct.result	2012-04-23 08:14:28 +0000
@@ -148,7 +148,7 @@ alter table mysql.proc drop column type;
 # The below statement should not cause assertion failure.
 drop database mysqltest;
 Warnings:
-Error	1726	Column count of mysql.proc is wrong. Expected 20, found 19. The table is probably corrupted
+Error	1727	Column count of mysql.proc is wrong. Expected 20, found 19. The table is probably corrupted
 # Restore mysql.proc.
 drop table mysql.proc;
 #
@@ -165,7 +165,7 @@ CREATE PROCEDURE db1.p1() SET @foo = 10;
 ALTER TABLE mysql.proc MODIFY comment CHAR (32);
 DROP DATABASE db1;
 Warnings:
-Error	1727	Cannot load from mysql.proc. The table is probably corrupted
+Error	1728	Cannot load from mysql.proc. The table is probably corrupted
 # Restore mysql.proc
 DROP TABLE mysql.proc;
 RENAME TABLE proc_backup TO mysql.proc;

=== modified file 'mysql-test/r/type_time.result'
--- a/mysql-test/r/type_time.result	2012-04-18 13:06:39 +0000
+++ b/mysql-test/r/type_time.result	2012-04-23 08:14:28 +0000
@@ -534,7 +534,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t1	index	col_time_key	col_time_key	4	NULL	5	100.00	Using index
 1	SIMPLE	t2	ALL	NULL	NULL	NULL	NULL	5	100.00	Using where; Using join buffer (Block Nested Loop)
 Warnings:
-Warning	1738	Cannot use ref access on index 'col_time_key' due to type or collation conversion on field 'col_time_key'
+Warning	1739	Cannot use ref access on index 'col_time_key' due to type or collation conversion on field 'col_time_key'
 Note	1003	/* select#1 */ select `test`.`t1`.`col_time_key` AS `col_time_key`,`test`.`t2`.`col_datetime_key` AS `col_datetime_key` from `test`.`t1` FORCE INDEX (`col_time_key`) straight_join `test`.`t2` IGNORE INDEX (`col_datetime_key`) where (`test`.`t1`.`col_time_key` = `test`.`t2`.`col_datetime_key`)
 SELECT * FROM
 t1 force INDEX (col_time_key)
@@ -556,7 +556,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t1	index	col_time_key	col_time_key	4	NULL	5	100.00	Using index
 1	SIMPLE	t2	ALL	NULL	NULL	NULL	NULL	5	100.00	Using where; Using join buffer (Block Nested Loop)
 Warnings:
-Warning	1738	Cannot use ref access on index 'col_time_key' due to type or collation conversion on field 'col_time_key'
+Warning	1739	Cannot use ref access on index 'col_time_key' due to type or collation conversion on field 'col_time_key'
 Note	1003	/* select#1 */ select `test`.`t1`.`col_time_key` AS `col_time_key`,`test`.`t2`.`col_datetime_key` AS `col_datetime_key` from `test`.`t1` FORCE INDEX (`col_time_key`) straight_join `test`.`t2` IGNORE INDEX (`col_datetime_key`) where (`test`.`t2`.`col_datetime_key` = `test`.`t1`.`col_time_key`)
 SELECT * FROM
 t1 force INDEX (col_time_key)
@@ -578,7 +578,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t1	index	col_time_key	col_time_key	4	NULL	5	100.00	Using where; Using index
 1	SIMPLE	t2	ref	col_datetime_key	col_datetime_key	6	test.t1.col_time_key	1	100.00	Using where; Using index
 Warnings:
-Warning	1738	Cannot use ref access on index 'col_time_key' due to type or collation conversion on field 'col_time_key'
+Warning	1739	Cannot use ref access on index 'col_time_key' due to type or collation conversion on field 'col_time_key'
 Note	1003	/* select#1 */ select `test`.`t1`.`col_time_key` AS `col_time_key`,`test`.`t2`.`col_datetime_key` AS `col_datetime_key` from `test`.`t1` FORCE INDEX (`col_time_key`) straight_join `test`.`t2` FORCE INDEX (`col_datetime_key`) where (`test`.`t1`.`col_time_key` = `test`.`t2`.`col_datetime_key`)
 SELECT * FROM
 t1 force INDEX (col_time_key)
@@ -600,7 +600,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t1	index	col_time_key	col_time_key	4	NULL	5	100.00	Using where; Using index
 1	SIMPLE	t2	ref	col_datetime_key	col_datetime_key	6	test.t1.col_time_key	1	100.00	Using where; Using index
 Warnings:
-Warning	1738	Cannot use ref access on index 'col_time_key' due to type or collation conversion on field 'col_time_key'
+Warning	1739	Cannot use ref access on index 'col_time_key' due to type or collation conversion on field 'col_time_key'
 Note	1003	/* select#1 */ select `test`.`t1`.`col_time_key` AS `col_time_key`,`test`.`t2`.`col_datetime_key` AS `col_datetime_key` from `test`.`t1` FORCE INDEX (`col_time_key`) straight_join `test`.`t2` FORCE INDEX (`col_datetime_key`) where (`test`.`t2`.`col_datetime_key` = `test`.`t1`.`col_time_key`)
 SELECT * FROM
 t1 force INDEX (col_time_key)
@@ -664,7 +664,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t2	ALL	NULL	NULL	NULL	NULL	5	100.00	NULL
 1	SIMPLE	t1	ALL	col_time_key	NULL	NULL	NULL	5	100.00	Range checked for each record (index map: 0x1)
 Warnings:
-Warning	1738	Cannot use ref access on index 'col_time_key' due to type or collation conversion on field 'col_time_key'
+Warning	1739	Cannot use ref access on index 'col_time_key' due to type or collation conversion on field 'col_time_key'
 Note	1003	/* select#1 */ select `test`.`t2`.`col_datetime_key` AS `col_datetime_key`,`test`.`t1`.`col_time_key` AS `col_time_key` from `test`.`t2` IGNORE INDEX (`col_datetime_key`) straight_join `test`.`t1` FORCE INDEX (`col_time_key`) where (`test`.`t1`.`col_time_key` = `test`.`t2`.`col_datetime_key`)
 SELECT * FROM
 t2 ignore INDEX (col_datetime_key)
@@ -686,7 +686,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t2	ALL	NULL	NULL	NULL	NULL	5	100.00	NULL
 1	SIMPLE	t1	ALL	col_time_key	NULL	NULL	NULL	5	100.00	Range checked for each record (index map: 0x1)
 Warnings:
-Warning	1738	Cannot use ref access on index 'col_time_key' due to type or collation conversion on field 'col_time_key'
+Warning	1739	Cannot use ref access on index 'col_time_key' due to type or collation conversion on field 'col_time_key'
 Note	1003	/* select#1 */ select `test`.`t2`.`col_datetime_key` AS `col_datetime_key`,`test`.`t1`.`col_time_key` AS `col_time_key` from `test`.`t2` IGNORE INDEX (`col_datetime_key`) straight_join `test`.`t1` FORCE INDEX (`col_time_key`) where (`test`.`t2`.`col_datetime_key` = `test`.`t1`.`col_time_key`)
 SELECT * FROM
 t2 ignore INDEX (col_datetime_key)
@@ -750,7 +750,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t2	index	col_datetime_key	col_datetime_key	6	NULL	5	100.00	Using index
 1	SIMPLE	t1	ALL	col_time_key	NULL	NULL	NULL	5	100.00	Range checked for each record (index map: 0x1)
 Warnings:
-Warning	1738	Cannot use ref access on index 'col_time_key' due to type or collation conversion on field 'col_time_key'
+Warning	1739	Cannot use ref access on index 'col_time_key' due to type or collation conversion on field 'col_time_key'
 Note	1003	/* select#1 */ select `test`.`t2`.`col_datetime_key` AS `col_datetime_key`,`test`.`t1`.`col_time_key` AS `col_time_key` from `test`.`t2` FORCE INDEX (`col_datetime_key`) straight_join `test`.`t1` FORCE INDEX (`col_time_key`) where (`test`.`t1`.`col_time_key` = `test`.`t2`.`col_datetime_key`)
 SELECT * FROM
 t2 force INDEX (col_datetime_key)
@@ -772,7 +772,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t2	index	col_datetime_key	col_datetime_key	6	NULL	5	100.00	Using index
 1	SIMPLE	t1	ALL	col_time_key	NULL	NULL	NULL	5	100.00	Range checked for each record (index map: 0x1)
 Warnings:
-Warning	1738	Cannot use ref access on index 'col_time_key' due to type or collation conversion on field 'col_time_key'
+Warning	1739	Cannot use ref access on index 'col_time_key' due to type or collation conversion on field 'col_time_key'
 Note	1003	/* select#1 */ select `test`.`t2`.`col_datetime_key` AS `col_datetime_key`,`test`.`t1`.`col_time_key` AS `col_time_key` from `test`.`t2` FORCE INDEX (`col_datetime_key`) straight_join `test`.`t1` FORCE INDEX (`col_time_key`) where (`test`.`t2`.`col_datetime_key` = `test`.`t1`.`col_time_key`)
 SELECT * FROM
 t2 force INDEX (col_datetime_key)

=== modified file 'mysql-test/r/variables.result'
--- a/mysql-test/r/variables.result	2012-04-18 13:06:39 +0000
+++ b/mysql-test/r/variables.result	2012-04-23 08:14:28 +0000
@@ -1526,7 +1526,7 @@ SET SQL_MODE=DEFAULT;
 SET @@global.max_binlog_cache_size=-1;
 Warnings:
 Warning	1292	Truncated incorrect max_binlog_cache_size value: '-1'
-Warning	1737	Option binlog_cache_size (32768) is greater than max_binlog_cache_size (4096); setting binlog_cache_size equal to max_binlog_cache_size.
+Warning	1738	Option binlog_cache_size (32768) is greater than max_binlog_cache_size (4096); setting binlog_cache_size equal to max_binlog_cache_size.
 SET @@global.max_join_size=0;
 Warnings:
 Warning	1292	Truncated incorrect max_join_size value: '0'

=== modified file 'mysql-test/suite/binlog/r/binlog_rewrite.result'
--- a/mysql-test/suite/binlog/r/binlog_rewrite.result	2012-04-11 13:50:46 +0000
+++ b/mysql-test/suite/binlog/r/binlog_rewrite.result	2012-04-23 08:14:28 +0000
@@ -28,8 +28,8 @@ GRANT ALL on *.* TO test_user1 IDENTIFIE
 CREATE USER test_user2 IDENTIFIED BY 'azundris2';
 CHANGE MASTER TO MASTER_PASSWORD='azundris3';
 Warnings:
-Note	1758	Sending passwords in plain text without SSL/TLS is extremely insecure.
-Note	1759	Storing MySQL user name or password information in the master.info repository is not secure and is therefore not recommended. Please see the MySQL Manual for more about this issue and possible alternatives.
+Note	1759	Sending passwords in plain text without SSL/TLS is extremely insecure.
+Note	1760	Storing MySQL user name or password information in the master.info repository is not secure and is therefore not recommended. Please see the MySQL Manual for more about this issue and possible alternatives.
 CREATE USER 'test_user4'@'localhost';
 SET PASSWORD FOR 'test_user4'@'localhost' = PASSWORD('azundris4');
 include/show_binlog_events.inc

=== modified file 'mysql-test/suite/rpl/r/rpl_alter_repository.result'
--- a/mysql-test/suite/rpl/r/rpl_alter_repository.result	2012-04-18 13:06:39 +0000
+++ b/mysql-test/suite/rpl/r/rpl_alter_repository.result	2012-04-23 08:14:28 +0000
@@ -46,7 +46,7 @@ call mtr.add_suppression(" Error while c
 INSERT INTO t_innodb VALUES (1), (2), (3);
 ALTER TABLE mysql.slave_relay_log_info DROP COLUMN Number_of_workers;
 INSERT INTO t_innodb VALUES (1), (2), (3);
-include/wait_for_slave_sql_error.inc [errno=1726]
+include/wait_for_slave_sql_error.inc [errno=1727]
 Last_SQL_Error = 'Column count of mysql.slave_relay_log_info is wrong. Expected 8, found 7. The table is probably corrupted'
 include/stop_slave_io.inc
 include/rpl_restart_server.inc [server_number=2 parameters: --relay-log-info-repository=FILE --skip-slave-start]
@@ -57,7 +57,7 @@ include/start_slave.inc
 INSERT INTO t_innodb VALUES (1), (2), (3);
 ALTER TABLE mysql.slave_relay_log_info DROP COLUMN Number_of_workers;
 INSERT INTO t_innodb VALUES (1), (2), (3);
-include/wait_for_slave_sql_error.inc [errno=1726]
+include/wait_for_slave_sql_error.inc [errno=1727]
 Last_SQL_Error = 'Column count of mysql.slave_relay_log_info is wrong. Expected 8, found 7. The table is probably corrupted'
 include/stop_slave_io.inc
 START SLAVE SQL_THREAD;

=== added file 'mysql-test/suite/rpl/r/rpl_auto_increment_bug45679.result'
--- a/mysql-test/suite/rpl/r/rpl_auto_increment_bug45679.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl/r/rpl_auto_increment_bug45679.result	2012-04-23 09:02:13 +0000
@@ -0,0 +1,44 @@
+include/master-slave.inc
+Warnings:
+Note	####	Sending passwords in plain text without SSL/TLS is extremely insecure.
+Note	####	Storing MySQL user name or password information in the master.info repository is not secure and is therefore not recommended. Please see the MySQL Manual for more about this issue and possible alternatives.
+[connection master]
+call mtr.add_suppression('Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT.');
+create table tm (b int auto_increment, a int, primary key (a,b)) engine= myisam;
+create table ti (b int auto_increment, a int, primary key (a,b)) engine= innodb;
+ERROR 42000: Incorrect table definition; there can be only one auto column and it must be defined as a key
+create table ti (b int auto_increment, a int, primary key (b,a)) engine= innodb;
+set @@binlog_format=statement;
+*** autoincrement field is not the first in PK warning must be there: ***
+insert into tm set b=null, a=1;
+Warnings:
+Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. INSERT into autoincrement field which is not the first part in the composed primary key is unsafe.
+show warnings;
+Level	Code	Message
+Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. INSERT into autoincrement field which is not the first part in the composed primary key is unsafe.
+*** no warning when autoincrement is the first in PK
+insert into ti set b=null, a=1;
+show warnings;
+Level	Code	Message
+create function multi_part_pk_with_autoinc (arg int)
+returns int
+begin
+insert into tm set b=null, a=arg;
+return arg;
+end//
+select multi_part_pk_with_autoinc (3);
+multi_part_pk_with_autoinc (3)
+3
+Warnings:
+Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly.
+Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. INSERT into autoincrement field which is not the first part in the composed primary key is unsafe.
+*** autoincrement field is not the first in PK warning must be there: ***
+show warnings;
+Level	Code	Message
+Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly.
+Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. INSERT into autoincrement field which is not the first part in the composed primary key is unsafe.
+set @@binlog_format=mixed;
+insert into tm set b=null, a=2;
+drop table tm, ti;
+drop function multi_part_pk_with_autoinc;
+include/rpl_end.inc

=== modified file 'mysql-test/suite/rpl/r/rpl_filter_tables_not_exist.result'
--- a/mysql-test/suite/rpl/r/rpl_filter_tables_not_exist.result	2012-03-23 20:11:19 +0000
+++ b/mysql-test/suite/rpl/r/rpl_filter_tables_not_exist.result	2012-04-21 12:11:15 +0000
@@ -118,4 +118,25 @@ id	c
 3	3
 [on master]
 drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
+CREATE TABLE test.t5 (a INT AUTO_INCREMENT PRIMARY KEY, b INT, c INT);
+CREATE TABLE test.t1 (a INT);
+INSERT INTO test.t1 VALUES(1);
+call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
+CREATE TABLE test.t_slave (a INT AUTO_INCREMENT PRIMARY KEY, b INT, c INT);
+CREATE TRIGGER t1_update AFTER UPDATE ON test.t1 FOR EACH ROW
+INSERT INTO test.t_slave VALUES(NULL, ROUND(RAND() * 1000), @c);
+SET INSERT_ID=2;
+SET @c=2;
+SET @@rand_seed1=10000000, @@rand_seed2=1000000;
+INSERT INTO t5 VALUES (NULL, ROUND(RAND() * 1000), @c);
+Warnings:
+Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
+SELECT b into @b FROM test.t5;
+UPDATE test.t1 SET a=2;
+SELECT a AS 'ONE' into @a FROM test.t_slave;
+SELECT c AS 'NULL' into @c FROM test.t_slave;
+SELECT b into @b FROM test.t_slave;
+drop table test.t5;
+drop table test.t1;
+drop table test.t_slave;
 include/rpl_end.inc

=== modified file 'mysql-test/suite/rpl/r/rpl_loaddata.result'
--- a/mysql-test/suite/rpl/r/rpl_loaddata.result	2012-04-18 13:06:39 +0000
+++ b/mysql-test/suite/rpl/r/rpl_loaddata.result	2012-04-23 08:14:28 +0000
@@ -82,7 +82,7 @@ load data infile '../../std_data/rpl_loa
 terminated by ',' optionally enclosed by '%' escaped by '@' lines terminated by
 '\n##\n' starting by '>' ignore 1 lines;
 ERROR 23000: Duplicate entry '2003-03-22' for key 'day'
-include/wait_for_slave_sql_error.inc [errno=0,1755]
+include/wait_for_slave_sql_error.inc [errno=0,1756]
 drop table t1, t2;
 drop table t1, t2;
 CREATE TABLE t1 (word CHAR(20) NOT NULL PRIMARY KEY) ENGINE=INNODB;

=== modified file 'mysql-test/suite/rpl/r/rpl_mixed_binlog_max_cache_size.result'
--- a/mysql-test/suite/rpl/r/rpl_mixed_binlog_max_cache_size.result	2012-04-18 13:06:39 +0000
+++ b/mysql-test/suite/rpl/r/rpl_mixed_binlog_max_cache_size.result	2012-04-23 08:14:28 +0000
@@ -7,11 +7,11 @@ call mtr.add_suppression("Unsafe stateme
 call mtr.add_suppression("Option binlog_cache_size ");
 SET GLOBAL max_binlog_cache_size = 4096;
 Warnings:
-Warning	1737	Option binlog_cache_size (32768) is greater than max_binlog_cache_size (4096); setting binlog_cache_size equal to max_binlog_cache_size.
+Warning	1738	Option binlog_cache_size (32768) is greater than max_binlog_cache_size (4096); setting binlog_cache_size equal to max_binlog_cache_size.
 SET GLOBAL binlog_cache_size = 4096;
 SET GLOBAL max_binlog_stmt_cache_size = 4096;
 Warnings:
-Warning	1744	Option binlog_stmt_cache_size (32768) is greater than max_binlog_stmt_cache_size (4096); setting binlog_stmt_cache_size equal to max_binlog_stmt_cache_size.
+Warning	1745	Option binlog_stmt_cache_size (32768) is greater than max_binlog_stmt_cache_size (4096); setting binlog_stmt_cache_size equal to max_binlog_stmt_cache_size.
 SET GLOBAL binlog_stmt_cache_size = 4096;
 CREATE TABLE t1(a INT PRIMARY KEY, data VARCHAR(30000)) ENGINE=Innodb;
 CREATE TABLE t2(a INT PRIMARY KEY, data VARCHAR(30000)) ENGINE=MyIsam;
@@ -116,11 +116,11 @@ include/diff_tables.inc [master:t1,slave
 # [ On Slave ]
 SET GLOBAL max_binlog_cache_size = 4096;
 Warnings:
-Warning	1737	Option binlog_cache_size (32768) is greater than max_binlog_cache_size (4096); setting binlog_cache_size equal to max_binlog_cache_size.
+Warning	1738	Option binlog_cache_size (32768) is greater than max_binlog_cache_size (4096); setting binlog_cache_size equal to max_binlog_cache_size.
 SET GLOBAL binlog_cache_size = 4096;
 SET GLOBAL max_binlog_stmt_cache_size = 4096;
 Warnings:
-Warning	1744	Option binlog_stmt_cache_size (32768) is greater than max_binlog_stmt_cache_size (4096); setting binlog_stmt_cache_size equal to max_binlog_stmt_cache_size.
+Warning	1745	Option binlog_stmt_cache_size (32768) is greater than max_binlog_stmt_cache_size (4096); setting binlog_stmt_cache_size equal to max_binlog_stmt_cache_size.
 SET GLOBAL binlog_stmt_cache_size = 4096;
 include/stop_slave.inc
 include/start_slave.inc
@@ -154,7 +154,7 @@ count(*)
 ######## CHECK MAX_BINLOG_CACHE_SIZE and BINLOG_CACHE_SIZE #########
 SET @@GLOBAL.MAX_BINLOG_CACHE_SIZE= 8192;
 Warnings:
-Warning	1737	Option binlog_cache_size (32768) is greater than max_binlog_cache_size (8192); setting binlog_cache_size equal to max_binlog_cache_size.
+Warning	1738	Option binlog_cache_size (32768) is greater than max_binlog_cache_size (8192); setting binlog_cache_size equal to max_binlog_cache_size.
 SHOW VARIABLES LIKE 'MAX_BINLOG_CACHE_SIZE';
 Variable_name	Value
 max_binlog_cache_size	8192
@@ -163,7 +163,7 @@ Variable_name	Value
 binlog_cache_size	8192
 SET @@GLOBAL.BINLOG_CACHE_SIZE= 16384;
 Warnings:
-Warning	1737	Option binlog_cache_size (16384) is greater than max_binlog_cache_size (8192); setting binlog_cache_size equal to max_binlog_cache_size.
+Warning	1738	Option binlog_cache_size (16384) is greater than max_binlog_cache_size (8192); setting binlog_cache_size equal to max_binlog_cache_size.
 SHOW VARIABLES LIKE 'MAX_BINLOG_CACHE_SIZE';
 Variable_name	Value
 max_binlog_cache_size	8192
@@ -172,7 +172,7 @@ Variable_name	Value
 binlog_cache_size	8192
 SET @@GLOBAL.MAX_BINLOG_CACHE_SIZE= 4096;
 Warnings:
-Warning	1737	Option binlog_cache_size (8192) is greater than max_binlog_cache_size (4096); setting binlog_cache_size equal to max_binlog_cache_size.
+Warning	1738	Option binlog_cache_size (8192) is greater than max_binlog_cache_size (4096); setting binlog_cache_size equal to max_binlog_cache_size.
 SHOW VARIABLES LIKE 'MAX_BINLOG_CACHE_SIZE';
 Variable_name	Value
 max_binlog_cache_size	4096

=== modified file 'mysql-test/suite/rpl/r/rpl_parallel_start_stop.result'
--- a/mysql-test/suite/rpl/r/rpl_parallel_start_stop.result	2012-04-18 13:06:39 +0000
+++ b/mysql-test/suite/rpl/r/rpl_parallel_start_stop.result	2012-04-23 08:14:28 +0000
@@ -19,7 +19,7 @@ include/wait_for_slave_sql_to_stop.inc
 include/start_slave.inc
 select id from coord_proc_list into @c_id;
 kill query @c_id;
-include/wait_for_slave_sql_error.inc [errno=1755]
+include/wait_for_slave_sql_error.inc [errno=1756]
 include/start_slave.inc
 CREATE TABLE t1 (a int primary key) engine=innodb;
 insert into t1 values (1),(2);
@@ -62,17 +62,17 @@ set @save.slave_transaction_retries= @@g
 set @@global.slave_transaction_retries= 1;
 start slave sql_thread;
 Warnings:
-Note	1752	slave_transaction_retries is not supported in multi-threaded slave mode. In the event of a transient failure, the slave will not retry the transaction and will stop.
+Note	1753	slave_transaction_retries is not supported in multi-threaded slave mode. In the event of a transient failure, the slave will not retry the transaction and will stop.
 include/stop_slave.inc
 create table t2 (a int);
 insert into t2 values (1);
 start slave until master_log_file='master-bin.000001', master_log_pos=MASTER_LOG_POS;
 Warnings:
-Note	1752	UNTIL condtion is not supported in multi-threaded slave mode. Slave is started in the sequential execution mode.
+Note	1753	UNTIL condtion is not supported in multi-threaded slave mode. Slave is started in the sequential execution mode.
 include/wait_for_slave_sql_to_stop.inc
 include/start_slave.inc
 Warnings:
-Note	1752	slave_transaction_retries is not supported in multi-threaded slave mode. In the event of a transient failure, the slave will not retry the transaction and will stop.
+Note	1753	slave_transaction_retries is not supported in multi-threaded slave mode. In the event of a transient failure, the slave will not retry the transaction and will stop.
 drop table t1;
 drop table t2m;
 drop table t2;

=== modified file 'mysql-test/suite/rpl/r/rpl_row_binlog_max_cache_size.result'
--- a/mysql-test/suite/rpl/r/rpl_row_binlog_max_cache_size.result	2012-04-18 13:06:39 +0000
+++ b/mysql-test/suite/rpl/r/rpl_row_binlog_max_cache_size.result	2012-04-23 08:14:28 +0000
@@ -7,11 +7,11 @@ call mtr.add_suppression("Unsafe stateme
 call mtr.add_suppression("Option binlog_cache_size ");
 SET GLOBAL max_binlog_cache_size = 4096;
 Warnings:
-Warning	1737	Option binlog_cache_size (32768) is greater than max_binlog_cache_size (4096); setting binlog_cache_size equal to max_binlog_cache_size.
+Warning	1738	Option binlog_cache_size (32768) is greater than max_binlog_cache_size (4096); setting binlog_cache_size equal to max_binlog_cache_size.
 SET GLOBAL binlog_cache_size = 4096;
 SET GLOBAL max_binlog_stmt_cache_size = 4096;
 Warnings:
-Warning	1744	Option binlog_stmt_cache_size (32768) is greater than max_binlog_stmt_cache_size (4096); setting binlog_stmt_cache_size equal to max_binlog_stmt_cache_size.
+Warning	1745	Option binlog_stmt_cache_size (32768) is greater than max_binlog_stmt_cache_size (4096); setting binlog_stmt_cache_size equal to max_binlog_stmt_cache_size.
 SET GLOBAL binlog_stmt_cache_size = 4096;
 CREATE TABLE t1(a INT PRIMARY KEY, data VARCHAR(30000)) ENGINE=Innodb;
 CREATE TABLE t2(a INT PRIMARY KEY, data VARCHAR(30000)) ENGINE=MyIsam;
@@ -117,11 +117,11 @@ include/diff_tables.inc [master:t1,slave
 # [ On Slave ]
 SET GLOBAL max_binlog_cache_size = 4096;
 Warnings:
-Warning	1737	Option binlog_cache_size (32768) is greater than max_binlog_cache_size (4096); setting binlog_cache_size equal to max_binlog_cache_size.
+Warning	1738	Option binlog_cache_size (32768) is greater than max_binlog_cache_size (4096); setting binlog_cache_size equal to max_binlog_cache_size.
 SET GLOBAL binlog_cache_size = 4096;
 SET GLOBAL max_binlog_stmt_cache_size = 4096;
 Warnings:
-Warning	1744	Option binlog_stmt_cache_size (32768) is greater than max_binlog_stmt_cache_size (4096); setting binlog_stmt_cache_size equal to max_binlog_stmt_cache_size.
+Warning	1745	Option binlog_stmt_cache_size (32768) is greater than max_binlog_stmt_cache_size (4096); setting binlog_stmt_cache_size equal to max_binlog_stmt_cache_size.
 SET GLOBAL binlog_stmt_cache_size = 4096;
 include/stop_slave.inc
 include/start_slave.inc
@@ -155,7 +155,7 @@ count(*)
 ######## CHECK MAX_BINLOG_CACHE_SIZE and BINLOG_CACHE_SIZE #########
 SET @@GLOBAL.MAX_BINLOG_CACHE_SIZE= 8192;
 Warnings:
-Warning	1737	Option binlog_cache_size (32768) is greater than max_binlog_cache_size (8192); setting binlog_cache_size equal to max_binlog_cache_size.
+Warning	1738	Option binlog_cache_size (32768) is greater than max_binlog_cache_size (8192); setting binlog_cache_size equal to max_binlog_cache_size.
 SHOW VARIABLES LIKE 'MAX_BINLOG_CACHE_SIZE';
 Variable_name	Value
 max_binlog_cache_size	8192
@@ -164,7 +164,7 @@ Variable_name	Value
 binlog_cache_size	8192
 SET @@GLOBAL.BINLOG_CACHE_SIZE= 16384;
 Warnings:
-Warning	1737	Option binlog_cache_size (16384) is greater than max_binlog_cache_size (8192); setting binlog_cache_size equal to max_binlog_cache_size.
+Warning	1738	Option binlog_cache_size (16384) is greater than max_binlog_cache_size (8192); setting binlog_cache_size equal to max_binlog_cache_size.
 SHOW VARIABLES LIKE 'MAX_BINLOG_CACHE_SIZE';
 Variable_name	Value
 max_binlog_cache_size	8192
@@ -173,7 +173,7 @@ Variable_name	Value
 binlog_cache_size	8192
 SET @@GLOBAL.MAX_BINLOG_CACHE_SIZE= 4096;
 Warnings:
-Warning	1737	Option binlog_cache_size (8192) is greater than max_binlog_cache_size (4096); setting binlog_cache_size equal to max_binlog_cache_size.
+Warning	1738	Option binlog_cache_size (8192) is greater than max_binlog_cache_size (4096); setting binlog_cache_size equal to max_binlog_cache_size.
 SHOW VARIABLES LIKE 'MAX_BINLOG_CACHE_SIZE';
 Variable_name	Value
 max_binlog_cache_size	4096

=== modified file 'mysql-test/suite/rpl/r/rpl_stm_EE_err2.result'
--- a/mysql-test/suite/rpl/r/rpl_stm_EE_err2.result	2012-04-18 13:06:39 +0000
+++ b/mysql-test/suite/rpl/r/rpl_stm_EE_err2.result	2012-04-23 08:14:28 +0000
@@ -13,7 +13,7 @@ drop table t1;
 call mtr.add_suppression("Slave SQL.*Query caused different errors on master and slave.*Error on master:.* error code=1062.*Error on slave:.* Error_code: 0");
 call mtr.add_suppression("The slave coordinator and worker threads are stopped, possibly leaving data in inconsistent state");
 (expect different error codes on master and slave)
-include/wait_for_slave_sql_error.inc [errno=0,1755]
+include/wait_for_slave_sql_error.inc [errno=0,1756]
 drop table t1;
 include/stop_slave.inc
 RESET SLAVE;

=== modified file 'mysql-test/suite/rpl/r/rpl_stm_binlog_max_cache_size.result'
--- a/mysql-test/suite/rpl/r/rpl_stm_binlog_max_cache_size.result	2012-04-18 13:06:39 +0000
+++ b/mysql-test/suite/rpl/r/rpl_stm_binlog_max_cache_size.result	2012-04-23 08:14:28 +0000
@@ -7,11 +7,11 @@ call mtr.add_suppression("Unsafe stateme
 call mtr.add_suppression("Option binlog_cache_size ");
 SET GLOBAL max_binlog_cache_size = 4096;
 Warnings:
-Warning	1737	Option binlog_cache_size (32768) is greater than max_binlog_cache_size (4096); setting binlog_cache_size equal to max_binlog_cache_size.
+Warning	1738	Option binlog_cache_size (32768) is greater than max_binlog_cache_size (4096); setting binlog_cache_size equal to max_binlog_cache_size.
 SET GLOBAL binlog_cache_size = 4096;
 SET GLOBAL max_binlog_stmt_cache_size = 4096;
 Warnings:
-Warning	1744	Option binlog_stmt_cache_size (32768) is greater than max_binlog_stmt_cache_size (4096); setting binlog_stmt_cache_size equal to max_binlog_stmt_cache_size.
+Warning	1745	Option binlog_stmt_cache_size (32768) is greater than max_binlog_stmt_cache_size (4096); setting binlog_stmt_cache_size equal to max_binlog_stmt_cache_size.
 SET GLOBAL binlog_stmt_cache_size = 4096;
 CREATE TABLE t1(a INT PRIMARY KEY, data VARCHAR(30000)) ENGINE=Innodb;
 CREATE TABLE t2(a INT PRIMARY KEY, data VARCHAR(30000)) ENGINE=MyIsam;
@@ -116,11 +116,11 @@ include/diff_tables.inc [master:t1,slave
 # [ On Slave ]
 SET GLOBAL max_binlog_cache_size = 4096;
 Warnings:
-Warning	1737	Option binlog_cache_size (32768) is greater than max_binlog_cache_size (4096); setting binlog_cache_size equal to max_binlog_cache_size.
+Warning	1738	Option binlog_cache_size (32768) is greater than max_binlog_cache_size (4096); setting binlog_cache_size equal to max_binlog_cache_size.
 SET GLOBAL binlog_cache_size = 4096;
 SET GLOBAL max_binlog_stmt_cache_size = 4096;
 Warnings:
-Warning	1744	Option binlog_stmt_cache_size (32768) is greater than max_binlog_stmt_cache_size (4096); setting binlog_stmt_cache_size equal to max_binlog_stmt_cache_size.
+Warning	1745	Option binlog_stmt_cache_size (32768) is greater than max_binlog_stmt_cache_size (4096); setting binlog_stmt_cache_size equal to max_binlog_stmt_cache_size.
 SET GLOBAL binlog_stmt_cache_size = 4096;
 include/stop_slave.inc
 include/start_slave.inc
@@ -154,7 +154,7 @@ count(*)
 ######## CHECK MAX_BINLOG_CACHE_SIZE and BINLOG_CACHE_SIZE #########
 SET @@GLOBAL.MAX_BINLOG_CACHE_SIZE= 8192;
 Warnings:
-Warning	1737	Option binlog_cache_size (32768) is greater than max_binlog_cache_size (8192); setting binlog_cache_size equal to max_binlog_cache_size.
+Warning	1738	Option binlog_cache_size (32768) is greater than max_binlog_cache_size (8192); setting binlog_cache_size equal to max_binlog_cache_size.
 SHOW VARIABLES LIKE 'MAX_BINLOG_CACHE_SIZE';
 Variable_name	Value
 max_binlog_cache_size	8192
@@ -163,7 +163,7 @@ Variable_name	Value
 binlog_cache_size	8192
 SET @@GLOBAL.BINLOG_CACHE_SIZE= 16384;
 Warnings:
-Warning	1737	Option binlog_cache_size (16384) is greater than max_binlog_cache_size (8192); setting binlog_cache_size equal to max_binlog_cache_size.
+Warning	1738	Option binlog_cache_size (16384) is greater than max_binlog_cache_size (8192); setting binlog_cache_size equal to max_binlog_cache_size.
 SHOW VARIABLES LIKE 'MAX_BINLOG_CACHE_SIZE';
 Variable_name	Value
 max_binlog_cache_size	8192
@@ -172,7 +172,7 @@ Variable_name	Value
 binlog_cache_size	8192
 SET @@GLOBAL.MAX_BINLOG_CACHE_SIZE= 4096;
 Warnings:
-Warning	1737	Option binlog_cache_size (8192) is greater than max_binlog_cache_size (4096); setting binlog_cache_size equal to max_binlog_cache_size.
+Warning	1738	Option binlog_cache_size (8192) is greater than max_binlog_cache_size (4096); setting binlog_cache_size equal to max_binlog_cache_size.
 SHOW VARIABLES LIKE 'MAX_BINLOG_CACHE_SIZE';
 Variable_name	Value
 max_binlog_cache_size	4096

=== modified file 'mysql-test/suite/rpl/r/rpl_stm_loaddata_concurrent.result'
--- a/mysql-test/suite/rpl/r/rpl_stm_loaddata_concurrent.result	2012-04-18 13:06:39 +0000
+++ b/mysql-test/suite/rpl/r/rpl_stm_loaddata_concurrent.result	2012-04-23 08:14:28 +0000
@@ -98,7 +98,7 @@ load data CONCURRENT infile '../../std_d
 terminated by ',' optionally enclosed by '%' escaped by '@' lines terminated by
 '\n##\n' starting by '>' ignore 1 lines;
 ERROR 23000: Duplicate entry '2003-03-22' for key 'day'
-include/wait_for_slave_sql_error.inc [errno=0,1755]
+include/wait_for_slave_sql_error.inc [errno=0,1756]
 drop table t1, t2;
 drop table t1, t2;
 CREATE TABLE t1 (word CHAR(20) NOT NULL PRIMARY KEY) ENGINE=INNODB;

=== modified file 'mysql-test/suite/rpl/t/rpl_alter_repository.test'
--- a/mysql-test/suite/rpl/t/rpl_alter_repository.test	2012-04-18 13:06:39 +0000
+++ b/mysql-test/suite/rpl/t/rpl_alter_repository.test	2012-04-23 08:14:28 +0000
@@ -59,7 +59,7 @@ ALTER TABLE mysql.slave_relay_log_info D
 --connection master
 INSERT INTO t_innodb VALUES (1), (2), (3);
 --connection slave
---let $slave_sql_errno= 1726
+--let $slave_sql_errno= 1727
 --let $show_slave_sql_error= 1
 --source include/wait_for_slave_sql_error.inc
 --source include/stop_slave_io.inc
@@ -96,7 +96,7 @@ ALTER TABLE mysql.slave_relay_log_info D
 --connection master
 INSERT INTO t_innodb VALUES (1), (2), (3);
 --connection slave
---let $slave_sql_errno= 1726
+--let $slave_sql_errno= 1727
 --let $show_slave_sql_error= 1
 --source include/wait_for_slave_sql_error.inc
 --source include/stop_slave_io.inc

=== added file 'mysql-test/suite/rpl/t/rpl_auto_increment_bug45679.test'
--- a/mysql-test/suite/rpl/t/rpl_auto_increment_bug45679.test	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl/t/rpl_auto_increment_bug45679.test	2012-04-23 08:56:23 +0000
@@ -0,0 +1,62 @@
+# Test of auto-increment.
+#
+# BUG#11754117-45670 
+# Multipart primary key with the autoincrement part not first in it
+# is replication unsafe.
+#
+
+source include/master-slave.inc;
+source include/have_binlog_format_mixed.inc;
+source include/have_innodb.inc;
+
+call mtr.add_suppression('Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT.');
+
+--connection master
+create table tm (b int auto_increment, a int, primary key (a,b)) engine= myisam;
+--error ER_WRONG_AUTO_KEY
+create table ti (b int auto_increment, a int, primary key (a,b)) engine= innodb;
+create table ti (b int auto_increment, a int, primary key (b,a)) engine= innodb;
+
+set @@binlog_format=statement;
+--echo *** autoincrement field is not the first in PK warning must be there: ***
+insert into tm set b=null, a=1;
+show warnings;
+--echo *** no warning when autoincrement is the first in PK
+insert into ti set b=null, a=1;
+show warnings;
+
+delimiter //;
+create function multi_part_pk_with_autoinc (arg int)
+returns int
+begin
+  insert into tm set b=null, a=arg;
+  return arg;
+end//
+delimiter ;//
+
+select multi_part_pk_with_autoinc (3);
+--echo *** autoincrement field is not the first in PK warning must be there: ***
+show warnings;
+
+set @@binlog_format=mixed;
+insert into tm set b=null, a=2;
+
+sync_slave_with_master;
+
+if (`select count(*) <> 3 from tm`)
+{
+  --echo Wrong result from SELECT on the slave side.
+  select * from tm;
+  --die
+}
+
+# cleanup
+
+--connection master
+
+drop table tm, ti;
+drop function multi_part_pk_with_autoinc;
+
+sync_slave_with_master;
+
+--source include/rpl_end.inc

=== modified file 'mysql-test/suite/rpl/t/rpl_filter_tables_not_exist.test'
--- a/mysql-test/suite/rpl/t/rpl_filter_tables_not_exist.test	2011-08-19 13:04:28 +0000
+++ b/mysql-test/suite/rpl/t/rpl_filter_tables_not_exist.test	2012-04-21 12:11:15 +0000
@@ -207,4 +207,64 @@ SELECT * FROM t3;
 connection master;
 echo [on master];
 drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
+
+--sync_slave_with_master
+
+#
+# BUG#11754117 - 45670: INTVAR_EVENTS FOR FILTERED-OUT QUERY_LOG_EVENTS ARE EXECUTED
+# Int-, Rand- and User- var events accompaning a filtered out Query-log-event should
+# be filtered as well.
+#
+connection master;
+CREATE TABLE test.t5 (a INT AUTO_INCREMENT PRIMARY KEY, b INT, c INT); # ignored on slave
+CREATE TABLE test.t1 (a INT); # accepted on slave
+INSERT INTO test.t1 VALUES(1);
+
+--sync_slave_with_master
+call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
+CREATE TABLE test.t_slave (a INT AUTO_INCREMENT PRIMARY KEY, b INT, c INT);
+CREATE TRIGGER t1_update AFTER UPDATE ON test.t1 FOR EACH ROW
+                               INSERT INTO test.t_slave VALUES(NULL, ROUND(RAND() * 1000), @c);
+
+connection master;
+SET INSERT_ID=2;
+SET @c=2;
+SET @@rand_seed1=10000000, @@rand_seed2=1000000;
+INSERT INTO t5 VALUES (NULL, ROUND(RAND() * 1000), @c); # to be ignored
+SELECT b into @b FROM test.t5;
+--let $b_master=`select @b`
+UPDATE test.t1 SET a=2; # to run trigger on slave
+
+--sync_slave_with_master
+
+# The proof:
+SELECT a AS 'ONE' into @a FROM test.t_slave;
+SELECT c AS 'NULL' into @c FROM test.t_slave;
+
+let $count= 1;
+let $table= test.t_slave;
+source include/wait_until_rows_count.inc;
+
+if (`SELECT @a != 2 and @c != NULL`)
+{
+    SELECT * FROM test.t_slave;
+    --die Intvar or user var from replication events unexpetedly escaped out to screw a following query applying context.
+}
+
+SELECT b into @b FROM test.t_slave;
+--let $b_slave=`select @b`
+
+if (`SELECT $b_slave = $b_master`)
+{
+    --echo Might be pure coincidence of two randoms from master and slave table. Don not panic yet.
+}
+
+# cleanup BUG#11754117
+connection master;
+drop table test.t5;
+drop table test.t1;
+
+--sync_slave_with_master
+drop table test.t_slave;
+
 --source include/rpl_end.inc

=== modified file 'mysql-test/suite/rpl/t/rpl_parallel_start_stop.test'
--- a/mysql-test/suite/rpl/t/rpl_parallel_start_stop.test	2012-04-18 13:06:39 +0000
+++ b/mysql-test/suite/rpl/t/rpl_parallel_start_stop.test	2012-04-23 08:14:28 +0000
@@ -68,7 +68,7 @@ let $count= 0;
 let $table= worker_proc_list;
 source include/wait_until_rows_count.inc;
 
-let $slave_sql_errno= 1755; # ER_MTS_PARALLEL_INCONSISTENT_DATA
+let $slave_sql_errno= 1756; # ER_MTS_PARALLEL_INCONSISTENT_DATA
 source include/wait_for_slave_sql_error.inc;
 
 source include/start_slave.inc;

=== modified file 'mysql-test/suite/sys_vars/r/max_binlog_cache_size_basic.result'
--- a/mysql-test/suite/sys_vars/r/max_binlog_cache_size_basic.result	2012-04-18 13:06:39 +0000
+++ b/mysql-test/suite/sys_vars/r/max_binlog_cache_size_basic.result	2012-04-23 08:14:28 +0000
@@ -10,7 +10,7 @@ SELECT @start_binlog_cache_size;
 SET @@global.max_binlog_cache_size = 5000;
 Warnings:
 Warning	1292	Truncated incorrect max_binlog_cache_size value: '5000'
-Warning	1737	Option binlog_cache_size (32768) is greater than max_binlog_cache_size (4096); setting binlog_cache_size equal to max_binlog_cache_size.
+Warning	1738	Option binlog_cache_size (32768) is greater than max_binlog_cache_size (4096); setting binlog_cache_size equal to max_binlog_cache_size.
 SET @@global.max_binlog_cache_size = DEFAULT;
 SELECT @@global.max_binlog_cache_size;
 @@global.max_binlog_cache_size

=== modified file 'mysql-test/suite/sys_vars/r/max_binlog_stmt_cache_size_basic.result'
--- a/mysql-test/suite/sys_vars/r/max_binlog_stmt_cache_size_basic.result	2012-04-18 13:06:39 +0000
+++ b/mysql-test/suite/sys_vars/r/max_binlog_stmt_cache_size_basic.result	2012-04-23 08:14:28 +0000
@@ -10,7 +10,7 @@ SELECT @start_binlog_stmt_cache_size;
 SET @@global.max_binlog_stmt_cache_size = 5000;
 Warnings:
 Warning	1292	Truncated incorrect max_binlog_stmt_cache_size value: '5000'
-Warning	1744	Option binlog_stmt_cache_size (32768) is greater than max_binlog_stmt_cache_size (4096); setting binlog_stmt_cache_size equal to max_binlog_stmt_cache_size.
+Warning	1745	Option binlog_stmt_cache_size (32768) is greater than max_binlog_stmt_cache_size (4096); setting binlog_stmt_cache_size equal to max_binlog_stmt_cache_size.
 SET @@global.max_binlog_stmt_cache_size = DEFAULT;
 SELECT @@global.max_binlog_stmt_cache_size;
 @@global.max_binlog_stmt_cache_size

=== modified file 'sql/log_event.cc'
--- a/sql/log_event.cc	2012-04-18 13:06:39 +0000
+++ b/sql/log_event.cc	2012-04-21 12:11:15 +0000
@@ -6681,11 +6681,12 @@ void Intvar_log_event::print(FILE* file,
 #endif
 
 
+#if defined(HAVE_REPLICATION)&& !defined(MYSQL_CLIENT)
+
 /*
   Intvar_log_event::do_apply_event()
 */
 
-#if defined(HAVE_REPLICATION)&& !defined(MYSQL_CLIENT)
 int Intvar_log_event::do_apply_event(Relay_log_info const *rli)
 {
   /*
@@ -6694,6 +6695,9 @@ int Intvar_log_event::do_apply_event(Rel
    */
   const_cast<Relay_log_info*>(rli)->set_flag(Relay_log_info::IN_STMT);
 
+  if (rli->deferred_events_collecting)
+    return rli->deferred_events->add(this);
+
   switch (type) {
   case LAST_INSERT_ID_EVENT:
     thd->stmt_depends_on_first_successful_insert_id_in_prev_stmt= 1;
@@ -6800,6 +6804,9 @@ int Rand_log_event::do_apply_event(Relay
    */
   const_cast<Relay_log_info*>(rli)->set_flag(Relay_log_info::IN_STMT);
 
+  if (rli->deferred_events_collecting)
+    return rli->deferred_events->add(this);
+
   thd->rand.seed1= (ulong) seed1;
   thd->rand.seed2= (ulong) seed2;
   return 0;
@@ -6826,6 +6833,29 @@ Rand_log_event::do_shall_skip(Relay_log_
   return continue_group(rli);
 }
 
+/**
+   Exec deferred Int-, Rand- and User- var events prefixing
+   a Query-log-event event.
+
+   @param thd THD handle
+
+   @return false on success, true if a failure in an event applying occurred.
+*/
+bool slave_execute_deferred_events(THD *thd)
+{
+  bool res= false;
+  Relay_log_info *rli= thd->rli_slave;
+
+  DBUG_ASSERT(rli && (!rli->deferred_events_collecting || rli->deferred_events));
+
+  if (!rli->deferred_events_collecting || rli->deferred_events->is_empty())
+    return res;
+
+  res= rli->deferred_events->execute(rli);
+
+  return res;
+}
+
 #endif /* !MYSQL_CLIENT */
 
 
@@ -7389,6 +7419,10 @@ int User_var_log_event::do_apply_event(R
 {
   Item *it= 0;
   CHARSET_INFO *charset;
+
+  if (rli->deferred_events_collecting)
+    return rli->deferred_events->add(this);
+
   if (!(charset= get_charset(charset_number, MYF(MY_WME))))
     return 1;
   double real_val;

=== modified file 'sql/log_event.h'
--- a/sql/log_event.h	2012-04-13 06:44:13 +0000
+++ b/sql/log_event.h	2012-04-21 12:11:15 +0000
@@ -4553,6 +4553,14 @@ private:
   const char* log_ident;
   uint ident_len;
 };
+
+/**
+   The function is called by slave applier in case there are
+   active table filtering rules to force gathering events associated
+   with Query-log-event into an array to execute
+   them once the fate of the Query is determined for execution.
+*/
+bool slave_execute_deferred_events(THD *thd);
 #endif
 
 int append_query_string(THD *thd, const CHARSET_INFO *csinfo,

=== modified file 'sql/rpl_rli.cc'
--- a/sql/rpl_rli.cc	2012-04-11 16:52:28 +0000
+++ b/sql/rpl_rli.cc	2012-04-21 12:11:15 +0000
@@ -86,7 +86,7 @@ Relay_log_info::Relay_log_info(bool is_s
    until_sql_gtids_first_event(true),
    retried_trans(0),
    tables_to_lock(0), tables_to_lock_count(0),
-   rows_query_ev(NULL), last_event_start_time(0),
+   rows_query_ev(NULL), last_event_start_time(0), deferred_events(NULL),
    slave_parallel_workers(0),
    recovery_parallel_workers(0), checkpoint_seqno(0),
    checkpoint_group(opt_mts_checkpoint_group), 

=== modified file 'sql/rpl_rli.h'
--- a/sql/rpl_rli.h	2012-04-11 16:52:28 +0000
+++ b/sql/rpl_rli.h	2012-04-21 12:11:15 +0000
@@ -466,6 +466,19 @@ public:
     The timestamp is set and reset in @c sql_slave_killed().
   */
   time_t last_event_start_time;
+  /*
+    A container to hold on Intvar-, Rand-, Uservar- log-events in case
+    the slave is configured with table filtering rules.
+    The withhold events are executed when their parent Query destiny is
+    determined for execution as well.
+  */
+  Deferred_log_events *deferred_events;
+
+  /*
+    State of the container: true stands for IRU events gathering, 
+    false does for execution, either deferred or direct.
+  */
+  bool deferred_events_collecting;
 
   /*****************************************************************************
     WL#5569 MTS
@@ -638,7 +651,27 @@ public:
   /*
    * End of MTS section ******************************************************/
 
-
+  /* 
+     Returns true if the argument event resides in the containter;
+     more specifically, the checking is done against the last added event.
+  */
+  bool is_deferred_event(Log_event * ev)
+  {
+    return deferred_events_collecting ? deferred_events->is_last(ev) : false;
+  };
+  /* The general cleanup that slave applier may need at the end of query. */
+  inline void cleanup_after_query()
+  {
+    if (deferred_events)
+      deferred_events->rewind();
+  };
+  /* The general cleanup that slave applier may need at the end of session. */
+  void cleanup_after_session()
+  {
+    if (deferred_events)
+      delete deferred_events;
+  };
+   
   /**
     Helper function to do after statement completion.
 

=== modified file 'sql/rpl_rli_pdb.cc'
--- a/sql/rpl_rli_pdb.cc	2012-04-11 17:32:54 +0000
+++ b/sql/rpl_rli_pdb.cc	2012-04-21 12:11:15 +0000
@@ -1747,6 +1747,7 @@ int slave_worker_exec_job(Slave_worker *
   if (!ev->when.tv_sec)
     ev->when.tv_sec= my_time(0);
   ev->thd= thd; // todo: assert because up to this point, ev->thd == 0
+  ev->worker= worker;
 
   DBUG_PRINT("slave_worker_exec_job:", ("W_%lu <- job item: %p data: %p thd: %p", worker->id, job_item, ev, thd));
 
@@ -1891,10 +1892,9 @@ err:
                             worker->running_status);
     worker->slave_worker_ends_group(ev, error);
   }
-  
 
-  // todo: similate delay in delete
-  if (ev && ev->get_type_code() != ROWS_QUERY_LOG_EVENT)
+  // todo: simulate delay in delete
+  if (ev && ev->worker && ev->get_type_code() != ROWS_QUERY_LOG_EVENT)
   {
     delete ev;
   }

=== modified file 'sql/rpl_slave.cc'
--- a/sql/rpl_slave.cc	2012-04-13 12:00:39 +0000
+++ b/sql/rpl_slave.cc	2012-04-21 12:11:15 +0000
@@ -3394,7 +3394,11 @@ int apply_event_and_update_pos(Log_event
     }
     else
     {
-      DBUG_ASSERT(*ptr_ev == ev || rli->is_parallel_exec());
+      DBUG_ASSERT(*ptr_ev == ev || rli->is_parallel_exec() ||
+		  (!ev->worker &&
+		   (ev->get_type_code() == INTVAR_EVENT ||
+		    ev->get_type_code() == RAND_EVENT ||
+		    ev->get_type_code() == USER_VAR_EVENT)));
 
       rli->inc_event_relay_log_pos();
     }
@@ -4280,7 +4284,7 @@ pthread_handler_t handle_slave_worker(vo
     sql_print_error("Failed during slave worker initialization");
     goto err;
   }
-  thd->init_for_queries();
+  thd->init_for_queries(w);
 
   mysql_mutex_lock(&LOCK_thread_count);
   add_global_thread(thd);
@@ -5170,7 +5174,7 @@ pthread_handler_t handle_slave_sql(void 
                 "Failed during slave thread initialization");
     goto err;
   }
-  thd->init_for_queries();
+  thd->init_for_queries(rli);
   thd->temporary_tables = rli->save_temporary_tables; // restore temp tables
   set_thd_in_use_temporary_tables(rli);   // (re)set sql_thd in use for saved temp tables
 

=== modified file 'sql/rpl_utility.cc'
--- a/sql/rpl_utility.cc	2012-03-06 14:29:42 +0000
+++ b/sql/rpl_utility.cc	2012-04-21 12:11:15 +0000
@@ -1163,3 +1163,65 @@ bool event_checksum_test(uchar *event_bu
   return DBUG_EVALUATE_IF("simulate_checksum_test_failure", TRUE, res);
 }
 
+#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION)
+
+Deferred_log_events::Deferred_log_events(Relay_log_info *rli) : last_added(NULL)
+{
+  my_init_dynamic_array(&array, sizeof(Log_event *), 32, 16);
+}
+
+Deferred_log_events::~Deferred_log_events() 
+{
+  delete_dynamic(&array);
+}
+
+int Deferred_log_events::add(Log_event *ev)
+{
+  last_added= ev;
+  insert_dynamic(&array, (uchar*) &ev);
+  ev->worker= NULL; // to mark event busy avoiding deletion
+  return 0;
+}
+
+bool Deferred_log_events::is_empty()
+{  
+  return array.elements == 0;
+}
+
+bool Deferred_log_events::execute(Relay_log_info *rli)
+{
+  bool res= false;
+
+  DBUG_ASSERT(rli->deferred_events_collecting);
+
+  rli->deferred_events_collecting= false;
+  for (uint i=  0; !res && i < array.elements; i++)
+  {
+    Log_event *ev= (* (Log_event **)
+                    dynamic_array_ptr(&array, i));
+    res= ev->apply_event(rli);
+  }
+  rli->deferred_events_collecting= true;
+  return res;
+}
+
+void Deferred_log_events::rewind()
+{
+  /*
+    Reset preceeding Query log event events which execution was
+    deferred because of slave side filtering.
+  */
+  if (!is_empty())
+  {
+    for (uint i=  0; i < array.elements; i++)
+    {
+      Log_event *ev= *(Log_event **) dynamic_array_ptr(&array, i);
+      delete ev;
+    }
+    if (array.elements > array.max_element)
+      freeze_size(&array);
+    reset_dynamic(&array);
+  }
+}
+
+#endif

=== modified file 'sql/rpl_utility.h'
--- a/sql/rpl_utility.h	2011-12-09 21:08:37 +0000
+++ b/sql/rpl_utility.h	2012-04-21 12:11:15 +0000
@@ -28,7 +28,7 @@
 #include "mysql_com.h"
 
 class Relay_log_info;
-
+class Log_event;
 
 /**
   A table definition from the master.
@@ -269,6 +269,24 @@ CPP_UNNAMED_NS_START
   };
 
 CPP_UNNAMED_NS_END
+
+class Deferred_log_events
+{
+private:
+  DYNAMIC_ARRAY array;
+  Log_event *last_added;
+
+public:
+  Deferred_log_events(Relay_log_info *rli);
+  ~Deferred_log_events();
+  /* queue for exection at Query-log-event time prior the Query */;
+  int add(Log_event *ev);
+  bool is_empty();
+  bool execute(Relay_log_info *rli);
+  void rewind();
+  bool is_last(Log_event *ev) { return ev == last_added; };
+};
+
 #endif
 
 // NB. number of printed bit values is limited to sizeof(buf) - 1

=== modified file 'sql/share/errmsg-utf8.txt'
--- a/sql/share/errmsg-utf8.txt	2012-04-18 13:06:39 +0000
+++ b/sql/share/errmsg-utf8.txt	2012-04-21 12:11:15 +0000
@@ -6502,6 +6502,9 @@ ER_BINLOG_UNSAFE_INSERT_TWO_KEYS
 ER_UNSUPPORTED_ENGINE
   eng "Storage engine '%s' does not support system tables. [%s.%s]"
 
+ER_BINLOG_UNSAFE_AUTOINC_NOT_FIRST
+  eng "INSERT into autoincrement field which is not the first part in the composed primary key is unsafe."
+
 #
 #  End of 5.5 error messages.
 #

=== modified file 'sql/sql_base.cc'
--- a/sql/sql_base.cc	2012-04-18 13:06:39 +0000
+++ b/sql/sql_base.cc	2012-04-21 12:11:15 +0000
@@ -226,6 +226,7 @@ static bool
 has_write_table_with_auto_increment(TABLE_LIST *tables);
 static bool
 has_write_table_with_auto_increment_and_select(TABLE_LIST *tables);
+static bool has_write_table_auto_increment_not_first_in_pk(TABLE_LIST *tables);
 
 uint cached_open_tables(void)
 {
@@ -5879,6 +5880,12 @@ bool lock_tables(THD *thd, TABLE_LIST *t
     if (thd->variables.binlog_format != BINLOG_FORMAT_ROW && tables &&
         has_write_table_with_auto_increment_and_select(tables))
       thd->lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_WRITE_AUTOINC_SELECT);
+    /* Todo: merge all has_write_table_auto_inc with decide_logging_format */
+    if (thd->variables.binlog_format != BINLOG_FORMAT_ROW && tables)
+    {
+      if (has_write_table_auto_increment_not_first_in_pk(tables))
+        thd->lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_AUTOINC_NOT_FIRST);
+    }
 
     /* 
      INSERT...ON DUPLICATE KEY UPDATE on a table with more than one unique keys
@@ -9463,6 +9470,32 @@ has_write_table_with_auto_increment_and_
   return(has_select && has_auto_increment_tables);
 }
 
+/*
+  Tells if there is a table whose auto_increment column is a part
+  of a compound primary key while is not the first column in
+  the table definition.
+
+  @param tables Table list
+
+  @return true if the table exists, fais if does not.
+*/
+
+static bool
+has_write_table_auto_increment_not_first_in_pk(TABLE_LIST *tables)
+{
+  for (TABLE_LIST *table= tables; table; table= table->next_global)
+  {
+    /* we must do preliminary checks as table->table may be NULL */
+    if (!table->placeholder() &&
+        table->table->found_next_number_field &&
+        (table->lock_type >= TL_WRITE_ALLOW_WRITE)
+        && table->table->s->next_number_keypart != 0)
+      return 1;
+  }
+
+  return 0;
+}
+
 
 
 /*

=== modified file 'sql/sql_class.cc'
--- a/sql/sql_class.cc	2012-04-20 08:55:22 +0000
+++ b/sql/sql_class.cc	2012-04-21 12:11:15 +0000
@@ -790,7 +790,7 @@ bool Drop_table_error_handler::handle_co
 THD::THD(bool enable_plugins)
    :Statement(&main_lex, &main_mem_root, STMT_CONVENTIONAL_EXECUTION,
               /* statement id */ 0),
-   rli_fake(0),
+   rli_fake(0), rli_slave(NULL),
    in_sub_stmt(0),
    binlog_unsafe_warning_flags(0),
    binlog_table_maps(0),
@@ -1292,7 +1292,7 @@ void THD::init(void)
   See also comments in sql_class.h.
 */
 
-void THD::init_for_queries()
+void THD::init_for_queries(Relay_log_info *rli)
 {
   set_time(); 
   ha_enable_transaction(this,TRUE);
@@ -1304,6 +1304,18 @@ void THD::init_for_queries()
                       variables.trans_prealloc_size);
   transaction.xid_state.xid.null();
   transaction.xid_state.in_thd=1;
+#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION)
+  if (rli)
+  {
+    if ((rli->deferred_events_collecting= rpl_filter->is_on()))
+    {
+      rli->deferred_events= new Deferred_log_events(rli);
+    }
+    rli_slave= rli;
+
+    DBUG_ASSERT(rli_slave->info_thd == this && slave_thread);
+  }
+#endif
 }
 
 
@@ -1465,6 +1477,8 @@ THD::~THD()
   }
   
   mysql_audit_free_thd(this);
+  if (rli_slave)
+    rli_slave->cleanup_after_session();
 #endif
 
   free_root(&main_mem_root, MYF(0));
@@ -1832,6 +1846,10 @@ void THD::cleanup_after_query()
   {
     delete_dynamic(&lex->mi.repl_ignore_server_ids);
   }
+#ifndef EMBEDDED_LIBRARY
+  if (rli_slave)
+    rli_slave->cleanup_after_query();
+#endif
 }
 
 

=== modified file 'sql/sql_class.h'
--- a/sql/sql_class.h	2012-04-13 12:00:39 +0000
+++ b/sql/sql_class.h	2012-04-21 12:11:15 +0000
@@ -2185,6 +2185,8 @@ public:
 
   /* Used to execute base64 coded binlog events in MySQL server */
   Relay_log_info* rli_fake;
+  /* Slave applier execution context */
+  Relay_log_info* rli_slave;
 
   void reset_for_next_command();
   /*
@@ -3059,7 +3061,7 @@ public:
     if preallocation fails, we should notice that at the first call to
     alloc_root. 
   */
-  void init_for_queries();
+  void init_for_queries(Relay_log_info *rli= NULL);
   void change_user(void);
   void cleanup(void);
   void cleanup_after_query();

=== modified file 'sql/sql_lex.cc'
--- a/sql/sql_lex.cc	2012-04-18 11:17:16 +0000
+++ b/sql/sql_lex.cc	2012-04-21 12:11:15 +0000
@@ -72,7 +72,8 @@ Query_tables_list::binlog_stmt_unsafe_er
   ER_BINLOG_UNSAFE_CREATE_REPLACE_SELECT,
   ER_BINLOG_UNSAFE_CREATE_SELECT_AUTOINC,
   ER_BINLOG_UNSAFE_UPDATE_IGNORE,
-  ER_BINLOG_UNSAFE_INSERT_TWO_KEYS
+  ER_BINLOG_UNSAFE_INSERT_TWO_KEYS,
+  ER_BINLOG_UNSAFE_AUTOINC_NOT_FIRST
 };
 
 

=== modified file 'sql/sql_lex.h'
--- a/sql/sql_lex.h	2012-04-18 11:17:16 +0000
+++ b/sql/sql_lex.h	2012-04-21 12:14:15 +0000
@@ -1256,6 +1256,12 @@ public:
     */
     BINLOG_STMT_UNSAFE_INSERT_TWO_KEYS,
 
+    /**
+       INSERT into auto-inc field which is not the first part in composed
+       primary key.
+    */
+    BINLOG_STMT_UNSAFE_AUTOINC_NOT_FIRST,
+
     /* The last element of this enumeration type. */
     BINLOG_STMT_UNSAFE_COUNT
   };

=== modified file 'sql/sql_parse.cc'
--- a/sql/sql_parse.cc	2012-04-20 08:55:22 +0000
+++ b/sql/sql_parse.cc	2012-04-21 12:11:15 +0000
@@ -2347,6 +2347,11 @@ mysql_execute_command(THD *thd)
       }
       DBUG_RETURN(0);
     }
+    /* 
+       Execute deferred events first
+    */
+    if (slave_execute_deferred_events(thd))
+      DBUG_RETURN(-1);
   }
   else
   {

No bundle (reason: useless for push emails).
Thread
bzr push into mysql-trunk branch (andrei.elkin:3717 to 3719) Andrei Elkin23 Apr