26 Nov
2009
26 Nov
'09
5:47 p.m.
Hi Kristian, This could be tricky. Basically, the way PBXT works this is possible, because the statistics can depend on the speed of threads running in the background. So this is likely to be a matter of timing. We will give this test a try, and see if we also get unstable results. Best regards, Paul On Nov 25, 2009, at 2:38 PM, Kristian Nielsen wrote: > Kristian Nielsen <knielsen@knielsen-hq.org> writes: > >> We are working on merging latest MySQL (5.1.41) into MariaDB. >> >> After the merge, I see some test failures in the PBXT test suite. >> See here: > > Ok, seems most of the PBXT failures are gone now. But one remains: > > http://askmonty.org/buildbot/reports/cross_reference#branch=5.1- > merge&revision=&platform=debian5-i386- > fulltest > &dt > = > &bbnum > = > &typ > = > &info > = > &fail_name > =pbxt.join_nested&fail_variant=&fail_info_short=&fail_info_full= > > (see end of mail for diff). > > It looks like the test is not deterministic, and chooses a slightly > different > execution plan between different test runs and platforms for the > table t3 and > t4. > > Do you have any suggestions about how to deal with this? > > - Kristian. > > > CURRENT_TEST: pbxt.join_nested > --- /var/lib/buildbot/maria-slave/debian5-i386-fulltest/build/mysql- > test/suite/pbxt/r/join_nested.result 2009-11-25 21:10:35.000000000 > +0300 > +++ /var/lib/buildbot/maria-slave/debian5-i386-fulltest/build/mysql- > test/suite/pbxt/r/join_nested.reject 2009-11-25 21:46:01.000000000 > +0300 > @@ -1008,13 +1008,13 @@ > 1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join > buffer > 1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where > 1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where > -1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 1 100.00 Using where > +1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 1 100.00 > 1 SIMPLE t5 ALL idx_b NULL NULL NULL 3 100.00 Using where > 1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where > 1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where > 1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 1 100.00 Using where > 1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join > buffer > -Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS > `b`,`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`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS > `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS > `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS > `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS > `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left > join (`test`.`t3` join `test`.`t4`) on(((`test`.`t4`.`b` = > `test`.`t2`.`b`) and (`test`.`t3`.`a` = 1))) join `test`.`t5` left > join (`test`.`t6` join `test`.`t7` left join `test`.`t8` > on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < > 10)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` > >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and > ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and > ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or > isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and > (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = > 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) > and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and > ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and > ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or > isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or > isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or > isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or > isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or > isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or > isnull(`test`.`t8`.`c`))) > +Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS > `b`,`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`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS > `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS > `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS > `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS > `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left > join (`test`.`t3` join `test`.`t4`) on(((`test`.`t4`.`b` = > `test`.`t2`.`b`) and (`test`.`t3`.`a` = 1))) join `test`.`t5` left > join (`test`.`t6` join `test`.`t7` left join `test`.`t8` > on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < > 10)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` > >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and > ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and > ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or > isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and > (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = > 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) > and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and > ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and > ((`test`.`t3`.`b` = `test`.`t4`.`b`) or isnull(`test`.`t3`.`c`) or > isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or > isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or > isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or > isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or > isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or > isnull(`test`.`t8`.`c`))) -- Paul McCullagh PrimeBase Technologies www.primebase.org www.blobstreaming.org pbxt.blogspot.com