Fix for a bug with ROW(..) <=> ROW(...)

parent d6923a6c
...@@ -159,3 +159,9 @@ a MAX(b) (1, MAX(b)) = (1, 4) ...@@ -159,3 +159,9 @@ a MAX(b) (1, MAX(b)) = (1, 4)
1 4 1 1 4 1
10 43 0 10 43 0
drop table t1; drop table t1;
SELECT ROW(2,10) <=> ROW(3,4);
ROW(2,10) <=> ROW(3,4)
0
SELECT ROW(NULL,10) <=> ROW(3,NULL);
ROW(NULL,10) <=> ROW(3,NULL)
0
...@@ -79,3 +79,5 @@ insert into t1 values (10, 43); ...@@ -79,3 +79,5 @@ insert into t1 values (10, 43);
insert into t1 values (1, 4); insert into t1 values (1, 4);
select a, MAX(b), (1, MAX(b)) = (1, 4) from t1 group by a; select a, MAX(b), (1, MAX(b)) = (1, 4) from t1 group by a;
drop table t1; drop table t1;
SELECT ROW(2,10) <=> ROW(3,4);
SELECT ROW(NULL,10) <=> ROW(3,NULL);
...@@ -266,8 +266,8 @@ int Arg_comparator::compare_e_row() ...@@ -266,8 +266,8 @@ int Arg_comparator::compare_e_row()
uint n= (*a)->cols(); uint n= (*a)->cols();
for (uint i= 0; i<n; i++) for (uint i= 0; i<n; i++)
{ {
if ((res= comparators[i].compare())) if ((res= !comparators[i].compare()))
return 1; return 0;
} }
return 1; return 1;
} }
...@@ -352,7 +352,6 @@ void Item_func_equal::fix_length_and_dec() ...@@ -352,7 +352,6 @@ void Item_func_equal::fix_length_and_dec()
{ {
Item_bool_func2::fix_length_and_dec(); Item_bool_func2::fix_length_and_dec();
maybe_null=null_value=0; maybe_null=null_value=0;
set_cmp_func();
} }
longlong Item_func_equal::val_int() longlong Item_func_equal::val_int()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment