diff options
author | unknown <monty@mashka.mysql.fi> | 2002-12-01 00:48:35 +0200 |
---|---|---|
committer | unknown <monty@mashka.mysql.fi> | 2002-12-01 00:48:35 +0200 |
commit | b22dc24cbb160d0bbe7e43fc67d22d6147740f6b (patch) | |
tree | a726bf37c8fdf17db95a039fbba27a43d981696f /mysql-test/t/multi_update.test | |
parent | fdc094f53579877a020c78cdc4796cc0260c891b (diff) | |
download | mariadb-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.test | 56 |
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; |