1. 14 Nov, 2011 1 commit
    • unknown's avatar
      Fix bug lp:889744 · 147721bb
      unknown authored
      MariaDB 5.5 merges changes from MySQL 5.5 where all constant
      expressions are wrapped into an Item_cache. As a result, constant
      single-row subqueries were also wrapped in an Item_cache.
      When analyzing the where clause for constant expressions that
      can be evaluated during optimization, subqueries wrapped into
      an Item_cache did not appear as expensive, and were therefore
      evaluated during optimization. Such evaluation is against the
      current architecture of MariaDB 5.3 where subquries are executed
      during the execute phase.
      
      The patch adds the is_expensive() predicate to Item_cache.
      This makes Item_cache consistent with other wrapping Item
      classes that need to look at the properties of the wrapped
      object.
      147721bb
  2. 13 Nov, 2011 6 commits
  3. 12 Nov, 2011 8 commits
    • Sergei Golubchik's avatar
      increase feedback plugin version · f9675754
      Sergei Golubchik authored
      f9675754
    • Sergei Golubchik's avatar
      5.2->5.3 merge · 557f0d3a
      Sergei Golubchik authored
      557f0d3a
    • Sergei Golubchik's avatar
      5.1 merge · 27095a24
      Sergei Golubchik authored
      27095a24
    • Sergei Golubchik's avatar
      feedback plugin: · 5c7aa5f2
      Sergei Golubchik authored
        fix for mem_total on windows
        report the time of the data snapshot
      5c7aa5f2
    • Igor Babaev's avatar
      Merge. · db0aed93
      Igor Babaev authored
      db0aed93
    • Igor Babaev's avatar
      Fixed LP bug #823301. · 28b2eaa8
      Igor Babaev authored
      A bug in the code of the function key_or could lead to a situation
      when performing of an OR operation for one index changes the result
      the operation for another index. This bug is fixed with this patch.
      
      Also corrected the specification and the code of the function 
      or_sel_tree_with_checks.
      28b2eaa8
    • unknown's avatar
      Remove unused variable detected by GCC 4.6.1. · 7ab789ef
      unknown authored
      7ab789ef
    • unknown's avatar
      Fix MySQL BUG#12329653 · 1d721d01
      unknown authored
      In MariaDB, when running in ONLY_FULL_GROUP_BY mode,
      the server produced in incorrect error message that there
      is an aggregate function without GROUP BY, for artificially
      created MIN/MAX functions during subquery MIN/MAX optimization.
      
      The fix introduces a way to distinguish between artifially
      created MIN/MAX functions as a result of a rewrite, and normal
      ones present in the query. The test for ONLY_FULL_GROUP_BY violation
      now tests in addition if a MIN/MAX function was part of a MIN/MAX
      subquery rewrite.
      
      In order to be able to distinguish these MIN/MAX functions, the
      patch introduces an additional flag in Item_in_subselect::in_strategy -
      SUBS_STRATEGY_CHOSEN. This flag is set when the optimizer makes its
      final choice of a subuqery strategy. In order to make the choice
      consistent, access to Item_in_subselect::in_strategy is provided
      via new class methods.
      ******
      Fix MySQL BUG#12329653
      
      In MariaDB, when running in ONLY_FULL_GROUP_BY mode,
      the server produced in incorrect error message that there
      is an aggregate function without GROUP BY, for artificially
      created MIN/MAX functions during subquery MIN/MAX optimization.
      
      The fix introduces a way to distinguish between artifially
      created MIN/MAX functions as a result of a rewrite, and normal
      ones present in the query. The test for ONLY_FULL_GROUP_BY violation
      now tests in addition if a MIN/MAX function was part of a MIN/MAX
      subquery rewrite.
      
      In order to be able to distinguish these MIN/MAX functions, the
      patch introduces an additional flag in Item_in_subselect::in_strategy -
      SUBS_STRATEGY_CHOSEN. This flag is set when the optimizer makes its
      final choice of a subuqery strategy. In order to make the choice
      consistent, access to Item_in_subselect::in_strategy is provided
      via new class methods.
      1d721d01
  4. 11 Nov, 2011 1 commit
    • Igor Babaev's avatar
      Fixed LP bug #879871. · b91a6bd8
      Igor Babaev authored
      The function add_ref_to_table_cond missed updating the value of
      join_tab->pre_idx_push_select_cond after having updated the value
      of join_tab->select->pre_idx_push_select_cond.
      b91a6bd8
  5. 10 Nov, 2011 1 commit
  6. 08 Nov, 2011 2 commits
  7. 07 Nov, 2011 2 commits
  8. 06 Nov, 2011 2 commits
    • Igor Babaev's avatar
      Merge. · e0500dbc
      Igor Babaev authored
      e0500dbc
    • Igor Babaev's avatar
      Fixed LP bug #886145. · e0c1b3f2
      Igor Babaev authored
      The bug happened because in some cases the function JOIN::exec
      did not save the value of TABLE::pre_idx_push_select_cond in
      TABLE::select->pre_idx_push_select_cond for the sort table.
      
      Noticed and fixed a bug in the function make_cond_remainder
      that builds the remainder condition after extraction of an index
      pushdown condition from the where condition. The code
      erroneously assumed that the function make_cond_for_table left
      the value of ICP_COND_USES_INDEX_ONLY in sub-condition markers.
      Adjusted many result files from the regression test suite
      after this fix .
      e0c1b3f2
  9. 04 Nov, 2011 4 commits
  10. 03 Nov, 2011 2 commits
  11. 02 Nov, 2011 10 commits
  12. 01 Nov, 2011 1 commit
    • unknown's avatar
      Fix bug lp:833702 · 64986873
      unknown authored
      Analysis:
      Equality propagation propagated the constant '7' into
      args[0] of the Item_in_optimizer that stands for the
      "< ANY" predicate. At the same the min/max subquery
      rewrite swapped the order of the left and right operands
      of the "<" predicate, but used Item_in_subselect::left_expr.
      
      As a result, when the <ANY predicate is executed early in the
      execution phase as a contant condition, instead of a constant
      right (swapped) argument of the < predicate, there was a field
      (t3.a). This field had no data, since the whole predicate is
      considered constant, and it is evaluated before any tables are
      read. Having junk in the field row buffer produced wrong result
      
      Solution:
      Fix create_swap to pick the correct Item_in_optimizer left
      argument.
      64986873