summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <sergefp@mysql.com>2005-03-11 02:26:38 +0300
committerunknown <sergefp@mysql.com>2005-03-11 02:26:38 +0300
commit324a566832920c0a6685effd86d542619d5d4f95 (patch)
treecbc4ca88ebc89fc01e2f360fbce77f93d2198a90
parent5aed41290a912118cd7488c5d9f9ce50c11a1aa0 (diff)
parentff2fcba35b636a282dc3d93d0c9f31515c09b659 (diff)
downloadmariadb-git-324a566832920c0a6685effd86d542619d5d4f95.tar.gz
Merge mysql.com:/home/psergey/mysql-4.1-bug8711
into mysql.com:/home/psergey/mysql-5.0-bug8711 mysql-test/r/join_outer.result: Auto merged mysql-test/t/join_outer.test: Auto merged sql/item_cmpfunc.h: Auto merged
-rw-r--r--mysql-test/r/join_outer.result20
-rw-r--r--mysql-test/t/join_outer.test13
-rw-r--r--sql/item_cmpfunc.h1
3 files changed, 34 insertions, 0 deletions
diff --git a/mysql-test/r/join_outer.result b/mysql-test/r/join_outer.result
index d2879e18726..01447d5e464 100644
--- a/mysql-test/r/join_outer.result
+++ b/mysql-test/r/join_outer.result
@@ -677,6 +677,26 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t3 ALL NULL NULL NULL NULL 2
drop table t1, t2, t3;
create table t1 (
+a int(11),
+b char(10),
+key (a)
+);
+insert into t1 (a) values (1),(2),(3),(4);
+create table t2 (a int);
+select * from t1 left join t2 on t1.a=t2.a where not (t2.a <=> t1.a);
+a b a
+1 NULL NULL
+2 NULL NULL
+3 NULL NULL
+4 NULL NULL
+select * from t1 left join t2 on t1.a=t2.a having not (t2.a <=> t1.a);
+a b a
+1 NULL NULL
+2 NULL NULL
+3 NULL NULL
+4 NULL NULL
+drop table t1,t2;
+create table t1 (
match_id tinyint(3) unsigned not null auto_increment,
home tinyint(3) unsigned default '0',
unique key match_id (match_id),
diff --git a/mysql-test/t/join_outer.test b/mysql-test/t/join_outer.test
index 66de5e5a4c9..7d85ab09b08 100644
--- a/mysql-test/t/join_outer.test
+++ b/mysql-test/t/join_outer.test
@@ -457,6 +457,19 @@ explain select * from t1 left join t2 on b1 = a1 left join t3 on c1 = a1 an
drop table t1, t2, t3;
+# Test for BUG#8711 '<=>' was considered to be a NULL-rejecting predicate.
+create table t1 (
+ a int(11),
+ b char(10),
+ key (a)
+);
+insert into t1 (a) values (1),(2),(3),(4);
+create table t2 (a int);
+
+select * from t1 left join t2 on t1.a=t2.a where not (t2.a <=> t1.a);
+select * from t1 left join t2 on t1.a=t2.a having not (t2.a <=> t1.a);
+drop table t1,t2;
+
# Test for BUG#5088
create table t1 (
diff --git a/sql/item_cmpfunc.h b/sql/item_cmpfunc.h
index 5a87635a4dc..38717672ba8 100644
--- a/sql/item_cmpfunc.h
+++ b/sql/item_cmpfunc.h
@@ -323,6 +323,7 @@ public:
Item_func_equal(Item *a,Item *b) :Item_bool_rowready_func2(a,b) {};
longlong val_int();
void fix_length_and_dec();
+ table_map not_null_tables() const { return 0; }
enum Functype functype() const { return EQUAL_FUNC; }
enum Functype rev_functype() const { return EQUAL_FUNC; }
cond_result eq_cmp_result() const { return COND_TRUE; }