1. 24 Feb, 2010 1 commit
    • marko's avatar
      branches/zip: Allocate the merge sort buffers from a heap, not stack. · 90b496f6
      marko authored
      The merge sort can use up to 48KiB of buffers when merging blocks.
      That can cause a stack overflow, especially on 64-bit systems when not
      building with inlined functions.  This was reported as Issue #462.
      
      row_merge_dup_report(): Allocate buf and offsets from a heap.
      
      row_merge_heap_create(): Allocate space for buf[3] too. Fix bogus
      sizeof arithmetics that happened to work, because
      sizeof(ulint)==sizeof(void*).
      
      row_merge_blocks(), row_merge_blocks_copy(): Allocate buf[3] from heap.
      
      row_merge_insert_index_tuples(): Allocate buf from graph_heap.
      
      rb://258 approved and tested by Sunny Bains
      90b496f6
  2. 22 Feb, 2010 1 commit
  3. 20 Feb, 2010 1 commit
    • vasil's avatar
      Non-functional change: update copyright year to 2010 of the files · 6c3ab906
      vasil authored
      that have been modified after 2010-01-01 according to svn.
      
      for f in $(svn log -v -r{2010-01-01}:HEAD |grep "^   M " |cut -b 16- |sort -u) ; do sed -i "" -E 's/(Copyright \(c\) [0-9]{4},) [0-9]{4}, (.*Innobase Oy.+All Rights Reserved)/\1 2010, \2/' $f ; done
      6c3ab906
  4. 18 Feb, 2010 1 commit
  5. 17 Feb, 2010 5 commits
  6. 16 Feb, 2010 6 commits
  7. 12 Feb, 2010 1 commit
    • inaam's avatar
      branches/zip · bc36c8eb
      inaam authored
      ChangeLog entry for r6674.
      bc36c8eb
  8. 11 Feb, 2010 5 commits
    • marko's avatar
      462933b6
    • inaam's avatar
      branches/zip bug# 49535 · ffb43707
      inaam authored
      This is a backport of r4924.
      mem_heap_get_size() scans all allocated blocks to calculate the total
      size of the heap. This patch introduces a new, total_size, field in
      mem_block_info_struct. This field is valid only for base block 
      (i.e.: the first block allocated for the heap) and is set to
      ULINT_UNDEFINED in other blocks.
      This considerably improves the performance of redo scan during recovery.
      
      rb://108 issue#216
      
      Approved by: Heikki
      
      ------------------------------------------------------------------------
      ffb43707
    • marko's avatar
      branches/zip: Relax a debug assertion about a missing BLOB. (Issue #452) · 7e07ce47
      marko authored
      When rolling back an incomplete transaction in purge, tolerate missing
      BLOBs also in update undo, when undoing an INSERT by updating a delete-marked
      record, and the delete-marked record is no longer needed.
      Previously, we only tolerated missing BLOBs in insert undo.
      This merely fixes a debug assertion; the code performed correctly
      without UNIV_DEBUG.
      
      rb://249 approved by Sunny Bains.
      7e07ce47
    • marko's avatar
      branches/zip: Introduce thr_is_recv(). · e8963afa
      marko authored
      e8963afa
    • marko's avatar
      branches/zip: Clarify the rollback of INSERT by UPDATE of delete-marked rec. · 62982447
      marko authored
      row_undo_mod_remove_clust_low(): Augment the function comment.
      
      row_undo_mod_remove_clust_low(), row_undo_mod_del_mark_or_remove_sec_low(),
      row_undo_mod_del_mark_or_remove_sec(), row_undo_mod_upd_del_sec():
      Add ut_ad(node->rec_type == TRX_UNDO_UPD_DEL_REC);
      62982447
  9. 10 Feb, 2010 4 commits
    • marko's avatar
      e67b19aa
    • marko's avatar
      branches/zip: Clean up after r6559. Now that · 66e7b763
      marko authored
      btr_pcur_open_with_no_init() is a macro, do not mix preprocessor
      directives in the macro invocation, because it is implementation-defined
      whether that is going to work.
      66e7b763
    • marko's avatar
      branches/zip: Merge revisions 6538:6613 from branches/5.1: · b46217f5
      marko authored
        ------------------------------------------------------------------------
        r6545 | jyang | 2010-02-03 03:57:32 +0200 (Wed, 03 Feb 2010) | 8 lines
        Changed paths:
           M /branches/5.1/lock/lock0lock.c
      
        branches/5.1: Fix bug #49001, "SHOW INNODB STATUS deadlock info
        incorrect when deadlock detection aborts". Print the correct
        lock owner when recursive function lock_deadlock_recursive()
        exceeds its maximum depth LOCK_MAX_DEPTH_IN_DEADLOCK_CHECK.
      
        rb://217, approved by Marko.
        ------------------------------------------------------------------------
        r6613 | inaam | 2010-02-09 20:23:09 +0200 (Tue, 09 Feb 2010) | 11 lines
        Changed paths:
           M /branches/5.1/buf/buf0buf.c
           M /branches/5.1/buf/buf0rea.c
           M /branches/5.1/include/buf0rea.h
      
        branches/5.1: Fix Bug #38901
        InnoDB logs error repeatedly when trying to load page into buffer pool
      
        In buf_page_get_gen() if we are unable to read a page (because of
        corruption or some other reason) we keep on retrying. This fills up
        error log with millions of entries in no time and we'd eventually run
        out of disk space. This patch limits the number of attempts that we
        make (currently set to 100) and after that we abort with a message.
      
        rb://241 Approved by: Heikki
        ------------------------------------------------------------------------
      b46217f5
    • marko's avatar
      branches/zip: Document r6614 in ChangeLog. · c0670428
      marko authored
      c0670428
  10. 09 Feb, 2010 6 commits
    • inaam's avatar
      branches/plugin rb://242 · e80abf1a
      inaam authored
      Let the master thread sleep if the amount of work to be done is
      calibrated as taking less than a second.
      
      Approved by: Heikki
      e80abf1a
    • marko's avatar
      branches/zip: recv_recovery_rollback_active(): · d00455cb
      marko authored
      Drop the temporary tables and indexes after enabling sync order checks.
      This should not make any difference. This could have been done in r6611.
      d00455cb
    • marko's avatar
      branches/zip: Roll back dictionary transaction(s) before scanning *.ibd files · ca0d3c83
      marko authored
      innobase_start_or_create_for_mysql(): Roll back data dictionary
      transactions before scanning the *.ibd files. Then, data dictionary
      records can be loaded to the cache before opening the *.ibd files.
      
      recv_recovery_rollback_active(): Refactored from
      recv_recovery_from_checkpoint_finish().
      
      rb://235, committing without review, because this is needed for
      TablespaceDictionary.
      ca0d3c83
    • marko's avatar
      branches/zip: When dropping temporary indexes and tables at startup, · e106d9d5
      marko authored
      first load them to the data dictionary cache and use the normal
      routines for dropping tables or indexes.  This should reduce the
      risk of bugs and also make the code compatible with the upcoming
      TablespaceDictionary implementation.
      
      DICT_SYS_INDEXES_NAME_FIELD: The clustered index position of SYS_INDEXES.NAME.
      
      row_merge_drop_temp_indexes(): Scan SYS_INDEXES for tables containing
      temporary indexes, and load the tables as needed. Invoke
      row_merge_drop_index() to drop the indexes.
      
      row_mysql_drop_temp_tables(): Scan SYS_TABLES for temporary tables,
      load them with dict_load_table() and drop them with
      row_drop_table_for_mysql().
      
      rb://251, not yet reviewed
      e106d9d5
    • marko's avatar
      6a6a8582
    • marko's avatar
      0fdfc28d
  11. 08 Feb, 2010 3 commits
  12. 04 Feb, 2010 2 commits
    • sunny's avatar
      branches/zip: Remove the additional check introduced in r6534 which tries · 9e5e35eb
      sunny authored
      to check if the joining transaction has any other transactions waiting on
      its locks. This optimization results in excessive deadlocks when running
      Sysbench with a large number of threads. The function seems to return
      FALSE positives.
      
      rb://250
      9e5e35eb
    • marko's avatar
      branches/zip: Pass the file name and line number of the caller of the · f82647ab
      marko authored
      b-tree cursor functions to the buffer pool requests, in order to make
      the latch diagnostics more accurate.
      
      buf_page_optimistic_get_func(): Renamed to buf_page_optimistic_get().
      
      btr_page_get_father_node_ptr(), btr_insert_on_non_leaf_level(),
      btr_pcur_open(), btr_pcur_open_with_no_init(), btr_pcur_open_on_user_rec(),
      btr_pcur_open_at_rnd_pos(), btr_pcur_restore_position(),
      btr_cur_open_at_index_side(), btr_cur_open_at_rnd_pos():
      Rename the function to _func and add the parameters file, line.
      Define wrapper macros with __FILE__, __LINE__.
      
      btr_cur_search_to_nth_level(): Add the parameters file, line.
      f82647ab
  13. 03 Feb, 2010 3 commits
    • marko's avatar
      branches/zip: buf_LRU_invalidate_tablespace(): Ensure that prev_bpage · 8a5da89f
      marko authored
      is not relocated when freeing a compressed block.  This avoids the
      costly rescan of the LRU list.  (Bug #35077, Issue #449)
      
      At most one buffer-fix will be active at a time, affecting two blocks:
      the buf_page_t and the compressed page frame. This should not block
      the memory defragmentation in buf0buddy.c too much.  In fact, it may
      avoid unnecessary copying if also prev_bpage belongs to the tablespace
      that is being invalidated.
      
      rb://240
      8a5da89f
    • marko's avatar
      branches/zip: Clean up CHECK TABLE error handling. (Issue #220) · 5c4fe259
      marko authored
      ha_innobase::change_active_index(): Clean up code formatting.
      
      ha_innobase::check(): Incorporate the code from
      row_check_table_for_mysql().  Report errors to the client connection
      instead of writing them to the error log.
      
      row_check_table_for_mysql(): Remove.
      
      row_check_index_for_mysql(): Renamed from row_scan_and_check_index().
      Let the caller initialize prebuilt, and assume that the index is usable.
      
      rb://178 approved by Sunny Bains
      5c4fe259
    • jyang's avatar
      branches/zip: Relax assertion on the number of index defined · 0829a33c
      jyang authored
      in InnoDB must be comparable with that of MySQL to tolerate
      possible dictionary inconsistency. Fix Mantis issue #455,
      "UNIV_DEBUG+ assert ha_innodb.cc:3152 ib_num_index >= 
      mysql_num_index".
      
      rb://248 Approved by Marko.
       
      0829a33c
  14. 01 Feb, 2010 1 commit