summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/include/innodb_rollback_on_timeout.inc37
-rw-r--r--mysql-test/include/mix1.inc2
-rw-r--r--mysql-test/r/func_str.result12
-rw-r--r--mysql-test/r/innodb_mysql.result36
-rw-r--r--mysql-test/r/innodb_timeout_rollback.result35
-rw-r--r--mysql-test/t/disabled.def1
-rw-r--r--mysql-test/t/func_str.test8
-rw-r--r--mysql-test/t/innodb_mysql-master.opt1
-rw-r--r--mysql-test/t/innodb_timeout_rollback-master.opt1
-rw-r--r--mysql-test/t/innodb_timeout_rollback.test5
10 files changed, 138 insertions, 0 deletions
diff --git a/mysql-test/include/innodb_rollback_on_timeout.inc b/mysql-test/include/innodb_rollback_on_timeout.inc
new file mode 100644
index 00000000000..73c7374c79e
--- /dev/null
+++ b/mysql-test/include/innodb_rollback_on_timeout.inc
@@ -0,0 +1,37 @@
+#
+# Bug #24200: Provide backwards compatibility mode for 4.x "rollback on
+# transaction timeout"
+#
+show variables like 'innodb_rollback_on_timeout';
+create table t1 (a int unsigned not null primary key) engine = innodb;
+insert into t1 values (1);
+commit;
+connect (con1,localhost,root,,);
+connect (con2,localhost,root,,);
+
+connection con2;
+begin work;
+insert into t1 values (2);
+select * from t1;
+
+connection con1;
+begin work;
+insert into t1 values (5);
+select * from t1;
+# Lock wait timeout set to 2 seconds in <THIS TEST>-master.opt; this
+# statement will time out; in 5.0.13+, it will not roll back transaction.
+--error ER_LOCK_WAIT_TIMEOUT
+insert into t1 values (2);
+# On 5.0.13+, this should give ==> 1, 5
+select * from t1;
+commit;
+
+connection con2;
+select * from t1;
+commit;
+
+connection default;
+select * from t1;
+drop table t1;
+disconnect con1;
+disconnect con2;
diff --git a/mysql-test/include/mix1.inc b/mysql-test/include/mix1.inc
index 7fe369cfb1e..9619db2203c 100644
--- a/mysql-test/include/mix1.inc
+++ b/mysql-test/include/mix1.inc
@@ -462,6 +462,8 @@ EXPLAIN SELECT b, SUM(c) FROM t1 GROUP BY b;
EXPLAIN SELECT SQL_BIG_RESULT b, SUM(c) FROM t1 GROUP BY b;
DROP TABLE t1;
+--source include/innodb_rollback_on_timeout.inc
+
--echo End of 5.0 tests
diff --git a/mysql-test/r/func_str.result b/mysql-test/r/func_str.result
index 4e63d4d8482..0496c3eb91f 100644
--- a/mysql-test/r/func_str.result
+++ b/mysql-test/r/func_str.result
@@ -2249,4 +2249,16 @@ CHAR(0xff,0x8f USING utf8) IS NULL
Warnings:
Error 1300 Invalid utf8 character string: 'FF8F'
SET SQL_MODE=@orig_sql_mode;
+select substring('abc', cast(2 as unsigned int));
+substring('abc', cast(2 as unsigned int))
+bc
+select repeat('a', cast(2 as unsigned int));
+repeat('a', cast(2 as unsigned int))
+aa
+select rpad('abc', cast(5 as unsigned integer), 'x');
+rpad('abc', cast(5 as unsigned integer), 'x')
+abcxx
+select lpad('abc', cast(5 as unsigned integer), 'x');
+lpad('abc', cast(5 as unsigned integer), 'x')
+xxabc
End of 5.0 tests
diff --git a/mysql-test/r/innodb_mysql.result b/mysql-test/r/innodb_mysql.result
index fb854ed7992..2c5b7184786 100644
--- a/mysql-test/r/innodb_mysql.result
+++ b/mysql-test/r/innodb_mysql.result
@@ -403,6 +403,42 @@ EXPLAIN SELECT SQL_BIG_RESULT b, SUM(c) FROM t1 GROUP BY b;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 128 Using filesort
DROP TABLE t1;
+show variables like 'innodb_rollback_on_timeout';
+Variable_name Value
+innodb_rollback_on_timeout OFF
+create table t1 (a int unsigned not null primary key) engine = innodb;
+insert into t1 values (1);
+commit;
+begin work;
+insert into t1 values (2);
+select * from t1;
+a
+1
+2
+begin work;
+insert into t1 values (5);
+select * from t1;
+a
+1
+5
+insert into t1 values (2);
+ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+select * from t1;
+a
+1
+5
+commit;
+select * from t1;
+a
+1
+2
+commit;
+select * from t1;
+a
+1
+2
+5
+drop table t1;
End of 5.0 tests
CREATE TABLE `t2` (
`k` int(11) NOT NULL auto_increment,
diff --git a/mysql-test/r/innodb_timeout_rollback.result b/mysql-test/r/innodb_timeout_rollback.result
new file mode 100644
index 00000000000..b25a2bbd815
--- /dev/null
+++ b/mysql-test/r/innodb_timeout_rollback.result
@@ -0,0 +1,35 @@
+show variables like 'innodb_rollback_on_timeout';
+Variable_name Value
+innodb_rollback_on_timeout ON
+create table t1 (a int unsigned not null primary key) engine = innodb;
+insert into t1 values (1);
+commit;
+begin work;
+insert into t1 values (2);
+select * from t1;
+a
+1
+2
+begin work;
+insert into t1 values (5);
+select * from t1;
+a
+1
+5
+insert into t1 values (2);
+ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+select * from t1;
+a
+1
+commit;
+select * from t1;
+a
+1
+2
+commit;
+select * from t1;
+a
+1
+2
+drop table t1;
+End of 5.0 tests
diff --git a/mysql-test/t/disabled.def b/mysql-test/t/disabled.def
index c36ac1bd168..012e3f3911a 100644
--- a/mysql-test/t/disabled.def
+++ b/mysql-test/t/disabled.def
@@ -11,6 +11,7 @@
##############################################################################
user_limits : Bug#23921 random failure of user_limits.test
+im_daemon_life_cycle : Bug#24415 see note: [19 Dec 23:17] Trudy Pelzer
im_options : Bug#20294 2006-07-24 stewart Instance manager test im_options fails randomly
concurrent_innodb : BUG#21579 2006-08-11 mleich innodb_concurrent random failures with varying differences
ndb_autodiscover : BUG#18952 2006-02-16 jmiller Needs to be fixed w.r.t binlog
diff --git a/mysql-test/t/func_str.test b/mysql-test/t/func_str.test
index 2ec1afc70ee..ab072f0e692 100644
--- a/mysql-test/t/func_str.test
+++ b/mysql-test/t/func_str.test
@@ -1098,5 +1098,13 @@ SELECT CHAR(0xff,0x8f USING utf8) IS NULL;
SET SQL_MODE=@orig_sql_mode;
+#
+# Bug #24947: problem with some string function with unsigned int parameters
+#
+
+select substring('abc', cast(2 as unsigned int));
+select repeat('a', cast(2 as unsigned int));
+select rpad('abc', cast(5 as unsigned integer), 'x');
+select lpad('abc', cast(5 as unsigned integer), 'x');
--echo End of 5.0 tests
diff --git a/mysql-test/t/innodb_mysql-master.opt b/mysql-test/t/innodb_mysql-master.opt
new file mode 100644
index 00000000000..205c733455d
--- /dev/null
+++ b/mysql-test/t/innodb_mysql-master.opt
@@ -0,0 +1 @@
+--innodb-lock-wait-timeout=2
diff --git a/mysql-test/t/innodb_timeout_rollback-master.opt b/mysql-test/t/innodb_timeout_rollback-master.opt
new file mode 100644
index 00000000000..50921bb4df0
--- /dev/null
+++ b/mysql-test/t/innodb_timeout_rollback-master.opt
@@ -0,0 +1 @@
+--innodb_lock_wait_timeout=2 --innodb_rollback_on_timeout
diff --git a/mysql-test/t/innodb_timeout_rollback.test b/mysql-test/t/innodb_timeout_rollback.test
new file mode 100644
index 00000000000..99890971064
--- /dev/null
+++ b/mysql-test/t/innodb_timeout_rollback.test
@@ -0,0 +1,5 @@
+-- source include/have_innodb.inc
+
+--source include/innodb_rollback_on_timeout.inc
+
+--echo End of 5.0 tests