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) List-Archive: http://lists.mysql.com/commits/144232 Message-Id: <20120613193541.5728.78031.3939@peek02.se.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 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 NULL +4 8.00 NULL +5 10.00 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 NULL +4 8.00 NULL +5 10.00 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 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 # 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 -#include #include #include #include "../storage/ndb/src/ndbapi/NdbQueryBuilder.hpp" @@ -49,6 +48,7 @@ #include #include +#include #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 + +/* + 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).