1. 15 Dec, 2011 2 commits
  2. 14 Dec, 2011 2 commits
    • Sergey Petrunya's avatar
      Merge · efb57a8e
      Sergey Petrunya authored
      efb57a8e
    • Sergey Petrunya's avatar
      BUG#901506: Crash in TABLE_LIST::print on EXPLAIN EXTENDED · 05e01274
      Sergey Petrunya authored
      - Let JTBM optimization code handle the case where the subquery is degenerate and doesn't have a 
        join query plan. Regular materialization would fall back to IN->EXISTS for such cases. Semi-Join
        materialization does not have such option, instead we introduce and use "constant JTBM join tabs".
      05e01274
  3. 13 Dec, 2011 6 commits
    • Igor Babaev's avatar
      Merge · 7229af30
      Igor Babaev authored
      7229af30
    • Igor Babaev's avatar
      Fixed LP bug #902356. · d274e32c
      Igor Babaev authored
      A memory overwrite in the function test_if_skip_sort_order()
      could cause a crash for some queries with subqueries.
      d274e32c
    • Sergey Petrunya's avatar
      BUG#902632: Crash or invalid read at st_join_table::cleanup, st_table::disable_keyread · 190aa085
      Sergey Petrunya authored
      - Do a "more thorough" cleanup of SJ-Materialization join tab in JOIN_TAB::cleanup. The bug
        was due to the fact that JOIN_TAB::cleanup() may be called multiple times for the same tab
        if the join has grouping.
      190aa085
    • unknown's avatar
    • Michael Widenius's avatar
      Automatic merge · 76d852d4
      Michael Widenius authored
      76d852d4
    • Michael Widenius's avatar
      Fixed valgrind error when storing db_name_length in query_cache. · b653115c
      Michael Widenius authored
      - Changed storage to be 2 bytes instead of sizeof(size_t) (simple optimization)
      - Fixed bug when using query_cache_strip_comments and query that started with '('
      - Fixed DBUG_PRINT() that used wrong (not initialized) variables.
      
      
      mysql-test/mysql-test-run.pl:
        Added some space to make output more readable.
      mysql-test/r/query_cache.result:
        Updated test results
      mysql-test/t/query_cache.test:
        Added test with query_cache_strip_comments
      sql/mysql_priv.h:
        Added QUERY_CACHE_DB_LENGTH_SIZE
      sql/sql_cache.cc:
        Fixed bug when using query_cache_strip_comments and query that started with '('
        Store db length in 2 characters instead of size_t.
        Get db length from correct position (earlier we had an error when query started with ' ')
        Fixed DBUG_PRINT() that used wrong (not initialized) variables.
      b653115c
  4. 12 Dec, 2011 3 commits
    • Sergei Golubchik's avatar
      5.2->5.3 merge · 745c53ec
      Sergei Golubchik authored
      745c53ec
    • unknown's avatar
      Fixed bug lp:900375 · 6404504d
      unknown authored
      The range optimizer incorrectly chose a loose scan for group by
      when there is a correlated WHERE condition. This range access
      method cannot be executed for correlated conditions also with the
      "range checked for each record" because generally the range access
      method can change for each outer record. Loose scan destructively
      changes the query plan and removes the GROUP operation, which will
      result in wrong query plans if another range access is chosen
      dynamically.
      6404504d
    • Igor Babaev's avatar
      Fixed LP bug #901709. · 63d32c11
      Igor Babaev authored
      The cause of the reported assertion failure was a division of a double value by 0. 
      63d32c11
  5. 11 Dec, 2011 6 commits
  6. 09 Dec, 2011 1 commit
    • Igor Babaev's avatar
      Fixed LP bug #901312. · 8a09adb3
      Igor Babaev authored
      The function setup_sj_materialization_part1() forgot to set the value
      of TABLE::map for any materialized IN subquery. 
      This could lead to wrong results for queries with subqueries that were
      converted to queries with semijoins.
      8a09adb3
  7. 08 Dec, 2011 3 commits
    • Alexey Botchkov's avatar
      bug #901655 ST_BUFFER asserts with a coplicated shape. · fc9d34ca
      Alexey Botchkov authored
              Coinciding nodes can appear as a result of DOUBLE inaccuracy.
              We should test that before we start the loop.
      
              Also the spatial relations can be calculated faster if we check
              MBR relations first. And we do have the shape's MBR-s now.
      
      per-file comments:
        sql/gcalc_slicescan.cc
              set_extent() method added.
      bug #901655 ST_BUFFER asserts with a coplicated shape.
        sql/gcalc_slicescan.h
              set_extent() method declared.
      bug #901655 ST_BUFFER asserts with a coplicated shape.
        sql/gcalc_tools.cc
      bug #901655 ST_BUFFER asserts with a coplicated shape.
              checks for equal nodes added.
        sql/item_geofunc.cc
      bug #901655 ST_BUFFER asserts with a coplicated shape.
              MBR for the shapes calculated, and MBR checks added before we
              start the heavy calculations.
        sql/spatial.h
      bug #901655 ST_BUFFER asserts with a coplicated shape.
              MBR::buffer() method implemented.
      fc9d34ca
    • unknown's avatar
      Fixed bug lp:888456 · 314c3774
      unknown authored
      Analysis:
      The class member QUICK_GROUP_MIN_MAX_SELECT::seen_first_key
      was not reset between subquery re-executions. Thus each
      subsequent execution continued from the group that was
      reached by the previous subquery execution. As a result
      loose scan reached end of file much earlier, and returned
      empty result where it shouldn't.
      
      Solution:
      Reset seen_first_key before each re-execution of the
      loose scan.
      314c3774
    • Sergey Petrunya's avatar
      Small semi-join optimization improvement: · ae480437
      Sergey Petrunya authored
      - if we're considering FirstMatch access with one inner table, and 
        @@optimizer_switch has semijoin_with_cache flag, calculate costs
        as if we used join cache (because we will be able to do so)
      ae480437
  8. 07 Dec, 2011 4 commits
  9. 06 Dec, 2011 5 commits
  10. 05 Dec, 2011 3 commits
    • Sergey Petrunya's avatar
      Bug #899962: materialized subquery with join_cache_level=3 · 136408b1
      Sergey Petrunya authored
      - Make create_tmp_table() set KEY_PART_INFO attributes for the keys it creates.
        This wasn't needed before but is needed now, when temp. tables that are 
        results of SJ-Materialization are being used for joins.
        This particular bug depended on HA_VAR_LENGTH_PART being set,
        but also added code to set HA_BLOB_PART and HA_NULL_PART when appropriate.
      136408b1
    • Igor Babaev's avatar
      Fixed LP bug #899777. · 7d1f4126
      Igor Babaev authored
      KEYUSE elements for a possible hash join key are not sorted by field
      numbers of the second table T of the hash join operation. Besides
      some of these KEYUSE elements cannot be used to build any key as their
      key expressions depend on the tables that are planned to be accessed
      after the table T. 
      The code before the patch did not take this into account and, as a result,
      execition of a query the employing block-based hash join algorithm could
      cause a crash or return a wrong result set. 
      7d1f4126
    • Sergey Petrunya's avatar
      a85454de
  11. 04 Dec, 2011 2 commits
    • Sergey Petrunya's avatar
      Make subquery Materialization, as well as semi-join Materialization be shown · 255fd6c9
      Sergey Petrunya authored
      in EXPLAIN as select_type==MATERIALIZED. 
      
      Before, we had select_type==SUBQUERY and it was difficult to tell materialized
      subqueries from uncorrelated scalar-context subqueries.
      255fd6c9
    • Igor Babaev's avatar
      Fixed LP bug #899696. · b5a05df6
      Igor Babaev authored
      If has been decided that the first match strategy is to be used to join table T
      from a semi-join nest while no buffer can be employed to join this table
      then no join buffer can be used to join any table in the join sequence between
      the first one belonging to the semi-join nest and table T.
      
       
      b5a05df6
  12. 03 Dec, 2011 3 commits