Below is the list of changes that have just been committed into a local
6.0 repository of hakan. When hakan does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet@stripped, 2007-09-28 07:41:34+02:00, hakank@stripped +2 -0
Started falcon_select_for_update.test for collecting
SELECT ... FOR UPDATE related test cases.
mysql-test/suite/falcon/r/falcon_select_for_update.result@stripped, 2007-09-28 07:41:32+02:00, hakank@stripped +36 -0
New BitKeeper file ``mysql-test/suite/falcon/r/falcon_select_for_update.result''
mysql-test/suite/falcon/r/falcon_select_for_update.result@stripped, 2007-09-28 07:41:31+02:00, hakank@stripped +0 -0
mysql-test/suite/falcon/t/falcon_select_for_update.test@stripped, 2007-09-28 07:41:32+02:00, hakank@stripped +72 -0
New BitKeeper file ``mysql-test/suite/falcon/t/falcon_select_for_update.test''
mysql-test/suite/falcon/t/falcon_select_for_update.test@stripped, 2007-09-28 07:41:32+02:00, hakank@stripped +0 -0
diff -Nrup a/mysql-test/suite/falcon/r/falcon_select_for_update.result b/mysql-test/suite/falcon/r/falcon_select_for_update.result
--- /dev/null Wed Dec 31 16:00:00 196900
+++ b/mysql-test/suite/falcon/r/falcon_select_for_update.result 2007-09-28 07:41:32 +02:00
@@ -0,0 +1,36 @@
+*** SELECT ... FOR UPDATE ***
+SET @@storage_engine = 'Falcon';
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (a int PRIMARY KEY);
+SET @@autocommit = 0;
+INSERT INTO t1 VALUES (1), (2), (3);
+COMMIT;
+# Establish connection conn1
+SET storage_engine = 'Falcon';
+SET @@autocommit = 0;
+# Switch to connection default
+SELECT a FROM t1 WHERE a = 1 FOR UPDATE;
+a
+1
+# Switch to connection conn1
+SELECT a FROM t1 WHERE a = 2 FOR UPDATE;
+a
+2
+# Switch to connection default
+SELECT a FROM t1 WHERE a = 2 FOR UPDATE;
+# Switch to connection conn1
+SELECT a FROM t1 WHERE a = 1 FOR UPDATE;
+ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
+ROLLBACK;
+# Switch to connection default
+a
+2
+COMMIT;
+# Switch to connection conn1
+COMMIT;
+SELECT count(*) FROM t1;
+count(*)
+3
+COMMIT;
+# Switch to connection default
+DROP TABLE t1;
diff -Nrup a/mysql-test/suite/falcon/t/falcon_select_for_update.test b/mysql-test/suite/falcon/t/falcon_select_for_update.test
--- /dev/null Wed Dec 31 16:00:00 196900
+++ b/mysql-test/suite/falcon/t/falcon_select_for_update.test 2007-09-28 07:41:32 +02:00
@@ -0,0 +1,72 @@
+#
+# SELECT ... FOR UPDATE test.
+#
+--echo *** SELECT ... FOR UPDATE ***
+
+# ----------------------------------------------------- #
+# --- Initialisation --- #
+# ----------------------------------------------------- #
+let $engine = 'Falcon';
+eval SET @@storage_engine = $engine;
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+CREATE TABLE t1 (a int PRIMARY KEY);
+
+SET @@autocommit = 0;
+INSERT INTO t1 VALUES (1), (2), (3);
+COMMIT;
+
+--echo # Establish connection conn1
+connect (conn1,localhost,root,,);
+eval SET storage_engine = $engine;
+SET @@autocommit = 0;
+
+# ----------------------------------------------------- #
+# --- Test --- #
+# ----------------------------------------------------- #
+--echo # Switch to connection default
+connection default;
+SELECT a FROM t1 WHERE a = 1 FOR UPDATE;
+
+--echo # Switch to connection conn1
+connection conn1;
+SELECT a FROM t1 WHERE a = 2 FOR UPDATE;
+
+--echo # Switch to connection default
+connection default;
+# This should wait for conn1's lock.
+--send SELECT a FROM t1 WHERE a = 2 FOR UPDATE
+
+--echo # Switch to connection conn1
+connection conn1;
+# This statement should fail with a deadlock.
+--real_sleep 1
+--error 1213
+SELECT a FROM t1 WHERE a = 1 FOR UPDATE;
+ROLLBACK;
+
+--echo # Switch to connection default
+connection default;
+--reap
+COMMIT;
+
+--echo # Switch to connection conn1
+connection conn1;
+COMMIT;
+
+# ----------------------------------------------------- #
+# --- Check --- #
+# ----------------------------------------------------- #
+SELECT count(*) FROM t1;
+COMMIT;
+
+# ----------------------------------------------------- #
+# --- Final cleanup --- #
+# ----------------------------------------------------- #
+--echo # Switch to connection default
+connection default;
+disconnect conn1;
+DROP TABLE t1;
| Thread |
|---|
| • bk commit into 6.0 tree (hakank:1.2603) | Hakan Kuecuekyilmaz | 28 Sep |