Hi Serge,
Good work, patch approved!
I think this can be pushed without a second review.
/Sven
Serge Kozlov wrote:
> #At file:///home/ksm/sun/repo/bug39013/mysql-5.1-bugteam/ based on
> revid:sergey.glukhov@stripped
>
> 2756 Serge Kozlov 2008-12-30
> Bug#39013:
> Added sync slave with master before every UPDATE on master to
> make sure that SQL error is not related to previous UPDATE statement.
> modified:
> mysql-test/suite/rpl/t/rpl_filter_tables_not_exist.test
>
> === modified file 'mysql-test/suite/rpl/t/rpl_filter_tables_not_exist.test'
> --- a/mysql-test/suite/rpl/t/rpl_filter_tables_not_exist.test 2008-08-26 10:01:49
> +0000
> +++ b/mysql-test/suite/rpl/t/rpl_filter_tables_not_exist.test 2008-12-29 21:37:23
> +0000
> @@ -134,15 +134,23 @@ let show_sql_error=1;
> #
> UPDATE t1 LEFT JOIN t4 ON (t1.id=t4.id) SET a=0 where t1.id=1;
> source include/wait_for_slave_sql_error_and_skip.inc;
> +sync_slave_with_master;
> +connection master;
>
> UPDATE t1 LEFT JOIN (t4, t7) ON (t1.id=t4.id and t1.id=t7.id) SET a=0 where
> t1.id=1;
> source include/wait_for_slave_sql_error_and_skip.inc;
> +sync_slave_with_master;
> +connection master;
>
> UPDATE t1 LEFT JOIN (t2, t4, t7) ON (t1.id=t2.id and t1.id=t4.id and t1.id=t7.id)
> SET a=0, b=0 where t1.id=1;
> source include/wait_for_slave_sql_error_and_skip.inc;
> +sync_slave_with_master;
> +connection master;
>
> UPDATE t1 LEFT JOIN (t2, t3, t7) ON (t1.id=t2.id and t1.id=t3.id and t1.id=t7.id)
> SET a=0, b=0, c=0 where t1.id=1;
> source include/wait_for_slave_sql_error_and_skip.inc;
> +sync_slave_with_master;
> +connection master;
>
> #
> # Do tables and other tables are referenced for update, these
> @@ -150,44 +158,66 @@ source include/wait_for_slave_sql_error_
> #
> UPDATE t1 LEFT JOIN t7 ON (t1.id=t7.id) SET a=0, g=0 where t1.id=1;
> source include/wait_for_slave_sql_error_and_skip.inc;
> +sync_slave_with_master;
> +connection master;
>
> UPDATE t7 LEFT JOIN t1 ON (t1.id=t7.id) SET a=0, g=0 where t7.id=1;
> source include/wait_for_slave_sql_error_and_skip.inc;
> +sync_slave_with_master;
> +connection master;
>
> UPDATE t1 LEFT JOIN (t4, t5, t7) ON (t1.id=t4.id and t1.id=t5.id and t1.id=t7.id)
> SET a=0, g=0 where t1.id=1;
> source include/wait_for_slave_sql_error_and_skip.inc;
> +sync_slave_with_master;
> +connection master;
>
> UPDATE t1 LEFT JOIN (t4, t7, t8) ON (t1.id=t4.id and t1.id=t7.id and t1.id=t8.id)
> SET a=0, g=0 where t1.id=1;
> source include/wait_for_slave_sql_error_and_skip.inc;
> +sync_slave_with_master;
> +connection master;
>
> UPDATE t1 LEFT JOIN (t7, t8, t9) ON (t1.id=t7.id and t1.id=t8.id and t1.id=t9.id)
> SET a=0, g=0, h=0, i=0 where t1.id=1;
> source include/wait_for_slave_sql_error_and_skip.inc;
> +sync_slave_with_master;
> +connection master;
>
> UPDATE t7 LEFT JOIN (t1, t2, t3) ON (t7.id=t1.id and t7.id=t2.id and t7.id=t3.id)
> SET g=0, a=0, b=0, c=0 where t7.id=1;
> source include/wait_for_slave_sql_error_and_skip.inc;
> +sync_slave_with_master;
> +connection master;
>
> UPDATE t7 LEFT JOIN (t4, t5, t3) ON (t7.id=t4.id and t7.id=t5.id and t7.id=t3.id)
> SET g=0, c=0 where t7.id=1;
> source include/wait_for_slave_sql_error_and_skip.inc;
> +sync_slave_with_master;
> +connection master;
>
> UPDATE t7 LEFT JOIN (t8, t9, t3) ON (t7.id=t8.id and t7.id=t9.id and t7.id=t3.id)
> SET g=0, h=0, i=0, c=0 where t7.id=1;
> source include/wait_for_slave_sql_error_and_skip.inc;
> +sync_slave_with_master;
> +connection master;
>
> #
> # Do tables are referenced for update before ignore tables
> #
> UPDATE t1 LEFT JOIN t4 ON (t1.id=t4.id) SET a=0, d=0 where t1.id=1;
> source include/wait_for_slave_sql_error_and_skip.inc;
> +sync_slave_with_master;
> +connection master;
>
> UPDATE t1 LEFT JOIN (t4, t5, t6) ON (t1.id=t4.id and t1.id=t5.id and t1.id=t6.id)
> SET a=0, d=0, e=0, f=0 where t1.id=1;
> source include/wait_for_slave_sql_error_and_skip.inc;
> +sync_slave_with_master;
> +connection master;
>
> UPDATE t4 LEFT JOIN (t1, t5, t6) ON (t4.id=t1.id and t4.id=t5.id and t4.id=t6.id)
> SET a=0, e=0, f=0 where t4.id=1;
> source include/wait_for_slave_sql_error_and_skip.inc;
> +sync_slave_with_master;
> +connection master;
>
> UPDATE t7 LEFT JOIN (t1, t4, t2) ON (t7.id=t1.id and t7.id=t4.id and t7.id=t2.id)
> SET a=0, b=0, d=0, g=0 where t7.id=1;
> source include/wait_for_slave_sql_error_and_skip.inc;
> -
> sync_slave_with_master;
> +
> echo [on slave];
>
> # We should only have tables t1, t2, t3 on slave
>
>
--
Sven Sandberg, Software Engineer
MySQL AB, www.mysql.com