List:Commits« Previous MessageNext Message »
From:Li-Bing.Song Date:June 30 2010 10:15am
Subject:bzr push into mysql-next-mr-rpl-merge branch (Li-Bing.Song:3000 to 3001)
View as plain text  
 3001 Li-Bing.Song@stripped	2010-06-30 [merge]
      Manuel merge

    modified:
      mysql-test/extra/binlog_tests/database.test
      mysql-test/suite/binlog/r/binlog_database.result
      sql/sql_db.cc
 3000 Andrei Elkin	2010-06-23 [merge]
      merge next-mr -> rpl-merge with one manual confl resolution

    added:
      mysql-test/include/not_parallel.inc
      mysql-test/r/commit.result
      mysql-test/suite/innodb/t/innodb-autoinc-44030-master.opt
      mysql-test/suite/innodb/t/innodb-autoinc-master.opt
      mysql-test/suite/innodb/t/innodb-system-table-view-master.opt
      mysql-test/suite/rpl/t/rpl_invoked_features-master.opt
      mysql-test/suite/rpl/t/rpl_mixed_row_innodb-master.opt
      mysql-test/suite/rpl/t/rpl_sync-master.opt
      mysql-test/suite/rpl/t/rpl_temp_temporary-master.opt
      mysql-test/t/bootstrap-master.opt
      mysql-test/t/commit.test
      mysql-test/t/ctype_utf8-master.opt
      mysql-test/t/ctype_utf8mb4-master.opt
      mysql-test/t/ctype_utf8mb4_innodb-master.opt
      mysql-test/t/implicit_commit-master.opt
      mysql-test/t/lock_sync-master.opt
      mysql-test/t/mdl_sync-master.opt
      mysql-test/t/mysqldump-max-master.opt
      mysql-test/t/ps_3innodb-master.opt
      mysql-test/t/strict-master.opt
      packaging/
      packaging/WiX/
      packaging/WiX/AdminBackground.jpg
      packaging/WiX/AdminHeader.jpg
      packaging/WiX/CMakeLists.txt
      packaging/WiX/CPackWixConfig.cmake
      packaging/WiX/MySQLServer.ico
      packaging/WiX/ca/
      packaging/WiX/ca/CMakeLists.txt
      packaging/WiX/ca/CustomAction.cpp
      packaging/WiX/ca/CustomAction.def
      packaging/WiX/ca/CustomAction.rc
      packaging/WiX/create_msi.cmake.in
      packaging/WiX/extra.wxs.in
      packaging/WiX/mysql_server.wxs.in
      sql/datadict.cc
      sql/datadict.h
      sql/sql_truncate.cc
      sql/sql_truncate.h
    renamed:
      mysql-test/r/innodb-autoinc-optimize.result => mysql-test/suite/innodb/r/innodb-autoinc-optimize.result
      mysql-test/r/innodb-ucs2.result => mysql-test/suite/innodb/r/innodb-ucs2.result
      mysql-test/r/innodb_autoinc_lock_mode_zero.result => mysql-test/suite/innodb/r/innodb_autoinc_lock_mode_zero.result
      mysql-test/r/innodb_bug30919.result => mysql-test/suite/innodb/r/innodb_bug30919.result
      mysql-test/r/innodb_bug42419.result => mysql-test/suite/innodb/r/innodb_bug42419.result
      mysql-test/r/innodb_gis.result => mysql-test/suite/innodb/r/innodb_gis.result
      mysql-test/r/innodb_lock_wait_timeout_1.result => mysql-test/suite/innodb/r/innodb_lock_wait_timeout_1.result
      mysql-test/r/innodb_mysql.result => mysql-test/suite/innodb/r/innodb_mysql.result
      mysql-test/r/innodb_mysql_rbk.result => mysql-test/suite/innodb/r/innodb_mysql_rbk.result
      mysql-test/r/innodb_notembedded.result => mysql-test/suite/innodb/r/innodb_notembedded.result
      mysql-test/r/innodb_timeout_rollback.result => mysql-test/suite/innodb/r/innodb_timeout_rollback.result
      mysql-test/t/innodb-autoinc-optimize.test => mysql-test/suite/innodb/t/innodb-autoinc-optimize.test
      mysql-test/t/innodb-ucs2.test => mysql-test/suite/innodb/t/innodb-ucs2.test
      mysql-test/t/innodb_autoinc_lock_mode_zero-master.opt => mysql-test/suite/innodb/t/innodb_autoinc_lock_mode_zero-master.opt
      mysql-test/t/innodb_autoinc_lock_mode_zero.test => mysql-test/suite/innodb/t/innodb_autoinc_lock_mode_zero.test
      mysql-test/t/innodb_bug30919-master.opt => mysql-test/suite/innodb/t/innodb_bug30919-master.opt
      mysql-test/t/innodb_bug30919.test => mysql-test/suite/innodb/t/innodb_bug30919.test
      mysql-test/t/innodb_bug42419.test => mysql-test/suite/innodb/t/innodb_bug42419.test
      mysql-test/t/innodb_gis.test => mysql-test/suite/innodb/t/innodb_gis.test
      mysql-test/t/innodb_lock_wait_timeout_1-master.opt => mysql-test/suite/innodb/t/innodb_lock_wait_timeout_1-master.opt
      mysql-test/t/innodb_lock_wait_timeout_1.test => mysql-test/suite/innodb/t/innodb_lock_wait_timeout_1.test
      mysql-test/t/innodb_mysql-master.opt => mysql-test/suite/innodb/t/innodb_mysql-master.opt
      mysql-test/t/innodb_mysql.test => mysql-test/suite/innodb/t/innodb_mysql.test
      mysql-test/t/innodb_mysql_rbk-master.opt => mysql-test/suite/innodb/t/innodb_mysql_rbk-master.opt
      mysql-test/t/innodb_mysql_rbk.test => mysql-test/suite/innodb/t/innodb_mysql_rbk.test
      mysql-test/t/innodb_notembedded.test => mysql-test/suite/innodb/t/innodb_notembedded.test
      mysql-test/t/innodb_timeout_rollback-master.opt => mysql-test/suite/innodb/t/innodb_timeout_rollback-master.opt
      mysql-test/t/innodb_timeout_rollback.test => mysql-test/suite/innodb/t/innodb_timeout_rollback.test
    modified:
      .bzrignore
      BUILD/SETUP.sh
      BUILD/build_mccge.sh
      CMakeLists.txt
      client/CMakeLists.txt
      cmake/configure.pl
      cmake/create_initial_db.cmake.in
      cmake/install_macros.cmake
      cmake/libutils.cmake
      cmake/mysql_add_executable.cmake
      cmake/package_name.cmake
      cmake/plugin.cmake
      config.h.cmake
      configure.cmake
      extra/CMakeLists.txt
      include/CMakeLists.txt
      include/heap.h
      include/mysql.h.pp
      include/thr_lock.h
      include/typelib.h
      libmysql/CMakeLists.txt
      libmysqld/CMakeLists.txt
      libmysqld/Makefile.am
      libmysqld/lib_sql.cc
      mysql-test/CMakeLists.txt
      mysql-test/extra/binlog_tests/binlog_truncate.test
      mysql-test/include/check_concurrent_insert.inc
      mysql-test/include/check_no_concurrent_insert.inc
      mysql-test/include/check_no_row_lock.inc
      mysql-test/include/mix1.inc
      mysql-test/lib/My/SafeProcess/CMakeLists.txt
      mysql-test/lib/mtr_cases.pm
      mysql-test/mysql-test-run.pl
      mysql-test/r/archive.result
      mysql-test/r/bug46760.result
      mysql-test/r/create.result
      mysql-test/r/drop.result
      mysql-test/r/innodb_mysql_lock2.result
      mysql-test/r/lock_sync.result
      mysql-test/r/mdl_sync.result
      mysql-test/r/merge.result
      mysql-test/r/mysqld--help-notwin.result
      mysql-test/r/mysqld--help-win.result
      mysql-test/r/parser_not_embedded.result
      mysql-test/r/partition_innodb.result
      mysql-test/r/partition_innodb_semi_consistent.result
      mysql-test/r/ps.result
      mysql-test/r/rename.result
      mysql-test/r/sp_sync.result
      mysql-test/r/truncate.result
      mysql-test/r/truncate_coverage.result
      mysql-test/r/view.result
      mysql-test/suite/binlog/r/binlog_innodb.result
      mysql-test/suite/binlog/r/binlog_truncate_innodb.result
      mysql-test/suite/binlog/r/binlog_truncate_myisam.result
      mysql-test/suite/binlog/t/binlog_innodb.test
      mysql-test/suite/binlog/t/binlog_row_binlog-master.opt
      mysql-test/suite/binlog/t/binlog_row_mix_innodb_myisam-master.opt
      mysql-test/suite/binlog/t/binlog_stm_binlog-master.opt
      mysql-test/suite/binlog/t/binlog_stm_mix_innodb_myisam-master.opt
      mysql-test/suite/binlog/t/binlog_truncate_innodb.test
      mysql-test/suite/binlog/t/binlog_truncate_myisam.test
      mysql-test/suite/binlog/t/disabled.def
      mysql-test/suite/federated/federated_plugin-master.opt
      mysql-test/suite/federated/federated_plugin.test
      mysql-test/suite/funcs_1/r/innodb_views.result
      mysql-test/suite/funcs_1/r/is_engines_innodb.result
      mysql-test/suite/funcs_1/r/memory_views.result
      mysql-test/suite/funcs_1/r/myisam_views.result
      mysql-test/suite/funcs_1/r/ndb_views.result
      mysql-test/suite/funcs_1/views/func_view.inc
      mysql-test/suite/funcs_1/views/views_master.inc
      mysql-test/suite/innodb/r/innodb-index.result
      mysql-test/suite/innodb/r/innodb-semi-consistent.result
      mysql-test/suite/innodb/r/innodb-zip.result
      mysql-test/suite/innodb/r/innodb_bug38231.result
      mysql-test/suite/innodb/r/innodb_bug47167.result
      mysql-test/suite/innodb/r/innodb_bug52745.result
      mysql-test/suite/innodb/r/innodb_bug53591.result
      mysql-test/suite/innodb/r/innodb_file_format.result
      mysql-test/suite/innodb/r/innodb_information_schema.result
      mysql-test/suite/innodb/t/disabled.def
      mysql-test/suite/innodb/t/innodb-autoinc-44030.test
      mysql-test/suite/innodb/t/innodb-autoinc.test
      mysql-test/suite/innodb/t/innodb-index.test
      mysql-test/suite/innodb/t/innodb-master.opt
      mysql-test/suite/innodb/t/innodb-semi-consistent.test
      mysql-test/suite/innodb/t/innodb-use-sys-malloc-master.opt
      mysql-test/suite/innodb/t/innodb-zip.test
      mysql-test/suite/innodb/t/innodb_bug36172.test
      mysql-test/suite/innodb/t/innodb_bug38231.test
      mysql-test/suite/innodb/t/innodb_bug47167.test
      mysql-test/suite/innodb/t/innodb_bug52745.test
      mysql-test/suite/innodb/t/innodb_bug53591.test
      mysql-test/suite/innodb/t/innodb_file_format.test
      mysql-test/suite/parts/r/partition_alter3_innodb.result
      mysql-test/suite/parts/r/partition_basic_innodb.result
      mysql-test/suite/perfschema/r/dml_setup_instruments.result
      mysql-test/suite/perfschema/t/no_threads-master.opt
      mysql-test/suite/rpl/r/rpl_row_loaddata_concurrent.result
      mysql-test/suite/rpl/r/rpl_slave_skip.result
      mysql-test/suite/rpl/r/rpl_sp.result
      mysql-test/suite/rpl/r/rpl_stm_innodb.result
      mysql-test/suite/rpl/r/rpl_stm_loaddata_concurrent.result
      mysql-test/suite/rpl/t/rpl_row_basic_11bugs-master.opt
      mysql-test/suite/rpl/t/rpl_row_binlog_max_cache_size-master.opt
      mysql-test/suite/rpl/t/rpl_row_log_innodb-master.opt
      mysql-test/suite/rpl/t/rpl_slave_skip.test
      mysql-test/suite/rpl/t/rpl_sp.test
      mysql-test/suite/rpl/t/rpl_stm_loaddata_concurrent.test
      mysql-test/suite/rpl/t/rpl_sync-slave.opt
      mysql-test/suite/sys_vars/r/all_vars.result
      mysql-test/suite/sys_vars/r/default_storage_engine_basic.result
      mysql-test/suite/sys_vars/r/innodb_file_format_basic.result
      mysql-test/suite/sys_vars/r/innodb_file_format_check_basic.result
      mysql-test/suite/sys_vars/r/innodb_strict_mode_basic.result
      mysql-test/suite/sys_vars/r/storage_engine_basic.result
      mysql-test/suite/sys_vars/t/default_storage_engine_basic.test
      mysql-test/suite/sys_vars/t/innodb_file_format_check_basic.test
      mysql-test/suite/sys_vars/t/storage_engine_basic.test
      mysql-test/t/archive.test
      mysql-test/t/archive_plugin-master.opt
      mysql-test/t/archive_plugin.test
      mysql-test/t/blackhole_plugin-master.opt
      mysql-test/t/blackhole_plugin.test
      mysql-test/t/bootstrap.test
      mysql-test/t/bug46760.test
      mysql-test/t/crash_commit_before-master.opt
      mysql-test/t/create.test
      mysql-test/t/drop.test
      mysql-test/t/innodb_mysql_lock2.test
      mysql-test/t/lock_sync.test
      mysql-test/t/mdl_sync.test
      mysql-test/t/merge.test
      mysql-test/t/parser_not_embedded.test
      mysql-test/t/partition_innodb.test
      mysql-test/t/partition_innodb_semi_consistent-master.opt
      mysql-test/t/partition_innodb_semi_consistent.test
      mysql-test/t/rename.test
      mysql-test/t/sp_sync.test
      mysql-test/t/truncate.test
      mysql-test/t/truncate_coverage.test
      mysql-test/t/view.test
      mysys/CMakeLists.txt
      mysys/my_init.c
      mysys/thr_lock.c
      plugin/audit_null/CMakeLists.txt
      plugin/daemon_example/CMakeLists.txt
      scripts/CMakeLists.txt
      scripts/make_binary_distribution.sh
      sql/CMakeLists.txt
      sql/Makefile.am
      sql/event_scheduler.cc
      sql/ha_ndbcluster.cc
      sql/ha_ndbcluster_binlog.cc
      sql/ha_partition.cc
      sql/handler.cc
      sql/lock.cc
      sql/lock.h
      sql/log.cc
      sql/log.h
      sql/mdl.cc
      sql/mdl.h
      sql/mysqld.cc
      sql/repl_failsafe.cc
      sql/rpl_slave.cc
      sql/share/CMakeLists.txt
      sql/sp_head.cc
      sql/sp_head.h
      sql/sql_base.cc
      sql/sql_base.h
      sql/sql_bitmap.h
      sql/sql_class.cc
      sql/sql_class.h
      sql/sql_connect.cc
      sql/sql_cursor.cc
      sql/sql_db.cc
      sql/sql_delete.cc
      sql/sql_delete.h
      sql/sql_handler.cc
      sql/sql_handler.h
      sql/sql_insert.cc
      sql/sql_lex.cc
      sql/sql_lex.h
      sql/sql_manager.cc
      sql/sql_parse.cc
      sql/sql_parse.h
      sql/sql_plist.h
      sql/sql_plugin.cc
      sql/sql_prepare.cc
      sql/sql_priv.h
      sql/sql_rename.cc
      sql/sql_show.cc
      sql/sql_table.cc
      sql/sql_test.cc
      sql/sql_trigger.cc
      sql/sql_udf.cc
      sql/sql_view.cc
      sql/sql_view.h
      sql/sql_yacc.yy
      sql/sys_vars.cc
      sql/sys_vars.h
      sql/table.cc
      sql/table.h
      sql/transaction.cc
      sql/tztime.cc
      storage/heap/CMakeLists.txt
      storage/heap/ha_heap.cc
      storage/heap/hp_create.c
      storage/heap/hp_open.c
      storage/heap/hp_test1.c
      storage/heap/hp_test2.c
      storage/innobase/CMakeLists.txt
      storage/innobase/buf/buf0buf.c
      storage/innobase/dict/dict0load.c
      storage/innobase/handler/ha_innodb.cc
      storage/innobase/include/dict0mem.h
      storage/innobase/include/srv0srv.h
      storage/innobase/row/row0sel.c
      storage/innobase/srv/srv0srv.c
      storage/innobase/srv/srv0start.c
      storage/innobase/trx/trx0sys.c
      storage/myisam/mi_dbug.c
      support-files/CMakeLists.txt
      support-files/mysql.spec.sh
      tests/CMakeLists.txt
      mysql-test/suite/innodb/r/innodb_mysql.result
      mysql-test/suite/innodb/t/innodb_mysql-master.opt
      mysql-test/suite/innodb/t/innodb_mysql.test
