summaryrefslogtreecommitdiff
path: root/mysql-test/t/subselect4.test
diff options
context:
space:
mode:
authorSergey Petrunya <psergey@askmonty.org>2011-02-10 11:36:43 +0300
committerSergey Petrunya <psergey@askmonty.org>2011-02-10 11:36:43 +0300
commite431f106b95d6a7fc83fbe0d4187297340293085 (patch)
treea3dc0537ffc0acba3e97f52aa59d92e10457049f /mysql-test/t/subselect4.test
parent6c9076256fd2e1a07457add0e20207a6c64480bd (diff)
downloadmariadb-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.test17
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;
+