diff options
author | unknown <sergefp@mysql.com> | 2006-02-05 23:49:32 +0300 |
---|---|---|
committer | unknown <sergefp@mysql.com> | 2006-02-05 23:49:32 +0300 |
commit | 6344fd64a515a773c9e68a5cac7c45299851c8e1 (patch) | |
tree | 0e860f6fd406feef4d3445b87852cb987354d058 /mysql-test/t/partition_pruning.test | |
parent | 42aed3fecb3608cdfca449f56d2ea6795a05a3b0 (diff) | |
parent | d50236f69efd348d88d1b6671c40034fd02349a3 (diff) | |
download | mariadb-git-6344fd64a515a773c9e68a5cac7c45299851c8e1.tar.gz |
Merge
mysql-test/t/partition_pruning.test:
Auto merged
mysql-test/r/partition_pruning.result:
SCCS merged
Diffstat (limited to 'mysql-test/t/partition_pruning.test')
-rw-r--r-- | mysql-test/t/partition_pruning.test | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/mysql-test/t/partition_pruning.test b/mysql-test/t/partition_pruning.test index 55353a1a402..a5821f057c3 100644 --- a/mysql-test/t/partition_pruning.test +++ b/mysql-test/t/partition_pruning.test @@ -269,6 +269,52 @@ insert into t1 values (1,1),(2,2),(3,3); explain partitions select * from t1 where b > 1 and b < 3; explain partitions select * from t1 where b > 1 and b < 3 and (a =1 or a =2); +drop table t1; + +# Test partition pruning for single-table UPDATE/DELETE. +# TODO: Currently we test only "all partitions pruned away" case. Add more +# tests when the patch that makes use of partition pruning results at +# execution phase is pushed. + +create table t1 (a int) partition by list(a) ( + partition p0 values in (1,2), + partition p1 values in (3,4) +); +insert into t1 values (1),(1),(2),(2),(3),(4),(3),(4); + +# This won't do any table access +flush status; +update t1 set a=100 where a=5; +show status like 'Handler_read_rnd_next'; + +# ... as compared to this, which will scan both partitions +flush status; +update t1 set a=100 where a+1=5+1; +show status like 'Handler_read_rnd_next'; + +# Same as above for DELETE: +flush status; +delete from t1 where a=5; +show status like 'Handler_read_rnd_next'; + +flush status; +delete from t1 where a+1=5+1; +show status like 'Handler_read_rnd_next'; + +# Same as above multi-table UPDATE/DELETE +create table t2 like t1; +insert into t2 select * from t2; + +flush status; +update t1,t2 set t1.a=1000, t2.a=1000 where t1.a=5 and t2.a=5; +show status like 'Handler_read_rnd_next'; +# ^ This shows 3 accesses, these are caused by const table reads. +# They should vanish when partition pruning results are used. + +flush status; +delete t1,t2 from t1, t2 where t1.a=5 and t2.a=5; +show status like 'Handler_read_rnd_next'; +drop table t1,t2; # WL# 2986 DROP TABLE IF EXISTS `t1`; |