1. 03 Jan, 2011 1 commit
    • Michael Widenius's avatar
      Implementation of MWL#172: Add support for prepared statements to HANDLER READ · e63b5546
      Michael Widenius authored
      It includes speed optimizations for HANDLER READ by caching as much as possible in HANDLER OPEN
      Other things:
      - Added mysqld option --disable-thr-alarm to be able to benchmark things without thr_alarm
      - Changed 'Locked' state to 'System lock' and 'Table lock' (these where used in the code but never shown to end user)
      - Better error message if mysql_install_db.sh fails
      - Moved handler function prototypes to sql_handler.h
      - Remove not anymore used 'thd->locked' member
      
      
      include/thr_alarm.h:
        Added my_disable_thr_alarm
      include/thr_lock.h:
        Add new member to THR_LOCK_DATA to remember original lock type state. This is needed as thr_unlock() resets type to TL_UNLOCK.
      mysql-test/include/check_no_concurrent_insert.inc:
        Locked -> Table lock
      mysql-test/include/handler.inc:
        Locked -> Table lock
      mysql-test/r/handler_innodb.result:
        Updated results for new tests
      mysql-test/r/handler_myisam.result:
        Updated results for new tests
      mysql-test/r/sp-threads.result:
        Locked -> Table lock
      mysql-test/suite/binlog/t/binlog_stm_row.test:
        Locked -> Table lock
      mysql-test/suite/funcs_1/datadict/processlist_val.inc:
        Locked -> Table lock
      mysql-test/suite/pbxt/t/lock_multi.test:
        Locked -> Table lock
      mysql-test/suite/sys_vars/r/concurrent_insert_func.result:
        Locked -> Table lock
      mysql-test/suite/sys_vars/t/concurrent_insert_func.test:
        Locked -> Table lock
      mysql-test/suite/sys_vars/t/delayed_insert_limit_func.test:
        Locked -> Table lock
      mysql-test/suite/sys_vars/t/query_cache_wlock_invalidate_func.test:
        Locked -> Table lock
      mysql-test/suite/sys_vars/t/sql_low_priority_updates_func.test:
        Locked -> Table lock
      mysql-test/t/insert_notembedded.test:
        Locked -> Table lock
      mysql-test/t/lock_multi.test:
        Locked -> Table lock
      mysql-test/t/merge-big.test:
        Locked -> Table lock
      mysql-test/t/multi_update.test:
        Locked -> Table lock
      mysql-test/t/query_cache_28249.test:
        Locked -> Table lock
      mysql-test/t/sp_notembedded.test:
        Locked -> Table lock
      mysql-test/t/sp_sync.test:
        Locked -> Table lock
      mysql-test/t/status.test:
        Locked -> Table lock
      mysql-test/t/trigger_notembedded.test:
        Locked -> Table lock
      mysys/thr_alarm.c:
        Added option to disable thr_alarm
      mysys/thr_lock.c:
        Detect loops
      scripts/mysql_install_db.sh:
        Give better error message if something goes wrong
      sql/Makefile.am:
        Added sql_handler.h
      sql/lock.cc:
        Split functions to allow one to cache value if store_lock() (for HANDLER functions).
        - Split mysql_lock_tables() into two functions, where first one allocates MYSQL_LOCK and other other one uses it.
        - Made get_lock_data() an external function.
        - Added argument to mysql_unlock_tables() to not free sql_lock.
        - Added argument to reset_lock_data() to reset lock structure to initial state (as after get_lock_data())
      sql/mysql_priv.h:
        Moved handler function prototypes to sql_handler.h
        Added new lock functions.
      sql/mysqld.cc:
        Added --thread-alarm startup option
      sql/net_serv.cc:
        Don't call vio_blocking() if not needed
      sql/sql_base.cc:
        include sql_handler.h
      sql/sql_class.cc:
        include sql_handler.h
        Remove not anymore used 'thd->locked' member
      sql/sql_class.h:
        Remove not anymore used 'thd->locked' member
      sql/sql_db.cc:
        include sql_handler.h
      sql/sql_delete.cc:
        include sql_handler.h
      sql/sql_handler.cc:
        Rewrote all code to use SQL_HANDLER instead of TABLE_LIST (original interface)
        Rewrote mysql_ha_open() to cache all things from TABLE_LIST and items for field list, where etc.
        In mysql_ha_open() also cache MYSQL_LOCK structure from get_lock_data().
        Split functions into smaller sub functions (needed to be able to implement mysql_ha_read_prepare())
        Added mysql_ha_read_prepare() to allow one to prepare HANDLER READ.
      sql/sql_handler.h:
        Interface to sql_handler.cc
      sql/sql_parse.cc:
        include sql_handler.h
      sql/sql_prepare.cc:
        Added mysql_test_handler_read(), prepare for HANDLER READ
      sql/sql_rename.cc:
        include sql_handler.h
      sql/sql_show.cc:
        Removed usage of thd->locked
      sql/sql_table.cc:
        include sql_handler.h
      sql/sql_trigger.cc:
        include sql_handler.h
      e63b5546
  2. 26 Dec, 2010 1 commit
  3. 25 Dec, 2010 1 commit
  4. 24 Dec, 2010 1 commit
    • Igor Babaev's avatar
      Fixed LP bug#694092. · d9a81475
      Igor Babaev authored
      In some cases the function make_cond_for_index() was mistaken
      when detecting index only pushdown conditions for a table: 
      a pushdown condition that was not index only could be marked
      as such.
      It happened because the procedure erroneously used the markers
      for index only conditions that remained from the calls of
      this function that extracted the index conditions for other 
      tables.
      Fixed by erasing index only markers as soon as they are need
      anymore.
      d9a81475
  5. 22 Dec, 2010 1 commit
    • Igor Babaev's avatar
      Fixed LP bug #670380. · a095346a
      Igor Babaev authored
      Lifted the limitation that hash join could not be used over 
      varchar fields with non-binary collation.
      a095346a
  6. 21 Dec, 2010 2 commits
  7. 20 Dec, 2010 1 commit
  8. 19 Dec, 2010 1 commit
  9. 17 Dec, 2010 2 commits
  10. 16 Dec, 2010 3 commits
  11. 15 Dec, 2010 1 commit
  12. 14 Dec, 2010 1 commit
    • unknown's avatar
      Fix LP BUG#685411 · 4f28dcbe
      unknown authored
      Analysis:
      The assert failed because st_select_lex::print() was called for subqueries
      as follows:
      
      Item_subselect::print() ->
        subselect_single_select_engine::print() -> st_select_lex::print()
      
      It was Item_subselect::fix_fields() that set the thd by calling set_thd(),
      so when this print() was called before fix_fields(), subselect_engine::thd
      was NULL.
      
      Solution:
      The patch makes all constructors of all subselect_engine classes to take
      a THD parameter. The default subselect_single_select_engine engine is created
      early during parse time, in the Item_subselect::init call, so we pass the
      correct THD object already at this point.
      4f28dcbe
  13. 13 Dec, 2010 2 commits
  14. 11 Dec, 2010 2 commits
  15. 10 Dec, 2010 1 commit
  16. 08 Dec, 2010 2 commits
    • Sergey Petrunya's avatar
      BUG#671340: Diverging results in with mrr_sort_keys=ON|OFF and join_cache_level=5 · a86599e1
      Sergey Petrunya authored
      - Make Mrr_ordered_index_reader() save the rowid across scan interruptions
      
      Also
      - Fix compiler warning for setup_buffer_sizes()
      - Add commented key_copy/key_restore for better handling of a similar issue
        with index record being destroyed by scan interruption (which causes 
        incorrect evaluation of pushed index condition later on).
      a86599e1
    • Michael Widenius's avatar
      Fixed test results for windows builds · eb70e64c
      Michael Widenius authored
      Fixed compiler warning
      
      mysql-test/r/named_pipe.result:
        Fixed test results for windows builds
      mysql-test/r/shm.result:
        Fixed test results for windows builds
      sql/item_cmpfunc.cc:
        Fixed compiler warning about uninitialized "first"
      eb70e64c
  17. 06 Dec, 2010 12 commits
    • Vladislav Vaintroub's avatar
      merge LP Bug#686184 · 2de9a774
      Vladislav Vaintroub authored
      2de9a774
    • Vladislav Vaintroub's avatar
      merge LP Bug#686184 · 077d96c2
      Vladislav Vaintroub authored
      077d96c2
    • Vladislav Vaintroub's avatar
      Fix myisam_crash_before_flush_keys on Windows · 3fb8bc16
      Vladislav Vaintroub authored
      Problem : mtr reports test failure because it sees
      [ERROR] mysqld got exception 0x80000003 ;
      in the .err file
      
      The exception comes from DBUG_EXECUTE_IF (.. abort())
      
      Fix:  use DBUG_ABORT instead of abort() - it does not throw 
      any exceptions.
      3fb8bc16
    • Vladislav Vaintroub's avatar
      Fix LP Bug#686184 - merge_debug test fails. · 60722bca
      Vladislav Vaintroub authored
      The reason for failure is that DBUG_EXECUTE_IF in mi_open()
      only worked for Unix-formatted file names, due to strstr(name, "/crashed")
      
      The fix change strstr() above to strstr(name, "crashed"), to it can work with 
      Windows file names as well.
      60722bca
    • Sergey Petrunya's avatar
      c67b8954
    • Vladislav Vaintroub's avatar
      merge · 82113c39
      Vladislav Vaintroub authored
      82113c39
    • Vladislav Vaintroub's avatar
      merge · bfcc62c7
      Vladislav Vaintroub authored
      bfcc62c7
    • Vladislav Vaintroub's avatar
      merge · 6ad44811
      Vladislav Vaintroub authored
      6ad44811
    • Vladislav Vaintroub's avatar
      Bug#473914: mysql_client_test fail with in debug compilaton on windows x64 · 0eae06c4
      Vladislav Vaintroub authored
       
      Reason: inconsistent compilation, federatedx is compiled without SAFEMALLOC
      flag, while anything else is compiled with SAFEMALLOC.
      
      As a consequence, my_hash_init used inside federatedx initialization does not
      provide correct caller info parameters (file, line) , so they are initialized with 
      whatever is on stack. When info about allocated memory is output in
      COM_DEBUG command, the server crashes trying to output string starting at
      0xcccccccccccccccc.
      
      The fix is to remove SAFEMALLOC  preprocessor flags 
      from every CMakeLists.txt, except the top-level one.
      
      Also, SAFEMALLOC is not defined by default now, instead
      there is WITH_DEBUG_FULL CMake option which adds 
      -DSAFEMALLOC to C and C++ flags in debug compilation. 
      This option is off by  default, because 
      1) Debug C runtime already has heap debugging builtin with 
       overwrite and leak detection
      2)safemalloc considerably slows down the tests.
      
      
      Note also  that 
      - SAFEMALLOC is gone  in MySQL5.5
      - On Windows, heap related overflows can also be found using free pageheap utility
      (that is also part of application verifier). This is even more efficient if there are no other layers 
      on top of Windows heap allocator, e.g  it is most efficient with release version.
      0eae06c4
    • Michael Widenius's avatar
    • Michael Widenius's avatar
      Merge with 5.1-release · 42746a44
      Michael Widenius authored
      42746a44
    • Michael Widenius's avatar
      Merge with 5.1-release. · b7b25dc6
      Michael Widenius authored
      - Fixed problem with oqgraph and 'make dist'
      
      Note that after this merge we have a problem show in join_outer where we examine too many rows in one specific case (related to BUG#57024).
      This will be fixed when mwl#128 is merged into 5.3.
      b7b25dc6
  18. 05 Dec, 2010 3 commits
    • Michael Widenius's avatar
      Removed compiler warning · b3c72b9a
      Michael Widenius authored
      b3c72b9a
    • Michael Widenius's avatar
      merge with 5.1-release · 6061a11d
      Michael Widenius authored
      6061a11d
    • Michael Widenius's avatar
      Fixes to not trigger end-consistency testing of pagecache. · a585745d
      Michael Widenius authored
      - Moved end_pagecache() to after maria_close()
      - Flush page cache before closing files (in maria_pack)
      Fixed test suite failure for PBXT
      
      mysql-test/suite/pbxt/r/select.result:
        We mask out the 'rows' column because it may differ from run to run
      mysql-test/suite/pbxt/t/select.test:
        We mask out the 'rows' column because it may differ from run to run
      storage/maria/maria_chk.c:
        Moved end_pagecache() to after maria_close() to not trigger end-consistency testing of pagecache.
      storage/maria/maria_pack.c:
        Moved end_pagecache() to after maria_close() to not trigger end-consistency testing of pagecache.
        flush page cache before closing files.
      a585745d
  19. 04 Dec, 2010 2 commits