1. 11 Nov, 2013 2 commits
    • unknown's avatar
      MDEV-5153: Server crashes in Item_ref::fix_fields on 2nd execution of PS with... · c98a054f
      unknown authored
      MDEV-5153: Server crashes in Item_ref::fix_fields on 2nd execution of PS with LEFT JOIN and MERGE view or SELECT SQ
      
      1. Transformation of row IN subquery made the same as single value.
      2. replace_where_subcondition() made working on several layers of OR/AND because it called on expression before fix_fields().
      c98a054f
    • unknown's avatar
      MDEV-5103: server crashed on singular Item_equal · c85db2c4
      unknown authored
      Singular Item_equal support added.
      
      The problem was that during constant table substitution Item_equal become containing only one constant which was not supported internally.
      c85db2c4
  2. 08 Nov, 2013 4 commits
  3. 29 Oct, 2013 2 commits
    • unknown's avatar
      MariaDB made be compiled by gcc 4.8.1 · 5ce11d8b
      unknown authored
        
        There was 2 problems:
        1) coping/moving of the same type (usually casting) as sizeof() (solved in different ways depends on the cause);
        2) using 'const' in SSL_CTX::getVerifyCallback() which return object (not reference) and so copy of the object will be created and 'const' has no sens.
      5ce11d8b
    • timour@askmonty.org's avatar
      MDEV-5104 crash in Item_field::used_tables with broken order by · 883af99e
      timour@askmonty.org authored
      Analysis:
      st_select_lex_unit::prepare() computes can_skip_order_by as TRUE.
      As a result join->prepare() gets called with order == NULL, and
      doesn't do name resolution for the inner ORDER clause. Due to this
      the prepare phase doesn't detect that the query references non-exiting
      function and field.
        
      Later join->optimize() calls update_used_tables() for a non-resolved
      Item_field, which understandably has no Field object. This call results
      in a crash.
      
      Solution:
      Resolve unnecessary ORDER BY clauses to detect if they reference non-exising
      objects. Then remove such clauses from the JOIN object.
      883af99e
  4. 21 Oct, 2013 4 commits
  5. 16 Oct, 2013 4 commits
  6. 11 Oct, 2013 1 commit
  7. 14 Oct, 2013 1 commit
  8. 12 Oct, 2013 1 commit
    • Igor Babaev's avatar
      Fixed bug mdev-5132. · 78b580b7
      Igor Babaev authored
      Objects of the classes Item_func_isnull and Item_func_isnotnull
      must have the flag sargable set to TRUE.
      Set the value of the flag sargable only in constructors of the 
      classes inherited from Item_int_func.
      78b580b7
  9. 11 Oct, 2013 1 commit
  10. 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
  11. 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
  12. 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
  13. 25 Sep, 2013 1 commit
  14. 16 Sep, 2013 5 commits
  15. 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
  16. 13 Sep, 2013 1 commit
  17. 12 Sep, 2013 2 commits
  18. 09 Sep, 2013 1 commit
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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