diff options
author | unknown <sergefp@mysql.com> | 2003-11-18 17:04:52 +0300 |
---|---|---|
committer | unknown <sergefp@mysql.com> | 2003-11-18 17:04:52 +0300 |
commit | 3a553cf2afa6adebf81e9cf8a6cba4eaf90ded3d (patch) | |
tree | 41d1f3f8dac68bb2526f1a859106f202abaa5b27 /mysql-test | |
parent | 5a24433d271e6317886102448f2b60728b738940 (diff) | |
download | mariadb-git-3a553cf2afa6adebf81e9cf8a6cba4eaf90ded3d.tar.gz |
Fix for bug #1820
mysql-test/r/multi_update.result:
Test for bug #1820
mysql-test/t/multi_update.test:
Test for bug #1820
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
Diffstat (limited to 'mysql-test')
-rw-r--r-- | mysql-test/r/multi_update.result | 22 | ||||
-rw-r--r-- | mysql-test/t/multi_update.test | 35 |
2 files changed, 57 insertions, 0 deletions
diff --git a/mysql-test/r/multi_update.result b/mysql-test/r/multi_update.result index a7579b538b5..b0d597f238a 100644 --- a/mysql-test/r/multi_update.result +++ b/mysql-test/r/multi_update.result @@ -341,3 +341,25 @@ select t1.a, t1.b,t2.a, t2.b from t1 left join t2 on t1.a=t2.a where t1.b=1 and a b a b 2 2 NULL NULL drop table t1,t2; +create table t1 ( a int not null, b int not null) ; +alter table t1 add index i1(a); +delete from t1 where a > 2000000; +create table t2 like t1; +insert into t2 select * from t1; +select 't2 rows before small delete', count(*) from t1; +t2 rows before small delete count(*) +t2 rows before small delete 2000000 +delete t1,t2 from t1,t2 where t1.b=t2.a and t1.a < 2; +select 't2 rows after small delete', count(*) from t2; +t2 rows after small delete count(*) +t2 rows after small delete 1999999 +select 't1 rows after small delete', count(*) from t1; +t1 rows after small delete count(*) +t1 rows after small delete 1999999 +delete t1,t2 from t1,t2 where t1.b=t2.a and t1.a < 100*1000; +select 't2 rows after big delete', count(*) from t2; +t2 rows after big delete count(*) +t2 rows after big delete 1900001 +select 't1 rows after big delete', count(*) from t1; +t1 rows after big delete count(*) +t1 rows after big delete 1900001 diff --git a/mysql-test/t/multi_update.test b/mysql-test/t/multi_update.test index 6b59778bbce..b3c742e0b30 100644 --- a/mysql-test/t/multi_update.test +++ b/mysql-test/t/multi_update.test @@ -275,3 +275,38 @@ insert into t2 values (1,1), (3,1); update t1 left join t2 on t1.a=t2.a set t1.b=2, t2.b=2 where t1.b=1 and t2.b=1 or t2.a is NULL; select t1.a, t1.b,t2.a, t2.b from t1 left join t2 on t1.a=t2.a where t1.b=1 and t2.b=1 or t2.a is NULL; drop table t1,t2; + +# +# Test for bug #1820. +# + +create table t1 ( a int not null, b int not null) ; +--disable_query_log +insert into t1 values (1,1),(2,2),(3,3),(4,4); +let $1=19; +set @d=4; +while ($1) +{ + eval insert into t1 select a+@d,b+@d from t1; + eval set @d=@d*2; + dec $1; +} + +--enable_query_log +alter table t1 add index i1(a); +delete from t1 where a > 2000000; +create table t2 like t1; +insert into t2 select * from t1; + +select 't2 rows before small delete', count(*) from t1; +delete t1,t2 from t1,t2 where t1.b=t2.a and t1.a < 2; +select 't2 rows after small delete', count(*) from t2; +select 't1 rows after small delete', count(*) from t1; + +## Try deleting many rows + +delete t1,t2 from t1,t2 where t1.b=t2.a and t1.a < 100*1000; +select 't2 rows after big delete', count(*) from t2; +select 't1 rows after big delete', count(*) from t1; + +#drop table t1,t2; |