| Bug #137 | <=> operator doesn't work as expected with ROW | ||
|---|---|---|---|
| Submitted: | 9 Mar 2003 18:13 | Modified: | 10 Mar 2003 9:47 | 
| Reporter: | jocelyn fournier (Silver Quality Contributor) | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server | Severity: | S3 (Non-critical) | 
| Version: | 4.1 | OS: | Any (all) | 
| Assigned to: | CPU Architecture: | Any | |
   [9 Mar 2003 18:13]
   jocelyn fournier        
  
 
   [10 Mar 2003 9:47]
   MySQL Verification Team        
  ==== sql/item_cmpfunc.cc 1.75 vs edited =====
*** /tmp/item_cmpfunc.cc-1.75-8523      Fri Mar  7 11:39:24 2003
--- edited/sql/item_cmpfunc.cc  Mon Mar 10 19:26:07 2003
***************
*** 266,273 ****
    uint n= (*a)->cols();
    for (uint i= 0; i<n; i++)
    {
!     if ((res= comparators[i].compare()))
!       return 1;
    }
    return 1;
  }
--- 266,273 ----
    uint n= (*a)->cols();
    for (uint i= 0; i<n; i++)
    {
!     if ((res= !comparators[i].compare()))
!       return 0;
    }
    return 1;
  }
***************
*** 352,358 ****
  {
    Item_bool_func2::fix_length_and_dec();
    maybe_null=null_value=0;
-   set_cmp_func();
  }
  
  longlong Item_func_equal::val_int()
--- 352,357 ----
Additional note:
SELECT ROW(NULL,10) <=> (ROW(3,NULL))
should be 0 and not NULL.
<=> never returns NULL, only 0 and 1.
 
