1. 30 Jul, 2007 1 commit
    • evgen@moonbone.local's avatar
      Bug#24989: The DEADLOCK error is improperly handled by InnoDB. · 8de5603d
      evgen@moonbone.local authored
      When innodb detects a deadlock it calls ha_rollback_trans() to rollback the 
      main transaction. But such action isn't allowed from inside of triggers and
      functions. When it happen the 'Explicit or implicit commit' error is thrown
      even if there is no commit/rollback statements in the trigger/function. This
      leads to the user confusion.
      
      Now the convert_error_code_to_mysql() function doesn't call the 
      ha_rollback_trans() function directly but rather calls the
      mark_transaction_to_rollback function and returns an error.
      The sp_rcontext::find_handler() now doesn't allow errors to be caught by the
      trigger/function error handlers when the thd->is_fatal_sub_stmt_error flag
      is set. Procedures are still allowed to catch such errors.
      The sp_rcontext::find_handler function now accepts a THD handle as a parameter.
      The transaction_rollback_request and the is_fatal_sub_stmt_error flags are 
      added to the THD class. The are initialized by the THD class constructor.
      Now the ha_autocommit_or_rollback function rolls back main transaction
      when not in a sub statement and the thd->transaction_rollback_request
      is set.
      The THD::restore_sub_statement_state function now resets the 
      thd->is_fatal_sub_stmt_error flag on exit from a sub-statement.
      8de5603d
  2. 22 May, 2007 4 commits
  3. 21 May, 2007 11 commits
  4. 20 May, 2007 1 commit
  5. 18 May, 2007 7 commits
  6. 17 May, 2007 4 commits
    • igor@olga.mysql.com's avatar
      Merge olga.mysql.com:/home/igor/mysql-5.0-opt · 2189c571
      igor@olga.mysql.com authored
      into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug28337
      2189c571
    • evgen@moonbone.local's avatar
      Bug#28261: Wrong DATETIME comparison result when the GET_USER_VAR function · 0e3c4f67
      evgen@moonbone.local authored
      is involved.
      
      The Arg_comparator::compare_datetime() comparator caches its arguments if
      they are constants i.e. const_item() returns true. The
      Item_func_get_user_var::const_item() returns true or false based on
      the current query_id and the query_id where the variable was created.
      Thus even if a query can change its value its const_item() still will return
      true. All this leads to a wrong comparison result when an object of the
      Item_func_get_user_var class is involved.
      
      Now the Arg_comparator::can_compare_as_dates() and the
      get_datetime_value() functions never cache result of the GET_USER_VAR()
      function (the Item_func_get_user_var class).
      0e3c4f67
    • gkodinov/kgeorge@macbook.gmz's avatar
      Bug#22855: · a9b348c7
      gkodinov/kgeorge@macbook.gmz authored
      Conversion errors when constructing the condition for an
      IN predicates were treated as if the affected column contains
      NULL. If such a IN predicate is inside NOT we get wrong 
      results.
      Corrected the handling of conversion errors in an IN predicate 
      that is resolved by unique_subquery (through 
      subselect_uniquesubquery_engine).
      a9b348c7
    • igor@olga.mysql.com's avatar
      Fixed bug #28337: wrong results for grouping queries with correlated · 8c34ae26
      igor@olga.mysql.com authored
      subqueries in WHERE conditions.
      This bug was introduced by the patch for bug 27321.
      8c34ae26
  7. 16 May, 2007 12 commits