List:Commits« Previous MessageNext Message »
From:magnus.blaudd Date:June 13 2012 7:35pm
Subject:bzr push into mysql-5.5-cluster-7.2 branch (magnus.blaudd:3937 to 3939)
View as plain text  
 3939 magnus.blaudd@stripped	2012-06-13 [merge]
      Merge 7.1 -> 7.2

    renamed:
      mysql-test/include/rpl_multi_engine2.inc => mysql-test/suite/ndb_rpl/t/ndb_rpl_multi_engine2.inc
    modified:
      mysql-test/suite/ndb/r/ndb_alter_table_online.result
      mysql-test/suite/ndb/r/ndb_basic.result
      mysql-test/suite/ndb/t/ndb_alter_table_online.test
      mysql-test/suite/ndb_rpl/r/ndb_rpl_dd_advance.result
      mysql-test/suite/ndb_rpl/t/ndb_rpl_2multi_basic.inc
      mysql-test/suite/ndb_rpl/t/ndb_rpl_dd_advance.test
      sql/ha_ndbcluster.cc
      storage/ndb/include/ndb_version.h.in
      storage/ndb/include/ndbapi/NdbScanOperation.hpp
      storage/ndb/src/common/util/version.cpp
 3938 magnus.blaudd@stripped	2012-06-13 [merge]
      Merge

    modified:
      config.h.cmake
      mysql-test/suite/ndb/r/ndb_condition_pushdown.result
      mysql-test/suite/ndb/r/ndb_gis.result
      mysql-test/suite/ndb/r/ndb_join_pushdown_default.result
      sql/ha_ndbcluster_push.cc
 3937 John David Duncan	2012-06-13
      bug#14192154 -- the file:
         META-INF/services/org.apache.openjpa.lib.conf.ProductDerivation 
      was missing from the clusterjpa.jar file.

    modified:
      storage/ndb/clusterj/clusterj-openjpa/CMakeLists.txt
=== modified file 'config.h.cmake'
--- a/config.h.cmake	2011-10-14 08:26:28 +0000
+++ b/config.h.cmake	2012-05-29 09:30:35 +0000
@@ -465,9 +465,7 @@
 #cmakedefine _LARGE_FILES 1
 #cmakedefine _LARGEFILE_SOURCE 1
 #cmakedefine _LARGEFILE64_SOURCE 1
-#ifndef _FILE_OFFSET_BITS
 #cmakedefine _FILE_OFFSET_BITS @_FILE_OFFSET_BITS@
-#endif
 
 #cmakedefine TIME_WITH_SYS_TIME 1
 

=== modified file 'mysql-test/suite/ndb/r/ndb_alter_table_online.result'
--- a/mysql-test/suite/ndb/r/ndb_alter_table_online.result	2012-03-19 12:09:39 +0000
+++ b/mysql-test/suite/ndb/r/ndb_alter_table_online.result	2012-06-13 19:32:58 +0000
@@ -266,7 +266,7 @@ ndb_show_tables completed.....
 select name from ndb_show_tables_results where id = @t1_id and name like '%t1%' and type like '%UserTable%';
 name
 't1'
-ALTER TABLE t1 ADD c TIMESTAMP;
+ALTER TABLE t1 ADD c TIMESTAMP DEFAULT 0;
 INSERT INTO t1 values (2,2,'2007-09-19 18:46:02');
 SELECT * FROM t1 ORDER BY a;
 a	b	c

=== modified file 'mysql-test/suite/ndb/r/ndb_basic.result'
--- a/mysql-test/suite/ndb/r/ndb_basic.result	2012-03-27 09:47:51 +0000
+++ b/mysql-test/suite/ndb/r/ndb_basic.result	2012-06-13 19:32:58 +0000
@@ -138,6 +138,8 @@ ndb_table_temporary	#
 ndb_use_copying_alter_table	#
 ndb_use_exact_count	#
 ndb_use_transactions	#
