summaryrefslogtreecommitdiff
path: root/mysql-test/t/multi_update.test
diff options
context:
space:
mode:
authorunknown <monty@mashka.mysql.fi>2002-12-01 00:48:35 +0200
committerunknown <monty@mashka.mysql.fi>2002-12-01 00:48:35 +0200
commitb22dc24cbb160d0bbe7e43fc67d22d6147740f6b (patch)
treea726bf37c8fdf17db95a039fbba27a43d981696f /mysql-test/t/multi_update.test
parentfdc094f53579877a020c78cdc4796cc0260c891b (diff)
downloadmariadb-git-b22dc24cbb160d0bbe7e43fc67d22d6147740f6b.tar.gz
Fixed some bugs from last multi-table-update push.
More tests for multi-table-update & timestamp handling mysql-test/r/innodb.result: New multi-table-update tests mysql-test/r/multi_update.result: New multi-table-update tests mysql-test/r/type_timestamp.result: New timestamp tests mysql-test/t/innodb.test: New multi-table-update tests mysql-test/t/multi_update.test: New multi-table-update tests mysql-test/t/type_timestamp.test: New timestamp tests sql/sql_select.cc: Fixed bug in safe mode checking sql/sql_update.cc: Fixed bug in autocommit in multi-table-update
Diffstat (limited to 'mysql-test/t/multi_update.test')
-rw-r--r--mysql-test/t/multi_update.test56
1 files changed, 52 insertions, 4 deletions
diff --git a/mysql-test/t/multi_update.test b/mysql-test/t/multi_update.test
index ec1ef76753b..b79b0749c82 100644
--- a/mysql-test/t/multi_update.test
+++ b/mysql-test/t/multi_update.test
@@ -1,9 +1,6 @@
#
-# Only run the test if we are using --big-test, because this test takes a
-# long time
+# Test of update statement that uses many tables.
#
-#-- require r/big_test.require
-#eval select $BIG_TEST as using_big_test;
drop table if exists t1,t2,t3;
create table t1(id1 int not null auto_increment primary key, t char(12));
@@ -166,3 +163,54 @@ select * from t1;
select * from t2;
unlock tables;
drop table t1,t2;
+
+#
+# Test safe updates and timestamps
+#
+set sql_safe_updates=1;
+create table t1 (n int(10), d int(10));
+create table t2 (n int(10), d int(10));
+insert into t1 values(1,1);
+insert into t2 values(1,10),(2,20);
+--error 1175
+UPDATE t1,t2 SET t1.d=t2.d WHERE t1.n=t2.n;
+set sql_safe_updates=0;
+drop table t1,t2;
+set timestamp=1038401397;
+create table t1 (n int(10) not null primary key, d int(10), t timestamp);
+create table t2 (n int(10) not null primary key, d int(10), t timestamp);
+insert into t1 values(1,1,NULL);
+insert into t2 values(1,10,NULL),(2,20,NULL);
+set timestamp=1038000000;
+UPDATE t1,t2 SET t1.d=t2.d WHERE t1.n=t2.n;
+select * from t1;
+select * from t2;
+--error 1064
+UPDATE t1,t2 SET 1=2 WHERE t1.n=t2.n;
+drop table t1,t2;
+set timestamp=0;
+set sql_safe_updates=0;
+create table t1 (n int(10) not null primary key, d int(10));
+create table t2 (n int(10) not null primary key, d int(10));
+insert into t1 values(1,1), (3,3);
+insert into t2 values(1,10),(2,20);
+UPDATE t2 left outer join t1 on t1.n=t2.n SET t1.d=t2.d;
+select * from t1;
+select * from t2;
+drop table t1,t2;
+create table t1 (n int(10), d int(10));
+create table t2 (n int(10), d int(10));
+insert into t1 values(1,1),(1,2);
+insert into t2 values(1,10),(2,20);
+UPDATE t1,t2 SET t1.d=t2.d,t2.d=30 WHERE t1.n=t2.n;
+select * from t1;
+select * from t2;
+drop table t1,t2;
+create table t1 (n int(10), d int(10));
+create table t2 (n int(10), d int(10));
+insert into t1 values(1,1),(3,2);
+insert into t2 values(1,10),(1,20);
+UPDATE t1,t2 SET t1.d=t2.d,t2.d=30 WHERE t1.n=t2.n;
+select * from t1;
+select * from t2;
+drop table t1,t2;