1. 27 Oct, 2010 3 commits
    • Marko Mäkelä's avatar
      Bug #57707 InnoDB buf_page_t size has doubled on 32-bit systems · 9c168f32
      Marko Mäkelä authored
      buf_page_t: Remove the buf_pool pointer. Add buf_pool_index:6 next to
      buf_fix_count:19 (it was buf_fix_count:25). This will limit the number
      of concurrent transactions to somewhere around 524,288.
      
      buf_pool_index(buf_pool): A new function to determine the index of a
      buffer pool in buf_pool_ptr[].
      
      buf_pool_ptr: Make this a dynamically allocated array instead of an
      array of pointers. Allocate the array in buf_pool_init() and free in
      buf_pool_free().
      
      buf_pool_free_instance(): No longer free the buf_pool object, as it is
      allocated from a big array.
      
      buf_pool_from_bpage(), buf_pool_from_block(): Move the definitions to
      the beginning of the files, because some compilers have (had) problems
      with forward definitions of inline functions. Calculate the buffer
      pool from buf_pool_index.
      
      buf_pool_from_array(): Add debug assertions for input validation.
      9c168f32
    • Marko Mäkelä's avatar
      Bug #57730 Clean up references to InnoDB Plugin · 548289ee
      Marko Mäkelä authored
      CMakeLists.txt: Remove the checks for mysql_storage_engine.cmake
      and MYSQL_VERSION_ID.
      
      ha_innodb.cc, ha_innodb.h: Remove the checks for MYSQL_VERSION_ID.
      548289ee
    • Inaam Rana's avatar
      b87f59b2
  2. 26 Oct, 2010 4 commits
    • Inaam Rana's avatar
      Bug #57611 ibdata file and continuous growing undo logs · b91f6c72
      Inaam Rana authored
        rb://498
        
        Fix handling of update_undo_logs at trx commit. Previously, when
        rseg->update_undo_list grows beyond 500 the update_undo_logs were
        marked with state TRX_UNDO_TO_FREE which should have been
        TRX_UNDO_TO_PURGE.
        In 5.5 we don't need the heuristic as we support multiple rollback
        segments.
        
        Approved by: Sunny Bains
      b91f6c72
    • Inaam Rana's avatar
      a91cb6a3
    • Inaam Rana's avatar
      Bug #57611 ibdata file and continuous growing undo logs · cb64e660
      Inaam Rana authored
      rb://498
      
      Fix handling of update_undo_logs at trx commit. Previously, when
      rseg->update_undo_list grows beyond 500 the update_undo_logs were
      marked with state TRX_UNDO_TO_FREE which should have been
      TRX_UNDO_TO_PURGE.
      
      Approved by: Sunny Bains
      cb64e660
    • kevin.lewis@oracle.com's avatar
      Bug#57720 - Windows Vista and possibly Windows 7 can return ERROR_TIMEOUT... · 2dad3c94
      kevin.lewis@oracle.com authored
      Bug#57720 - Windows Vista and possibly Windows 7 can return ERROR_TIMEOUT instead of WAIT_TIMEOUT from calls to SleepConditionVariableCS() which is used in os0sync.c; os_cond_wait_timeout() where it is mapped to sleep_condition_variable().   
      
      Consider ERROR_TIMEOUT to be a timeout just like WAIT_TIMEOUT.  
      
      In addition, test for EINTR as a possible return value from pthread_cond_timeout() in the posix section of os_cond_wait_timeout(), even though it is not supposed to be returned, but just to be safe.
      2dad3c94
  3. 25 Oct, 2010 2 commits
  4. 22 Oct, 2010 1 commit
  5. 21 Oct, 2010 7 commits
  6. 20 Oct, 2010 4 commits
  7. 19 Oct, 2010 5 commits
    • Vasil Dimov's avatar
      Fix Bug#53916 storage/innodb_plugin does not compile on NetBSD/sparc64 · e9eeebc5
      Vasil Dimov authored
      Just check for all the functions that we are going to use, not a subset
      of them.
      
      Reviewed by:	Davi (via IRC)
      e9eeebc5
    • Marko Mäkelä's avatar
      ibuf_set_del_mark(): Do not complain about already delete-marked records. · e8a709a6
      Marko Mäkelä authored
      According to a comment in row_upd_sec_index_entry(), it is a
      legitimate situation that can be caused by a lock wait.
      e8a709a6
    • Marko Mäkelä's avatar
      Merge Bug #56680 from mysql-5.1. · e85e1206
      Marko Mäkelä authored
      Additional fixes in 5.5:
      
      ibuf_set_del_mark(): Add diagnostics when setting a buffered delete-mark fails.
      
      ibuf_delete(): Correct a misleading comment about non-found records.
      
      rec_print(): Add a const qualifier to the index parameter.
      
      Bug #56680 wrong InnoDB results from a case-insensitive covering index
      
      row_search_for_mysql(): When a secondary index record might not be
      visible in the current transaction's read view and we consult the
      clustered index and optionally some undo log records, return the
      relevant columns of the clustered index record to MySQL instead of the
      secondary index record.
      
      ibuf_insert_to_index_page_low(): New function, refactored from
      ibuf_insert_to_index_page().
      
      ibuf_insert_to_index_page(): When we are inserting a record in place
      of a delete-marked record and some fields of the record differ, update
      that record just like row_ins_sec_index_entry_by_modify() would do.
      
      btr_cur_update_alloc_zip(): Make the function public.
      
      mysql_row_templ_t: Add clust_rec_field_no.
      
      row_sel_store_mysql_rec(), row_sel_push_cache_row_for_mysql(): Add the
      flag rec_clust, for returning data at clust_rec_field_no instead of
      rec_field_no. Resurrect the debug assertion that the record not be
      marked for deletion. (Bug #55626)
      
      [UNIV_DEBUG || UNIV_IBUF_DEBUG] ibuf_debug, buf_page_get_gen(),
      buf_flush_page_try():
      Implement innodb_change_buffering_debug=1 for evicting pages from the
      buffer pool, so that change buffering will be attempted more
      frequently.
      e85e1206
    • Marko Mäkelä's avatar
      Bug #56680 wrong InnoDB results from a case-insensitive covering index · b568369d
      Marko Mäkelä authored
      row_search_for_mysql(): When a secondary index record might not be
      visible in the current transaction's read view and we consult the
      clustered index and optionally some undo log records, return the
      relevant columns of the clustered index record to MySQL instead of the
      secondary index record.
      
      ibuf_insert_to_index_page_low(): New function, refactored from
      ibuf_insert_to_index_page().
      
      ibuf_insert_to_index_page(): When we are inserting a record in place
      of a delete-marked record and some fields of the record differ, update
      that record just like row_ins_sec_index_entry_by_modify() would do.
      
      btr_cur_update_alloc_zip(): Make the function public.
      
      mysql_row_templ_t: Add clust_rec_field_no.
      
      row_sel_store_mysql_rec(), row_sel_push_cache_row_for_mysql(): Add the
      flag rec_clust, for returning data at clust_rec_field_no instead of
      rec_field_no. Resurrect the debug assertion that the record not be
      marked for deletion. (Bug #55626)
      
      [UNIV_DEBUG || UNIV_IBUF_DEBUG] ibuf_debug, buf_page_get_gen(),
      buf_flush_page_try():
      Implement innodb_change_buffering_debug=1 for evicting pages from the
      buffer pool, so that change buffering will be attempted more
      frequently.
      b568369d
    • Marko Mäkelä's avatar
      Bug #56680 wrong InnoDB results from a case-insensitive covering index · f2d39c9e
      Marko Mäkelä authored
      row_search_for_mysql(): When a secondary index record might not be
      visible in the current transaction's read view and we consult the
      clustered index and optionally some undo log records, return the
      relevant columns of the clustered index record to MySQL instead of the
      secondary index record.
      
      REC_INFO_DELETED_FLAG: Move the definition from rem0rec.ic to rem0rec.h.
      
      ibuf_insert_to_index_page_low(): New function, refactored from
      ibuf_insert_to_index_page().
      
      ibuf_insert_to_index_page(): When we are inserting a record in place
      of a delete-marked record and some fields of the record differ, update
      that record just like row_ins_sec_index_entry_by_modify() would do.
      
      mysql_row_templ_t: Add clust_rec_field_no.
      
      row_sel_store_mysql_rec(), row_sel_push_cache_row_for_mysql(): Add the
      flag rec_clust, for returning data at clust_rec_field_no instead of
      rec_field_no. Resurrect the debug assertion that the record not be
      marked for deletion. (Bug #55626)
      
      buf_LRU_free_block(): Refactored from
      buf_LRU_search_and_free_block(). This is needed for the
      innodb_change_buffering_debug diagnostics.
      
      [UNIV_DEBUG || UNIV_IBUF_DEBUG] ibuf_debug, buf_page_get_gen(),
      buf_flush_page_try():
      Implement innodb_change_buffering_debug=1 for evicting pages from the
      buffer pool, so that change buffering will be attempted more
      frequently.
      f2d39c9e
  8. 18 Oct, 2010 4 commits
    • Vasil Dimov's avatar
      Merge mysql-5.1-innodb -> mysql-5.5-innodb · 75063440
      Vasil Dimov authored
      75063440
    • Vasil Dimov's avatar
      Fix Bug#57252 disabling innobase_stats_on_metadata disables ANALYZE · 50c69f93
      Vasil Dimov authored
      This is a merge from 5.1/builtin to 5.1/plugin of:
      
        --------------
        revision-id: vasil.dimov@oracle.com-20101018104811-nwqhg9vav17kl5s1
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        timestamp: Mon 2010-10-18 13:48:11 +0300
        message:
          Fix Bug#57252 disabling innobase_stats_on_metadata disables ANALYZE
          
          In order to fix this bug we need to distinguish whether ha_innobase::info()
          has been called from ::analyze() or not. Rename ::info() to ::info_low()
          and add a boolean parameter that tells whether the call is from ::analyze()
          or not. Create a new simple ::info() that just calls
          ::info_low(false => not called from analyze). From ::analyze() instead of
          ::info() call ::info_low(true => called from analyze).
          
          Approved by:	Jimmy (rb://487)
        --------------
      50c69f93
    • Vasil Dimov's avatar
      Fix Bug#57252 disabling innobase_stats_on_metadata disables ANALYZE · 33496519
      Vasil Dimov authored
      In order to fix this bug we need to distinguish whether ha_innobase::info()
      has been called from ::analyze() or not. Rename ::info() to ::info_low()
      and add a boolean parameter that tells whether the call is from ::analyze()
      or not. Create a new simple ::info() that just calls
      ::info_low(false => not called from analyze). From ::analyze() instead of
      ::info() call ::info_low(true => called from analyze).
      
      Approved by:	Jimmy (rb://487)
      33496519
    • Sunny Bains's avatar
      Fix bug encountered during testing on BSD. In the original fix for bug# 55681 · 626b2d6a
      Sunny Bains authored
      the check for overflow was wrong and the OS_SYNC_INFINITE_TIME was handled
      incorrectly.
        
      Approved by Jimmy Yang (IM)
      626b2d6a
  9. 15 Oct, 2010 7 commits
  10. 14 Oct, 2010 3 commits
    • Jimmy Yang's avatar
      4bd55cd6
    • Jimmy Yang's avatar
      0fb4d497
    • Alexander Nozdrin's avatar
      A patch for Bug#48874 (Test "is_triggers" fails because of wrong charset info). · 69693c26
      Alexander Nozdrin authored
      The thing is that the following attributes are fixed (remembered) when a trigger
      is created:
        - character_set_client
        - character_set_results
        - collation_connection
      
      There are two triggers created in mysql-test/include/mtr_warnings.sql.
      They were created using "current default" character set / collation.
      is_triggers.test shows definition of these triggers including recorded
      character set information.
      
      The problem was that if "current default" changed, the recorded character
      set information was not accurate.
      
      There might be two ways to fix that:
        a) update is_triggers.test so that it does not put character-set information
           into result-file;
        b) update mtr_warnings.sql so that the triggers are created using
           hard-coded character sets.
      
      This patch implements option b).
      69693c26