List:Commits« Previous MessageNext Message »
From:Libing Song Date:December 15 2010 3:27am
Subject:Re: bzr commit into mysql-5.1-bugteam branch (Dao-Gang.Qu:3521)
Bug#50914
View as plain text  
Hi Daogang,
Nice work, approved!

On Tue, 2010-12-14 at 03:03 +0000, Dao-Gang.Qu@stripped wrote:
> #At file:///home/daogang/bzrwork/bug50914/mysql-5.1-bugteam/ based on
> revid:azundris@stripped
> 
>  3521 Dao-Gang.Qu@stripped	2010-12-14
>       Bug #50914  	mysqlbinlog not handling drop of current default database
>       
>       mysqlbinlog only prints "use $database" statements to its output stream
>       when the active default database changes between events. Which will cause
>       "No Database Selected" error when dropping and recreating that database
>       though.
>       
>       To fix the problem to clear print_event_info->db when printing an event
>       of CREATE/DROP/ALTER database statements, so that the Query_log_event
>       after such statements will be printed with the use 'db' anyway except
>       transaction keywords.
>      @ mysql-test/r/mysqlbinlog.result
>         Test result for Bug#50914.
>      @ mysql-test/t/mysqlbinlog.test
>         Added test to verify if the approach of the mysqlbinlog prints
>         "use $database"statements to its output stream will cause
>         "No Database Selected" error when dropping and recreating
>         that database though.
>      @ sql/log_event.cc
>         Updated code to clear print_event_info->db when printing an event
>         of CREATE/DROP/ALTER database statements, so that the Query_log_event
>         after such statements will be printed with the use 'db' anyway except
>         transaction keywords.
> 
>     modified:
>       mysql-test/r/mysqlbinlog.result
>       mysql-test/t/mysqlbinlog.test
>       sql/log_event.cc
> === modified file 'mysql-test/r/mysqlbinlog.result'
> --- a/mysql-test/r/mysqlbinlog.result	2010-03-28 11:57:33 +0000
> +++ b/mysql-test/r/mysqlbinlog.result	2010-12-14 03:03:37 +0000
> @@ -638,3 +638,23 @@ ROLLBACK /* added by mysqlbinlog */;
>  /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
>  End of 5.0 tests
>  End of 5.1 tests
> +RESET MASTER;
> +CREATE DATABASE test1;
> +USE test1;
> +CREATE TABLE t1(id int);
> +DROP DATABASE test1;
> +CREATE DATABASE test1;
> +USE test1;
> +CREATE TABLE t1(id int);
> +DROP TABLE t1;
> +DROP DATABASE test1;
> +FLUSH LOGS;
> +show binlog events in 'master-bin.000002' from <binlog_start>;
> +Log_name	Pos	Event_type	Server_id	End_log_pos	Info
> +master-bin.000002	#	Query	#	#	CREATE DATABASE test1
> +master-bin.000002	#	Query	#	#	use `test1`; CREATE TABLE t1(id int)
> +master-bin.000002	#	Query	#	#	DROP DATABASE test1
> +master-bin.000002	#	Query	#	#	CREATE DATABASE test1
> +master-bin.000002	#	Query	#	#	use `test1`; CREATE TABLE t1(id int)
> +master-bin.000002	#	Query	#	#	use `test1`; DROP TABLE t1
> +master-bin.000002	#	Query	#	#	DROP DATABASE test1
> 
> === modified file 'mysql-test/t/mysqlbinlog.test'
> --- a/mysql-test/t/mysqlbinlog.test	2010-08-03 10:27:45 +0000
> +++ b/mysql-test/t/mysqlbinlog.test	2010-12-14 03:03:37 +0000
> @@ -474,3 +474,30 @@ diff_files $MYSQLTEST_VARDIR/tmp/mysqlbi
>  # Cleanup for this part of test
>  remove_file $MYSQLTEST_VARDIR/tmp/mysqlbinlog.warn.empty;
>  remove_file $MYSQLTEST_VARDIR/tmp/mysqlbinlog.warn;
> +
> +#
> +# BUG#50914
> +# This test verifies if the approach of the mysqlbinlog prints
> +# "use $database"statements to its output stream will cause
> +# "No Database Selected" error when dropping and recreating
> +# that database though.
> +#
> +RESET MASTER;
> +CREATE DATABASE test1;
> +USE test1;
> +CREATE TABLE t1(id int);
> +DROP DATABASE test1;
> +CREATE DATABASE test1;
> +USE test1;
> +CREATE TABLE t1(id int);
> +DROP TABLE t1;
> +DROP DATABASE test1;
> +let $master_binlog= query_get_value(SHOW MASTER STATUS, File, 1);
> +FLUSH LOGS;
> +
> +let $MYSQLD_DATADIR= `SELECT @@datadir`;
> +exec $MYSQL_BINLOG $MYSQLD_DATADIR/$master_binlog | $MYSQL test 2>&1;
> +
> +let $binlog_file= query_get_value(SHOW MASTER STATUS, File, 1);
> +source include/show_binlog_events.inc;
> +
> 
> === modified file 'sql/log_event.cc'
> --- a/sql/log_event.cc	2010-10-23 12:55:44 +0000
> +++ b/sql/log_event.cc	2010-12-14 03:03:37 +0000
> @@ -2894,7 +2894,12 @@ void Query_log_event::print_query_header
>                  error_code);
>    }
>  
> -  if (!(flags & LOG_EVENT_SUPPRESS_USE_F) && db)
> +  if ((flags & LOG_EVENT_SUPPRESS_USE_F))
> +  {
> +    if (!is_trans_keyword())
> +      print_event_info->db[0]= '\0';
> +  }
> +  else if (db)
>    {
>      different_db= memcmp(print_event_info->db, db, db_len + 1);
>      if (different_db)
> 
> text/bzr-bundle type attachment
> (bzr/dao-gang.qu@stripped)
> # Bazaar merge directive format 2 (Bazaar 0.90)
> # revision_id: dao-gang.qu@stripped
> # target_branch: file:///home/daogang/bzrwork/bug50914/mysql-5.1-\
> #   bugteam/
> # testament_sha1: 8212bdb7d9398663f7a19cf487aa9519d5f90221
> # timestamp: 2010-12-14 11:03:45 +0800
> # base_revision_id: azundris@stripped
> # 
> # Begin bundle
> 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
> 
> 

-- 
Your Sincerely,
Libing Song
==================================
MySQL Replication Team
Software Engineer


Email : Li-Bing.Song@stripped
Skype : libing.song
MSN   : slb_database@stripped
Phone : +86 010-6505-4020 ext. 319
Mobile: +86 138-1144-2038
==================================

Thread
bzr commit into mysql-5.1-bugteam branch (Dao-Gang.Qu:3521) Bug#50914Dao-Gang.Qu14 Dec
  • Re: bzr commit into mysql-5.1-bugteam branch (Dao-Gang.Qu:3521)Bug#50914Libing Song15 Dec
  • Re: bzr commit into mysql-5.1-bugteam branch (Dao-Gang.Qu:3521) Bug#50914Alfranio Correia24 Dec
    • Re: bzr commit into mysql-5.1-bugteam branch (Dao-Gang.Qu:3521)Bug#50914Daogang Qu27 Dec