summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mysql-test/r/sel000001.result14
-rw-r--r--mysql-test/t/sel000001.test13
-rw-r--r--sql/sql_select.cc2
3 files changed, 28 insertions, 1 deletions
diff --git a/mysql-test/r/sel000001.result b/mysql-test/r/sel000001.result
index 28f6d3d1d5a..6b6b9b7dffc 100644
--- a/mysql-test/r/sel000001.result
+++ b/mysql-test/r/sel000001.result
@@ -5,3 +5,17 @@ SELECT s, id FROM t1 WHERE s = 'mouse';
s id
mouse 3
drop table t1;
+CREATE TABLE t1 (
+node int(11) NOT NULL default '0',
+maxchild int(11) NOT NULL default '0',
+PRIMARY KEY (`node`)
+);
+INSERT INTO t1 (node, maxchild) VALUES (4,4),(5,5),(1,244);
+SELECT * FROM t1 g1, t1 g2
+WHERE g1.node <= g2.node and g2.node <= g1.maxchild and g2.node = g2.maxchild;
+node maxchild node maxchild
+4 4 4 4
+5 5 5 5
+1 244 4 4
+1 244 5 5
+DROP TABLE t1;
diff --git a/mysql-test/t/sel000001.test b/mysql-test/t/sel000001.test
index 77355f8d535..ad4af1f92fb 100644
--- a/mysql-test/t/sel000001.test
+++ b/mysql-test/t/sel000001.test
@@ -16,3 +16,16 @@ CREATE TABLE t1 (s CHAR(20) PRIMARY KEY, id INT);
INSERT INTO t1 VALUES ('cat', 1), ('mouse', 3), ('dog', 2), ('snake', 77);
SELECT s, id FROM t1 WHERE s = 'mouse';
drop table t1;
+
+#
+#test for bug #717
+#
+CREATE TABLE t1 (
+ node int(11) NOT NULL default '0',
+ maxchild int(11) NOT NULL default '0',
+ PRIMARY KEY (`node`)
+);
+INSERT INTO t1 (node, maxchild) VALUES (4,4),(5,5),(1,244);
+SELECT * FROM t1 g1, t1 g2
+ WHERE g1.node <= g2.node and g2.node <= g1.maxchild and g2.node = g2.maxchild;
+DROP TABLE t1;
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index 5b5972be384..bde5392d299 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -2683,7 +2683,7 @@ make_join_select(JOIN *join,SQL_SELECT *select,COND *cond)
(select->quick &&
(select->quick->records >= 100L)))) ?
2 : 1;
- sel->read_tables= used_tables;
+ sel->read_tables= used_tables & ~current_map;
}
if (i != join->const_tables && tab->use_quick != 2)
{ /* Read with cache */