=== modified file 'mysql-test/extra/binlog_tests/database.test'
--- a/mysql-test/extra/binlog_tests/database.test	2009-01-23 12:22:05 +0000
+++ b/mysql-test/extra/binlog_tests/database.test	2010-06-30 07:12:50 +0000
@@ -30,3 +30,37 @@ drop table tt1, t1;
 source include/show_binlog_events.inc;
 
 FLUSH STATUS;
+
+--echo 
+--echo # 'DROP TABLE IF EXISTS <deleted tables>' is binlogged
+--echo # when 'DROP DATABASE' fails and at least one table is deleted
+--echo # from the database.
+RESET MASTER;
+CREATE DATABASE testing_1;
+USE testing_1;
+CREATE TABLE t1(c1 INT);
+CREATE TABLE t2(c1 INT);
+
+let $prefix= `SELECT UUID()`;
+--echo # Create a file in the database directory
+--replace_result $prefix FAKE_FILE
+eval SELECT 'hello' INTO OUTFILE 'fake_file.$prefix';
+
+--echo
+--echo # 'DROP DATABASE' will fail if there is any other file in the the
+--echo # database directory
+
+# Use '/' instead of '\' in the error message. On windows platform, dir is
+# formed with '\'.
+--replace_regex /\\testing_1\\*/\/testing_1\//
+--error 1010
+DROP DATABASE testing_1;
+let $wait_binlog_event= DROP TABLE IF EXIST;
+source include/wait_for_binlog_event.inc;
+let $MYSQLD_DATADIR= `SELECT @@datadir`;
+
+--echo
+--echo # Remove the fake file.
+--remove_file $MYSQLD_DATADIR/testing_1/fake_file.$prefix
+--echo # Now we can drop the database.
+DROP DATABASE testing_1;