+ndb_version	#
+ndb_version_string	#
 ndb_wait_connected	#
 ndb_wait_setup	#
 CREATE TABLE t1 (

=== modified file 'mysql-test/suite/ndb/r/ndb_condition_pushdown.result'
--- a/mysql-test/suite/ndb/r/ndb_condition_pushdown.result	2012-05-23 12:43:48 +0000
+++ b/mysql-test/suite/ndb/r/ndb_condition_pushdown.result	2012-06-11 10:56:04 +0000
@@ -2222,7 +2222,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	tx	ALL	NULL	NULL	NULL	NULL	2	100.00	Using where with pushed condition: (`test`.`tx`.`c` = 1)
 1	SIMPLE	t2	ALL	NULL	NULL	NULL	NULL	2	100.00	Using where with pushed condition: (`test`.`t2`.`c` = 1); Using join buffer
 Warnings:
-Note	9999	Can't push table 't2' as child, 'type' must be a 'ref' access
+Note	1003	Can't push table 't2' as child, 'type' must be a 'ref' access
 Note	1003	select `test`.`tx`.`a` AS `a`,`test`.`tx`.`b` AS `b`,`test`.`tx`.`c` AS `c`,`test`.`tx`.`d` AS `d`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c`,`test`.`t2`.`d` AS `d` from `test`.`tx` join `test`.`tx` `t2` where ((`test`.`tx`.`c` = 1) and (`test`.`t2`.`c` = 1))
 explain extended
 select straight_join *
@@ -2247,15 +2247,15 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t2	ref	PRIMARY	PRIMARY	4	const	2	100.00	Using where; Using filesort
 1	SIMPLE	tx	eq_ref	PRIMARY	PRIMARY	8	test.t2.c,test.t2.d	1	100.00	
 Warnings:
-Note	9999	Table 't2' is not pushable: GROUP BY cannot be done using index on grouped columns.
-Note	9999	Table 'tx' is not pushable: GROUP BY cannot be done using index on grouped columns.
+Note	1003	Table 't2' is not pushable: GROUP BY cannot be done using index on grouped columns.
+Note	1003	Table 'tx' is not pushable: GROUP BY cannot be done using index on grouped columns.
 Note	1003	select `test`.`t2`.`c` AS `c`,count(distinct `test`.`t2`.`a`) AS `count(distinct t2.a)` from `test`.`tx` join `test`.`tx` `t2` where ((`test`.`tx`.`b` = `test`.`t2`.`d`) and (`test`.`tx`.`a` = `test`.`t2`.`c`) and (`test`.`t2`.`a` = 4)) group by `test`.`t2`.`c`
 explain extended select * from tx join tx as t2 on tx.c=1 where t2.c=1;
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	tx	ALL	NULL	NULL	NULL	NULL	2	100.00	Using where with pushed condition: (`test`.`tx`.`c` = 1)
 1	SIMPLE	t2	ALL	NULL	NULL	NULL	NULL	2	100.00	Using where with pushed condition: (`test`.`t2`.`c` = 1); Using join buffer
 Warnings:
-Note	9999	Can't push table 't2' as child, 'type' must be a 'ref' access
+Note	1003	Can't push table 't2' as child, 'type' must be a 'ref' access
 Note	1003	select `test`.`tx`.`a` AS `a`,`test`.`tx`.`b` AS `b`,`test`.`tx`.`c` AS `c`,`test`.`tx`.`d` AS `d`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c`,`test`.`t2`.`d` AS `d` from `test`.`tx` join `test`.`tx` `t2` where ((`test`.`tx`.`c` = 1) and (`test`.`t2`.`c` = 1))
 explain extended
 select t2.c, count(distinct t2.a)
@@ -2267,8 +2267,8 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t2	ref	PRIMARY	PRIMARY	4	const	2	100.00	Using where; Using filesort
 1	SIMPLE	tx	eq_ref	PRIMARY	PRIMARY	8	test.t2.c,test.t2.d	1	100.00	
 Warnings:
-Note	9999	Table 't2' is not pushable: GROUP BY cannot be done using index on grouped columns.
-Note	9999	Table 'tx' is not pushable: GROUP BY cannot be done using index on grouped columns.
+Note	1003	Table 't2' is not pushable: GROUP BY cannot be done using index on grouped columns.
+Note	1003	Table 'tx' is not pushable: GROUP BY cannot be done using index on grouped columns.
 Note	1003	select `test`.`t2`.`c` AS `c`,count(distinct `test`.`t2`.`a`) AS `count(distinct t2.a)` from `test`.`tx` join `test`.`tx` `t2` where ((`test`.`tx`.`b` = `test`.`t2`.`d`) and (`test`.`tx`.`a` = `test`.`t2`.`c`) and (`test`.`t2`.`a` = 4)) group by `test`.`t2`.`c`
 drop table tx;
 set @@optimizer_switch = 'engine_condition_pushdown=on';

=== modified file 'mysql-test/suite/ndb/r/ndb_gis.result'
--- a/mysql-test/suite/ndb/r/ndb_gis.result	2011-06-30 12:19:14 +0000
+++ b/mysql-test/suite/ndb/r/ndb_gis.result	2012-06-11 10:56:04 +0000
@@ -406,8 +406,8 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	g1	ALL	NULL	NULL	NULL	NULL	2	100.00	Using temporary; Using filesort
 1	SIMPLE	g2	ALL	NULL	NULL	NULL	NULL	2	100.00	Using join buffer
 Warnings:
-Note	9999	Table 'g1' is not pushable: select list can't contain BLOB columns
-Note	9999	Table 'g2' is not pushable: select list can't contain BLOB columns
+Note	1003	Table 'g1' is not pushable: select list can't contain BLOB columns
+Note	1003	Table 'g2' is not pushable: select list can't contain BLOB columns
 Note	1003	select `test`.`g1`.`fid` AS `first`,`test`.`g2`.`fid` AS `second`,within(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `w`,contains(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `c`,overlaps(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `o`,equals(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `e`,disjoint(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `d`,touches(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `t`,intersects(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `i`,crosses(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `r` from `test`.`gis_geometrycollection` `g1` join `test`.`gis_geometrycollection` `g2` order by `test`.`g1`.`fid`,`test`.`g2`.`fid`
 DROP TABLE gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
 CREATE TABLE t1 (
@@ -962,8 +962,8 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	g1	ALL	NULL	NULL	NULL	NULL	2	100.00	Using temporary; Using filesort
 1	SIMPLE	g2	ALL	NULL	NULL	NULL	NULL	2	100.00	Using join buffer
 Warnings:
-Note	9999	Table 'g1' is not pushable: select list can't contain BLOB columns
-Note	9999	Table 'g2' is not pushable: select list can't contain BLOB columns
+Note	1003	Table 'g1' is not pushable: select list can't contain BLOB columns
+Note	1003	Table 'g2' is not pushable: select list can't contain BLOB columns
 Note	1003	select `test`.`g1`.`fid` AS `first`,`test`.`g2`.`fid` AS `second`,within(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `w`,contains(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `c`,overlaps(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `o`,equals(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `e`,disjoint(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `d`,touches(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `t`,intersects(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `i`,crosses(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `r` from `test`.`gis_geometrycollection` `g1` join `test`.`gis_geometrycollection` `g2` order by `test`.`g1`.`fid`,`test`.`g2`.`fid`
 DROP TABLE gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
 CREATE TABLE t1 (

=== modified file 'mysql-test/suite/ndb/r/ndb_join_pushdown_default.result'
--- a/mysql-test/suite/ndb/r/ndb_join_pushdown_default.result	2012-05-31 15:19:49 +0000
+++ b/mysql-test/suite/ndb/r/ndb_join_pushdown_default.result	2012-06-12 09:13:41 +0000
@@ -64,9 +64,9 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	x2	ALL	NULL	NULL	NULL	NULL	16	100.00	Using where; Using join buffer
 1	SIMPLE	x3	eq_ref	PRIMARY	PRIMARY	8	test.x1.c,test.x1.d	1	100.00	
 Warnings:
-Note	9999	Can't push table 'x2' as child, 'type' must be a 'ref' access
-Note	9999	Cannot push table 'x3' as child of table 'x1'. Doing so would prevent using join buffer for table 'x2'.
-Note	9999	Cannot push table 'x3' as child of 'x2', since it referes to column 'x1.c' which will be stored in a join buffer.
+Note	1003	Can't push table 'x2' as child, 'type' must be a 'ref' access
+Note	1003	Cannot push table 'x3' as child of table 'x1'. Doing so would prevent using join buffer for table 'x2'.
+Note	1003	Cannot push table 'x3' as child of 'x2', since it referes to column 'x1.c' which will be stored in a join buffer.
 Note	1003	select straight_join count(0) AS `count(*)` from `test`.`t1` `x1` join `test`.`t1` `x2` join `test`.`t1` `x3` where ((`test`.`x3`.`b` = `test`.`x1`.`d`) and (`test`.`x3`.`a` = `test`.`x1`.`c`) and (`test`.`x1`.`d` > (`test`.`x2`.`a` + 1000)))
 select straight_join count(*) 
 from t1 as x1 
@@ -85,9 +85,9 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	x3	ALL	NULL	NULL	NULL	NULL	16	100.00	Using join buffer
 1	SIMPLE	x4	eq_ref	PRIMARY	PRIMARY	8	test.x3.c,test.x1.d	1	100.00	
 Warnings:
-Note	9999	Can't push table 'x3' as child, 'type' must be a 'ref' access
-Note	9999	Cannot push table 'x4' as child of table 'x1'. Doing so would prevent using join buffer for table 'x3'.
-Note	9999	Cannot push table 'x4' as child of 'x3', since it referes to column 'x1.d' which will be stored in a join buffer.
+Note	1003	Can't push table 'x3' as child, 'type' must be a 'ref' access
+Note	1003	Cannot push table 'x4' as child of table 'x1'. Doing so would prevent using join buffer for table 'x3'.
+Note	1003	Cannot push table 'x4' as child of 'x3', since it referes to column 'x1.d' which will be stored in a join buffer.
 Note	1003	select `test`.`x1`.`a` AS `a`,`test`.`x1`.`b` AS `b`,`test`.`x1`.`c` AS `c`,`test`.`x1`.`d` AS `d`,`test`.`x2`.`a` AS `a`,`test`.`x2`.`b` AS `b`,`test`.`x2`.`c` AS `c`,`test`.`x2`.`d` AS `d`,`test`.`x3`.`a` AS `a`,`test`.`x3`.`b` AS `b`,`test`.`x3`.`c` AS `c`,`test`.`x3`.`d` AS `d`,`test`.`x4`.`a` AS `a`,`test`.`x4`.`b` AS `b`,`test`.`x4`.`c` AS `c`,`test`.`x4`.`d` AS `d` from `test`.`t1` `x1` join `test`.`t1` `x2` join `test`.`t1` `x3` join `test`.`t1` `x4` where ((`test`.`x2`.`a` = `test`.`x1`.`c`) and (`test`.`x1`.`a` = 1) and (`test`.`x2`.`b` = `test`.`x1`.`d`) and (`test`.`x4`.`b` = `test`.`x1`.`d`) and (`test`.`x4`.`a` = `test`.`x3`.`c`))
 select * 
 from t1 as x1 
@@ -262,8 +262,8 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t1	ALL	NULL	NULL	NULL	NULL	16	100.00	
 1	SIMPLE	t2	eq_ref	PRIMARY	PRIMARY	8	test.t1.c,test.t1.d	1	100.00	
 Warnings:
-Note	9999	Table 't1' is not pushable: 'PROCEDURE'-clause post processing cannot be pushed.
-Note	9999	Table 't2' is not pushable: 'PROCEDURE'-clause post processing cannot be pushed.
+Note	1003	Table 't1' is not pushable: 'PROCEDURE'-clause post processing cannot be pushed.
+Note	1003	Table 't2' is not pushable: 'PROCEDURE'-clause post processing cannot be pushed.
 Note	1003	select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c`,`test`.`t1`.`d` AS `d`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c`,`test`.`t2`.`d` AS `d` from `test`.`t1` join `test`.`t1` `t2` where ((`test`.`t2`.`b` = `test`.`t1`.`d`) and (`test`.`t2`.`a` = `test`.`t1`.`c`))
 explain extended
 select *
@@ -510,9 +510,9 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	y	ALL	NULL	NULL	NULL	NULL	16	100.00	Using join buffer
 1	SIMPLE	z	eq_ref	PRIMARY	PRIMARY	8	test.x.a,test.y.b	1	100.00	
 Warnings:
-Note	9999	Can't push table 'y' as child, 'type' must be a 'ref' access
-Note	9999	Cannot push table 'z' as child of table 'x'. Doing so would prevent using join buffer for table 'y'.
-Note	9999	Cannot push table 'z' as child of 'y', since it referes to column 'x.a' which will be stored in a join buffer.
+Note	1003	Can't push table 'y' as child, 'type' must be a 'ref' access
+Note	1003	Cannot push table 'z' as child of table 'x'. Doing so would prevent using join buffer for table 'y'.
+Note	1003	Cannot push table 'z' as child of 'y', since it referes to column 'x.a' which will be stored in a join buffer.
 Note	1003	select straight_join `test`.`x`.`a` AS `a`,`test`.`x`.`b` AS `b`,`test`.`x`.`c` AS `c`,`test`.`x`.`d` AS `d`,`test`.`y`.`a` AS `a`,`test`.`y`.`b` AS `b`,`test`.`y`.`c` AS `c`,`test`.`y`.`d` AS `d`,`test`.`z`.`a` AS `a`,`test`.`z`.`b` AS `b`,`test`.`z`.`c` AS `c`,`test`.`z`.`d` AS `d` from `test`.`t1` `x` join `test`.`t1` `y` join `test`.`t1` `z` where ((`test`.`z`.`b` = `test`.`y`.`b`) and (`test`.`z`.`a` = `test`.`x`.`a`))
 select straight_join *
 from (t1 as x cross join t1 as y)
@@ -784,7 +784,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t2	eq_ref	PRIMARY	PRIMARY	8	func,test.t1.c	1	100.00	Using where
 1	SIMPLE	t3	eq_ref	PRIMARY	PRIMARY	8	test.t1.b,test.t2.b	1	100.00	Child of 't1' in pushed join@1; Using where
 Warnings:
-Note	9999	Can't push table 't2' as child, column 'a' does neither 'ref' a column nor a constant
+Note	1003	Can't push table 't2' as child, column 'a' does neither 'ref' a column nor a constant
 Note	1003	select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c`,`test`.`t1`.`d` AS `d`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c`,`test`.`t2`.`d` AS `d`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t3`.`c` AS `c`,`test`.`t3`.`d` AS `d` from `test`.`t1` straight_join `test`.`t1` `t2` straight_join `test`.`t1` `t3` where ((`test`.`t2`.`b` = `test`.`t1`.`c`) and (`test`.`t3`.`b` = `test`.`t1`.`c`) and (`test`.`t3`.`a` = `test`.`t1`.`b`) and (`test`.`t2`.`a` = (`test`.`t1`.`b` + 0)))
 select *
 from t1
@@ -815,7 +815,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t2	eq_ref	PRIMARY	PRIMARY	8	func,test.t1.c	1	100.00	Using where
 1	SIMPLE	t3	eq_ref	PRIMARY	PRIMARY	8	test.t1.b,test.t2.b	1	100.00	Child of 't1' in pushed join@1; Using where
 Warnings:
-Note	9999	Can't push table 't2' as child, column 'a' does neither 'ref' a column nor a constant
+Note	1003	Can't push table 't2' as child, column 'a' does neither 'ref' a column nor a constant
 Note	1003	select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c`,`test`.`t1`.`d` AS `d`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c`,`test`.`t2`.`d` AS `d`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t3`.`c` AS `c`,`test`.`t3`.`d` AS `d` from `test`.`t1` straight_join `test`.`t1` `t2` straight_join `test`.`t1` `t3` where ((`test`.`t2`.`b` = `test`.`t1`.`c`) and (`test`.`t3`.`b` = `test`.`t1`.`c`) and (`test`.`t3`.`a` = `test`.`t1`.`b`) and (`test`.`t1`.`d` = 1) and (`test`.`t1`.`a` = 1) and (`test`.`t2`.`a` = (`test`.`t1`.`b` + 0)))
 select *
 from t1
@@ -834,8 +834,8 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t2	ref	PRIMARY	PRIMARY	4	func	1	100.00	Parent of 2 pushed join@1; Using where
 1	SIMPLE	t3	eq_ref	PRIMARY	PRIMARY	8	test.t1.b,test.t2.b	1	100.00	Child of 't2' in pushed join@1
 Warnings:
-Note	9999	Can't push table 't2' as child, column 'a' does neither 'ref' a column nor a constant
-Note	9999	Can't push table 't3' as child of 't1', column 't2.b' is outside scope of pushable join
+Note	1003	Can't push table 't2' as child, column 'a' does neither 'ref' a column nor a constant
+Note	1003	Can't push table 't3' as child of 't1', column 't2.b' is outside scope of pushable join
 Note	1003	select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c`,`test`.`t1`.`d` AS `d`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c`,`test`.`t2`.`d` AS `d`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t3`.`c` AS `c`,`test`.`t3`.`d` AS `d` from `test`.`t1` straight_join `test`.`t1` `t2` straight_join `test`.`t1` `t3` where ((`test`.`t3`.`b` = `test`.`t2`.`b`) and (`test`.`t3`.`a` = `test`.`t1`.`b`) and (`test`.`t2`.`a` = (`test`.`t1`.`b` + 0)))
 select *
 from t1
@@ -999,8 +999,8 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t2	ref	PRIMARY	PRIMARY	4	test.t1.c	1	100.00	Parent of 2 pushed join@1
 1	SIMPLE	t3	eq_ref	PRIMARY	PRIMARY	8	test.t2.c,test.t2.d	1	100.00	Child of 't2' in pushed join@1
 Warnings:
-Note	9999	Push of table 't2' as scan-child with lookup-root 't1' not implemented
-Note	9999	Can't push table 't3' as child of 't1', column 't2.c' is outside scope of pushable join
+Note	1003	Push of table 't2' as scan-child with lookup-root 't1' not implemented
+Note	1003	Can't push table 't3' as child of 't1', column 't2.c' is outside scope of pushable join
 Note	1003	select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c`,`test`.`t1`.`d` AS `d`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c`,`test`.`t2`.`d` AS `d`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t3`.`c` AS `c`,`test`.`t3`.`d` AS `d` from `test`.`t1` join `test`.`t1` `t2` join `test`.`t1` `t3` where ((`test`.`t2`.`a` = `test`.`t1`.`c`) and (`test`.`t3`.`b` = `test`.`t2`.`d`) and (`test`.`t3`.`a` = `test`.`t2`.`c`) and (`test`.`t1`.`b` = 1) and (`test`.`t1`.`a` = 1))
 select *
 from t1
@@ -1022,8 +1022,8 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t2	ref	PRIMARY	PRIMARY	4	test.t1.c	1	100.00	Parent of 2 pushed join@1
 1	SIMPLE	t3	eq_ref	PRIMARY	PRIMARY	8	test.t2.c,test.t2.d	1	100.00	Child of 't2' in pushed join@1
 Warnings:
-Note	9999	Push of table 't2' as scan-child with lookup-root 't1' not implemented
-Note	9999	Can't push table 't3' as child of 't1', column 't2.c' is outside scope of pushable join
+Note	1003	Push of table 't2' as scan-child with lookup-root 't1' not implemented
+Note	1003	Can't push table 't3' as child of 't1', column 't2.c' is outside scope of pushable join
 Note	1003	select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c`,`test`.`t1`.`d` AS `d`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c`,`test`.`t2`.`d` AS `d`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t3`.`c` AS `c`,`test`.`t3`.`d` AS `d` from `test`.`t1` left join `test`.`t1` `t2` on((`test`.`t2`.`a` = `test`.`t1`.`c`)) left join `test`.`t1` `t3` on(((`test`.`t3`.`b` = `test`.`t2`.`d`) and (`test`.`t3`.`a` = `test`.`t2`.`c`))) where ((`test`.`t1`.`b` = 1) and (`test`.`t1`.`a` = 1))
 select *
 from t1
@@ -1475,7 +1475,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t3	eq_ref	PRIMARY	PRIMARY	8	test.t1.c,test.t1.d	1	100.00	Child of 't1' in pushed join@1
 1	SIMPLE	t4	eq_ref	PRIMARY	PRIMARY	8	test.t3.c,test.t2.c	1	100.00	
 Warnings:
-Note	9999	Can't push table 't4' as child of 't1', dependencies on outer joined grandparents not implemented
+Note	1003	Can't push table 't4' as child of 't1', dependencies on outer joined grandparents not implemented
 Note	1003	select straight_join `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c`,`test`.`t1`.`d` AS `d`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c`,`test`.`t2`.`d` AS `d`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t3`.`c` AS `c`,`test`.`t3`.`d` AS `d`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t4`.`c` AS `c`,`test`.`t4`.`d` AS `d` from `test`.`t1` left join `test`.`t1` `t2` on(((`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`a` = `test`.`t1`.`a`))) join `test`.`t1` `t3` left join `test`.`t1` `t4` on(((`test`.`t4`.`b` = `test`.`t2`.`c`) and (`test`.`t4`.`a` = `test`.`t3`.`c`))) where ((`test`.`t3`.`b` = `test`.`t1`.`d`) and (`test`.`t3`.`a` = `test`.`t1`.`c`))
 explain extended
 select straight_join *
@@ -1502,7 +1502,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t3	ref	PRIMARY	PRIMARY	4	test.t1.a	1	100.00	Child of 't1' in pushed join@1
 1	SIMPLE	t4	eq_ref	PRIMARY	PRIMARY	8	test.t3.c,test.t2.c	1	100.00	
 Warnings:
-Note	9999	Can't push table 't4' as child of 't1', dependencies on outer joined grandparents not implemented
+Note	1003	Can't push table 't4' as child of 't1', dependencies on outer joined grandparents not implemented
 Note	1003	select straight_join `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c`,`test`.`t1`.`d` AS `d`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c`,`test`.`t2`.`d` AS `d`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t3`.`c` AS `c`,`test`.`t3`.`d` AS `d`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t4`.`c` AS `c`,`test`.`t4`.`d` AS `d` from `test`.`t1` left join `test`.`t1` `t2` on(((`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`a` = `test`.`t1`.`a`))) join `test`.`t1` `t3` left join `test`.`t1` `t4` on(((`test`.`t4`.`b` = `test`.`t2`.`c`) and (`test`.`t4`.`a` = `test`.`t3`.`c`))) where (`test`.`t3`.`a` = `test`.`t1`.`a`)
 explain extended
 select straight_join *
@@ -1516,8 +1516,8 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t3	ref	PRIMARY	PRIMARY	4	test.t2.a	1	100.00	Parent of 2 pushed join@2
 1	SIMPLE	t4	eq_ref	PRIMARY	PRIMARY	8	test.t3.c,test.t2.c	1	100.00	Child of 't3' in pushed join@2
 Warnings:
-Note	9999	Can't push table 't3' as child of 't1', outer join of scan-child not implemented
-Note	9999	Can't push table 't4' as child of 't1', column 't3.c' is outside scope of pushable join
+Note	1003	Can't push table 't3' as child of 't1', outer join of scan-child not implemented
+Note	1003	Can't push table 't4' as child of 't1', column 't3.c' is outside scope of pushable join
 Note	1003	select straight_join `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c`,`test`.`t1`.`d` AS `d`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c`,`test`.`t2`.`d` AS `d`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t3`.`c` AS `c`,`test`.`t3`.`d` AS `d`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t4`.`c` AS `c`,`test`.`t4`.`d` AS `d` from `test`.`t1` join `test`.`t1` `t2` left join `test`.`t1` `t3` on(((`test`.`t2`.`a` = `test`.`t1`.`a`) and (`test`.`t3`.`a` = `test`.`t1`.`a`))) left join `test`.`t1` `t4` on(((`test`.`t4`.`b` = `test`.`t2`.`c`) and (`test`.`t4`.`a` = `test`.`t3`.`c`))) where ((`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`a` = `test`.`t1`.`a`))
 explain extended
 select straight_join *
@@ -1531,7 +1531,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t3	ref	PRIMARY	PRIMARY	4	test.t1.a	1	100.00	Child of 't1' in pushed join@1
 1	SIMPLE	t4	ref	PRIMARY	PRIMARY	4	test.t3.c	1	100.00	
 Warnings:
-Note	9999	Can't push table 't4' as child of 't1', outer join of scan-child not implemented
+Note	1003	Can't push table 't4' as child of 't1', outer join of scan-child not implemented
 Note	1003	select straight_join `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c`,`test`.`t1`.`d` AS `d`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c`,`test`.`t2`.`d` AS `d`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t3`.`c` AS `c`,`test`.`t3`.`d` AS `d`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t4`.`c` AS `c`,`test`.`t4`.`d` AS `d` from `test`.`t1` left join `test`.`t1` `t2` on(((`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`a` = `test`.`t1`.`a`))) join `test`.`t1` `t3` left join `test`.`t1` `t4` on((`test`.`t4`.`a` = `test`.`t3`.`c`)) where (`test`.`t3`.`a` = `test`.`t1`.`a`)
 explain extended
 select straight_join *
@@ -1545,9 +1545,9 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t3	ref	PRIMARY	PRIMARY	4	test.t2.a	1	100.00	
 1	SIMPLE	t4	ref	PRIMARY	PRIMARY	4	test.t3.c	1	100.00	
 Warnings:
-Note	9999	Can't push table 't3' as child of 't1', outer join of scan-child not implemented
-Note	9999	Can't push table 't4' as child of 't1', column 't3.c' is outside scope of pushable join
-Note	9999	Can't push table 't4' as child of 't3', outer join of scan-child not implemented
+Note	1003	Can't push table 't3' as child of 't1', outer join of scan-child not implemented
+Note	1003	Can't push table 't4' as child of 't1', column 't3.c' is outside scope of pushable join
+Note	1003	Can't push table 't4' as child of 't3', outer join of scan-child not implemented
 Note	1003	select straight_join `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c`,`test`.`t1`.`d` AS `d`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c`,`test`.`t2`.`d` AS `d`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t3`.`c` AS `c`,`test`.`t3`.`d` AS `d`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t4`.`c` AS `c`,`test`.`t4`.`d` AS `d` from `test`.`t1` join `test`.`t1` `t2` left join `test`.`t1` `t3` on(((`test`.`t2`.`a` = `test`.`t1`.`a`) and (`test`.`t3`.`a` = `test`.`t1`.`a`))) left join `test`.`t1` `t4` on((`test`.`t4`.`a` = `test`.`t3`.`c`)) where ((`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`a` = `test`.`t1`.`a`))
 set ndb_join_pushdown=true;
 explain extended 
@@ -2021,8 +2021,8 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t2	eq_ref	PRIMARY	PRIMARY	8	const,const	1	100.00	Using where; Using filesort
 1	SIMPLE	t1	eq_ref	PRIMARY	PRIMARY	8	test.t2.c,test.t2.d	1	100.00	
 Warnings:
-Note	9999	Table 't2' is not pushable: GROUP BY cannot be done using index on grouped columns.
-Note	9999	Table 't1' is not pushable: GROUP BY cannot be done using index on grouped columns.
+Note	1003	Table 't2' is not pushable: GROUP BY cannot be done using index on grouped columns.
+Note	1003	Table 't1' is not pushable: GROUP BY cannot be done using index on grouped columns.
 Note	1003	select `test`.`t2`.`c` AS `c`,count(distinct `test`.`t2`.`a`) AS `count(distinct t2.a)` from `test`.`t1` join `test`.`t1` `t2` where ((`test`.`t1`.`b` = `test`.`t2`.`d`) and (`test`.`t1`.`a` = `test`.`t2`.`c`) and (`test`.`t2`.`b` = 4) and (`test`.`t2`.`a` = 4)) group by `test`.`t2`.`c`
 select t2.c, count(distinct t2.a)
 from t1
@@ -2041,8 +2041,8 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t2	ref	PRIMARY	PRIMARY	4	const	3	100.00	Using where; Using filesort
 1	SIMPLE	t1	eq_ref	PRIMARY	PRIMARY	8	test.t2.c,test.t2.d	1	100.00	
 Warnings:
-Note	9999	Table 't2' is not pushable: GROUP BY cannot be done using index on grouped columns.
-Note	9999	Table 't1' is not pushable: GROUP BY cannot be done using index on grouped columns.
+Note	1003	Table 't2' is not pushable: GROUP BY cannot be done using index on grouped columns.
+Note	1003	Table 't1' is not pushable: GROUP BY cannot be done using index on grouped columns.
 Note	1003	select `test`.`t2`.`c` AS `c`,count(distinct `test`.`t2`.`a`) AS `count(distinct t2.a)` from `test`.`t1` join `test`.`t1` `t2` where ((`test`.`t1`.`b` = `test`.`t2`.`d`) and (`test`.`t1`.`a` = `test`.`t2`.`c`) and (`test`.`t2`.`a` = 4)) group by `test`.`t2`.`c`
 select t2.c, count(distinct t2.a)
 from t1
@@ -2062,8 +2062,8 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t2	eq_ref	PRIMARY	PRIMARY	8	const,const	1	100.00	Using where; Using filesort
 1	SIMPLE	t1	eq_ref	PRIMARY	PRIMARY	8	test.t2.c,test.t2.d	1	100.00	
 Warnings:
-Note	9999	Table 't2' is not pushable: GROUP BY cannot be done using index on grouped columns.
-Note	9999	Table 't1' is not pushable: GROUP BY cannot be done using index on grouped columns.
+Note	1003	Table 't2' is not pushable: GROUP BY cannot be done using index on grouped columns.
+Note	1003	Table 't1' is not pushable: GROUP BY cannot be done using index on grouped columns.
 Note	1003	select `test`.`t2`.`c` AS `c`,count(distinct `test`.`t2`.`a`) AS `count(distinct t2.a)` from `test`.`t1` join `test`.`t1` `t2` where ((`test`.`t1`.`b` = `test`.`t2`.`d`) and (`test`.`t1`.`a` = `test`.`t2`.`c`) and (`test`.`t2`.`b` = 4) and (`test`.`t2`.`a` = 4)) group by `test`.`t2`.`c` order by `test`.`t2`.`c`
 select t2.c, count(distinct t2.a)
 from t1
@@ -2154,8 +2154,8 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t1	ALL	NULL	NULL	NULL	NULL	16	100.00	
 1	SIMPLE	t2	eq_ref	PRIMARY	PRIMARY	8	test.t1.b,test.t1.c	1	100.00	
 Warnings:
-Note	9999	Table 't1' is not pushable: has user defined partioning
-Note	9999	Table 't2' is not pushable: has user defined partioning
+Note	1003	Table 't1' is not pushable: has user defined partioning
+Note	1003	Table 't2' is not pushable: has user defined partioning
 Note	1003	select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c`,`test`.`t1`.`d` AS `d`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c`,`test`.`t2`.`d` AS `d` from `test`.`t1` join `test`.`t1` `t2` where ((`test`.`t2`.`b` = `test`.`t1`.`c`) and (`test`.`t2`.`a` = `test`.`t1`.`b`))
 alter table t1 partition by list(a) (
 partition p1 values in (1),
@@ -2171,8 +2171,8 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t1	ALL	NULL	NULL	NULL	NULL	16	100.00	
 1	SIMPLE	t2	eq_ref	PRIMARY	PRIMARY	8	test.t1.b,test.t1.c	1	100.00	
 Warnings:
-Note	9999	Table 't1' is not pushable: has user defined partioning
-Note	9999	Table 't2' is not pushable: has user defined partioning
+Note	1003	Table 't1' is not pushable: has user defined partioning
+Note	1003	Table 't2' is not pushable: has user defined partioning
 Note	1003	select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c`,`test`.`t1`.`d` AS `d`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c`,`test`.`t2`.`d` AS `d` from `test`.`t1` join `test`.`t1` `t2` where ((`test`.`t2`.`b` = `test`.`t1`.`c`) and (`test`.`t2`.`a` = `test`.`t1`.`b`))
 alter table t1 partition by range(a) partitions 4 (
 partition p1 values less than (0),
@@ -2188,8 +2188,8 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t1	ALL	NULL	NULL	NULL	NULL	16	100.00	
 1	SIMPLE	t2	eq_ref	PRIMARY	PRIMARY	8	test.t1.b,test.t1.c	1	100.00	
 Warnings:
-Note	9999	Table 't1' is not pushable: has user defined partioning
-Note	9999	Table 't2' is not pushable: has user defined partioning
+Note	1003	Table 't1' is not pushable: has user defined partioning
+Note	1003	Table 't2' is not pushable: has user defined partioning
 Note	1003	select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c`,`test`.`t1`.`d` AS `d`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c`,`test`.`t2`.`d` AS `d` from `test`.`t1` join `test`.`t1` `t2` where ((`test`.`t2`.`b` = `test`.`t1`.`c`) and (`test`.`t2`.`a` = `test`.`t1`.`b`))
 drop table t1;
 set new=default;
@@ -2331,7 +2331,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	x	ALL	NULL	NULL	NULL	NULL	3	100.00	Using where with pushed condition: (`test`.`x`.`b` = 0x1f)
 1	SIMPLE	y	eq_ref	PRIMARY	PRIMARY	4	const	1	100.00	
 Warnings:
-Note	9999	Can't push table 'y' as child of 'x', their dependency is 'const'
+Note	1003	Can't push table 'y' as child of 'x', their dependency is 'const'
 Note	1003	select straight_join `test`.`x`.`a` AS `a`,`test`.`x`.`b` AS `b`,`test`.`y`.`a` AS `a`,`test`.`y`.`b` AS `b` from `test`.`t1` `x` join `test`.`t1` `y` where ((`test`.`y`.`a` = 0x1f) and (`test`.`x`.`b` = 0x1f))
 select straight_join * from t1 x, t1 y where y.a=0x1f and x.b = 0x1f;
 a	b	a	b
@@ -2342,7 +2342,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	x	ALL	NULL	NULL	NULL	NULL	3	100.00	Using where with pushed condition: (`test`.`x`.`b` = 0x1f)
 1	SIMPLE	y	eq_ref	PRIMARY	PRIMARY	4	const	1	100.00	Using where
 Warnings:
-Note	9999	Can't push table 'y' as child of 'x', their dependency is 'const'
+Note	1003	Can't push table 'y' as child of 'x', their dependency is 'const'
 Note	1003	select straight_join `test`.`x`.`a` AS `a`,`test`.`x`.`b` AS `b`,`test`.`y`.`a` AS `a`,`test`.`y`.`b` AS `b` from `test`.`t1` `x` join `test`.`t1` `y` where ((`test`.`y`.`a` = `test`.`x`.`b`) and (`test`.`x`.`b` = 0x1f))
 select straight_join * from t1 x, t1 y where y.a=x.b and x.b = 0x1f;
 a	b	a	b
@@ -2488,8 +2488,8 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	x16	eq_ref	t3_d3	t3_d3	4	test.x15.b3	1	100.00	Parent of 2 pushed join@2
 1	SIMPLE	x17	eq_ref	t3_d3	t3_d3	4	test.x16.b3	1	100.00	Child of 'x16' in pushed join@2
 Warnings:
-Note	9999	Cannot push table 'x16' as child of 'x0'. Max number of pushable tables exceeded.
-Note	9999	Cannot push table 'x17' as child of 'x0'. Max number of pushable tables exceeded.
+Note	1003	Cannot push table 'x16' as child of 'x0'. Max number of pushable tables exceeded.
+Note	1003	Cannot push table 'x17' as child of 'x0'. Max number of pushable tables exceeded.
 Note	1003	select count(0) AS `count(*)` from `test`.`t3` `x0` join `test`.`t3` `x1` join `test`.`t3` `x2` join `test`.`t3` `x3` join `test`.`t3` `x4` join `test`.`t3` `x5` join `test`.`t3` `x6` join `test`.`t3` `x7` join `test`.`t3` `x8` join `test`.`t3` `x9` join `test`.`t3` `x10` join `test`.`t3` `x11` join `test`.`t3` `x12` join `test`.`t3` `x13` join `test`.`t3` `x14` join `test`.`t3` `x15` join `test`.`t3` `x16` join `test`.`t3` `x17` where ((`test`.`x0`.`d3` = 8) and (`test`.`x1`.`d3` = `test`.`x0`.`b3`) and (`test`.`x2`.`d3` = `test`.`x1`.`b3`) and (`test`.`x3`.`d3` = `test`.`x2`.`b3`) and (`test`.`x4`.`d3` = `test`.`x3`.`b3`) and (`test`.`x5`.`d3` = `test`.`x4`.`b3`) and (`test`.`x6`.`d3` = `test`.`x5`.`b3`) and (`test`.`x7`.`d3` = `test`.`x6`.`b3`) and (`test`.`x8`.`d3` = `test`.`x7`.`b3`) and (`test`.`x9`.`d3` = `test`.`x8`.`b3`) and (`test`.`x10`.`d3` = `test`.`x9`.`b3`) and (`test`.`x11`.`d3` = `test`.`x10`.`b3`) and (`test`.`x12`.`d3` = `test`.`x11`.`b3`) and (!
 `test`.`x13`.`d3` = `test`.`x12`.`b3`) and (`test`.`x14`.`d3` = `test`.`x13`.`b3`) and (`test`.`x15`.`d3` = `test`.`x14`.`b3`) and (`test`.`x16`.`d3` = `test`.`x15`.`b3`) and (`test`.`x17`.`d3` = `test`.`x16`.`b3`))
 select count(*) from t3 as x0
 join t3 as x1 on x0.b3=x1.d3 and x0.d3=8
@@ -2581,8 +2581,8 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	x32	ref	PRIMARY	PRIMARY	4	test.x31.c3	1	100.00	Parent of 2 pushed join@2
 1	SIMPLE	x33	ref	PRIMARY	PRIMARY	4	test.x32.c3	1	100.00	Child of 'x32' in pushed join@2
 Warnings:
-Note	9999	Cannot push table 'x32' as child of 'x0'. Max number of pushable tables exceeded.
-Note	9999	Cannot push table 'x33' as child of 'x0'. Max number of pushable tables exceeded.
+Note	1003	Cannot push table 'x32' as child of 'x0'. Max number of pushable tables exceeded.
+Note	1003	Cannot push table 'x33' as child of 'x0'. Max number of pushable tables exceeded.
 Note	1003	select count(0) AS `count(*)` from `test`.`t3` `x0` join `test`.`t3` `x1` join `test`.`t3` `x2` join `test`.`t3` `x3` join `test`.`t3` `x4` join `test`.`t3` `x5` join `test`.`t3` `x6` join `test`.`t3` `x7` join `test`.`t3` `x8` join `test`.`t3` `x9` join `test`.`t3` `x10` join `test`.`t3` `x11` join `test`.`t3` `x12` join `test`.`t3` `x13` join `test`.`t3` `x14` join `test`.`t3` `x15` join `test`.`t3` `x16` join `test`.`t3` `x17` join `test`.`t3` `x18` join `test`.`t3` `x19` join `test`.`t3` `x20` join `test`.`t3` `x21` join `test`.`t3` `x22` join `test`.`t3` `x23` join `test`.`t3` `x24` join `test`.`t3` `x25` join `test`.`t3` `x26` join `test`.`t3` `x27` join `test`.`t3` `x28` join `test`.`t3` `x29` join `test`.`t3` `x30` join `test`.`t3` `x31` join `test`.`t3` `x32` join `test`.`t3` `x33` where ((`test`.`x1`.`a3` = `test`.`x0`.`c3`) and (`test`.`x2`.`a3` = `test`.`x1`.`c3`) and (`test`.`x3`.`a3` = `test`.`x2`.`c3`) and (`test`.`x4`.`a3` = `test`.`x3`.`c3`) and (!
 `test`.`x5`.`a3` = `test`.`x4`.`c3`) and (`test`.`x6`.`a3` = `test`.`x5`.`c3`) and (`test`.`x7`.`a3` = `test`.`x6`.`c3`) and (`test`.`x8`.`a3` = `test`.`x7`.`c3`) and (`test`.`x9`.`a3` = `test`.`x8`.`c3`) and (`test`.`x10`.`a3` = `test`.`x9`.`c3`) and (`test`.`x11`.`a3` = `test`.`x10`.`c3`) and (`test`.`x12`.`a3` = `test`.`x11`.`c3`) and (`test`.`x13`.`a3` = `test`.`x12`.`c3`) and (`test`.`x14`.`a3` = `test`.`x13`.`c3`) and (`test`.`x15`.`a3` = `test`.`x14`.`c3`) and (`test`.`x16`.`a3` = `test`.`x15`.`c3`) and (`test`.`x17`.`a3` = `test`.`x16`.`c3`) and (`test`.`x18`.`a3` = `test`.`x17`.`c3`) and (`test`.`x19`.`a3` = `test`.`x18`.`c3`) and (`test`.`x20`.`a3` = `test`.`x19`.`c3`) and (`test`.`x21`.`a3` = `test`.`x20`.`c3`) and (`test`.`x22`.`a3` = `test`.`x21`.`c3`) and (`test`.`x23`.`a3` = `test`.`x22`.`c3`) and (`test`.`x24`.`a3` = `test`.`x23`.`c3`) and (`test`.`x25`.`a3` = `test`.`x24`.`c3`) and (`test`.`x26`.`a3` = `test`.`x25`.`c3`) and (`test`.`x27`.`a3` = `test`.`x26!
 `.`c3`) and (`test`.`x28`.`a3` = `test`.`x27`.`c3`) and (`test`.`x29`.
`a3` = `test`.`x28`.`c3`) and (`test`.`x30`.`a3` = `test`.`x29`.`c3`) and (`test`.`x31`.`a3` = `test`.`x30`.`c3`) and (`test`.`x32`.`a3` = `test`.`x31`.`c3`) and (`test`.`x33`.`a3` = `test`.`x32`.`c3`))
 select count(*) from t3 as x0
 join t3 as x1 on x0.c3=x1.a3
@@ -2660,8 +2660,8 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	x17	ref	PRIMARY	PRIMARY	4	test.x16.d3	1	100.00	Child of 'x15' in pushed join@1; Using where
 1	SIMPLE	x18	eq_ref	t3_d3	t3_d3	4	test.x16.b3	1	100.00	Child of 'x16' in pushed join@2
 Warnings:
-Note	9999	Cannot push table 'x16' as child of 'x0'. Max number of pushable tables exceeded.
-Note	9999	Cannot push table 'x18' as child of 'x0'. Max number of pushable tables exceeded.
+Note	1003	Cannot push table 'x16' as child of 'x0'. Max number of pushable tables exceeded.
+Note	1003	Cannot push table 'x18' as child of 'x0'. Max number of pushable tables exceeded.
 Note	1003	select count(0) AS `count(*)` from `test`.`t3` `x0` join `test`.`t3` `x1` join `test`.`t3` `x2` join `test`.`t3` `x3` join `test`.`t3` `x4` join `test`.`t3` `x5` join `test`.`t3` `x6` join `test`.`t3` `x7` join `test`.`t3` `x8` join `test`.`t3` `x9` join `test`.`t3` `x10` join `test`.`t3` `x11` join `test`.`t3` `x12` join `test`.`t3` `x13` join `test`.`t3` `x14` join `test`.`t3` `x15` join `test`.`t3` `x16` join `test`.`t3` `x17` join `test`.`t3` `x18` where ((`test`.`x1`.`d3` = `test`.`x0`.`b3`) and (`test`.`x2`.`d3` = `test`.`x1`.`b3`) and (`test`.`x3`.`d3` = `test`.`x2`.`b3`) and (`test`.`x4`.`d3` = `test`.`x3`.`b3`) and (`test`.`x5`.`d3` = `test`.`x4`.`b3`) and (`test`.`x6`.`d3` = `test`.`x5`.`b3`) and (`test`.`x7`.`d3` = `test`.`x6`.`b3`) and (`test`.`x8`.`d3` = `test`.`x7`.`b3`) and (`test`.`x9`.`d3` = `test`.`x8`.`b3`) and (`test`.`x10`.`d3` = `test`.`x9`.`b3`) and (`test`.`x11`.`d3` = `test`.`x10`.`b3`) and (`test`.`x12`.`d3` = `test`.`x11`.`b3`) and (`tes!
 t`.`x13`.`d3` = `test`.`x12`.`b3`) and (`test`.`x14`.`d3` = `test`.`x13`.`b3`) and (`test`.`x15`.`d3` = `test`.`x14`.`b3`) and (`test`.`x16`.`d3` = `test`.`x15`.`b3`) and (`test`.`x17`.`a3` = `test`.`x15`.`b3`) and (`test`.`x18`.`d3` = `test`.`x16`.`b3`))
 select count(*) from t3 as x0
 join t3 as x1 on x0.b3=x1.d3
@@ -3046,8 +3046,8 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	x2	ref	b3,c3,c3_2	b3	4	func	1	100.00	Parent of 2 pushed join@2; Using where
 1	SIMPLE	y2	ref	b3	b3	9	test.x2.c3,test.x1.c3	1	100.00	Child of 'x2' in pushed join@2; Using where
 Warnings:
-Note	9999	Can't push table 'x2' as child, column 'b3' does neither 'ref' a column nor a constant
-Note	9999	Can't push table 'y2' as child of 'x1', column 'x2.c3' is outside scope of pushable join
+Note	1003	Can't push table 'x2' as child, column 'b3' does neither 'ref' a column nor a constant
+Note	1003	Can't push table 'y2' as child of 'x1', column 'x2.c3' is outside scope of pushable join
 Note	1003	select straight_join `test`.`x1`.`a3` AS `a3`,`test`.`x1`.`b3` AS `b3`,`test`.`x1`.`c3` AS `c3`,`test`.`x1`.`d3` AS `d3`,`test`.`y1`.`a3` AS `a3`,`test`.`y1`.`b3` AS `b3`,`test`.`y1`.`c3` AS `c3`,`test`.`y1`.`d3` AS `d3`,`test`.`x2`.`a3` AS `a3`,`test`.`x2`.`b3` AS `b3`,`test`.`x2`.`c3` AS `c3`,`test`.`x2`.`d3` AS `d3`,`test`.`y2`.`a3` AS `a3`,`test`.`y2`.`b3` AS `b3`,`test`.`y2`.`c3` AS `c3`,`test`.`y2`.`d3` AS `d3` from `test`.`t3` `x1` join `test`.`t3` `y1` join `test`.`t3` `x2` join `test`.`t3` `y2` where ((`test`.`y1`.`d3` = `test`.`x1`.`d3`) and (`test`.`y1`.`b3` = `test`.`x1`.`b3`) and (`test`.`y2`.`d3` = `test`.`x1`.`c3`) and (`test`.`y2`.`b3` = `test`.`x2`.`c3`) and (`test`.`x2`.`b3` = (`test`.`x1`.`b3` + 0)))
 select straight_join * from
 t3 as x1
@@ -3213,7 +3213,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t4	eq_ref	PRIMARY	PRIMARY	4	test.t3.b	1	100.00	Child of 't3' in pushed join@1
 1	SIMPLE	t1	ALL	PRIMARY,b	NULL	NULL	NULL	6	100.00	Range checked for each record (index map: 0x3)
 Warnings:
-Note	9999	Table 't1' is not pushable: Access type was not chosen at 'prepare' time
+Note	1003	Table 't1' is not pushable: Access type was not chosen at 'prepare' time
 Note	1003	select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t3`.`c` AS `c`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t4`.`c` AS `c` from `test`.`t1` join `test`.`t1` `t2` join `test`.`t1` `t3` join `test`.`t1` `t4` where ((`test`.`t3`.`a` = `test`.`t2`.`a`) and (`test`.`t4`.`a` = `test`.`t3`.`b`) and ((`test`.`t1`.`b` = `test`.`t2`.`b`) or (`test`.`t1`.`a` = `test`.`t2`.`b`)))
 select *
 from t1
@@ -3259,7 +3259,7 @@ id	select_type	table	type	possible_keys	
 2	DEPENDENT SUBQUERY	y	eq_ref	PRIMARY,b	PRIMARY	4	test.t1.b	1	100.00	Using where
 Warnings:
 Note	1276	Field or reference 'test.t1.b' of SELECT #2 was resolved in SELECT #1
-Note	9999	Can't push table 'y' as child of 'x', column 't1.b' is outside scope of pushable join
+Note	1003	Can't push table 'y' as child of 'x', column 't1.b' is outside scope of pushable join
 Note	1003	select `test`.`t1`.`a` AS `a`,(select straight_join `test`.`x`.`a` from `test`.`t1` `x` join `test`.`t1` `y` where ((`test`.`y`.`b` = `test`.`x`.`a`) and (`test`.`y`.`a` = `test`.`t1`.`b`))) AS `(select straight_join x.a from t1 as x join t1 as y on x.a=y.b where y.a = t1.b)` from `test`.`t1`
 select t1.a, (select straight_join x.a from t1 as x join t1 as y on x.a=y.b where y.a = t1.b) from t1;
 a	(select straight_join x.a from t1 as x join t1 as y on x.a=y.b where y.a = t1.b)
@@ -3283,7 +3283,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t2	ALL	PRIMARY	NULL	NULL	NULL	4	75.00	Using where; Using join buffer
 1	SIMPLE	t3	eq_ref	PRIMARY	PRIMARY	4	test.t2.b	1	100.00	
 Warnings:
-Note	9999	Cannot push table 't3' as child of table 't1'. Doing so would prevent using join buffer for table 't2'.
+Note	1003	Cannot push table 't3' as child of table 't1'. Doing so would prevent using join buffer for table 't2'.
 Note	1003	select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b` from `test`.`t1` join `test`.`t2` join `test`.`t1` `t3` where ((`test`.`t3`.`a` = `test`.`t2`.`b`) and (`test`.`t2`.`a` = `test`.`t1`.`b`))
 select * from t1, t2, t1 as t3
 where t2.a = t1.b
@@ -3379,7 +3379,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t1	ALL	NULL	NULL	NULL	NULL	4	100.00	
 1	SIMPLE	t2	eq_ref	PRIMARY	PRIMARY	4	test.t1.b	1	100.00	
 Warnings:
-Note	9999	Table 't1' is not pushable: select list can't contain BLOB columns
+Note	1003	Table 't1' is not pushable: select list can't contain BLOB columns
 Note	1003	select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t1` join `test`.`t2` where (`test`.`t2`.`a` = `test`.`t1`.`b`)
 select *
 from t1, t2
@@ -3398,7 +3398,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t1	eq_ref	PRIMARY	PRIMARY	4	const	1	100.00	
 1	SIMPLE	t2	eq_ref	PRIMARY	PRIMARY	4	test.t1.b	1	100.00	
 Warnings:
-Note	9999	Table 't1' is not pushable: select list can't contain BLOB columns
+Note	1003	Table 't1' is not pushable: select list can't contain BLOB columns
 Note	1003	select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t1` join `test`.`t2` where ((`test`.`t1`.`a` = 2) and (`test`.`t2`.`a` = `test`.`t1`.`b`))
 select *
 from t1, t2
@@ -3414,7 +3414,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t2	ALL	NULL	NULL	NULL	NULL	4	100.00	
 1	SIMPLE	t1	eq_ref	PRIMARY	PRIMARY	4	test.t2.b	1	100.00	
 Warnings:
-Note	9999	Table 't1' is not pushable: select list can't contain BLOB columns
+Note	1003	Table 't1' is not pushable: select list can't contain BLOB columns
 Note	1003	select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t1` join `test`.`t2` where (`test`.`t1`.`a` = `test`.`t2`.`b`)
 select *
 from t1, t2
@@ -3433,7 +3433,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t2	eq_ref	PRIMARY	PRIMARY	4	const	1	100.00	
 1	SIMPLE	t1	eq_ref	PRIMARY	PRIMARY	4	test.t2.b	1	100.00	
 Warnings:
-Note	9999	Table 't1' is not pushable: select list can't contain BLOB columns
+Note	1003	Table 't1' is not pushable: select list can't contain BLOB columns
 Note	1003	select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t1` join `test`.`t2` where ((`test`.`t2`.`a` = 3) and (`test`.`t1`.`a` = `test`.`t2`.`b`))
 select *
 from t1, t2
@@ -3852,7 +3852,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	x	ALL	NULL	NULL	NULL	NULL	3	100.00	
 1	SIMPLE	y	eq_ref	PRIMARY	PRIMARY	5	test.x.b3,const	1	100.00	Using where
 Warnings:
-Note	9999	Can't push table 'y' as child, column 'a3' does not have same datatype as ref'ed column 'x.b3'
+Note	1003	Can't push table 'y' as child, column 'a3' does not have same datatype as ref'ed column 'x.b3'
 Note	1003	select `test`.`x`.`a3` AS `a3`,`test`.`x`.`b3` AS `b3`,`test`.`x`.`c3` AS `c3`,`test`.`x`.`d3` AS `d3`,`test`.`y`.`a3` AS `a3`,`test`.`y`.`b3` AS `b3`,`test`.`y`.`c3` AS `c3`,`test`.`y`.`d3` AS `d3` from `test`.`t3` `x` join `test`.`t3` `y` where ((`test`.`y`.`a3` = `test`.`x`.`b3`) and (`test`.`y`.`b3` = '63'))
 select * from t3 x, t3 y where y.a3=x.b3 and y.b3="63";
 a3	b3	c3	d3	a3	b3	c3	d3
@@ -3898,8 +3898,8 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t3	eq_ref	PRIMARY	PRIMARY	4	test.t2.b	1	100.00	Child of 't2' in pushed join@2
 1	SIMPLE	t4	eq_ref	PRIMARY	PRIMARY	4	test.t1.b	1	100.00	Child of 't1' in pushed join@1
 Warnings:
-Note	9999	Can't push table 't2' as child, column 'k' does neither 'ref' a column nor a constant
-Note	9999	Can't push table 't3' as child of 't1', column 't2.b' is outside scope of pushable join
+Note	1003	Can't push table 't2' as child, column 'k' does neither 'ref' a column nor a constant
+Note	1003	Can't push table 't3' as child of 't1', column 't2.b' is outside scope of pushable join
 Note	1003	select `test`.`t1`.`k` AS `k`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`k` AS `k`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`k` AS `k`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`k` AS `k`,`test`.`t4`.`b` AS `b` from `test`.`t1` straight_join `test`.`t1` `t2` straight_join `test`.`t1` `t3` straight_join `test`.`t1` `t4` where ((`test`.`t3`.`k` = `test`.`t2`.`b`) and (`test`.`t4`.`k` = `test`.`t1`.`b`) and (`test`.`t2`.`k` = (`test`.`t1`.`b` + 0)))
 select *
 from t1
@@ -3924,8 +3924,8 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	t3	eq_ref	PRIMARY	PRIMARY	4	test.t2.b	1	100.00	Child of 't2' in pushed join@2
 1	SIMPLE	t4	eq_ref	PRIMARY	PRIMARY	4	test.t1.b	1	100.00	Child of 't1' in pushed join@1
 Warnings:
-Note	9999	Can't push table 't2' as child of 't1', their dependency is 'const'
-Note	9999	Can't push table 't3' as child of 't1', column 't2.b' is outside scope of pushable join
+Note	1003	Can't push table 't2' as child of 't1', their dependency is 'const'
+Note	1003	Can't push table 't3' as child of 't1', column 't2.b' is outside scope of pushable join
 Note	1003	select `test`.`t1`.`k` AS `k`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`k` AS `k`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`k` AS `k`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`k` AS `k`,`test`.`t4`.`b` AS `b` from `test`.`t1` straight_join `test`.`t1` `t2` straight_join `test`.`t1` `t3` straight_join `test`.`t1` `t4` where ((`test`.`t3`.`k` = `test`.`t2`.`b`) and (`test`.`t4`.`k` = `test`.`t1`.`b`) and (`test`.`t2`.`k` = 1) and (1 = (`test`.`t1`.`b` + 0)))
 select *
 from t1
@@ -4420,7 +4420,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	y	eq_ref	PRIMARY	PRIMARY	4	const	1	100.00	
 1	SIMPLE	x	eq_ref	PRIMARY,a	PRIMARY	4	const	1	100.00	
 Warnings:
-Note	9999	Can't push table 'x' as child of 'y', their dependency is 'const'
+Note	1003	Can't push table 'x' as child of 'y', their dependency is 'const'
 Note	1003	select `test`.`x`.`pk` AS `pk`,`test`.`x`.`a` AS `a`,`test`.`y`.`pk` AS `pk`,`test`.`y`.`a` AS `a` from `test`.`t1` `y` left join `test`.`t1` `x` on(((`test`.`y`.`a` = 2) and (`test`.`x`.`pk` = 2) and (`test`.`x`.`a` = 2))) where (`test`.`y`.`pk` = 2)
 select * from t1 as x right join t1 as y
 on x.pk = y.pk
@@ -4522,7 +4522,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	x1	ALL	NULL	NULL	NULL	NULL	13	100.00	
 1	SIMPLE	x2	ref	ix1	ix1	5	test.x1.a	2	100.00	
 Warnings:
-Note	9999	Can't push table 'x2' as child of 'x1', outer join of scan-child not implemented
+Note	1003	Can't push table 'x2' as child of 'x1', outer join of scan-child not implemented
 Note	1003	select count(0) AS `count(*)` from `test`.`t1` `x1` left join `test`.`t1` `x2` on((`test`.`x1`.`a` = `test`.`x2`.`b`)) where 1
 select count(*) from t1 as x1 left join t1 as x2 on x1.a=x2.b;
 count(*)
@@ -4540,7 +4540,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	x2	eq_ref	PRIMARY	PRIMARY	4	test.x1.u	1	100.00	Child of 'x1' in pushed join@1
 1	SIMPLE	x3	ref	ix1	ix1	5	test.x2.a	2	100.00	
 Warnings:
-Note	9999	Can't push table 'x3' as child of 'x1', outer join of scan-child not implemented
+Note	1003	Can't push table 'x3' as child of 'x1', outer join of scan-child not implemented
 Note	1003	select count(0) AS `count(*)` from `test`.`t1` `x1` left join `test`.`t1` `x2` on((`test`.`x1`.`u` = `test`.`x2`.`pk`)) left join `test`.`t1` `x3` on((`test`.`x2`.`a` = `test`.`x3`.`b`)) where 1
 select count(*) from t1 as x1 
 left join t1 as x2 on x1.u=x2.pk 
@@ -4566,10 +4566,10 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	x4	eq_ref	PRIMARY	PRIMARY	4	test.x3.u	1	100.00	Child of 'x3' in pushed join@2
 1	SIMPLE	x5	ref	ix1	ix1	5	test.x4.a	2	100.00	
 Warnings:
-Note	9999	Can't push table 'x3' as child of 'x1', outer join of scan-child not implemented
-Note	9999	Can't push table 'x4' as child of 'x1', column 'x3.u' is outside scope of pushable join
-Note	9999	Can't push table 'x5' as child of 'x1', column 'x4.a' is outside scope of pushable join
-Note	9999	Can't push table 'x5' as child of 'x3', outer join of scan-child not implemented
+Note	1003	Can't push table 'x3' as child of 'x1', outer join of scan-child not implemented
+Note	1003	Can't push table 'x4' as child of 'x1', column 'x3.u' is outside scope of pushable join
+Note	1003	Can't push table 'x5' as child of 'x1', column 'x4.a' is outside scope of pushable join
+Note	1003	Can't push table 'x5' as child of 'x3', outer join of scan-child not implemented
 Note	1003	select count(0) AS `count(*)` from `test`.`t1` `x1` left join `test`.`t1` `x2` on((`test`.`x1`.`u` = `test`.`x2`.`pk`)) left join `test`.`t1` `x3` on((`test`.`x2`.`a` = `test`.`x3`.`b`)) left join `test`.`t1` `x4` on((`test`.`x3`.`u` = `test`.`x4`.`pk`)) left join `test`.`t1` `x5` on((`test`.`x4`.`a` = `test`.`x5`.`b`)) where 1
 select count(*) from t1 as x1
 left join t1 as x2 on x1.u=x2.pk
@@ -4594,7 +4594,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	x1	index_merge	PRIMARY,ix2	ix2,PRIMARY	4,4	NULL	2	100.00	Using sort_union(ix2,PRIMARY); Using where with pushed condition: ((`test`.`x1`.`pk` = 1) or (`test`.`x1`.`u` = 1))
 1	SIMPLE	x2	ref	ix1	ix1	5	test.x1.a	2	100.00	Using where
 Warnings:
-Note	9999	Push of table 'x2' as scan-child with lookup-root 'x1' not implemented
+Note	1003	Push of table 'x2' as scan-child with lookup-root 'x1' not implemented
 Note	1003	select count(0) AS `count(*)` from `test`.`t1` `x1` join `test`.`t1` `x2` where ((`test`.`x2`.`b` = `test`.`x1`.`a`) and ((`test`.`x1`.`pk` = 1) or (`test`.`x1`.`u` = 1)))
 select count(*) from t1 as x1
 join t1 as x2 on x1.a=x2.b
@@ -4613,8 +4613,8 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	table2	ref	PRIMARY,ix1	ix1	5	test.table1.pk	2	100.00	Parent of 2 pushed join@1
 1	SIMPLE	table3	ref	ix1	ix1	5	test.table2.pk	2	100.00	Child of 'table2' in pushed join@1
 Warnings:
-Note	9999	Can't push table 'table2' as child of 'table1', outer join of scan-child not implemented
-Note	9999	Can't push table 'table3' as child of 'table1', column 'table2.pk' is outside scope of pushable join
+Note	1003	Can't push table 'table2' as child of 'table1', outer join of scan-child not implemented
+Note	1003	Can't push table 'table3' as child of 'table1', column 'table2.pk' is outside scope of pushable join
 Note	1003	select straight_join `test`.`table1`.`pk` AS `pk`,`test`.`table1`.`u` AS `u`,`test`.`table1`.`a` AS `a`,`test`.`table1`.`b` AS `b`,`test`.`table2`.`pk` AS `pk`,`test`.`table2`.`u` AS `u`,`test`.`table2`.`a` AS `a`,`test`.`table2`.`b` AS `b`,`test`.`table3`.`pk` AS `pk`,`test`.`table3`.`u` AS `u`,`test`.`table3`.`a` AS `a`,`test`.`table3`.`b` AS `b` from `test`.`t1` `table1` left join (`test`.`t1` `table2` join `test`.`t1` `table3`) on(((`test`.`table1`.`pk` = `test`.`table2`.`b`) and (`test`.`table2`.`pk` = `test`.`table3`.`b`))) where 1
 select straight_join * from t1 as table1
 left join 
@@ -4660,7 +4660,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	x1	ALL	NULL	NULL	NULL	NULL	13	100.00	
 1	SIMPLE	x2	ref	ix1	ix1	5	test.x1.a	2	100.00	
 Warnings:
-Note	9999	Can't push table 'x2' as child of 'x1', outer join of scan-child not implemented
+Note	1003	Can't push table 'x2' as child of 'x1', outer join of scan-child not implemented
 Note	1003	select straight_join `test`.`x1`.`pk` AS `pk`,`test`.`x1`.`u` AS `u`,`test`.`x1`.`a` AS `a`,`test`.`x1`.`b` AS `b`,`test`.`x2`.`pk` AS `pk`,`test`.`x2`.`u` AS `u`,`test`.`x2`.`a` AS `a`,`test`.`x2`.`b` AS `b` from `test`.`t1` `x1` left join `test`.`t1` `x2` on((`test`.`x2`.`b` = `test`.`x1`.`a`)) where 1
 explain extended select straight_join * from t1 as x1 
 right join t1 as x2 on x2.b = x1.a;
@@ -4668,7 +4668,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	x2	ALL	NULL	NULL	NULL	NULL	13	100.00	
 1	SIMPLE	x1	ALL	NULL	NULL	NULL	NULL	13	100.00	
 Warnings:
-Note	9999	Can't push table 'x1' as child, 'type' must be a 'ref' access
+Note	1003	Can't push table 'x1' as child, 'type' must be a 'ref' access
 Note	1003	select straight_join `test`.`x1`.`pk` AS `pk`,`test`.`x1`.`u` AS `u`,`test`.`x1`.`a` AS `a`,`test`.`x1`.`b` AS `b`,`test`.`x2`.`pk` AS `pk`,`test`.`x2`.`u` AS `u`,`test`.`x2`.`a` AS `a`,`test`.`x2`.`b` AS `b` from `test`.`t1` `x2` left join `test`.`t1` `x1` on((`test`.`x2`.`b` = `test`.`x1`.`a`)) where 1
 explain extended select straight_join * from 
 t1 as x1 inner join
@@ -4689,7 +4689,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	x2	eq_ref	PRIMARY	PRIMARY	4	test.x1.a	1	100.00	Child of 'x1' in pushed join@1
 1	SIMPLE	x3	ref	ix1	ix1	5	test.x2.a	2	100.00	
 Warnings:
-Note	9999	Can't push table 'x3' as child of 'x1', outer join of scan-child not implemented
+Note	1003	Can't push table 'x3' as child of 'x1', outer join of scan-child not implemented
 Note	1003	select straight_join `test`.`x1`.`pk` AS `pk`,`test`.`x1`.`u` AS `u`,`test`.`x1`.`a` AS `a`,`test`.`x1`.`b` AS `b`,`test`.`x2`.`pk` AS `pk`,`test`.`x2`.`u` AS `u`,`test`.`x2`.`a` AS `a`,`test`.`x2`.`b` AS `b`,`test`.`x3`.`pk` AS `pk`,`test`.`x3`.`u` AS `u`,`test`.`x3`.`a` AS `a`,`test`.`x3`.`b` AS `b` from `test`.`t1` `x1` left join (`test`.`t1` `x2` join `test`.`t1` `x3`) on(((`test`.`x2`.`pk` = `test`.`x1`.`a`) and (`test`.`x3`.`b` = `test`.`x2`.`a`))) where 1
 explain extended select straight_join count(*) from t1 as x1 
 join t1 as x2 on x2.b = x1.a
@@ -4750,7 +4750,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	x2	ref	ix1	ix1	5	test.x1.a	2	100.00	
 1	SIMPLE	x3	ref	ix1	ix1	5	test.x1.b	2	100.00	Child of 'x1' in pushed join@1; Using where
 Warnings:
-Note	9999	Can't push table 'x2' as child of 'x1', outer join of scan-child not implemented
+Note	1003	Can't push table 'x2' as child of 'x1', outer join of scan-child not implemented
 Note	1003	select straight_join count(0) AS `count(*)` from `test`.`t1` `x1` left join `test`.`t1` `x2` on((`test`.`x2`.`b` = `test`.`x1`.`a`)) join `test`.`t1` `x3` where (`test`.`x3`.`b` = `test`.`x1`.`b`)
 set ndb_join_pushdown=off;
 select straight_join count(*) from t1 as x1 
@@ -4772,7 +4772,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	x2	ref	ix1	ix1	5	test.x1.a	2	100.00	Child of 'x1' in pushed join@1; Using where
 1	SIMPLE	x3	ref	ix1	ix1	5	test.x1.b	2	100.00	
 Warnings:
-Note	9999	Can't push table 'x3' as child of 'x1', outer join of scan-child not implemented
+Note	1003	Can't push table 'x3' as child of 'x1', outer join of scan-child not implemented
 Note	1003	select straight_join count(0) AS `count(*)` from `test`.`t1` `x1` join `test`.`t1` `x2` left join `test`.`t1` `x3` on((`test`.`x3`.`b` = `test`.`x1`.`b`)) where (`test`.`x2`.`b` = `test`.`x1`.`a`)
 set ndb_join_pushdown=off;
 select straight_join count(*) from t1 as x1 
@@ -4817,7 +4817,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	x3	ref	ix1	ix1	5	test.x1.a	2	100.00	
 1	SIMPLE	x2	eq_ref	PRIMARY	PRIMARY	4	test.x1.a	1	100.00	Child of 'x1' in pushed join@1
 Warnings:
-Note	9999	Can't push table 'x3' as child of 'x1', outer join of scan-child not implemented
+Note	1003	Can't push table 'x3' as child of 'x1', outer join of scan-child not implemented
 Note	1003	select straight_join count(0) AS `count(*)` from `test`.`t1` `x1` left join `test`.`t1` `x3` on(((`test`.`x3`.`b` = `test`.`x1`.`a`) and (`test`.`x2`.`pk` = `test`.`x1`.`a`))) join `test`.`t1` `x2` where (`test`.`x2`.`pk` = `test`.`x1`.`a`)
 select straight_join count(*) from t1 as x1 
 left join t1 as x3 on x3.b = x1.a
@@ -4864,9 +4864,9 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	table2	eq_ref	PRIMARY,ix2	PRIMARY	4	const	1	100.00	
 1	SIMPLE	table3	ref	ix2	ix2	9	test.table2.a,test.table1.u	1	100.00	Using where
 Warnings:
-Note	9999	Can't push table 'table2' as child of 'table1', their dependency is 'const'
-Note	9999	Can't push table 'table3' as child of 'table1', column 'table2.a' is outside scope of pushable join
-Note	9999	Cannot push table 'table3' as child of 'table2', since it referes to column 'table1.u' prior to a potential 'const' root.
+Note	1003	Can't push table 'table2' as child of 'table1', their dependency is 'const'
+Note	1003	Can't push table 'table3' as child of 'table1', column 'table2.a' is outside scope of pushable join
+Note	1003	Cannot push table 'table3' as child of 'table2', since it referes to column 'table1.u' prior to a potential 'const' root.
 Note	1003	select straight_join `test`.`table1`.`pk` AS `pk`,`test`.`table1`.`u` AS `u`,`test`.`table1`.`a` AS `a`,`test`.`table1`.`b` AS `b`,`test`.`table2`.`pk` AS `pk`,`test`.`table2`.`u` AS `u`,`test`.`table2`.`a` AS `a`,`test`.`table2`.`b` AS `b`,`test`.`table3`.`pk` AS `pk`,`test`.`table3`.`u` AS `u`,`test`.`table3`.`a` AS `a`,`test`.`table3`.`b` AS `b` from `test`.`t1` `table1` join `test`.`t1` `table2` join `test`.`t1` `table3` where ((`test`.`table3`.`a` = `test`.`table2`.`a`) and (`test`.`table3`.`u` = `test`.`table1`.`u`) and (`test`.`table2`.`pk` = 3))
 select straight_join * from
 t1 as table1 join 
@@ -5285,10 +5285,10 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	table3	eq_ref	PRIMARY	PRIMARY	4	test.table2.pk	1	100.00	Child of 'table2' in pushed join@1; Distinct
 1	SIMPLE	table4	eq_ref	PRIMARY	PRIMARY	4	test.table1.a	1	100.00	Using where; Distinct
 Warnings:
-Note	9999	Can't push table 'table2' as child, 'type' must be a 'ref' access
-Note	9999	Cannot push table 'table3' as child of table 'table1'. Doing so would prevent using join buffer for table 'table2'.
-Note	9999	Cannot push table 'table4' as child of table 'table1'. Doing so would prevent using join buffer for table 'table2'.
-Note	9999	Cannot push table 'table4' as child of 'table2', since it referes to column 'table1.a' which will be stored in a join buffer.
+Note	1003	Can't push table 'table2' as child, 'type' must be a 'ref' access
+Note	1003	Cannot push table 'table3' as child of table 'table1'. Doing so would prevent using join buffer for table 'table2'.
+Note	1003	Cannot push table 'table4' as child of table 'table1'. Doing so would prevent using join buffer for table 'table2'.
+Note	1003	Cannot push table 'table4' as child of 'table2', since it referes to column 'table1.a' which will be stored in a join buffer.
 Note	1003	select straight_join distinct `test`.`table1`.`pk` AS `pk` from `test`.`t` `table1` join `test`.`t` `table2` join `test`.`t` `table3` join `test`.`t` `table4` where ((`test`.`table3`.`pk` = `test`.`table2`.`pk`) and (`test`.`table4`.`a` = `test`.`table2`.`pk`) and (`test`.`table4`.`pk` = `test`.`table1`.`a`) and (`test`.`table2`.`pk` <> 6))
 select distinct straight_join table1.pk FROM 
 t as table1  join
@@ -5344,7 +5344,7 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	a	ALL	ix1	NULL	NULL	NULL	4	100.00	
 1	SIMPLE	b	ref_or_null	ix1	ix1	5	test.a.uq	2	100.00	Using where
 Warnings:
-Note	9999	Table 'b' is not pushable: This table access method can not be pushed.
+Note	1003	Table 'b' is not pushable: This table access method can not be pushed.
 Note	1003	select straight_join `test`.`a`.`k` AS `k`,`test`.`a`.`uq` AS `uq`,`test`.`b`.`k` AS `k`,`test`.`b`.`uq` AS `uq` from `test`.`t` `a` join `test`.`t` `b` where ((`test`.`b`.`uq` = `test`.`a`.`uq`) or isnull(`test`.`b`.`uq`))
 select straight_join * from t as a join t as b 
 on a.uq=b.uq or b.uq is null;
@@ -5391,8 +5391,8 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	x1	ref	uk1	uk1	13	test.x2.a	1	100.00	Parent of 2 pushed join@1
 1	SIMPLE	x3	ref	uk1	uk1	26	test.x2.b,test.x1.c	1	100.00	Child of 'x1' in pushed join@1
 Warnings:
-Note	9999	Can't push table 'x1' as child of 'x2', outer join of scan-child not implemented
-Note	9999	Can't push table 'x3' as child of 'x2', column 'x1.c' is outside scope of pushable join
+Note	1003	Can't push table 'x1' as child of 'x2', outer join of scan-child not implemented
+Note	1003	Can't push table 'x3' as child of 'x2', column 'x1.c' is outside scope of pushable join
 Note	1003	select `test`.`x1`.`a` AS `a`,`test`.`x1`.`b` AS `b`,`test`.`x1`.`c` AS `c`,`test`.`x2`.`a` AS `a`,`test`.`x2`.`b` AS `b`,`test`.`x2`.`c` AS `c`,`test`.`x3`.`a` AS `a`,`test`.`x3`.`b` AS `b`,`test`.`x3`.`c` AS `c` from `test`.`tc` `x2` left join `test`.`tc` `x1` on((`test`.`x1`.`b` = `test`.`x2`.`a`)) left join `test`.`tc` `x3` on(((`test`.`x2`.`b` = `test`.`x3`.`b`) and (`test`.`x1`.`c` = `test`.`x3`.`c`))) where 1
 select * from tc as x1 
 right outer join tc as x2 on x1.b=x2.a   
@@ -5406,8 +5406,8 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	x1	ALL	uk1	NULL	NULL	NULL	3	100.00	
 1	SIMPLE	x2	eq_ref	PRIMARY	PRIMARY	12	test.x1.b	1	100.00	
 Warnings:
-Note	9999	Table 'x1' is not pushable: lock modes other than 'read committed' not implemented
-Note	9999	Table 'x2' is not pushable: lock modes other than 'read committed' not implemented
+Note	1003	Table 'x1' is not pushable: lock modes other than 'read committed' not implemented
+Note	1003	Table 'x2' is not pushable: lock modes other than 'read committed' not implemented
 Note	1003	select `test`.`x1`.`a` AS `a`,`test`.`x1`.`b` AS `b`,`test`.`x1`.`c` AS `c`,`test`.`x2`.`a` AS `a`,`test`.`x2`.`b` AS `b`,`test`.`x2`.`c` AS `c` from `test`.`tc` `x1` join `test`.`tc` `x2` where (`test`.`x2`.`a` = `test`.`x1`.`b`)
 explain extended select * from tc as x1, tc as x2 where x1.b=x2.a;
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
@@ -5464,10 +5464,10 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	x4	ALL	NULL	NULL	NULL	NULL	8	100.00	Parent of 2 pushed join@1
 1	SIMPLE	x1	ref	PRIMARY	PRIMARY	4	test.x4.d	1	100.00	Child of 'x4' in pushed join@1
 Warnings:
-Note	9999	Can't push table 'x3' as child of 'x2', outer join of scan-child not implemented
-Note	9999	Can't push table 'x4' as child, 'type' must be a 'ref' access
-Note	9999	Can't push table 'x1' as child of 'x2', column 'x4.d' is outside scope of pushable join
-Note	9999	Can't push table 'x1' as child of 'x3', column 'x4.d' is outside scope of pushable join
+Note	1003	Can't push table 'x3' as child of 'x2', outer join of scan-child not implemented
+Note	1003	Can't push table 'x4' as child, 'type' must be a 'ref' access
+Note	1003	Can't push table 'x1' as child of 'x2', column 'x4.d' is outside scope of pushable join
+Note	1003	Can't push table 'x1' as child of 'x3', column 'x4.d' is outside scope of pushable join
 Note	1003	select count(0) AS `count(*)` from `test`.`t1` `x1` join `test`.`t1` `x2` left join (`test`.`t1` `x3` join `test`.`t1` `x4`) on((`test`.`x3`.`a` = `test`.`x2`.`d`)) where (`test`.`x1`.`a` = `test`.`x4`.`d`)
 select count(*) from t1 as x1 
 join (t1 as x2 
@@ -5486,8 +5486,8 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	x2	ref	PRIMARY	PRIMARY	4	test.x1.d	1	100.00	
 1	SIMPLE	x3	ALL	NULL	NULL	NULL	NULL	8	100.00	
 Warnings:
-Note	9999	Can't push table 'x2' as child of 'x1', outer join of scan-child not implemented
-Note	9999	Can't push table 'x3' as child, 'type' must be a 'ref' access
+Note	1003	Can't push table 'x2' as child of 'x1', outer join of scan-child not implemented
+Note	1003	Can't push table 'x3' as child, 'type' must be a 'ref' access
 Note	1003	select count(0) AS `count(*)` from `test`.`t1` `x1` left join (`test`.`t1` `x2` join `test`.`t1` `x3`) on((`test`.`x1`.`d` = `test`.`x2`.`a`)) where 1
 select count(*) from t1 as x1 
 left join (t1 as x2 
@@ -5510,14 +5510,14 @@ id	select_type	table	type	possible_keys	
 1	SIMPLE	x3	ref	PRIMARY	PRIMARY	4	test.x2.d	1	100.00	Parent of 2 pushed join@1
 1	SIMPLE	x4	ref	PRIMARY	PRIMARY	4	test.x3.d	1	100.00	Child of 'x3' in pushed join@1
 Warnings:
-Note	9999	Can't push table 'x1' as child of 'x0', outer join of scan-child not implemented
-Note	9999	Can't push table 'x2' as child, 'type' must be a 'ref' access
-Note	9999	Can't push table 'x3' as child of 'x0', column 'x2.d' is outside scope of pushable join
-Note	9999	Can't push table 'x4' as child of 'x0', column 'x3.d' is outside scope of pushable join
-Note	9999	Can't push table 'x3' as child of 'x1', column 'x2.d' is outside scope of pushable join
-Note	9999	Can't push table 'x4' as child of 'x1', column 'x3.d' is outside scope of pushable join
-Note	9999	Can't push table 'x3' as child of 'x2', outer join of scan-child not implemented
-Note	9999	Can't push table 'x4' as child of 'x2', column 'x3.d' is outside scope of pushable join
+Note	1003	Can't push table 'x1' as child of 'x0', outer join of scan-child not implemented
+Note	1003	Can't push table 'x2' as child, 'type' must be a 'ref' access
+Note	1003	Can't push table 'x3' as child of 'x0', column 'x2.d' is outside scope of pushable join
+Note	1003	Can't push table 'x4' as child of 'x0', column 'x3.d' is outside scope of pushable join
+Note	1003	Can't push table 'x3' as child of 'x1', column 'x2.d' is outside scope of pushable join
+Note	1003	Can't push table 'x4' as child of 'x1', column 'x3.d' is outside scope of pushable join
+Note	1003	Can't push table 'x3' as child of 'x2', outer join of scan-child not implemented
+Note	1003	Can't push table 'x4' as child of 'x2', column 'x3.d' is outside scope of pushable join
 Note	1003	select count(0) AS `count(*)` from `test`.`t1` `x0` left join (`test`.`t1` `x1` join `test`.`t1` `x2` left join (`test`.`t1` `x3` join `test`.`t1` `x4`) on(((`test`.`x2`.`d` = `test`.`x3`.`a`) and (`test`.`x3`.`d` = `test`.`x4`.`a`)))) on(((`test`.`x0`.`d` = `test`.`x1`.`a`) and (isnull(`test`.`x2`.`c`) or (`test`.`x1`.`a` = `test`.`x4`.`d`)))) where 1
 select count(*) from t1 as x0 
 left join (t1 as x1 

=== modified file 'mysql-test/suite/ndb/t/ndb_alter_table_online.test'
--- a/mysql-test/suite/ndb/t/ndb_alter_table_online.test	2012-03-19 12:09:39 +0000
+++ b/mysql-test/suite/ndb/t/ndb_alter_table_online.test	2012-06-13 19:32:58 +0000
@@ -235,7 +235,7 @@ ALTER ONLINE TABLE t1 ADD c TIMESTAMP;
 --source ndb_show_tables_result.inc
 select name from ndb_show_tables_results where id = @t1_id and name like '%t1%' and type like '%UserTable%';
 
-ALTER TABLE t1 ADD c TIMESTAMP;
+ALTER TABLE t1 ADD c TIMESTAMP DEFAULT 0;
 
 INSERT INTO t1 values (2,2,'2007-09-19 18:46:02');
 SELECT * FROM t1 ORDER BY a;

=== modified file 'mysql-test/suite/ndb_rpl/r/ndb_rpl_dd_advance.result'
--- a/mysql-test/suite/ndb_rpl/r/ndb_rpl_dd_advance.result	2011-05-13 07:40:50 +0000
+++ b/mysql-test/suite/ndb_rpl/r/ndb_rpl_dd_advance.result	2012-06-12 16:10:00 +0000
@@ -143,9 +143,9 @@ SELECT * FROM t1 ORDER BY c1 LIMIT 5;
 c1	c2	c3	c5
 1	2.00	b1b1b1b1b1b1b1b1b1b1	NULL
 2	4.00	b1b1b1b1b1b1b1b1b1b1	NULL
-3	6.00	0000-00-00 00:00:00	NULL
-4	8.00	0000-00-00 00:00:00	NULL
-5	10.00	0000-00-00 00:00:00	NULL
+3	6.00	<c4_timestamp_value>	NULL
+4	8.00	<c4_timestamp_value>	NULL
+5	10.00	<c4_timestamp_value>	NULL
 **** Show last set of ALTERs on SLAVE ****
 SHOW CREATE TABLE t1;
 Table	Create Table
@@ -162,9 +162,9 @@ SELECT * FROM t1 ORDER BY c1 LIMIT 5;
 c1	c2	c3	c5
 1	2.00	b1b1b1b1b1b1b1b1b1b1	NULL
 2	4.00	b1b1b1b1b1b1b1b1b1b1	NULL
-3	6.00	0000-00-00 00:00:00	NULL
-4	8.00	0000-00-00 00:00:00	NULL
-5	10.00	0000-00-00 00:00:00	NULL
+3	6.00	<c4_timestamp_value>	NULL
+4	8.00	<c4_timestamp_value>	NULL
+5	10.00	<c4_timestamp_value>	NULL
 SELECT * FROM t1 where c1 = 1;
 c1	c2	c3	c5
 1	2.00	b1b1b1b1b1b1b1b1b1b1	NULL

=== modified file 'mysql-test/suite/ndb_rpl/t/ndb_rpl_2multi_basic.inc'
--- a/mysql-test/suite/ndb_rpl/t/ndb_rpl_2multi_basic.inc	2011-05-13 07:40:50 +0000
+++ b/mysql-test/suite/ndb_rpl/t/ndb_rpl_2multi_basic.inc	2012-06-12 18:23:54 +0000
@@ -38,7 +38,7 @@ SHOW CREATE TABLE t1;
 sync_slave_with_master;
 SHOW CREATE TABLE t1;
 
---source include/rpl_multi_engine2.inc
+--source suite/ndb_rpl/t/ndb_rpl_multi_engine2.inc
 
 #################################################
 # Okay lets see how it holds up to table changes
@@ -58,7 +58,7 @@ SHOW CREATE TABLE t1;
 sync_slave_with_master;
 SHOW CREATE TABLE t1;
 
---source include/rpl_multi_engine2.inc
+--source suite/ndb_rpl/t/ndb_rpl_multi_engine2.inc
 
 #################################################
 --echo --- Check that replication works when slave has more columns than master
@@ -89,7 +89,7 @@ SELECT * 
 FROM t1
 ORDER BY id;
 
---source include/rpl_multi_engine2.inc
+--source suite/ndb_rpl/t/ndb_rpl_multi_engine2.inc
 TRUNCATE TABLE t1;
 
 #################################################
@@ -107,7 +107,7 @@ ALTER TABLE t1 DROP COLUMN y;
 
 SHOW CREATE TABLE t1;
 
---source include/rpl_multi_engine2.inc
+--source suite/ndb_rpl/t/ndb_rpl_multi_engine2.inc
 TRUNCATE TABLE t1;
 
 #################################################

=== modified file 'mysql-test/suite/ndb_rpl/t/ndb_rpl_dd_advance.test'
--- a/mysql-test/suite/ndb_rpl/t/ndb_rpl_dd_advance.test	2011-05-13 07:40:50 +0000
+++ b/mysql-test/suite/ndb_rpl/t/ndb_rpl_dd_advance.test	2012-06-12 16:10:00 +0000
@@ -91,6 +91,8 @@ CREATE INDEX t1_i ON t1(c2, c3);
 #Bug 18039
 CREATE UNIQUE INDEX t1_i2 ON t1(c2);
 ALTER TABLE t1 ADD c4 TIMESTAMP;
+# Save the TIMESTAMP value of c4 for later masking of .result file
+let $c4_timestamp_value=`select c4 FROM t1 WHERE c1 = 1`;
 ALTER TABLE t1 ADD c5 DOUBLE;
 ALTER TABLE t1 ADD INDEX (c5);  
 SHOW CREATE TABLE t1;
@@ -154,12 +156,14 @@ UPDATE t1 SET c3=@b1 where c1 = 2;
 --echo **** Show last set of ALTERs on MASTER ****
 
 SHOW CREATE TABLE t1;
+--replace_result $c4_timestamp_value <c4_timestamp_value>
 SELECT * FROM t1 ORDER BY c1 LIMIT 5;
 
 --echo **** Show last set of ALTERs on SLAVE ****
 --sync_slave_with_master
 connection slave;
 SHOW CREATE TABLE t1;
+--replace_result $c4_timestamp_value <c4_timestamp_value>
 # Bug 18094
 SELECT * FROM t1 ORDER BY c1 LIMIT 5;
 SELECT * FROM t1 where c1 = 1;

=== renamed file 'mysql-test/include/rpl_multi_engine2.inc' => 'mysql-test/suite/ndb_rpl/t/ndb_rpl_multi_engine2.inc'
=== modified file 'sql/ha_ndbcluster.cc'
--- a/sql/ha_ndbcluster.cc	2012-06-08 11:56:49 +0000
+++ b/sql/ha_ndbcluster.cc	2012-06-13 19:32:58 +0000
@@ -26,7 +26,6 @@
 #ifdef WITH_NDBCLUSTER_STORAGE_ENGINE
 #include "ha_ndbcluster.h"
 #include <ndbapi/NdbApi.hpp>
-#include <util/Bitmask.hpp>
 #include <ndbapi/NdbIndexStat.hpp>
 #include <ndbapi/NdbInterpretedCode.hpp>
 #include "../storage/ndb/src/ndbapi/NdbQueryBuilder.hpp"
@@ -49,6 +48,7 @@
 
 #include <mysql/plugin.h>
 #include <ndb_version.h>
+#include <ndb_global.h>
 #include "ndb_mi.h"
 #include "ndb_conflict.h"
 #include "ndb_anyvalue.h"
@@ -7654,23 +7654,6 @@ int ha_ndbcluster::start_statement(THD *
     else if (thd->slave_thread)
       thd_ndb->m_slow_path= TRUE;
   }
-  /*
-    If this is the start of a LOCK TABLE, a table look 
-    should be taken on the table in NDB
-       
-    Check if it should be read or write lock
-  */
-  if (thd_options(thd) & (OPTION_TABLE_LOCK))
-  {
-    /* This is currently dead code in wait for implementation in NDB */
-    /* lockThisTable(); */
-    DBUG_PRINT("info", ("Locking the table..." ));
-#ifdef NOT_YET
-    push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN,
-                        ER_GET_ERRMSG, ER(ER_GET_ERRMSG), 0,
-                        "Table only locked locally in this mysqld", "NDB");
-#endif
-  }
   DBUG_RETURN(0);
 }
 
@@ -11836,6 +11819,34 @@ static int ndb_wait_setup_func_impl(ulon
 
 int(*ndb_wait_setup_func)(ulong) = 0;
 #endif
+
+/* Version in composite numerical format */
+static Uint32 ndb_version = NDB_VERSION_D;
+static MYSQL_SYSVAR_UINT(
+  version,                          /* name */
+  ndb_version,                      /* var */
+  PLUGIN_VAR_NOCMDOPT | PLUGIN_VAR_READONLY,
+  "Compile version for ndbcluster",
+  NULL,                             /* check func. */
+  NULL,                             /* update func. */
+  0,                                /* default */
+  0,                                /* min */
+  0,                                /* max */
+  0                                 /* block */
+);
+
+/* Version in ndb-Y.Y.Y[-status] format */
+static char* ndb_version_string = (char*)NDB_NDB_VERSION_STRING;
+static MYSQL_SYSVAR_STR(
+  version_string,                  /* name */
+  ndb_version_string,              /* var */
+  PLUGIN_VAR_NOCMDOPT | PLUGIN_VAR_READONLY,
+  "Compile version string for ndbcluster",
+  NULL,                             /* check func. */
+  NULL,                             /* update func. */
+  NULL                              /* default */
+);
+
 extern int ndb_dictionary_is_mysqld;
 
 static int ndbcluster_init(void *p)
@@ -17386,6 +17397,8 @@ static struct st_mysql_sys_var* system_v
 #ifndef DBUG_OFF
   MYSQL_SYSVAR(dbg_check_shares),
 #endif
+  MYSQL_SYSVAR(version),
+  MYSQL_SYSVAR(version_string),
   NULL
 };
 

=== modified file 'sql/ha_ndbcluster_push.cc'
--- a/sql/ha_ndbcluster_push.cc	2012-05-03 10:42:49 +0000
+++ b/sql/ha_ndbcluster_push.cc	2012-06-11 10:56:04 +0000
@@ -40,12 +40,19 @@
 
 #include <ndb_version.h>
 
+
+/*
+  Explain why an operation could not be pushed when using 'explain extended'
+  @param[in] msgfmt printf style format string.
+*/
 #define EXPLAIN_NO_PUSH(msgfmt, ...)                              \
 do                                                                \
 {                                                                 \
   if (unlikely(current_thd->lex->describe & DESCRIBE_EXTENDED))   \
   {                                                               \
-    ndbcluster_explain_no_push ((msgfmt), __VA_ARGS__);           \
+    push_warning_printf(current_thd,                              \
+                        MYSQL_ERROR::WARN_LEVEL_NOTE, ER_YES,     \
+                        (msgfmt), __VA_ARGS__);                   \
   }                                                               \
 }                                                                 \
 while(0)
@@ -70,29 +77,6 @@ static bool ndbcluster_is_lookup_operati
     accessType == AQP::AT_UNIQUE_KEY;
 }
 
-/**
- * Used by 'explain extended' to explain why an operation could not be pushed.
- * @param[in] msgfmt printf style format string.
- */
-static void ndbcluster_explain_no_push(const char* msgfmt, ...)
-{
-  va_list args;
-  char wbuff[1024];
-  va_start(args,msgfmt);
-  (void) my_vsnprintf (wbuff, sizeof(wbuff), msgfmt, args);
-  va_end(args);
-  /**
-   *  FIXME:
-   *  We temp. use '9999' as errorcode, Change to use
-   *  'WARN_QUERY_NOT_PUSHED' when its deffinition has reached
-   *  one if the 'mainline' branches. (sql/share/errmsg.txt)
-   */
-  uint warn_code= 9999;
-  push_warning(current_thd, MYSQL_ERROR::WARN_LEVEL_NOTE, warn_code,
-               wbuff);
-} // ndbcluster_explain_no_push();
-
-
 uint
 ndb_table_access_map::first_table(uint start) const
 {

=== modified file 'storage/ndb/include/ndb_version.h.in'
--- a/storage/ndb/include/ndb_version.h.in	2012-04-25 09:22:21 +0000
+++ b/storage/ndb/include/ndb_version.h.in	2012-06-13 19:32:58 +0000
@@ -27,6 +27,13 @@
 */
 #define NDB_MAKE_VERSION(A,B,C) (((A) << 16) | ((B) << 8)  | ((C) << 0))
 
+/*
+  Creates a stringified version from major, minor and build
+  ex: NDB_MAKE_STRING_VERSION(7,0,22) => "7.0.22"
+*/
+#define NDB_MAKE_QUOTED_VERSION(A,B,C) #A "." #B "." #C
+#define NDB_MAKE_STRING_VERSION(A,B,C) NDB_MAKE_QUOTED_VERSION(A,B,C)
+
 /* NDB version numbers and status  */
 #define NDB_VERSION_MAJOR @NDB_VERSION_MAJOR@
 #define NDB_VERSION_MINOR @NDB_VERSION_MINOR@
@@ -37,6 +44,12 @@
 #define NDB_VERSION_D \
   NDB_MAKE_VERSION(NDB_VERSION_MAJOR, NDB_VERSION_MINOR, NDB_VERSION_BUILD)
 
+/* Version string for NDB, ex: "ndb-7.0.22" */
+#define NDB_NDB_VERSION_STRING \
+  "ndb-" NDB_MAKE_STRING_VERSION(NDB_VERSION_MAJOR, \
+                                 NDB_VERSION_MINOR, \
+                                 NDB_VERSION_BUILD) NDB_VERSION_STATUS
+
 /*
   The version number of the MySQL Server that NDB is built
   with. Extracted from MYSQL_VERSION_ID

=== modified file 'storage/ndb/include/ndbapi/NdbScanOperation.hpp'
--- a/storage/ndb/include/ndbapi/NdbScanOperation.hpp	2012-01-20 06:22:16 +0000
+++ b/storage/ndb/include/ndbapi/NdbScanOperation.hpp	2012-06-13 19:32:58 +0000
@@ -41,19 +41,46 @@ class NdbScanOperation : public NdbOpera
 
 public:
   /**
-   * Scan flags.  OR-ed together and passed as second argument to
-   * readTuples. Note that SF_MultiRange has to be set if several
-   * ranges (bounds) are to be passed.
+   * Scan flags.  OR-ed together and passed as argument to
+   * readTuples, scanIndex, and scanTable. Note that SF_MultiRange
+   * has to be set if several ranges (bounds) are to be passed.
    */
   enum ScanFlag {
-    /* Scan TUP order */
+    /* Scan in TUP order (the order of rows in memory). Table scan only. */
     SF_TupScan = (1 << 16),
-    /* Scan in DISK order */
+    /* Scan in DISK order (the order of rows on disk). Table scan only. */
     SF_DiskScan = (2 << 16),
     /*
       Return rows from an index scan sorted, ordered on the index key.
+      Both ascending order or descending order scans are affected by this flag.
       This flag makes the API perform a merge-sort among the ordered scans of
       each fragment, to get a single sorted result set.
+      Note that :
+      1) Ordered indexes are distributed - there is one for each fragment of a
+         table.
+      2) Range scans are often parallel - across all index fragments.  
+         Occasionally they can be pruned to one index fragment.
+      3) Each index fragment range scan will return results in either ascending
+         or descending order.  Ascending is the default, but descending is
+         chosen if SF_Descending is set.
+      4) Where multiple index fragments are scanned in parallel, the results
+         are sent back to NdbApi where they can optionally be merge-sorted
+         before being returned to the user.  This merge sorting is controlled
+         via the SF_OrderBy and SF_OrderByFull flags.
+      5) Without SF_OrderBy* flags, the results from each index fragment will
+         be in-order (ascending or descending), but results from different
+         fragments may be interleaved.
+      6) With SF_OrderBy* flags, some extra constraints are imposed internally:
+        i) If the range scan is not pruned to one index fragment then all
+           index fragments must be scanned in parallel.  (Non SF_OrderBy* flag
+           scans can be executed with lower than full-parallelism)
+        ii) Results from every index fragment must be available before returning
+            any row, to ensure a correct merge sort.  This serialises the 
+            'scrolling' of the scan, potentially resulting in lower row
+            throughput.
+        iii) Non SF_OrderBy* flag scans can return rows to the Api before all
+             index fragments have returned a batch, and can overlap next-batch
+             requests with Api row processing.
     */
     SF_OrderBy = (1 << 24),
     /**
@@ -70,6 +97,9 @@ public:
       called to read back the range_no defined in
       NdbIndexScanOperation::setBound(). See @ref setBound() for
       explanation.
+      Additionally, when this flag is set and SF_OrderBy* is also set, results
+      from ranges are returned in their entirety before any results are returned
+      from subsequent ranges.
     */
     SF_ReadRangeNo = (4 << 24),
     /* Scan is part of multi-range scan. */

=== modified file 'storage/ndb/src/common/util/version.cpp'
--- a/storage/ndb/src/common/util/version.cpp	2012-04-11 09:56:27 +0000
+++ b/storage/ndb/src/common/util/version.cpp	2012-06-13 19:32:58 +0000
@@ -330,6 +330,8 @@ TAPTEST(ndb_version)
   printf(" NDB_VERSION_MINOR: %d\n", NDB_VERSION_MINOR);
   printf(" NDB_VERSION_BUILD: %d\n", NDB_VERSION_BUILD);
   printf(" NDB_VERSION_STATUS: '%s'\n\n", NDB_VERSION_STATUS);
+  printf(" NDB_VERSION_STRING: '%s'\n", NDB_VERSION_STRING);
+  printf(" NDB_NDB_VERSION_STRING: '%s'\n\n", NDB_NDB_VERSION_STRING);
 
   /*
     Parse the VERSION string as X.X.X-status */
@@ -422,6 +424,7 @@ TAPTEST(ndb_version)
   /* ndbGetOwnVersionString */
   printf("ndbGetOwnVersionString: '%s'\n",
          ndbGetOwnVersionString());
+  OK(strcmp(NDB_VERSION_STRING, ndbGetOwnVersionString()) == 0); // should match
 
   /* ndbGetOwnVersion */
   OK(ndbGetOwnVersion() == ndbMakeVersion(NDB_VERSION_MAJOR,

No bundle (reason: useless for push emails).
Thread
bzr push into mysql-5.5-cluster-7.2 branch (magnus.blaudd:3937 to 3939) magnus.blaudd14 Jun