1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-24 11:21:21 +03:00

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
This commit is contained in:
unknown
2002-12-01 00:48:35 +02:00
parent fdc094f535
commit b22dc24cbb
8 changed files with 195 additions and 18 deletions

View File

@@ -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;