1. 20 Nov, 2011 2 commits
    • Igor Babaev's avatar
      Fixed LP bug #892725. · 3c496ea9
      Igor Babaev authored
      A non-first execution of a prepared statement missed a call of the
      TABLE_LIST::process_index_hints() method in the code of the function
      setup_tables().
      At some scenarios this could lead to the choice of a quite inefficient
      execution plan for the base query of the prepared statement.
      3c496ea9
    • Alexey Botchkov's avatar
      Fix for bug #809849 spatial operations must be KILL-able. · 5a4c9100
      Alexey Botchkov authored
        Checks for thd->killed state added to the long loops in geometry calculations.
      
      per-file comments:
        sql/gcalc_slicescan.cc
      Fix for bug #809849 spatial operations must be KILL-able.
              checks for TERMINATED_STATE added.
        sql/gcalc_slicescan.h
      Fix for bug #809849 spatial operations must be KILL-able.
              defines added to include checks for termination in the
              library.
        sql/gcalc_tools.cc
      Fix for bug #809849 spatial operations must be KILL-able.
              checks for TERMINATED_STATE added.
        sql/gcalc_tools.h
      Fix for bug #809849 spatial operations must be KILL-able.
              TERMINATED_STATE pointers added.
        sql/item_geofunc.cc
      Fix for bug #809849 spatial operations must be KILL-able.
        sql/item_geofunc.h
      Fix for bug #809849 spatial operations must be KILL-able.
      5a4c9100
  2. 18 Nov, 2011 5 commits
    • Igor Babaev's avatar
      Fixed LP bug #891995. · 8ea39829
      Igor Babaev authored
      This bug in the function setup_semijoin_dups_elimination() could 
      lead to invalid choice of the sequence of tables for which semi-join
      duplicate elimination was applied.
      8ea39829
    • Igor Babaev's avatar
      Fixed LP bug #891953. · 6ed9c136
      Igor Babaev authored
      Due to this bug the function SEL_IMERGE::or_sel_tree_with_checks()
      could build an inconsistent merge tree if one of the SEL_TREEs in the
      resulting index merge happened to contain a full key range.
      This could trigger an assertion failure.
      
      
      
      6ed9c136
    • Alexey Botchkov's avatar
      unused variable removed. · fbb22ca4
      Alexey Botchkov authored
      fbb22ca4
    • Alexey Botchkov's avatar
      GCALC_CHECK_WITH_FLOAT disabled. · 47022d2e
      Alexey Botchkov authored
      That's not a good option for an onrdinary user.
      47022d2e
    • Igor Babaev's avatar
      Fixed LP bug #800184. · 3433cf3e
      Igor Babaev authored
      The function key_and() erroneously called SEL_ARG::increment_use_count()
      when SEL_ARG::incr_refs() should had been called. This could lead to
      wrong values of use_count for some SEL_ARG trees.
      3433cf3e
  3. 17 Nov, 2011 6 commits
  4. 16 Nov, 2011 2 commits
    • unknown's avatar
      Fix bug lp:869036 · 42221aba
      unknown authored
      Apart from the fix, the patch also adds few more unrelated test
      cases for partial matching, and fixes few typos.
      
      Analysis:
      This bug uncovered that partial matching via rowid intersection
      didn't handle the case when:
      - the left IN argument has some NULLs,
      - there are no non-null value matches, and there is no non-null
        column,
      - the subquery columns that are not covered with the NULLs in
        the left IN argument contain at least one row, such that it
        has NULL values in all columns where the left IN operand has
        no NULLs.
      In this case there is a partial match.
      
      In addition the analysis of the related code uncovered incorrect
      handling of few other related cases.
      
      Solution:
      The solution for the bug is to check if there exists a row with
      NULLs in all columns other than the ones having NULL in the
      let IN operand.
      
      The check is implemented via checking whether the bitmaps that
      store NULL information in class Ordered_key have a non-empty
      intersection for the relevant columns.
      
      The intersection itself is implemented via the function
      bitmap_exists_intersection() in my_bitmap.c.
      42221aba
    • Igor Babaev's avatar
      Fixed LP bug #887479. · c05e5b9c
      Igor Babaev authored
      The function setup_semijoin_dups_elimination erroneously assumed
      that if join_cache_level is set to 3 or 4 then the type of the
      access to a table cannot be JT_REF or JT_EQ_REF. This could lead
      to wrong query result sets.
      c05e5b9c
  5. 15 Nov, 2011 2 commits
    • Igor Babaev's avatar
      Merge. · 4d358f48
      Igor Babaev authored
      4d358f48
    • Igor Babaev's avatar
      Fixed LP bug #889750. · b4b7d941
      Igor Babaev authored
      If the optimizer switch 'semijoin_with_cache' is set to 'off' then 
      join cache cannot be used to join inner tables of a semijoin.
      
      Also fixed a bug in the function check_join_cache_usage() that led
      to wrong output of the EXPLAIN commands for some test cases.
      b4b7d941
  6. 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
  7. 13 Nov, 2011 6 commits
  8. 12 Nov, 2011 9 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
    • Alexey Botchkov's avatar
      merging. · 7c7269d3
      Alexey Botchkov authored
      7c7269d3
    • 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
  9. 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
  10. 10 Nov, 2011 1 commit
  11. 08 Nov, 2011 2 commits
  12. 07 Nov, 2011 2 commits
  13. 06 Nov, 2011 1 commit