List:Commits« Previous MessageNext Message »
From:Jorgen Austvik Date:February 4 2009 9:11am
Subject:bzr commit into mysql-6.0-runtime branch (jorgen.austvik:2718) Bug#41755
View as plain text  
#At file:///home/ja155679/devel/mysql/mysql-6.0-runtime/

 2718 Jorgen Austvik	2009-02-04
      bug#41755: add sync point and use it for testing locking of table names during ALTER TABLE RENAME
modified:
  mysql-test/suite/ddl_lock/r/concurrent_ddl.result
  mysql-test/suite/ddl_lock/t/concurrent_ddl.test
  sql/sql_table.cc

=== modified file 'mysql-test/suite/ddl_lock/r/concurrent_ddl.result'
--- a/mysql-test/suite/ddl_lock/r/concurrent_ddl.result	2008-12-17 10:11:14 +0000
+++ b/mysql-test/suite/ddl_lock/r/concurrent_ddl.result	2009-02-04 09:11:18 +0000
@@ -311,14 +311,15 @@ DROP TABLE t4;
 ##
 CREATE TABLE t1(a INT, b CHAR(100))
 ENGINE=<engine_type>;
+INSERT INTO t1 (a, b) VALUES (1, 'one');
 # Switch to connection locker
-SET DEBUG_SYNC= 'after_lock_tables_takes_lock
-                 SIGNAL locked WAIT_FOR do_unlock';
+SET DEBUG_SYNC= 'locked_table_name
+                 SIGNAL locked WAIT_FOR do_unlock HIT_LIMIT 2';
 # "send" next statement
 ALTER TABLE t1 RENAME t2;
 # Switch to connection waiter
 SET DEBUG_SYNC= 'now WAIT_FOR locked';
-SET DEBUG_SYNC= 'after_start_ddl SIGNAL do_unlock';
+SET DEBUG_SYNC= 'mdl_enter_cond SIGNAL do_unlock';
 # "send" next statement
 ALTER TABLE t2 RENAME t3;
 # Switch to connection locker
@@ -328,10 +329,10 @@ ALTER TABLE t2 RENAME t3;
 # Switch to connection default
 SELECT SUM(a) FROM t3;
 SUM(a)
-NULL
+1
 SELECT COUNT(*) FROM t3;
 COUNT(*)
-0
+1
 SET DEBUG_SYNC= 'RESET';
 DROP TABLE t3;
 ##

=== modified file 'mysql-test/suite/ddl_lock/t/concurrent_ddl.test'
--- a/mysql-test/suite/ddl_lock/t/concurrent_ddl.test	2008-12-17 10:11:14 +0000
+++ b/mysql-test/suite/ddl_lock/t/concurrent_ddl.test	2009-02-04 09:11:18 +0000
@@ -384,10 +384,12 @@ eval
 CREATE TABLE t1(a INT, b CHAR(100))
 ENGINE=$engine_type;
 
+INSERT INTO t1 (a, b) VALUES (1, 'one');
+
 --echo # Switch to connection locker
 connection locker;
-SET DEBUG_SYNC= 'after_lock_tables_takes_lock
-                 SIGNAL locked WAIT_FOR do_unlock';
+SET DEBUG_SYNC= 'locked_table_name
+                 SIGNAL locked WAIT_FOR do_unlock HIT_LIMIT 2';
 --echo # "send" next statement
 send
 ALTER TABLE t1 RENAME t2;
@@ -395,7 +397,7 @@ ALTER TABLE t1 RENAME t2;
 --echo # Switch to connection waiter
 connection waiter;
 SET DEBUG_SYNC= 'now WAIT_FOR locked';
-SET DEBUG_SYNC= 'after_start_ddl SIGNAL do_unlock';
+SET DEBUG_SYNC= 'mdl_enter_cond SIGNAL do_unlock';
 --echo # "send" next statement
 send
 ALTER TABLE t2 RENAME t3;

=== modified file 'sql/sql_table.cc'
--- a/sql/sql_table.cc	2009-01-31 16:21:19 +0000
+++ b/sql/sql_table.cc	2009-02-04 09:11:18 +0000
@@ -3785,6 +3785,8 @@ static bool lock_table_name_if_not_cache
     }
     else
       *lock_data= 0;
+  } else {
+    DEBUG_SYNC(thd, "locked_table_name");
   }
   return FALSE;
 }

Thread
bzr commit into mysql-6.0-runtime branch (jorgen.austvik:2718) Bug#41755Jorgen Austvik4 Feb