summaryrefslogtreecommitdiff
path: root/mysql-test/suite/innodb/r/innodb-timeout.result
diff options
context:
space:
mode:
authorSergey Vojtovich <svoj@mariadb.org>2017-02-07 13:27:42 +0400
committerSergey Vojtovich <svoj@mariadb.org>2017-03-22 19:08:24 +0400
commit8026cd6202bd252dc9baac31d6c8bc39653bd637 (patch)
tree0c51f976d916ab4dd0c9b02804a4b84343e4d256 /mysql-test/suite/innodb/r/innodb-timeout.result
parent4c6ae99285922a5aefe174b390bb2640a0d5c997 (diff)
downloadmariadb-git-8026cd6202bd252dc9baac31d6c8bc39653bd637.tar.gz
MDEV-11379, MDEV-11388 - [WAIT n|NOWAIT]
Extended syntax so that it is now possible to set lock_wait_timeout for the following statements: SELECT ... FOR UPDATE [WAIT n|NOWAIT] SELECT ... LOCK IN SHARED MODE [WAIT n|NOWAIT] LOCK TABLE ... [WAIT n|NOWAIT] CREATE ... INDEX ON tbl_name (index_col_name, ...) [WAIT n|NOWAIT] ... ALTER TABLE tbl_name [WAIT n|NOWAIT] ... OPTIMIZE TABLE tbl_name [WAIT n|NOWAIT] DROP INDEX ... [WAIT n|NOWAIT] TRUNCATE TABLE tbl_name [WAIT n|NOWAIT] RENAME TABLE tbl_name [WAIT n|NOWAIT] ... DROP TABLE tbl_name [WAIT n|NOWAIT] ... Valid range of lock_wait_timeout and innodb_lock_wait_timeout was extended so that 0 is acceptable value (means no wait). This is amended AliSQL patch. We prefer Oracle syntax for [WAIT n|NOWAIT] instead of original [WAIT [n]|NO_WAIT].
Diffstat (limited to 'mysql-test/suite/innodb/r/innodb-timeout.result')
-rw-r--r--mysql-test/suite/innodb/r/innodb-timeout.result60
1 files changed, 60 insertions, 0 deletions
diff --git a/mysql-test/suite/innodb/r/innodb-timeout.result b/mysql-test/suite/innodb/r/innodb-timeout.result
index f252ebac314..52ed1a6f9b4 100644
--- a/mysql-test/suite/innodb/r/innodb-timeout.result
+++ b/mysql-test/suite/innodb/r/innodb-timeout.result
@@ -57,3 +57,63 @@ disconnect a;
connection default;
drop table t1;
set global innodb_lock_wait_timeout=<initial_timeout>;
+#
+# MDEV-11379 - AliSQL: [Feature] Issue#8: SELECT FOR UPDATE WAIT
+#
+CREATE TABLE t1 (c1 INT, c2 INT) ENGINE=InnoDB;
+INSERT INTO t1 (c1,c2) values (1,1),(2,2),(3,3),(4,4);
+CREATE VIEW v1 AS SELECT * FROM t1 WHERE c1=4 FOR UPDATE NOWAIT;
+ERROR HY000: View's SELECT contains a '[NO]WAIT' clause
+CREATE VIEW v1 AS SELECT * FROM t1 WHERE c1=4 FOR UPDATE WAIT 0;
+ERROR HY000: View's SELECT contains a '[NO]WAIT' clause
+CREATE PROCEDURE p1() SELECT * FROM t1 WHERE c1=4 FOR UPDATE NOWAIT;
+ERROR 0A000: [NO]WAIT is not allowed in stored procedures
+CREATE PROCEDURE p1() SELECT * FROM t1 WHERE c1=4 FOR UPDATE WAIT 0;
+ERROR 0A000: [NO]WAIT is not allowed in stored procedures
+connect con1,localhost,root,,;
+LOCK TABLE t1 WRITE;
+connect con2,localhost,root,,;
+SELECT * FROM t1 WHERE c1=4 FOR UPDATE NOWAIT;
+ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+SELECT * FROM t1 WHERE c1=4 FOR UPDATE WAIT 0;
+ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+PREPARE stmt FROM 'SELECT * FROM t1 WHERE c1=4 FOR UPDATE NOWAIT';
+EXECUTE stmt;
+ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+DEALLOCATE PREPARE stmt;
+PREPARE stmt FROM 'SELECT * FROM t1 WHERE c1=4 FOR UPDATE WAIT 0';
+EXECUTE stmt;
+ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+DEALLOCATE PREPARE stmt;
+connection con1;
+INSERT INTO t1 VALUES(5,5);
+UNLOCK TABLES;
+set AUTOCOMMIT=0;
+SELECT * FROM t1 WHERE c1=4 FOR UPDATE;
+connection con2;
+set AUTOCOMMIT=0;
+SET INNODB_LOCK_WAIT_TIMEOUT=1;
+SELECT * FROM t1 WHERE c1=4 FOR UPDATE;
+ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+SELECT * FROM t1 WHERE c1=4 FOR UPDATE NOWAIT;
+ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+SELECT * FROM t1 WHERE c1=4 FOR UPDATE WAIT 0;
+ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+connection con1;
+UPDATE t1 SET c2=5 WHERE c1=4;
+COMMIT;
+set AUTOCOMMIT=0;
+SELECT * FROM t1 WHERE c1=4 FOR UPDATE;
+c1 c2
+4 5
+connection con2;
+set AUTOCOMMIT=0;
+SET INNODB_LOCK_WAIT_TIMEOUT=1;
+SELECT * FROM t1 WHERE c1=4 FOR UPDATE WAIT 10;
+connection con1;
+COMMIT;
+connection con2;
+disconnect con1;
+disconnect con2;
+connection default;
+DROP TABLE t1;