diff options
author | Sergey Petrunya <psergey@askmonty.org> | 2011-02-10 11:36:43 +0300 |
---|---|---|
committer | Sergey Petrunya <psergey@askmonty.org> | 2011-02-10 11:36:43 +0300 |
commit | e431f106b95d6a7fc83fbe0d4187297340293085 (patch) | |
tree | a3dc0537ffc0acba3e97f52aa59d92e10457049f /mysql-test/t/subselect4.test | |
parent | 6c9076256fd2e1a07457add0e20207a6c64480bd (diff) | |
download | mariadb-git-e431f106b95d6a7fc83fbe0d4187297340293085.tar.gz |
BUG#716293: "Range checked for each record" is not used if condition refers to outside of subquery
- Assume that outside subquery references are known when doing "Range-checked-for-each-record" check.
Diffstat (limited to 'mysql-test/t/subselect4.test')
-rw-r--r-- | mysql-test/t/subselect4.test | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/mysql-test/t/subselect4.test b/mysql-test/t/subselect4.test index 6e6eaa8eb6b..0b8d291158f 100644 --- a/mysql-test/t/subselect4.test +++ b/mysql-test/t/subselect4.test @@ -602,3 +602,20 @@ SET SESSION join_cache_level = @old_join_cache_level; DROP TABLE t1, t2, t3; +--echo # +--echo # BUG#716293: "Range checked for each record" is not used if condition refers to outside of subquery +--echo # + +create table t1 (a int); +insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +create table t2 (a int, b int, `filler` char(200), key(a), key (b)); +insert into t2 + select A.a + 10*B.a + 100 * C.a, A.a + 10*B.a + 100 * C.a, 'filler' from t1 A, t1 B, t1 C; + +--echo # The following must use "Range checked for each record" for table B +explain +select a, + (select sum(X.a+B.b) from t1 X, t2 B where B.a=A.a or B.b=A.a) +from t1 A; +drop table t1, t2; + |