Loading mysql-test/r/join_outer.result +6 −0 Original line number Diff line number Diff line Loading @@ -857,4 +857,10 @@ a b a b 1 1 1 2 2 1 2 2 3 1 NULL NULL SELECT * FROM t1 LEFT JOIN t2 ON t1.a=t2.a WHERE not(0+(t1.a=30 and t2.b=1)); a b a b 1 1 1 2 2 1 2 2 3 1 NULL NULL 4 2 NULL NULL DROP TABLE t1,t2; mysql-test/t/join_outer.test +1 −0 Original line number Diff line number Diff line Loading @@ -610,6 +610,7 @@ SELECT * FROM t1 LEFT JOIN t2 ON t1.a=t2.a; SELECT * FROM t1 LEFT JOIN t2 ON t1.a=t2.a WHERE t1.b=1; SELECT * FROM t1 LEFT JOIN t2 ON t1.a=t2.a WHERE t1.b=1 XOR (NOT ISNULL(t2.a) AND t2.b=1); SELECT * FROM t1 LEFT JOIN t2 ON t1.a=t2.a WHERE not(0+(t1.a=30 and t2.b=1)); DROP TABLE t1,t2; Loading sql/item_cmpfunc.h +3 −1 Original line number Diff line number Diff line Loading @@ -966,6 +966,8 @@ class Item_cond_and :public Item_cond enum Functype functype() const { return COND_AND_FUNC; } longlong val_int(); const char *func_name() const { return "and"; } table_map not_null_tables() const { return abort_on_null ? not_null_tables_cache: and_tables_cache; } Item* copy_andor_structure(THD *thd) { Item_cond_and *item; Loading Loading @@ -1013,7 +1015,7 @@ class Item_cond_xor :public Item_cond enum Type type() const { return FUNC_ITEM; } longlong val_int(); const char *func_name() const { return "xor"; } table_map not_null_tables() const { return and_tables_cache; } void top_level_item() {} }; Loading Loading
mysql-test/r/join_outer.result +6 −0 Original line number Diff line number Diff line Loading @@ -857,4 +857,10 @@ a b a b 1 1 1 2 2 1 2 2 3 1 NULL NULL SELECT * FROM t1 LEFT JOIN t2 ON t1.a=t2.a WHERE not(0+(t1.a=30 and t2.b=1)); a b a b 1 1 1 2 2 1 2 2 3 1 NULL NULL 4 2 NULL NULL DROP TABLE t1,t2;
mysql-test/t/join_outer.test +1 −0 Original line number Diff line number Diff line Loading @@ -610,6 +610,7 @@ SELECT * FROM t1 LEFT JOIN t2 ON t1.a=t2.a; SELECT * FROM t1 LEFT JOIN t2 ON t1.a=t2.a WHERE t1.b=1; SELECT * FROM t1 LEFT JOIN t2 ON t1.a=t2.a WHERE t1.b=1 XOR (NOT ISNULL(t2.a) AND t2.b=1); SELECT * FROM t1 LEFT JOIN t2 ON t1.a=t2.a WHERE not(0+(t1.a=30 and t2.b=1)); DROP TABLE t1,t2; Loading
sql/item_cmpfunc.h +3 −1 Original line number Diff line number Diff line Loading @@ -966,6 +966,8 @@ class Item_cond_and :public Item_cond enum Functype functype() const { return COND_AND_FUNC; } longlong val_int(); const char *func_name() const { return "and"; } table_map not_null_tables() const { return abort_on_null ? not_null_tables_cache: and_tables_cache; } Item* copy_andor_structure(THD *thd) { Item_cond_and *item; Loading Loading @@ -1013,7 +1015,7 @@ class Item_cond_xor :public Item_cond enum Type type() const { return FUNC_ITEM; } longlong val_int(); const char *func_name() const { return "xor"; } table_map not_null_tables() const { return and_tables_cache; } void top_level_item() {} }; Loading