1. 17 Feb, 2011 2 commits
  2. 16 Feb, 2011 3 commits
  3. 15 Feb, 2011 5 commits
  4. 12 Feb, 2011 4 commits
  5. 11 Feb, 2011 1 commit
  6. 10 Feb, 2011 1 commit
  7. 09 Feb, 2011 2 commits
  8. 07 Feb, 2011 1 commit
  9. 06 Feb, 2011 1 commit
    • Igor Babaev's avatar
      Fixed LP bug #702403 that caused a crash on the tree for mwl#128 · 847114a2
      Igor Babaev authored
      with the test case added by this patch.
      The bug cannot be reproduced with the same test case for the main
      5.3 tree because the backported fix for bug 59696 masks the 
      problem that causes the crash in the mentioned test case. It's not
      clear weather this fix masks this problem in all possible cases. 
      
      Anyway the patch for bug 698882 introduced some inconsistent data
      structures that could contain indirect references to deleted object.
      It happened when two Item_equal objects were merged and the Item_field
      list of the second object was joined to such list of the first object.
      This operation required adjustment of the backward pointers in 
      Item fields from the joined list. However the adjustment was missing 
      and this caused crashes in the tree for mwl#128.
      
      Now the backward pointers are set only when Item_equal items are
      completely built and are not changed anymore.
       
      847114a2
  10. 05 Feb, 2011 1 commit
    • Igor Babaev's avatar
      Introduced optimizer switch flag 'optimize_join_buffer_size'. · 7208fe97
      Igor Babaev authored
      When this flag is 'off' the size of the used join buffer 
      is taken directly from the system variable 'join_buffer_size'.
      When this flag is 'on' then the size of the buffer depends
      on the estimated number of rows in the partial join whose
      records are to be stored in the buffer.
      By default this flag is set 'on'.
      7208fe97
  11. 01 Feb, 2011 2 commits
    • Vladislav Vaintroub's avatar
      Fix compile errors: · 116ff420
      Vladislav Vaintroub authored
      * declaration in the middle of the block in C file.
      * round() is only available in C99.
      116ff420
    • Igor Babaev's avatar
      Back-ported the patch for bug #59696 from mysql-5.6 code line. · 6867e1b0
      Igor Babaev authored
      The patch fixed the following optimizer defect: when performing
      substitution for best equal fields into where conditions to be
      able to do their evaluations as soon as possible the optimizer 
      skipped conditions over views. That could lead to suboptimal 
      execution of queries that used views.  
      Slightly changed the test case to demonstrate the performance
      improvements if this fix.
      6867e1b0
  12. 29 Jan, 2011 1 commit
  13. 28 Jan, 2011 1 commit
    • Igor Babaev's avatar
      Fixed LP bug #707827. · a2284e42
      Igor Babaev authored
      This bug could manifest itself when hash join over a varchar column
      with NULL values in some rows was used. It happened because the
      function key_buf_cmp erroneously returned FALSE when one of the joined
      key fields was null while the second was not.
      Also fixed two other bugs in the functions key_hashnr and key_buf_cmp 
      that could possibly lead to wrong results for some queries that
      used hash join over several columns with nulls.
      Also reverted the latest addition of the test case for bug #45092. It
      had been already backported earlier.
      a2284e42
  14. 27 Jan, 2011 1 commit
    • Igor Babaev's avatar
      Fixed LP bug #707848. · 16916e10
      Igor Babaev authored
      This was another bug in the patch for bug 698882. The new
      code from this patch did not ensured that substitutions
      of fields for best equal fields were performed on all
      AND-OR levels. As a result substitutions for best fields
      in some predicates that had been used by the range optimizer
      were not actually performed while range plans could employ
      these substitutions. This could lead to inconsistent data
      structures and ultimately to a crash.
      16916e10
  15. 26 Jan, 2011 1 commit
    • Igor Babaev's avatar
      Fixed LP bug #707555. · 352a944c
      Igor Babaev authored
      The bug was in the code of the patch fixing bug 698882.
      With improper casting the method store_key_field::change_source_field
      was called for the elements of the array TABLE_REF::key_copy that
      were either of a different type or not allocated at all. This caused
      crashes in some queries. 
      352a944c
  16. 24 Jan, 2011 1 commit
  17. 23 Jan, 2011 2 commits
  18. 22 Jan, 2011 3 commits
  19. 21 Jan, 2011 1 commit
  20. 14 Jan, 2011 6 commits
    • Sergei Golubchik's avatar
      ec85f1b7
    • Sergei Golubchik's avatar
    • Sergei Golubchik's avatar
      Optimize use of SEARCH_SAVE_BUFF in Aria · 4106db3e
      Sergei Golubchik authored
      (less not-needed copies of key pages)
      
      storage/maria/ma_rkey.c:
        Fixed wrong test if SEARCH_SAVE_BUFF should be set.
        Now we assume that if we are doing HA_READ_KEY_EXACT,
        we don't have to copy the last key buffer
        (in other words, it's not likely this will be followed
        by a read-next call)
      4106db3e
    • Sergei Golubchik's avatar
      use bulk insert and repair by sort for unique keys in · 53ef653f
      Sergei Golubchik authored
      Aria and MyISAM in create_internal_tmp_table_from_heap()
      (safe, as duplicates are impossible).
      This gives a HUGE speed boost!
      
      sql/opt_subselect.cc:
        Fixed problem with wrong recinfo in create_duplicate_weedout_tmp_tabl()
        Tagged the table with 'no_rows' so that when we create the table on disk,
        we only store the index data. This gave us a major speedup!
      sql/sql_select.cc:
        create_tmp_table_from_heap() now uses bulk_insert + repair_by_sort
        when creating Aria/MyISAM tables from HEAP tables.
        This gives a HUGE speed boost!
      storage/maria/ha_maria.cc:
        Extended bulk_insert() to recreate UNIQUE keys for
        internal temporary tables
      storage/maria/ma_open.c:
        Initialize m_info->lock.type properly for temporarly tables
        (needed for start_bulk_insert())
      storage/maria/ma_write.c:
        Don't check uniques that are disabled
      storage/myisam/ha_myisam.cc:
        Extended bulk_insert() to recreate UNIQUE keys for
        internal temporary tables.
      53ef653f
    • Sergei Golubchik's avatar
      Added ha_write_tmp_row() for slightly faster write_row for internal temp tables. · d33bb9e4
      Sergei Golubchik authored
      This will also enable us in the future to collect statistics for
      writes to internal tmp tables.
      
      sql/handler.h:
        Added ha_write_tmp_row()
      sql/opt_subselect.cc:
        ha_write_row -> ha_write_tmp_row
      sql/sql_class.h:
        Added ha_write_tmp_row()
      sql/sql_select.cc:
        ha_write_row -> ha_write_tmp_row
      d33bb9e4
    • Sergei Golubchik's avatar
      Added support for NO_RECORD record format (don't store any row data) for Aria. · 60c791d9
      Sergei Golubchik authored
      This makes the keys smaller (no row pointer) and gives us proper errors if we
      use the table wrongly.
      
      sql/sql_select.cc:
        Use NO_RECORD for tables that doesn't need row data.
      storage/maria/Makefile.am:
        Added ma_norec.c
      storage/maria/ma_check.c:
        Added support for NO_RECORD record format (don't store any row data)
      storage/maria/ma_norec.c:
        Added support for NO_RECORD record format
      storage/maria/ma_open.c:
        Added support for NO_RECORD record format
      storage/maria/ma_search.c:
        Added support for 0 size row pointers (used with NO_RECORD)
      storage/maria/ma_test1.c:
        Added testing of NO_RECORD record format.
      storage/maria/maria_chk.c:
        Added support for NO_RECORD
      storage/maria/maria_def.h:
        Added support for NO_RECORD
      storage/maria/unittest/ma_test_all-t:
        Added testing of NO_RECORD record format
      60c791d9