1. 11 Oct, 2013 1 commit
  2. 10 Oct, 2013 1 commit
    • Igor Babaev's avatar
      Fixed bug mdev-5105. · 7c87385e
      Igor Babaev authored
      The bug caused a memory overwrite in the function update_ref_and_keys()
      It happened due to a wrong value of SELECT_LEX::cond_count. This value
      historically was calculated by the fix_fields method. Now the logic of
      calling this method became too complicated and, as a result, this value
      is calculated not always correctly.
      The patch changes the way how and when  the values of SELECT_LEX::cond_count
      and of SELECT_LEX::between_count are calculated. The new code does it just at
      the beginning of update_ref_and_keys().
       
      7c87385e
  3. 04 Oct, 2013 1 commit
    • Igor Babaev's avatar
      Fixed bug mdev-5078. · ec226e55
      Igor Babaev authored
      For aggregated fields from views/derived tables the possible adjustment
      of thd->lex->in_sum_func->max_arg_level in the function Item_field::fix_fields
      must be done before we leave the function.
      ec226e55
  4. 03 Oct, 2013 1 commit
    • Igor Babaev's avatar
      Fixed bug mdev-5028. · 00816a96
      Igor Babaev authored
      Apparently in a general case a short-cut for the distinct optimization
      is invalid if join buffers are used to join tables after the tables whose
      values are to selected.
      00816a96
  5. 25 Sep, 2013 1 commit
  6. 16 Sep, 2013 5 commits
  7. 15 Sep, 2013 1 commit
    • Igor Babaev's avatar
      Fixed bug mdev-5015. · 996f6194
      Igor Babaev authored
      The patch for mdev-4355 had a defect: the cached values for bitmaps of
      used tables were not updated when processing degenerate OR formulas.
      996f6194
  8. 13 Sep, 2013 1 commit
  9. 12 Sep, 2013 2 commits
  10. 09 Sep, 2013 1 commit
  11. 06 Sep, 2013 1 commit
    • Igor Babaev's avatar
      Fixed bug mdev-4996. · 02338228
      Igor Babaev authored
      The fix for bug mdev-4971 not always correctly set the pointers to
      inherited multiple equalities in objects of the Item_equal class. 
      02338228
  12. 30 Aug, 2013 1 commit
    • Igor Babaev's avatar
      Fixed bug mdev-4971. · 576a2b15
      Igor Babaev authored
      The function propagate_new_equalities() did not updated properly
      the references to inherited multiple equalities.
      576a2b15
  13. 29 Aug, 2013 1 commit
    • Igor Babaev's avatar
      Fixed bug mdev-4962. · 37f18d23
      Igor Babaev authored
      When a non-nullable datetime field is used under an IS NULL predicate
      of the WHERE condition in a query with outer joins the remove_eq_conds
      function should check whether this field belongs to an inner table
      of any outer join that can be, in a general case, a nested outer join.
      37f18d23
  14. 26 Aug, 2013 2 commits
    • Igor Babaev's avatar
      Fixed bug mdev-4952 · 650d3266
      Igor Babaev authored
      When in function remove_eq_conds() a sub-formula of the processed condition
      is replaced for another formula we should ensure that in the resulting
      formula AND/OR levels must alternate.
      650d3266
    • Igor Babaev's avatar
      Fixed bug mdev-4944. · 901737c9
      Igor Babaev authored
      The patch to fix mdev-4418 turned out to be incorrect.
      At the substitution of single row tables in make_join_statistics()
      the used multiple equalities may change and references to the new multiple
      equalities must be updated. The function remove_eq_conds() takes care of it and
      it should be called right after the substitution of single row tables.
      Calling it after the call of make_join_statistics was a mistake.
      901737c9
  15. 24 Aug, 2013 1 commit
    • Igor Babaev's avatar
      Fixed bug mdev-4942. · dbc84ff9
      Igor Babaev authored
      Made sure that degenerate conjunctions/disjunctions are obtained from
      AND/OR conditions.
      dbc84ff9
  16. 22 Aug, 2013 1 commit
  17. 21 Aug, 2013 1 commit
  18. 20 Aug, 2013 2 commits
    • Igor Babaev's avatar
      Fixed a bug/typo in the patch for mdev-4355, noticed after the patch · 99992f6e
      Igor Babaev authored
      had been merged into 5.5.
      
      Corrected the result of the output from the test case for mdev 4895.
      99992f6e
    • unknown's avatar
      Fix bug MDEV-4895 Valgrind warnings (Conditional jump or move depends on... · 5fdb531d
      unknown authored
      Fix bug MDEV-4895 Valgrind warnings (Conditional jump or move depends on uninitialised value) in Field_datetime::get_date on GREATEST(..) IS NULL
      
      Analysis:
      The cause of the valgrind warning was an attempt to evaluate a Field that was not yet read.
      The reason was that on one hand Item_func_isnotnull was marked as constant by
      Item_func_isnotnull::update_used_tables, and this allowed eval_const_cond() to be called.
      On the other hand Item_func_isnotnull::val_int() evaluated its argument as if it was not
      constant.
      
      Solution:
      The fix make sure that Item_func_isnotnull::val_int() doesn't evaluate its argument when
      it is constant and cannot be NULL, because the result is known in this case. 
      5fdb531d
  19. 19 Aug, 2013 1 commit
  20. 17 Aug, 2013 1 commit
    • Igor Babaev's avatar
      Fixed bug mdev-4418. · 25c15201
      Igor Babaev authored
      After single row substitutions there might appear new equalities.
      They should be properly propagated to all AND/OR levels the WHERE
      condition. It's done now with an additional call of remove_eq_conds(). 
      25c15201
  21. 15 Aug, 2013 4 commits
    • Igor Babaev's avatar
      Merge · 752d5d02
      Igor Babaev authored
      752d5d02
    • Igor Babaev's avatar
      Fixed bug mdev-4355. · fa7f6772
      Igor Babaev authored
      This patch almost totally revised the patch for bug mdev-4177.
      The latter had too many defects. In particular, it did not
      propagate multiple equalities formed when merging a degenerate
      disjunct into underlying AND formula.
      fa7f6772
    • Igor Babaev's avatar
      Merge 5.2->5.3 · 960720b1
      Igor Babaev authored
      960720b1
    • Igor Babaev's avatar
      Merge 5.1->5.2 · 7ba78277
      Igor Babaev authored
      7ba78277
  22. 13 Aug, 2013 1 commit
    • Igor Babaev's avatar
      Fixed bug mdev-4894. · 6dd9f049
      Igor Babaev authored
      This a an old legacy performance bug.
      When a very selective range scan existed for the second table in a join,
      and, at the same time, there was another range condition depending on the
      fields of the first table, the optimizer chose a plan with
      'Range checked for each record'. This plan was extremely inefficient in
      comparison with the regular selective range scan.
      As a matter of fact the range scan chosen for each record was the same as
      that selective range scan. 
      
      Changed the test case for bug 24776 to preserve the old output for explain.
       
      6dd9f049
  23. 12 Aug, 2013 1 commit
  24. 01 Aug, 2013 1 commit
  25. 08 Aug, 2013 2 commits
  26. 01 Aug, 2013 1 commit
  27. 21 Jul, 2013 1 commit
  28. 15 Jul, 2013 1 commit
  29. 09 Jul, 2013 1 commit
    • Vladislav Vaintroub's avatar
      MDEV-4409 - Fix deadlock in MySQL key cache code, that can happen if there is... · 6bef652d
      Vladislav Vaintroub authored
      MDEV-4409 - Fix deadlock in MySQL key cache code, that can happen if there is a key cache resize running in parallel with an update.
      
      If there is a key cache resize,a  thread writing to key cache, will pause waiting  until resize finishes. However this thread is won't be woken, because resize does not  signaling waiters anymore. This is a regression introduced in WL#86(segmented MyISAM key cache)
      The fix is to unconditionally release  threads waiting on resize_queue when resize  finishes, as in pre-WL#86 code.
      6bef652d