diff options
author | unknown <monty@narttu.mysql.fi> | 2003-03-19 00:45:44 +0200 |
---|---|---|
committer | unknown <monty@narttu.mysql.fi> | 2003-03-19 00:45:44 +0200 |
commit | afa0792672c119b669e2341f3c384defcdbfed1e (patch) | |
tree | cb3c86ac4e063681514b1a8ffa9db31b639b9c46 /mysql-test/t/multi_update.test | |
parent | f3a5ccf53ebf86a775fa0190e41edf5ae4dc1ac3 (diff) | |
download | mariadb-git-afa0792672c119b669e2341f3c384defcdbfed1e.tar.gz |
Allow optimzation of multi-table-update also for InnoDB tables
MEMORY is alias for HEAP for CREATE TABLE ... TYPE=HEAP
Fixed bug in multi-table-update where a row could be updated several times
mysql-test/r/heap.result:
Test of CREATE TABLE ... type=MEMORY
mysql-test/r/innodb.result:
Added multi-update-test
mysql-test/r/multi_update.result:
Added multi-update-test
mysql-test/t/heap.test:
Test of CREATE TABLE ... type=MEMORY
mysql-test/t/innodb.test:
Added multi-update-test
mysql-test/t/multi_update.test:
Added multi-update-test
sql/ha_innodb.h:
Allow optimzation of multi-table-update also for InnoDB tables
sql/handler.h:
Allow optimzation of multi-update also for InnoDB tables
sql/key.cc:
After merge fix
sql/lex.h:
MEMORY is alias for HEAP
sql/sql_test.cc:
Fixed wrong printf
sql/sql_update.cc:
Fixed bug in multi-table-update where a row could be updated several times
sql/sql_yacc.yy:
MEMORY is alias for HEAP
Diffstat (limited to 'mysql-test/t/multi_update.test')
-rw-r--r-- | mysql-test/t/multi_update.test | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/mysql-test/t/multi_update.test b/mysql-test/t/multi_update.test index 088b355a17c..d5543f69bd5 100644 --- a/mysql-test/t/multi_update.test +++ b/mysql-test/t/multi_update.test @@ -224,3 +224,31 @@ INSERT INTO t3 VALUES (1,'jedan'),(2,'dva'); update t1,t2 set t1.naziv="aaaa" where t1.broj=t2.broj; update t1,t2,t3 set t1.naziv="bbbb", t2.naziv="aaaa" where t1.broj=t2.broj and t2.broj=t3.broj; drop table if exists t1,t2,t3; + +# +# Test multi update with different join methods +# + +CREATE TABLE t1 (a int not null primary key, b int not null, key (b)); +CREATE TABLE t2 (a int not null primary key, b int not null, key (b)); +INSERT INTO t1 values (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9); +INSERT INTO t2 values (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9); + +# Full join, without key +update t1,t2 set t1.a=t1.a+100; +select * from t1; + +# unique key +update t1,t2 set t1.a=t1.a+100 where t1.a=101; +select * from t1; + +# ref key +update t1,t2 set t1.b=t1.b+10 where t1.b=2; +select * from t1; + +# Range key (in t1) +update t1,t2 set t1.b=t1.b+2,t2.b=t1.b where t1.b between 3 and 5; +select * from t1; +select * from t2; + +drop table t1,t2; |