1. 09 Dec, 2010 3 commits
  2. 05 Dec, 2010 3 commits
  3. 03 Dec, 2010 4 commits
  4. 02 Dec, 2010 10 commits
  5. 01 Dec, 2010 20 commits
    • Mats Kindahl's avatar
      65faf729
    • Mattias Jonsson's avatar
      Bug#58147: ALTER TABLE w/ TRUNCATE PARTITION fails · 2737a722
      Mattias Jonsson authored
                 but the statement is written to binlog
      
      TRUNCATE PARTITION was written to the binlog
      even if it failed before calling any partition's
      truncate function.
      
      Solved by adding an argument to truncate_partition,
      to flag if it should be written to the binlog or not.
      
      It should be written to the binlog when a call to any
      partitions truncate function is done.
      
      mysql-test/r/partition_binlog.result:
        New result file
      mysql-test/t/partition_binlog.test:
        New test file, including DROP PARTITION binlog test
      sql/ha_partition.cc:
        Added argument to avoid binlogging failed truncate_partition that
        have not yet changed any data.
      sql/ha_partition.h:
        Added argument to avoid excessive binlogging
      sql/sql_partition_admin.cc:
        Avoid to binlog TRUNCATE PARTITION if it fails before
        any partition has tried to truncate.
      2737a722
    • Mats Kindahl's avatar
      9c87ae9b
    • Marc Alff's avatar
      Local merge · c2a655f0
      Marc Alff authored
      c2a655f0
    • Marc Alff's avatar
      Local merge · 4b86f399
      Marc Alff authored
      4b86f399
    • Marc Alff's avatar
      Local merge · 989e682b
      Marc Alff authored
      989e682b
    • Marc Alff's avatar
      Local merge · 9c5e4362
      Marc Alff authored
      9c5e4362
    • Marko Mäkelä's avatar
      Bug#58212 Possible deadlock in change buffer in debug builds · 9bfb5ece
      Marko Mäkelä authored
      ibuf_page(): Renamed to ibuf_page_low(). Add the parameters file, line
      so that the latch diagnostics will be more meaningful.
      In debug builds, add the parameter ibool x_latch. When x_latch=FALSE,
      do not x-latch the page, but only buffer-fix it for reading the bit.
      In UNIV_SYNC_DEBUG, display a message if an insert buffer bitmap page
      was already latched. (The message should be displayed in those cases
      where the code would have previously failed.)
      
      ibuf_page(): A wrapper macro for ibuf_page_low(). Pass x_latch=TRUE.
      
      ibuf_bitmap_page_get_bits(): Renamed to ibuf_bitmap_page_get_bits_low().
      In UNIV_DEBUG, add the parameter latch_mode.
      Remove the parameter mtr unless UNIV_DEBUG is defined.
      
      ibuf_bitmap_page_get_bits(): A wrapper macro for
      ibuf_bitmap_page_get_bits_low(). Pass latch_type=MTR_MEMO_PAGE_X_FIX.
      
      buf_page_get_gen(): Use ibuf_page_low(x_latch=FALSE) in the debug assertion.
      This avoids the possible deadlock.
      9bfb5ece
    • Mats Kindahl's avatar
      BUG#58246: INSTALL PLUGIN not secure & crashable · fc9f3efa
      Mats Kindahl authored
      When installing plugins, there is a missing check
      for slash (/) in the path on Windows. Note that on
      Windows, both / and \ can be used to separate
      directories.
      
      This patch fixes the issue by:
      - Adding a FN_DIRSEP symbol for all platforms
        consisting of a string of legal directory
        separators.
      - Adding a charset-aware version of strcspn().
      - Adding a check_valid_path() function that uses
        my_strcspn() to check if any FN_DIRSEP character
        is in the supplied string.
      - Using the check_valid_path() function in
        sql_plugin.cc and sql_udf.cc (which means
        replacing the existing test there).
      
      include/config-netware.h:
        Adding FN_DIRSEP
        ******
        Adding FN_DIRSEP
      include/config-win.h:
        Adding FN_DIRSEP
        ******
        Adding FN_DIRSEP
      include/m_ctype.h:
        Adding my_strspn() and my_strcspn().
        
        ******
        Adding my_strspn() and my_strcspn().
      include/my_global.h:
        Adding FN_DIRSEP
        ******
        Adding FN_DIRSEP
      mysql-test/t/plugin_not_embedded.test:
        Adding test that file names containing / is
        disallowed on *all* platforms.
        ******
        Adding test that file names containing / is
        disallowed on *all* platforms.
      sql/sql_plugin.cc:
        Introducing check_if_path() function for
        checking if filename is a path to include
        / on Windows.
        ******
        Introducing check_if_path() function for
        checking if filename is a path to include
        / on Windows.
      sql/sql_udf.cc:
        Switching to use check_if_path() function.
        ******
        Switching to use check_if_path() function.
      strings/my_strchr.c:
        Adding my_strspn() and my_strcspn().
        ******
        Adding my_strspn() and my_strcspn().
      fc9f3efa
    • Mikael Ronstrom's avatar
    • Marc Alff's avatar
      Bug#53696 Performance schema engine violates the PSEA API by calling my_error() · 4372875a
      Marc Alff authored
      This is a code cleanup.
      
      The implementation of a storage engine (subclasses of handler) is not supposed
      to call my_error() directly inside the engine implementation, 
      but only return error codes, and report errors later at the demand
      of the sql layer only (if needed), using handler::print_error().
      
      This fix removes misplaced calls to my_error(),
      and provide an implementation of print_error() instead.
      
      Given that the sql layer implementation of create table, ha_create_table(),
      does not use print_error() but returns ER_CANT_CREATE_TABLE directly,
      the return code for create table statements using the performance schema
      has changed to ER_CANT_CREATE_TABLE.
      
      Adjusted the test suite accordingly.
      4372875a
    • Marc Alff's avatar
      Bug#56618 Thread_ID is not assigned in ascending sequence (after disconnect) · ea35bf7a
      Marc Alff authored
      Before this fix, the test thread_cache failed with spurious failures.
      
      The test used:
      -- disconnect X
      -- connect Y
      
      while assuming that connection Y would reuse connection X slot in the thread cache.
      
      For this to happen, the disconnect X operation must be given enough time to complete,
      otherwise connect Y can be executed in the server before X actually finishes.
      
      This fix uses wait conditions to make the test execution more controlled,
      and more reproductible.
      ea35bf7a
    • Marc Alff's avatar
      Bug#58512 Performance_schema.myisam_file_io fails sporadically in PB2 · 639b2598
      Marc Alff authored
      Before this fix, the test myisam_file_io executed:
      - (a) an update on setup_instrument to disable non myisam file io instruments
      - (b) a truncate on events_waits_history_long
      and later
      - (c) a select on events_waits_history_long
      
      Surprisingly, events that were supposed to be disabled in (a) and removed in (b)
      still were found in (c).
      
      This happened for events such as 
        wait/io/file/innodb/innodb_data_file fil0fil.c: sync  
      because the sync was started before (a) and completed after (b),
      and as a consequence was added in the performance schema history, as expected.
      
      Presence of these records in the history made the test fail. 
      
      This fix makes the test script more robust to account for extra spill waits records in (c).
      639b2598
    • Marko Mäkelä's avatar
      Bug#58226 Some InnoDB debug checks consume too much CPU time · d6bac7db
      Marko Mäkelä authored
      Do not disable InnoDB inlining when UNIV_DEBUG is defined. The
      inlining is now solely controlled by the preprocessor symbol
      UNIV_MUST_NOT_INLINE and by any compiler options.
      
      mtr_memo_contains(): Add an explicit type conversion from void*, so
      that the function can be compiled by a C++ compiler. Previously, this
      function was never seen by the C++ compiler, because it is only
      present in UNIV_DEBUG builds and InnoDB inlining used to be disabled.
      
      buf_flush_validate_skip(): A wrapper that skips most calls of
      buf_flush_validate_low(). Invoked by debug assertions in
      buf_flush_insert_into_flush_list() and buf_flush_remove().
      
      fil_validate_skip(): A wrapper that skips most calls of
      fil_validate(). Invoked by debug assertions in fil_io() and fil_io_wait().
      
      os_aio_validate_skip(): A wrapper that skips most calls of
      os_aio_validate(). Invoked by debug assertions in
      os_aio_func(), os_aio_windows_handle() and os_aio_simulated_handle.
      
      os_get_os_version(): Only include this function if __WIN__ is defined.
      
      sync_array_deadlock_step(): Slight optimizations. This function is a
      major CPU consumer in UNIV_SYNC_DEBUG builds.
      d6bac7db
    • Marko Mäkelä's avatar
      Fix a compilation error that was introduced in the Bug #55222 fix · 2a4aca3e
      Marko Mäkelä authored
      (bzr revision id kevin.lewis@oracle.com-20101130182552-hfydggaeeys3tjqx).
      2a4aca3e
    • Marko Mäkelä's avatar
      b92f2d29
    • Marko Mäkelä's avatar
      Bug#58623: Bogus debug assertion failure in i_s_locks_row_validate() · 469a8112
      Marko Mäkelä authored
      This bogus assertion was introduced in the fix of Bug #57802:
      Empty ASSERTION parameter passed to the HASH_SEARCH macro.
      469a8112
    • Marc Alff's avatar
      Bug#58621 perfschema.dml_ews_by_thread_by_event_name test failure · b1f25ee9
      Marc Alff authored
      This fix affects the test suite only.
      
      Before this fix, performance schema tests dml_*.test could
      fail with spurious failure, depending on the table content.
      
      This fix simplifies the SELECT tests in the dml_*.test scripts,
      to only verify that the SELECT operation passed the security checks
      and succeeded, which was the original intent of the test.
      
      Usage of 
        --replace_column 1 # 2 # 3 # 4 # ...
      to discard the test output was replaced by a simpler and more maintainable 
        --disable_result_log
      which also work for empty tables.
      b1f25ee9
    • Nirbhay Choubey's avatar
      Merging from mysql-5.1-bugteam · 45e17739
      Nirbhay Choubey authored
      45e17739
    • Nirbhay Choubey's avatar
      Additional fix for bug#54899 · 2d81ad5b
      Nirbhay Choubey authored
      Fixing the testcase to use the database name
      as connected_db instead of 'test' database.
      
      mysql-test/r/mysql.result:
        Additional fix in the test for bug#54899.
      mysql-test/t/mysql.test:
        Additional fix in the test for bug#54899.
      2d81ad5b