1. 23 Feb, 2011 2 commits
    • Michael Widenius's avatar
      Fixed build issues · 6c610ed9
      Michael Widenius authored
      - Linking now with g++ instead of gcc with 'compile-dist' to solve problems with handlersocket/client
      - Fixed bug in heap tables when doing handler read next-prev over last row
      
      
      BUILD/compile-dist:
        - Linking now with g++ instead of gcc with 'compile-dist' to solve problems with handlersocket/client
      cmd-line-utils/libedit/vi.c:
        Fixed compiler warning about not checking return value for write
      mysql-test/r/index_intersect.result:
        Updated results (missed this file in my last push)
      mysql-test/suite/handler/aria.result:
        Updated test results
      mysql-test/suite/handler/handler.inc:
        Changed test to use read next/read prev on key where there are duplicates that can come in different order depending on system
        Added testing of read next-prev over last row and read prev-next around first row
      mysql-test/suite/handler/heap.result:
        Updated test results
      mysql-test/suite/handler/init.inc:
        More rows to test
      mysql-test/suite/handler/innodb.result:
        Updated test results
      mysql-test/suite/handler/interface.result:
        Updated test results
      mysql-test/suite/handler/myisam.result:
        Updated test results
      mysql-test/t/variables-big.test:
        Fixed test to not fail on windows
      mysql-test/valgrind.supp:
        Removed not matching fun: to get rid of valgrind warning
      storage/heap/hp_rfirst.c:
        Added state so that we know if we have an active position in the index.
      storage/heap/hp_rkey.c:
        Added state so that we know if we have an active position in the index.
      storage/heap/hp_rnext.c:
        Handle reading several next after finding the last row (this caused a crash before)
      storage/heap/hp_rprev.c:
        Handle reading several prev after finding the first row (this caused a crash before)
      storage/xtradb/buf/buf0buf.c:
        Fixed compiler warning about uninitialized value
      6c610ed9
    • Michael Widenius's avatar
      Fixed compiler warnings and some test failures found by buildbot · 39616eb9
      Michael Widenius authored
      
      dbug/dbug.c:
        Fixed compiler warnings on windows
      mysql-test/r/index_intersect_innodb.result:
        Don't print number of rows as this varies
      mysql-test/suite/funcs_1/r/processlist_val_no_prot.result:
        Update to use new State
      mysql-test/suite/handler/heap.result:
        Update results
      mysql-test/suite/handler/heap.test:
        Changed key used in test as the key 'b' will not guarantee order of the two last elements (as the key value is the same)
      mysql-test/suite/pbxt/r/lock_multi.result:
        Update to use new State
      mysql-test/t/index_intersect.test:
        Don't print number of rows as this varies
      mysql-test/valgrind.supp:
        Added suppression for linux
      mysys/hash.c:
        Fixed compiler warnings on windows
      plugin/handler_socket/handlersocket/database.cpp:
        Fixed compiler warnings
      sql-common/client_plugin.c:
        Changed variable to define to avoid compiler warnings when variable is not used
      sql-common/my_time.c:
        Initialize all my_time elements to avoid compiler warnings
      storage/oqgraph/ha_oqgraph.cc:
        Use right function (to avoid compiler warning)
      storage/pbxt/src/table_xt.cc:
        Initialize variables (to avoid compiler warnings)
      39616eb9
  2. 22 Feb, 2011 2 commits
  3. 21 Feb, 2011 2 commits
  4. 20 Feb, 2011 1 commit
    • Michael Widenius's avatar
      Added HandlerSocket plugin · 2c7d6f12
      Michael Widenius authored
      - Fixed compiler errors
      - Modified Makefiles to be part of plugin directory
      - Some minor changes in database.cpp to use the new MariaDB handler interface
      2c7d6f12
  5. 19 Feb, 2011 4 commits
  6. 18 Feb, 2011 4 commits
    • Vladislav Vaintroub's avatar
    • Vladislav Vaintroub's avatar
      Linker error, missing extern "C" for mi_killed. · e906ffcf
      Vladislav Vaintroub authored
      Fix is to move extern "C" at the start of header file.
      e906ffcf
    • Michael Widenius's avatar
      Merge with bugfix · 2813f568
      Michael Widenius authored
      sql/multi_range_read.cc:
        Added printing of error if something goes wrong in get_next()
        (Not critical for this bug fix, but this was something that I noticed while testing and found missing)
      storage/myisam/mi_rkey.c:
        Fixed wrong error number in mi_yield_and_check_if_killed()
      2813f568
    • Michael Widenius's avatar
      Fix for lp:711565 "Index Condition Pushdown can make a thread hold MyISAM... · b12e3796
      Michael Widenius authored
      Fix for lp:711565 "Index Condition Pushdown can make a thread hold MyISAM locks as well as be unKILLable for long time"
      - In Maria/MyISAM: Release/re-acquire locks to give queries that wait on them a chance to make progress
      - In Maria/MyISAM: Change from numeric constants to ICP_RES values.
      - In Maria: Do check index condition in maria_rprev() (was lost in the merge/backport?)
      - In Maria/MyISAM/XtraDB: Check if the query was killed, and return immediately if it was.
      
      Added new storage engine error: HA_ERR_ABORTED_BY_USER, for handler to signal that it detected a kill of the query and aborted
      
      Authors: Sergey Petrunia & Monty
      
      include/my_base.h:
        Added HA_ERR_ABORTED_BY_USER, for handler to signal that it detected a kill of the query and aborted
      include/my_handler.h:
        Added comment
      mysql-test/r/myisam_icp.result:
        Updated test
      mysql-test/t/myisam_icp.test:
        Drop used tables at start of test
        Added test case that can help with manual testing of killing index condition pushdown query.
      mysys/my_handler_errors.h:
        Text for new storage engine error
      sql/handler.cc:
        If engine got HA_ERR_ABORTED_BY_USER, send kill message.
      sql/multi_range_read.cc:
        Return error code
      storage/maria/ha_maria.cc:
        Added ma_killed_in_mariadb() to detect kill.
        Ensure that file->external_ref points to TABLE object.
      storage/maria/ma_extra.c:
        Dummy test-if-killed for standalone
      storage/maria/ma_key.c:
        If ma_check_index_cond() fails, set my_errno and info->cur_row.lastpos
      storage/maria/ma_rkey.c:
        Release/re-acquire locks to give queries that wait on them a chance to make progress
        Check if the query was killed, and return immediately if it was
      storage/maria/ma_rnext.c:
        Check if the query was killed, and return immediately if it was
        Added missing fast_ma_writeinfo(info)
      storage/maria/ma_rnext_same.c:
        Check if the query was killed, and return immediately if it was
        Added missing fast_ma_writeinfo(info)
      storage/maria/ma_rprev.c:
        Check if the query was killed, and return immediately if it was
        Added missing fast_ma_writeinfo(info) and ma_check_index_cond()
      storage/maria/ma_search.c:
        Give error message if we find a wrong key
      storage/maria/ma_static.c:
        Added pointer to test-if-killed function
      storage/maria/maria_def.h:
        New prototypes
      storage/myisam/ha_myisam.cc:
        Added mi_killed_in_mariadb()
        Ensure that file->external_ref points to TABLE object.
      storage/myisam/mi_extra.c:
        Dummy test-if-killed for standalone
      storage/myisam/mi_key.c:
        If ma_check_index_cond() fails, set my_errno and info->lastpos
      storage/myisam/mi_rkey.c:
        Ensure that info->lastpos= HA_OFFSET_ERROR in case of error
        Release/re-acquire locks to give queries that wait on them a chance to make progress
        Check if the query was killed, and return immediately if it was
        Reorder code to do less things in case of error.
        Added missing fast_mi_writeinfo()
      storage/myisam/mi_rnext.c:
        Check if the query was killed, and return immediately if it was
        Simplify old ICP code
        Added missing fast_ma_writeinfo(info)
      storage/myisam/mi_rnext_same.c:
        Check if the query was killed, and return immediately if it was
        Added missing fast_mi_writeinfo(info)
      storage/myisam/mi_rprev.c:
        Check if the query was killed, and return immediately if it was
        Simplify error handling of ICP
        Added missing fast_mi_writeinfo(info)
      storage/myisam/mi_search.c:
        Give error message if we find a wrong key
      storage/myisam/mi_static.c:
        Added pointer to test-if-killed function
      storage/myisam/myisamdef.h:
        New prototypes
      storage/xtradb/handler/ha_innodb.cc:
        Added DB_SEARCH_ABORTED_BY_USER and ha_innobase::is_thd_killed()
        Check if the query was killed, and return immediately if it was
      storage/xtradb/handler/ha_innodb.h:
        Added prototype
      storage/xtradb/include/db0err.h:
        Added DB_SEARCH_ABORTED_BY_USER
      storage/xtradb/include/row0mysql.h:
        Added possible ICP errors
      storage/xtradb/row/row0sel.c:
        Use ICP errors instead of constants.
        Detect if killed and return B_SEARCH_ABORTED_BY_USER
      b12e3796
  7. 12 Feb, 2011 4 commits
  8. 11 Feb, 2011 1 commit
  9. 10 Feb, 2011 1 commit
  10. 09 Feb, 2011 2 commits
  11. 07 Feb, 2011 1 commit
  12. 06 Feb, 2011 1 commit
    • Igor Babaev's avatar
      Fixed LP bug #702403 that caused a crash on the tree for mwl#128 · cbeab250
      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.
       
      cbeab250
  13. 05 Feb, 2011 1 commit
    • Igor Babaev's avatar
      Introduced optimizer switch flag 'optimize_join_buffer_size'. · 4b24105d
      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'.
      4b24105d
  14. 01 Feb, 2011 2 commits
    • Vladislav Vaintroub's avatar
      Fix compile errors: · 7e206872
      Vladislav Vaintroub authored
      * declaration in the middle of the block in C file.
      * round() is only available in C99.
      7e206872
    • Igor Babaev's avatar
      Back-ported the patch for bug #59696 from mysql-5.6 code line. · 8041013f
      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.
      8041013f
  15. 29 Jan, 2011 1 commit
  16. 28 Jan, 2011 1 commit
    • Igor Babaev's avatar
      Fixed LP bug #707827. · d4929035
      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.
      d4929035
  17. 27 Jan, 2011 1 commit
    • Igor Babaev's avatar
      Fixed LP bug #707848. · 3e868cd3
      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.
      3e868cd3
  18. 26 Jan, 2011 1 commit
    • Igor Babaev's avatar
      Fixed LP bug #707555. · a624f99e
      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. 
      a624f99e
  19. 24 Jan, 2011 1 commit
  20. 23 Jan, 2011 2 commits
  21. 22 Jan, 2011 3 commits
  22. 21 Jan, 2011 1 commit
  23. 14 Jan, 2011 1 commit