summaryrefslogtreecommitdiff
path: root/mysql-test/t/having.test
diff options
context:
space:
mode:
authorunknown <igor@olga.mysql.com>2007-07-21 12:34:18 -0700
committerunknown <igor@olga.mysql.com>2007-07-21 12:34:18 -0700
commit3520da5b25227effdd24629836b72618dce9f958 (patch)
treeab251213c39043afab23e614a1364a98503994d1 /mysql-test/t/having.test
parent4049faa4926c7a8698318879976a0edbe38e735d (diff)
parent72c6c789cf206977894fc531ada2c253bc0b1806 (diff)
downloadmariadb-git-3520da5b25227effdd24629836b72618dce9f958.tar.gz
Merge olga.mysql.com:/home/igor/dev-opt/mysql-4.1-opt-bug29911
into olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug29911 mysql-test/t/having.test: Auto merged sql/sql_select.cc: Auto merged mysql-test/r/having.result: SCCS merged
Diffstat (limited to 'mysql-test/t/having.test')
-rw-r--r--mysql-test/t/having.test26
1 files changed, 26 insertions, 0 deletions
diff --git a/mysql-test/t/having.test b/mysql-test/t/having.test
index 9bea78a7bca..827b83f11a0 100644
--- a/mysql-test/t/having.test
+++ b/mysql-test/t/having.test
@@ -151,6 +151,32 @@ EXPLAIN SELECT 0 AS x, a FROM t1 GROUP BY x,a HAVING x=1 AND a > 1;
DROP table t1;
+#
+# Bug #29911: HAVING clause depending on constant table and evaluated to false
+#
+
+CREATE TABLE t1 (a int PRIMARY KEY);
+CREATE TABLE t2 (b int PRIMARY KEY, a int);
+CREATE TABLE t3 (b int, flag int);
+
+INSERT INTO t1 VALUES (1);
+INSERT INTO t2 VALUES (1,1), (2,1), (3,1);
+INSERT INTO t3(b,flag) VALUES (2, 1);
+
+SELECT t1.a
+ FROM t1 INNER JOIN t2 ON t1.a=t2.a LEFT JOIN t3 ON t2.b=t3.b
+ GROUP BY t1.a, t2.b HAVING MAX(t3.flag)=0;
+
+SELECT DISTINCT t1.a, MAX(t3.flag)
+ FROM t1 INNER JOIN t2 ON t1.a=t2.a LEFT JOIN t3 ON t2.b=t3.b
+ GROUP BY t1.a, t2.b HAVING MAX(t3.flag)=0;
+
+SELECT DISTINCT t1.a
+ FROM t1 INNER JOIN t2 ON t1.a=t2.a LEFT JOIN t3 ON t2.b=t3.b
+ GROUP BY t1.a, t2.b HAVING MAX(t3.flag)=0;
+
+DROP TABLE t1,t2,t3;
+
# End of 4.1 tests
#