1. 03 Mar, 2010 1 commit
    • marko's avatar
      branches/zip: Disallow duplicate index name when creating an index. · 9319ba1e
      marko authored
      This should fix Mantis Issue #461.
      
      innodb.test, innodb.result, innodb-index.test, innodb-index.result:
      Adjust the test result and mention that the introduced restriction
      has been reported as MySQL Bug #51451.
      
      innobase_check_index_keys(): Add a parameter for the InnoDB table and
      check that no duplicate index name is added.  Report errors by
      my_error() instead of sql_print_error().
      
      rb://260 approved by Sunny Bains
      9319ba1e
  2. 02 Mar, 2010 1 commit
    • vasil's avatar
      branches/zip: · 0ad5bf27
      vasil authored
      Add a NOTE to the comment of btr_node_ptr_get_child_page_no()
      to prevent mysterious bugs.
      0ad5bf27
  3. 01 Mar, 2010 1 commit
  4. 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
  5. 22 Feb, 2010 1 commit
  6. 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
  7. 18 Feb, 2010 1 commit
  8. 17 Feb, 2010 5 commits
  9. 16 Feb, 2010 6 commits
  10. 12 Feb, 2010 1 commit
    • inaam's avatar
      branches/zip · bc36c8eb
      inaam authored
      ChangeLog entry for r6674.
      bc36c8eb
  11. 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
  12. 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
  13. 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
  14. 08 Feb, 2010 3 commits
  15. 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
  16. 03 Feb, 2010 1 commit
    • 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