1. 12 Jun, 2006 1 commit
  2. 30 May, 2006 1 commit
  3. 29 May, 2006 1 commit
    • evgen@moonbone.local's avatar
      Fixed bug#18360: Incorrect type coercion in IN() results in false comparison · 641f852d
      evgen@moonbone.local authored
      The IN() function uses agg_cmp_type() to aggregate all types of its arguments
      to find out some common type for comparisons. In this particular case the 
      char() and the int was aggregated to double because char() can contain values
      like '1.5'. But all strings which do not start from a digit are converted to
      0. thus 'a' and 'z' become equal. 
      This behaviour is reasonable when all function arguments are constants. But 
      when there is a field or an expression this can lead to false comparisons. In
      this case it makes more sense to coerce constants to the type of the field
      argument.
      
      The agg_cmp_type() function now aggregates types of constant and non-constant
      items separately. If some non-constant items will be found then their
      aggregated type will be returned. Thus after the aggregation constants will be
      coerced to the aggregated type. 
      641f852d
  4. 28 May, 2006 1 commit
    • evgen@moonbone.local's avatar
      Fixed bug#19225: unchecked error results in server crash · 1f30bf5a
      evgen@moonbone.local authored
      In multi-table delete a table for delete can't be used for selecting in
      subselects. Appropriate error was raised but wasn't checked which leads to a
      crash at the execution phase.
      
      The mysql_execute_command() now checks for errors before executing select
      for multi-delete.
      1f30bf5a
  5. 25 May, 2006 1 commit
    • evgen@moonbone.local's avatar
      Fixed bug#16716: subselect in concat() may lead to a wrong result. · 40ea3025
      evgen@moonbone.local authored
      The Item_func_concat::val_str() function tries to make as less re-allocations
      as possible. This results in appending strings returned by 2nd and next
      arguments to the string returned by 1st argument if the buffer for the first
      argument has enough free space. A constant subselect is evaluated only once 
      and its result is stored in an Item_cache_str. In the case when the first
      argument of the concat() function is such a subselect Item_cache_str returns
      the stored value and Item_func_concat::val_str() append values of other
      arguments to it. But for the next row the value in the Item_cache_str isn't
      restored because the subselect is a constant one and it isn't evaluated second
      time. This results in appending string values of 2nd and next arguments to the 
      result of the previous Item_func_concat::val_str() call.
      
      The Item_func_concat::val_str() function now checks whether the first argument 
      is a constant one and if so it doesn't append values of 2nd and next arguments
      to the string value returned by it.
      40ea3025
  6. 24 May, 2006 5 commits
  7. 23 May, 2006 3 commits
  8. 22 May, 2006 1 commit
  9. 21 May, 2006 1 commit
  10. 20 May, 2006 2 commits
  11. 19 May, 2006 4 commits
  12. 17 May, 2006 2 commits
  13. 16 May, 2006 9 commits
  14. 15 May, 2006 5 commits
  15. 14 May, 2006 3 commits