=== modified file 'mysql-test/suite/binlog/r/binlog_database.result'
--- a/mysql-test/suite/binlog/r/binlog_database.result	2010-04-20 09:10:43 +0000
+++ b/mysql-test/suite/binlog/r/binlog_database.result	2010-06-30 10:03:18 +0000
@@ -38,6 +38,26 @@ master-bin.000001	#	Query	#	#	use `test`
 master-bin.000001	#	Query	#	#	COMMIT
 master-bin.000001	#	Query	#	#	use `test`; drop table tt1, t1
 FLUSH STATUS;
+
+# 'DROP TABLE IF EXISTS <deleted tables>' is binlogged
+# when 'DROP DATABASE' fails and at least one table is deleted
+# from the database.
+RESET MASTER;
+CREATE DATABASE testing_1;
+USE testing_1;
+CREATE TABLE t1(c1 INT);
+CREATE TABLE t2(c1 INT);
+# Create a file in the database directory
+SELECT 'hello' INTO OUTFILE 'fake_file.FAKE_FILE';
+
+# 'DROP DATABASE' will fail if there is any other file in the the
+# database directory
+DROP DATABASE testing_1;
+ERROR HY000: Error dropping database (can't rmdir './testing_1/', errno: 17)
+
+# Remove the fake file.
+# Now we can drop the database.
+DROP DATABASE testing_1;
 set binlog_format=mixed;
 reset master;
 create database testing_1;
@@ -78,6 +98,26 @@ master-bin.000001	#	Query	#	#	use `test`
 master-bin.000001	#	Query	#	#	COMMIT
 master-bin.000001	#	Query	#	#	use `test`; drop table tt1, t1
 FLUSH STATUS;
+
+# 'DROP TABLE IF EXISTS <deleted tables>' is binlogged
+# when 'DROP DATABASE' fails and at least one table is deleted
+# from the database.
+RESET MASTER;
+CREATE DATABASE testing_1;
+USE testing_1;
+CREATE TABLE t1(c1 INT);
+CREATE TABLE t2(c1 INT);
+# Create a file in the database directory
+SELECT 'hello' INTO OUTFILE 'fake_file.FAKE_FILE';
+
+# 'DROP DATABASE' will fail if there is any other file in the the
+# database directory
+DROP DATABASE testing_1;
+ERROR HY000: Error dropping database (can't rmdir './testing_1/', errno: 17)
+
+# Remove the fake file.
+# Now we can drop the database.
+DROP DATABASE testing_1;
 set binlog_format=row;
 reset master;
 create database testing_1;
@@ -120,6 +160,26 @@ master-bin.000001	#	Query	#	#	COMMIT
 master-bin.000001	#	Query	#	#	use `test`; DROP TABLE `t1` /* generated by server */
 master-bin.000001	#	Query	#	#	use `test`; DROP TEMPORARY TABLE IF EXISTS `tt1` /* generated by server */
 FLUSH STATUS;
+
+# 'DROP TABLE IF EXISTS <deleted tables>' is binlogged
+# when 'DROP DATABASE' fails and at least one table is deleted
+# from the database.
+RESET MASTER;
+CREATE DATABASE testing_1;
+USE testing_1;
+CREATE TABLE t1(c1 INT);
+CREATE TABLE t2(c1 INT);
+# Create a file in the database directory
+SELECT 'hello' INTO OUTFILE 'fake_file.FAKE_FILE';
+
+# 'DROP DATABASE' will fail if there is any other file in the the
+# database directory
+DROP DATABASE testing_1;
+ERROR HY000: Error dropping database (can't rmdir './testing_1/', errno: 17)
+
+# Remove the fake file.
+# Now we can drop the database.
+DROP DATABASE testing_1;
 show databases;
 Database
 information_schema

=== modified file 'sql/sql_db.cc'
--- a/sql/sql_db.cc	2010-06-23 09:56:24 +0000
+++ b/sql/sql_db.cc	2010-06-30 10:03:18 +0000
@@ -1034,7 +1034,7 @@ bool mysql_rm_db(THD *thd,char *db,bool 
 
     if (!(query= (char*) thd->alloc(MAX_DROP_TABLE_Q_LEN)))
       goto exit; /* not much else we can do */
-    query_pos= query_data_start= strmov(query,"drop table ");
+    query_pos= query_data_start= strmov(query,"DROP TABLE IF EXISTS ");
     query_end= query + MAX_DROP_TABLE_Q_LEN;
     db_len= strlen(db);
 


Attachment: [text/bzr-bundle] bzr/li-bing.song@sun.com-20100630100318-65nulgmy8po0pfvc.bundle
Thread
bzr push into mysql-next-mr-rpl-merge branch (Li-Bing.Song:3000 to 3001) Li-Bing.Song30 Jun