1. 11 Nov, 2010 5 commits
  2. 10 Nov, 2010 1 commit
  3. 08 Nov, 2010 3 commits
  4. 07 Nov, 2010 1 commit
    • Dmitry Shulga's avatar
      A fix and a test case for Bug#47924 -main.log_tables times out · 9c45600d
      Dmitry Shulga authored
      sporadically.
      
      The cause of the sporadic time out was a leaking protection
      against the global read lock, taken by the RENAME statement,
      and not released in case of an error occurred during RENAME.
      The leaking protection counter would lead to the value of
      protect_against_global_read never dropping to 0.
      Consequently FLUSH TABLES in all connections, including the
      one that leaked the protection, could not proceed.
       
      The fix is to ensure that all branchesin RENAME code properly
      release GRL protection.
      9c45600d
  5. 05 Nov, 2010 1 commit
  6. 04 Nov, 2010 1 commit
  7. 03 Nov, 2010 9 commits
  8. 02 Nov, 2010 6 commits
    • kevin.lewis@oracle.com's avatar
      In this patch, existing tests innodb_bug54679.test and innodb_bug56632.test are · 58537921
      kevin.lewis@oracle.com authored
      removed and replaced by the comprehensive innodb-create-options.test.
      It uses the rules listed in the comments at the top of that test.
        
      This patch introduces these differences from previous behavior;
      1)  KEY_BLOCK_SIZE=0 is allowed by Innodb in both strict and non-strict mode
      with no errors or warnings. It was previously used by the server to set 
      KEY_BLOCK_SIZE to undefined.  (Bug#56628)
      2)  An explicit valid non-DEFAULT ROW_FORMAT always takes priority over a
      valid KEY_BLOCK_SIZE. (bug#56632)
      3)  Automatic use of COMPRESSED row format is only done if the ROW_FORMAT
      is DEFAULT or unspecified.
      4)  ROW_FORMAT=FIXED is prevented in strict mode.
      
      This patch also includes various formatting changes for consistency with
      InnoDB coding standards.
      
      Related Bugs
      Bug#54679: ALTER TABLE causes compressed row_format to revert to compact
      Bug#56628: ALTER TABLE .. KEY_BLOCK_SIZE=0 produces untrue warning or unnecessary error
      Bug#56632: ALTER TABLE implicitly changes ROW_FORMAT to COMPRESSED
      58537921
    • Vasil Dimov's avatar
      Fix Bug#53046 dict_update_statistics_low can still be run concurrently on same table · a4faffd1
      Vasil Dimov authored
      Replace the array of mutexes that used to protect
      dict_index_t::stat_n_diff_key_vals[] with an array of rw locks that protects
      all the stats related members in dict_table_t and all of its indexes.
      
      Approved by:	Jimmy (rb://503)
      a4faffd1
    • Georgi Kodinov's avatar
      Bug #51208: Extra string allocation from thd->mem_root · 4e78acd3
      Georgi Kodinov authored
      in sql_show.cc, find_files()
      
      Removed the extra allocation.
      4e78acd3
    • Vasil Dimov's avatar
      Increment InnoDB Plugin version to 1.0.14. · 63d56ff4
      Vasil Dimov authored
      InnoDB Plugin 1.0.13 has been released with MySQL 5.1.52.
      63d56ff4
    • Marko Mäkelä's avatar
      Bug#57799 READ UNCOMMITTED access failure of off-page DYNAMIC or COMPRESSED · 3dcbf1e2
      Marko Mäkelä authored
      columns again
      
      This is follow-up to Bug #54358. Not all occurrences of the bug were fixed.
      We need to check all calls to btr_copy_externally_stored_field_prefix_low()
      and do the right thing when the pointer to the off-page column is null
      (full of zero bytes).
      
      It turns out that only the call to btr_copy_externally_stored_field_prefix()
      in row_sel_sec_rec_is_for_blob() needs to be changed.
      
      For fetching complete off-page columns rather than prefixes, the function
      btr_rec_copy_externally_stored_field() already checks if the pointer
      is null (all-zero).  Two of its callers (row_merge_copy_blobs() and
      row_sel_fetch_columns()) are never executed as READ COMMITTED and can
      rightfully assert that the fetch succeeded.  The third caller,
      row_sel_store_mysql_rec(), already does the right thing.
      
      The calls in row_upd_ext_fetch() and trx_undo_page_fetch_ext() must
      expect that the off-page column exists. Update and rollback are
      locking operations, never READ UNCOMMITTED.
      3dcbf1e2
    • Marko Mäkelä's avatar
      785d06fe
  9. 01 Nov, 2010 1 commit
  10. 31 Oct, 2010 1 commit
    • Gleb Shchepa's avatar
      Bug #52160: crash and inconsistent results when grouping · 0389c6aa
      Gleb Shchepa authored
                  by a function and column
      
      The bugreport reveals two different bugs about grouping
      on a function:
      
      1) grouping by the TIME_TO_SEC function result caused
         a server crash or wrong results and
      2) grouping by the function returning a blob caused
         an unexpected "Duplicate entry" error and wrong
         result.
      
      Details for the 1st bug:
      
      TIME_TO_SEC() returns NULL if its argument is invalid (empty
      string for example). Thus its nullability depends not only
      on the nullability of its arguments but also on their values.
      Fixed by (overoptimistically) setting TIME_TO_SEC() to be
      nullable despite the nullability of its arguments.
      
      Details for the 2nd bug:
      
      The server is unable to create indices on blobs without
      explicit blob key part length. However, this fact was
      ignored for blob function result fields of GROUP BY
      intermediate tables.
      Fixed by disabling GROUP BY index creation for blob
      function result fields like regular blob fields.
      0389c6aa
  11. 29 Oct, 2010 1 commit
  12. 28 Oct, 2010 2 commits
    • Calvin Sun's avatar
      Bug#52062: Compiler warning in os0file.c on windows 64-bit · bc921dd7
      Calvin Sun authored
      On Windows, the parameter for number of bytes passed into WriteFile()
      and ReadFile() is DWORD. Casting is needed to silence the warning on
      64-bit Windows.
      
      Also, adding several asserts to ensure the variable for number of bytes
      is no more than 32 bits, even on 64-bit Windows.
      
      This is for InnoDB Plugin.
      
      rb://415
      Approved by: Inaam
      bc921dd7
    • Calvin Sun's avatar
      Bug#52062: Compiler warning in os0file.c on windows 64-bit · 6cc24b9a
      Calvin Sun authored
      On Windows, the parameter for number of bytes passed into WriteFile()
      and ReadFile() is DWORD. Casting is needed to silence the warning on
      64-bit Windows.
      
      Also, adding several asserts to ensure the variable for number of bytes
      is no more than 32 bits, even on 64-bit Windows.
      
      This is for built-in InnoDB.
      
      rb://415
      Approved by: Inaam
      6cc24b9a
  13. 27 Oct, 2010 2 commits
  14. 26 Oct, 2010 1 commit
  15. 25 Oct, 2010 2 commits
  16. 23 Oct, 2010 1 commit
    • 's avatar
      Bug#27606 GRANT statement should be replicated with DEFINER information · 180e74bd
      authored
      "Grantor" columns' data is lost when replicating mysql.tables_priv.
      Slave SQL thread used its default user ''@'' as the grantor of GRANT|REVOKE
      statements executing on it.
      
      In this patch, current user is put in query log event for all GRANT and REVOKE
      statement, SQL thread uses the user in query log event as grantor.
      180e74bd
  17. 21 Oct, 2010 2 commits
    • Bjorn Munch's avatar
      Follow-up to Bug #55582 which allows checking strings in if · bad7fa7c
      Bjorn Munch authored
        Simplified cases where a select was used to compare variable against ''
      bad7fa7c
    • 's avatar
      Bug#55478 Row events wrongly apply on the temporary table of the same name · aa235b1b
      authored
      Rows events were applied wrongly on the temporary table with the same name.
      But rows events are generated only for base tables. As temporary
      table's data never be binlogged on row mode. Normally, base table of the
      same name cannot be updated if a temporary table has the same name.
      But there are two cases which can generate rows events on 
      the base table of same name.
            
      Case1: 'CREATE TABLE ... SELECT' statement.
      In mixed format, it will generate rows events if it is unsafe.
            
      Case2: Drop a transactional temporary table in a transaction
             (happens only on 5.5+).
      BEGIN;
      DROP TEMPORARY TABLE t1;       # t1 is a InnoDB table
      INSERT INTO t1 VALUES(rand()); # t1 is a MyISAM table
      COMMIT;
      'DROP TEMPORARY TABLE' will be put in the transaction cache and
      binlogged after the rows events generated by the 'INSERT' statement.
            
      After this patch, slave opens only base table when applying a rows event.
      aa235b1b