1. 16 Aug, 2010 1 commit
    • Magne Mahre's avatar
      Bug#55001 Change in behavior: thread_concurrency (docs, · a3b9557b
      Magne Mahre authored
                example files)
      
      The system variable 'thread_concurrency' has been
      (re-)enabled on all platforms, to prevent startup
      errors.
      
      'thread_concurrency' is unused and has no effect,
      on any platform, in MySQL 5.1 and later versions.  It 
      will be deprecated, and removed, in context of 
      worklog WL#5265
      
      
      mysql-test/include/have_thread_concurrency.inc:
        include/have_thread_concurrency.inc was only needed
        to support platforms that didn't have the
        thread_concurrency variable available.  Since the
        variable is now available on all platforms, the file
        is removed.
      a3b9557b
  2. 13 Aug, 2010 4 commits
  3. 12 Aug, 2010 5 commits
  4. 11 Aug, 2010 1 commit
    • Guilhem Bichot's avatar
      fix for Bug #55672 "mysql_upgrade dies with internal error": · 53c8b221
      Guilhem Bichot authored
      it couldn't parse the --ssl option.
      
      client/mysql_upgrade.c:
        mysql_upgrade parses its options and passes some of them to the underlying
        tools (mysqlcheck etc). To do this passdown, it reconstructs a
        command-line-suitable text from the my_option object (which
        contains the option's name and option's value). For options
        which expect no parameter, it just had to use the option's name;
        for other options, it had to concatenate the option's name,
        a "=" symbol, and the option's value; it had code to handle
        this latter case, but only for GET_STR options (options taking a
        string as value). But since the work on WL 4738, the --ssl
        option, a GET_BOOL, which used to have no parameter (NO_ARG), can
        now have one (OPT_ARG), so with --ssl we came to the "default"
        label, error. Fixed by constructing the command-line-suitable
        representation for GET_BOOL too. For --ssl it will produce
        --ssl=1 ; for --ssl=0, it will produce --ssl=0.
      mysql-test/include/mysql_upgrade_preparation.inc:
        handles requirements of tests which use mysql_upgrade
      mysql-test/r/mysql_upgrade_ssl.result:
        result; without the code fix we would get "internal error".
      mysql-test/t/mysql_upgrade.test:
        This test has requirements before running; moved them
        to an include file in order to share with mysql_upgrade_ssl.
      mysql-test/t/mysql_upgrade_ssl.test:
        test for bug. Couldn't go into mysql_upgrade.test as this new test requires
        SSL support. --force is needed, in case mysql_upgrade.test run before
        (in which case mysql_upgrade_ssl would say that upgrade has already been
        done); --force forces the upgrade in all cases.
      53c8b221
  5. 12 Aug, 2010 1 commit
  6. 10 Aug, 2010 5 commits
    • Konstantin Osipov's avatar
      A pre-requisite patch for the fix for Bug#52044. · 265a6edd
      Konstantin Osipov authored
      Implement a few simple asserts in my_rwlock_t locks.
      
      include/my_pthread.h:
        Declare two simple assert functions.
      include/mysql/psi/mysql_thread.h:
        Add wrappers for new assert functions.
      mysys/thr_rwlock.c:
        Add asserts.
      sql/sql_base.cc:
        Silence a compiler warning for the case when
        SAFE_MUTEX is not ON.
      265a6edd
    • Jonathan Perkin's avatar
      Merge to mysql-5.5-bugfixing · 69091c49
      Jonathan Perkin authored
      69091c49
    • Magne Mahre's avatar
      Post-commit fix for Bug#41158 · 64cc044e
      Magne Mahre authored
      A label statement needs to be followed by at least
      one primary expression.  If built without
      WITH_PARTITION_STORAGE_ENGINE set, the block would 
      be empty.
      
      Added ';' as a dummy statement to fix it.
      
      64cc044e
    • Alfranio Correia's avatar
      BUG#50312 Warnings for unsafe sub-statement not returned to client · 88b32056
      Alfranio Correia authored
                              
      After BUG#36649, warnings for sub-statements are cleared when a 
      new sub-statement is started. This is problematic since it suppresses
      warnings for unsafe statements in some cases. It is important that we
      always give a warning to the client, because the user needs to know
      when there is a risk that the slave goes out of sync.
                              
      We fixed the problem by generating warning messages for unsafe statements
      while returning from a stored procedure, function, trigger or while
      executing a top level statement.
                              
      We also started checking unsafeness when both performance and log tables are
      used. This is necessary after the performance schema which does a distinction
      between performance and log tables.
      
      mysql-test/extra/rpl_tests/create_recursive_construct.inc:
        Changed the order of the calls in the procedure because the code
        that checks if a warning message is printed out expects that the
        first statement gives an warning what is not the case for INSERT
        INTO ta$CRC_ARG_level VALUES (47);
      mysql-test/suite/binlog/r/binlog_stm_unsafe_warning.result:
        Updated the result file.
      mysql-test/suite/binlog/r/binlog_unsafe.result:
        There are several changes here:
                
        (1) - Changed the CREATE PROCEDURE $CRC.
                                        
        (2) - The procedure $CRC was failing and the content of the binlog
              was being printed out, after fix (1) the failure disappeared.
                                        
        (3) - The warning message for unsafeness due to auto-increment collumns was
              changed.
                                        
        (4) - The warning message for unsafeness due to VERSION(), RAND() was changed.
      mysql-test/suite/binlog/t/binlog_stm_unsafe_warning.test:
        Tested filters.
      mysql-test/suite/binlog/t/binlog_unsafe.test:
        Reenabled the test case binlog_unsafe.
      mysql-test/suite/binlog/t/disabled.def:
        Reenabled the test case binlog_unsafe.
      mysql-test/suite/rpl/r/rpl_begin_commit_rollback.result:
        Updated the result file.
      mysql-test/suite/rpl/r/rpl_non_direct_stm_mixing_engines.result:
        Updated the result file.
      mysql-test/suite/rpl/r/rpl_stm_auto_increment_bug33029.result:
        Updated the result file.
      sql/sql_class.cc:
        Moved the stmt_accessed_table_flag variable and related information to the
        LEX as we need the variable reset after each statement even inside a stored
        procedure, what did not happen if the information was in the THD.
                
        Changed the routine in the THD::binlog_query that prints the warning
        messages to avoid trying to print them when inside a stored procedure,
        function or trigger.
                                
        Checked for unsafeness when both performance and log tables where used.
        After the introduction of the performance schema, we need to check both.
      88b32056
    • Jon Olav Hauglid's avatar
      Followup for Bug #54360 Deadlock DROP/ALTER/CREATE DATABASE · cff7f022
      Jon Olav Hauglid authored
                              with open HANDLER
      
      This patch changes the code for table renames to not drop metadata
      locks. Since table renames are done as a part of ALTER DATABASE ...
      UPGRADE, dropping metadata locks in the middle of execution can
      result in wrong binlog order since it means that no locks are held
      when the binlog is written to.
      
      The RENAME TABLE statement is unafffected since it auto commits and
      therefore already drops metadata locks at the end of execution.
      
      This patch also reverts the regression test for Bug#48940 back to
      its original version. The test was temporarily changed due to the
      issue mentioned above.
      cff7f022
  7. 09 Aug, 2010 9 commits
    • Vladislav Vaintroub's avatar
      Bug #55842 CMake: bad dependencies on sql/lex_hash.h · 8685b842
      Vladislav Vaintroub authored
      Fix by adding "DEPENDS gen_lex_hash" to ADD_CUSTOM_COMMAND(),
      so it regenerates lex_hash.h whenever gen_lex_lash changes.
      
      Also, make sql dependent on GenServerSource to avoid concurrent 
      generation of lex_hash.h (once for sql , and in parallel for embedded)
      8685b842
    • Konstantin Osipov's avatar
      A fix for Bug#41158 "DROP TABLE holds LOCK_open during unlink()". · 52306698
      Konstantin Osipov authored
      Remove acquisition of LOCK_open around file system operations,
      since such operations are now protected by metadata locks.
      Rework table discovery algorithm to not require LOCK_open.
      
      No new tests added since all MDL locking operations are covered
      in lock.test and mdl_sync.test, and as long as these tests
      pass despite the increased concurrency, consistency must be
      unaffected.
      
      mysql-test/t/disabled.def:
        Disable NDB tests due to Bug#55799.
      sql/datadict.cc:
        No longer necessary to protect ha_create_table() with
        LOCK_open. Serial execution is now ensured by metadata
        locks.
      sql/ha_ndbcluster.cc:
        Do not manipulate with LOCK_open in cluster code.
      sql/ha_ndbcluster_binlog.cc:
        Do not manipulate with LOCK_open in cluster code.
      sql/ha_ndbcluster_binlog.h:
        Update function signature.
      sql/handler.cc:
        Implement ha_check_if_table_exists().
        @todo: some engines provide ha_table_exists_in_engine()
        handlerton call, for those we perhaps shouldn't
        call ha_discover(), to be more efficient.
        Since currently it's only NDB, postpone till
        integration with NDB.
      sql/handler.h:
        Declare ha_check_if_table_exists() function.
      sql/mdl.cc:
        Remove an obsolete comment.
      sql/sql_base.cc:
        Update to a new signature of close_cached_tables():
        from now on we always call it without LOCK_open.
        Update comments.
        Remove get_table_share_with_create(), we should
        not attempt to create a table under LOCK_open.
        Introduce get_table_share_with_discover() instead,
        which would request a back off action if the table
        exists in engine.
        Remove acquisition of LOCK_open for 
        data dictionary operations, such as check_if_table_exists().
        Do not use get_table_share_with_create/discover for views,
        where it's not needed.
        Make tdc_remove_table() optionally acquire LOCK_open
        to simplify usage of this function.
        Use the right mutex in the partitioning code when
        manipulating with thd->open_tables.
      sql/sql_base.h:
        Update signatures of changes functions.
      sql/sql_insert.cc:
        Do not wrap quick_rm_table() with LOCK_open acquisition, 
        this is unnecessary.
      sql/sql_parse.cc:
        Update to the new calling convention of tdc_remove_table().
        Update to the new signature of close_cached_tables().
        Update comments.
      sql/sql_rename.cc:
        Update to the new calling convention of tdc_remove_table().
        Remove acquisition of LOCK_open around filesystem
        operations.
      sql/sql_show.cc:
        Remove get_trigger_table_impl().
        Do not acquire LOCK_open for a dirty read of the trigger
        file.
      sql/sql_table.cc:
        Do not acquire LOCK_open for filesystem operations.
      sql/sql_trigger.cc:
        Do not require LOCK_open for trigger file I/O.
      sql/sql_truncate.cc:
        Update to the new signature of tdc_remove_table().
      sql/sql_view.cc:
        Do not require LOCK_open for view I/O.
        Use tdc_remove_table() to expel view share.
        Update comments.
      sql/sys_vars.cc:
        Update to the new signature of close_cached_tables().
      52306698
    • Alexander Nozdrin's avatar
    • Alexander Nozdrin's avatar
      191efc05
    • Jonathan Perkin's avatar
      Don't try to remove from an empty list. · 2355224c
      Jonathan Perkin authored
      2355224c
    • Konstantin Osipov's avatar
      Merge 5.5-bugfixing -> 5.5-runtime. · b1207bf1
      Konstantin Osipov authored
      b1207bf1
    • Jonathan Perkin's avatar
      Apply wlad's fix for bug#55215 · d8d55a57
      Jonathan Perkin authored
      d8d55a57
    • Davi Arnaut's avatar
      7b7efa12
    • Davi Arnaut's avatar
      Bug#34043: Server loops excessively in _checkchunk() when safemalloc is enabled · 4c44e2a7
      Davi Arnaut authored
      Post-merge fix: add missing comma.
      4c44e2a7
  8. 06 Aug, 2010 2 commits
    • Davi Arnaut's avatar
      Bug#34043: Server loops excessively in _checkchunk() when safemalloc is enabled · 76382d27
      Davi Arnaut authored
      Post-merge fix: remove --with-debug=full, it was only used for safemalloc.
      
      BUILD/compile-pentium-mysqlfs-debug:
        Remove build script for a feature that is long gone.
      76382d27
    • Dmitry Lenev's avatar
      Part of fix for bug#52044 "FLUSH TABLES WITH READ LOCK and · 8d0dc9b5
      Dmitry Lenev authored
      FLUSH TABLES <list> WITH READ LOCK are incompatible" to
      be pushed as separate patch.
      
      Replaced thread state name "Waiting for table", which was
      used by threads waiting for a metadata lock or table flush, 
      with a set of names which better reflect types of resources
      being waited for.
      
      Also replaced "Table lock" thread state name, which was used 
      by threads waiting on thr_lock.c table level lock, with more
      elaborate "Waiting for table level lock", to make it 
      more consistent with other thread state names.
      
      Updated test cases and their results according to these 
      changes.
      
      Fixed sys_vars.query_cache_wlock_invalidate_func test to not
      to wait for timeout of wait_condition.inc script.
      
      mysql-test/r/query_cache.result:
        Added test coverage for query_cache_wlock_invalidate
        behavior for implicitly locked tables.
      mysql-test/suite/sys_vars/r/query_cache_wlock_invalidate_func.result:
        Fixed sys_vars.query_cache_wlock_invalidate_func test to not
        to wait for timeout of wait_condition.inc script. Reverted
        changes to test which introduced timeout and replaced waiting
        condition with a more appropriate one.
        Test coverage for query_cache_wlock_invalidate behavior for
        implicitly locked tables was added to query_cache.test.
      mysql-test/suite/sys_vars/t/query_cache_wlock_invalidate_func.test:
        Fixed sys_vars.query_cache_wlock_invalidate_func test to not
        to wait for timeout of wait_condition.inc script. Reverted
        changes to test which introduced timeout and replaced waiting
        condition with a more appropriate one.
        Test coverage for query_cache_wlock_invalidate behavior for
        implicitly locked tables was added to query_cache.test.
      mysql-test/t/query_cache.test:
        Added test coverage for query_cache_wlock_invalidate
        behavior for implicitly locked tables.
      mysys/thr_lock.c:
        Replaced "Table lock" thread state name, which was used by 
        threads waiting on thr_lock.c table level lock, with more
        elaborate "Waiting for table level lock", to make it 
        consistent with thread state names which are used while
        waiting for metadata locks and table flush.
      sql/mdl.cc:
        Replaced thread state name "Waiting for table", which was
        used by threads waiting for a metadata lock or table flush, 
        with a set of names which better reflect types of resources
        being waited for. 
        
        To implement this:
        - Adjusted MDL_wait::timed_wait() to take thread state name
          as parameter.
        - Introduced method of MDL_key class which allows to get
          thread state name to be used while waiting for resource
          corresponding to the key and changed code to use it.
          Added array translating namespaces to thread state names
          as part of this change.
      sql/mdl.h:
        To implement this:
        - Adjusted MDL_wait::timed_wait() to take thread state name
          as parameter.
        - Introduced method of MDL_key class which allows to get
          thread state name to be used while waiting for resource
          corresponding to the key and changed code to use it.
          Added array translating namespaces to thread state names
          as part of this change.
      sql/sql_base.cc:
        Replaced thread state name "Waiting for table", which was
        used by threads waiting for table flush, with a more elaborate
        "Waiting for table flush".
      8d0dc9b5
  9. 05 Aug, 2010 3 commits
    • Davi Arnaut's avatar
      Bug#55601: BUILD/check-cpu in mysql-trunk is broken on Mac OS X 10.5 · 9d503b77
      Davi Arnaut authored
      Restore the original behavior of check-cpu with respect to core2.
      It isn't used as a actual target processor type, but as a mean to
      perform other kinds of architecture checks.
      9d503b77
    • Vladislav Vaintroub's avatar
      Build cleanups · b94d8621
      Vladislav Vaintroub authored
      - Simplify sql-bench installation, 
      do not try to resolve names : this leads to probem
      if builddir is symlink located on different filesystem.
      (reported by alik)
      
      - Make WITHOUT_XXX (disabling plugin) work for DEFAULT
      plugins. Prior to the patch is behaved just like 
      MANDATORY.
      
      - LINK_LIBRARIES in MYSQL_ADD_PLUGIN had no effect for
      statically linked plugins.
      
      - Fix constant rebuild of initdb target on Windows.
      b94d8621
    • Evgeny Potemkin's avatar
      Auto-merged. · f2f65eef
      Evgeny Potemkin authored
      f2f65eef
  10. 04 Aug, 2010 3 commits
  11. 02 Aug, 2010 1 commit
    • Evgeny Potemkin's avatar
      Bug#55648: Server crash on MIX/MAX on maximum time value · 8147199f
      Evgeny Potemkin authored
      A typo in the Item_cache_datetime::val_str caused an assertion to fail on the
      maximum time value.
      
      
      mysql-test/r/func_group.result:
        A test case for the bug#55648.
      mysql-test/t/func_group.test:
        A test case for the bug#55648.
      sql/item.cc:
        Bug#55648: Server crash on MIX/MAX on maximum time value
        Corrected assertion.
      8147199f
  12. 31 Jul, 2010 3 commits
  13. 30 Jul, 2010 2 commits