Commit graph

62599 commits

Author SHA1 Message Date
Sergey Vojtovich
7197cab3c7 Applying InnoDB snapshot
Detailed revision comments:

r6781 | marko | 2010-03-09 09:41:08 +0200 (Tue, 09 Mar 2010) | 4 lines
branches/zip: Make SHOW ENGINE INNODB MUTEX display SUM(os_waits)
for block mutexes and blocks.

Designed by Michael and Marko. rb://188, Issue #358
2010-04-01 16:06:59 +04:00
Sergey Vojtovich
f37a632954 Applying InnoDB snapshot
Detailed revision comments:

r6779 | marko | 2010-03-08 14:35:42 +0200 (Mon, 08 Mar 2010) | 6 lines
branches/zip: Fix IMPORT TABLESPACE of compressed tables.  Previously,
a wrong parameter was passed to buf_flush_init_for_writing().

fil_reset_too_high_lsns(): Set up page_zip and use it if needed.

rb://264, Issue #352
2010-04-01 16:06:36 +04:00
Sergey Vojtovich
191c9d269f Applying InnoDB snapshot
Detailed revision comments:

r6777 | marko | 2010-03-04 13:01:25 +0200 (Thu, 04 Mar 2010) | 2 lines
branches/zip: trx_undo_update_rec_get_update(): Silence a bogus GCC warning
about a possibly uninitialized variable.
2010-04-01 16:06:16 +04:00
Sergey Vojtovich
3b3686b543 Applying InnoDB snapshot
Detailed revision comments:

r6773 | marko | 2010-03-03 15:31:54 +0200 (Wed, 03 Mar 2010) | 2 lines
branches/zip: row_raw_format(): Silence a GCC 4.4.2 warning
of possibly uninitialized variable format_in_hex.
2010-04-01 16:05:52 +04:00
Sergey Vojtovich
dd45441217 Applying InnoDB snapshot
Detailed revision comments:

r6771 | marko | 2010-03-03 14:52:43 +0200 (Wed, 03 Mar 2010) | 1 line
Document r6770.
2010-04-01 16:05:25 +04:00
Sergey Vojtovich
385df07603 Applying InnoDB snapshot
Detailed revision comments:

r6770 | marko | 2010-03-03 12:52:55 +0200 (Wed, 03 Mar 2010) | 12 lines
branches/zip: Disallow duplicate index name when creating an index.
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
2010-04-01 16:04:43 +04:00
Sergey Vojtovich
c65a7413c8 Applying InnoDB snapshot
Detailed revision comments:

r6768 | vasil | 2010-03-02 18:20:48 +0200 (Tue, 02 Mar 2010) | 5 lines
branches/zip:

Add a NOTE to the comment of btr_node_ptr_get_child_page_no()
to prevent mysterious bugs.
2010-04-01 16:02:34 +04:00
Sergey Vojtovich
c8be9b8f98 Applying InnoDB snashot, fixes BUG#51587.
Detailed revision comments:

r6767 | calvin | 2010-03-01 18:16:10 +0200 (Mon, 01 Mar 2010) | 3 lines
branches/zip: fix bug#51587
Non-functional change.
2010-04-01 16:01:33 +04:00
Sergey Vojtovich
17f8a9f2ac Applying InnoDB snapshot
Detailed revision comments:

r6754 | marko | 2010-02-24 10:56:43 +0200 (Wed, 24 Feb 2010) | 17 lines
branches/zip: Allocate the merge sort buffers from a heap, not stack.

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
2010-04-01 16:01:10 +04:00
Sergey Vojtovich
236d0369c0 Applying InnoDB snapshot
Detailed revision comments:

r6750 | marko | 2010-02-22 08:57:23 +0200 (Mon, 22 Feb 2010) | 2 lines
branches/zip: row_fetch_store_uint4(): Remove unused function.
This was added to trunk in r435.
2010-04-01 16:00:18 +04:00
Sergey Vojtovich
44a0ff6c76 Applying InnoDB snapshot
Detailed revision comments:

r6749 | vasil | 2010-02-20 18:45:41 +0200 (Sat, 20 Feb 2010) | 5 lines
Non-functional change: update copyright year to 2010 of the files
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
2010-04-01 15:59:25 +04:00
Sergey Vojtovich
077d6f0639 Applying InnoDB snapshot
Detailed revision comments:

r6740 | sunny | 2010-02-18 13:44:31 +0200 (Thu, 18 Feb 2010) | 6 lines
branches/zip: Don't print the entire lock bit set if the block was not
found in the buffer pool. Only print the bits that are set and that
information is in the lock and not in the block.

See rb://256 approved by Marko.
2010-04-01 15:58:48 +04:00
Sergey Vojtovich
b5749212c1 Applying InnoDB snapshot
Detailed revision comments:

r6728 | marko | 2010-02-17 18:54:04 +0200 (Wed, 17 Feb 2010) | 3 lines
branches/zip: Remove UNIV_BASIC_LOG_DEBUG.
This fixes the FILE_FLUSH_LSN printouts mentioned in Issue #341.
Suggested by Heikki.
2010-04-01 15:58:26 +04:00
Sergey Vojtovich
4e26411a4a Applying InnoDB snapshot
Detailed revision comments:

r6727 | marko | 2010-02-17 18:50:20 +0200 (Wed, 17 Feb 2010) | 2 lines
branches/zip: fsp_init_file_page_low(): Declare the page uninitialized
for Valgrind.
2010-04-01 15:58:03 +04:00
Sergey Vojtovich
d9ab329e50 Applying InnoDB snapshot
Detailed revision comments:

r6726 | marko | 2010-02-17 18:49:21 +0200 (Wed, 17 Feb 2010) | 3 lines
branches/zip: FIL_PAGE_FILE_FLUSH_LSN: Note that the field is only valid
for the first page of each ibdata* file, not *.ibd files.
Suggested by Heikki, in connection with the LSN warning noted in Issue #341.
2010-04-01 15:57:40 +04:00
Sergey Vojtovich
f1b5d85328 Applying InnoDB snapshot, fixes BUG#50691.
Detailed revision comments:

r6724 | marko | 2010-02-17 15:52:05 +0200 (Wed, 17 Feb 2010) | 11 lines
branches/zip: Merge revisions 6613:6669 from branches/5.1:
  ------------------------------------------------------------------------
  r6669 | jyang | 2010-02-11 12:24:19 +0200 (Thu, 11 Feb 2010) | 7 lines

  branches/5.1: Fix bug #50691, AIX implementation of readdir_r
  causes InnoDB errors. readdir_r() returns an non-NULL value
  in the case of reaching the end of a directory. It should
  not be treated as an error return.

  rb://238 approved by Marko
  ------------------------------------------------------------------------
2010-04-01 15:57:04 +04:00
Sergey Vojtovich
6a2f4b4774 Applying InnoDB snapshot
Detailed revision comments:

r6723 | marko | 2010-02-17 11:48:34 +0200 (Wed, 17 Feb 2010) | 3 lines
branches/zip: lock_table_other_has_incompatible():
Return an incompatible lock or NULL instead of TRUE or FALSE.
Approved by Sunny over IM.
2010-04-01 15:56:38 +04:00
Sergey Vojtovich
09a8580b40 Applying InnoDB snapshot
Detailed revision comments:

r6718 | marko | 2010-02-16 15:06:16 +0200 (Tue, 16 Feb 2010) | 1 line
branches/zip: Fix a comment.
2010-04-01 15:56:02 +04:00
Sergey Vojtovich
f957ec3d67 Applying InnoDB snapshot
Detailed revision comments:

r6717 | marko | 2010-02-16 14:53:20 +0200 (Tue, 16 Feb 2010) | 2 lines
branches/zip: log_reserve_and_write_fast(): Correct a race condition
in UNIV_LOG_LSN_DEBUG.  This could have caused Issue #440.
2010-04-01 15:55:42 +04:00
Sergey Vojtovich
2eb1bb6bdd Applying InnoDB snapshot
Detailed revision comments:

r6715 | sunny | 2010-02-16 10:14:21 +0200 (Tue, 16 Feb 2010) | 1 line
branches/zip: Fix comment. Non functional change.
2010-04-01 15:55:20 +04:00
Sergey Vojtovich
8d04789f0b Applying InnoDB snapshot
Detailed revision comments:

r6714 | sunny | 2010-02-16 10:12:25 +0200 (Tue, 16 Feb 2010) | 2 lines
branches/zip: Update the comments and fix the whitespace issues.
See rb://255 Approved by: Marko
2010-04-01 15:55:01 +04:00
Sergey Vojtovich
745b7e8ea2 Applying InnoDB snapshot
Detailed revision comments:

r6713 | sunny | 2010-02-16 10:12:17 +0200 (Tue, 16 Feb 2010) | 7 lines
branches/zip: Change the bit fields back to ulint. Bit fields were causing
problems with concurrency on SMP systems because of word packing issues.
The number of trx_t's in a system is not sufficient enough to require that
we try and save a few bytes in the data structure.

See rb://255 for details.
2010-04-01 15:54:41 +04:00
Sergey Vojtovich
8b3a014e1a Applying InnoDB snapshot
Detailed revision comments:

r6712 | marko | 2010-02-16 10:05:36 +0200 (Tue, 16 Feb 2010) | 2 lines
branches/zip: trx_lists_init_at_db_start(): Assert that the kernel_mutex
is held by the caller.
2010-04-01 15:54:23 +04:00
Sergey Vojtovich
d74c008d46 Applying InnoDB snapshot
Detailed revision comments:

r6707 | inaam | 2010-02-12 19:22:35 +0200 (Fri, 12 Feb 2010) | 4 lines
branches/zip

ChangeLog entry for r6674.
2010-04-01 15:54:01 +04:00
Sergey Vojtovich
84eb19081f Applying InnoDB snapshot
Detailed revision comments:

r6675 | marko | 2010-02-11 22:41:11 +0200 (Thu, 11 Feb 2010) | 1 line
branches/zip: Remove bogus debug assertions introduced in r6660.
2010-04-01 15:53:41 +04:00
Sergey Vojtovich
f6beb7656e Applying InnoDB snapshot, fixes BUG#49535.
Detailed revision comments:

r6674 | inaam | 2010-02-11 17:54:44 +0200 (Thu, 11 Feb 2010) | 16 lines
branches/zip bug# 49535

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
2010-04-01 15:52:35 +04:00
Sergey Vojtovich
08ed716d85 Applying InnoDB snapshot
Detailed revision comments:

r6673 | marko | 2010-02-11 13:09:48 +0200 (Thu, 11 Feb 2010) | 9 lines
branches/zip: Relax a debug assertion about a missing BLOB. (Issue #452)
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.
2010-04-01 15:52:08 +04:00
Sergey Vojtovich
d4c7bd2f40 Applying InnoDB snapshot
Detailed revision comments:

r6672 | marko | 2010-02-11 13:01:18 +0200 (Thu, 11 Feb 2010) | 1 line
branches/zip: Introduce thr_is_recv().
2010-04-01 15:51:48 +04:00
Sergey Vojtovich
4ccf8bff5d Applying InnoDB snapshot
Detailed revision comments:

r6660 | marko | 2010-02-11 11:21:11 +0200 (Thu, 11 Feb 2010) | 7 lines
branches/zip: Clarify the rollback of INSERT by UPDATE of delete-marked rec.

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);
2010-04-01 15:51:26 +04:00
Sergey Vojtovich
058fdb11ad Applying InnoDB snapshot
Detailed revision comments:

r6639 | marko | 2010-02-10 13:11:04 +0200 (Wed, 10 Feb 2010) | 1 line
branches/zip: trx_rseg_create(): Unused function, remove.
2010-04-01 15:51:08 +04:00
Sergey Vojtovich
6f31e79af1 Applying InnoDB snapshot
Detailed revision comments:

r6635 | marko | 2010-02-10 11:07:05 +0200 (Wed, 10 Feb 2010) | 4 lines
branches/zip: Clean up after r6559.  Now that
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.
2010-04-01 15:42:55 +04:00
Sergey Vojtovich
286dc23a58 Applying InnoDB snapshot
Detailed revision comments:

r6633 | marko | 2010-02-10 10:40:55 +0200 (Wed, 10 Feb 2010) | 31 lines
branches/zip: Merge revisions 6538:6613 from branches/5.1:

  ------------------------------------------------------------------------
  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
  ------------------------------------------------------------------------
2010-04-01 15:42:24 +04:00
Sergey Vojtovich
14a3a2b478 Applying InnoDB snapshot
Detailed revision comments:

r6631 | marko | 2010-02-10 09:19:52 +0200 (Wed, 10 Feb 2010) | 1 line
branches/zip: Document r6614 in ChangeLog.
2010-04-01 15:42:04 +04:00
Sergey Vojtovich
838285ebfa Applying InnoDB snapshot
Detailed revision comments:

r6614 | inaam | 2010-02-09 20:26:23 +0200 (Tue, 09 Feb 2010) | 7 lines
branches/plugin rb://242

Let the master thread sleep if the amount of work to be done is
calibrated as taking less than a second.

Approved by: Heikki
2010-04-01 15:41:47 +04:00
Sergey Vojtovich
b07ee7ab68 Applying InnoDB snapshot
Detailed revision comments:

r6612 | marko | 2010-02-09 14:32:39 +0200 (Tue, 09 Feb 2010) | 3 lines
branches/zip: recv_recovery_rollback_active():
Drop the temporary tables and indexes after enabling sync order checks.
This should not make any difference. This could have been done in r6611.
2010-04-01 15:41:23 +04:00
Sergey Vojtovich
d0c7118716 Applying InnoDB snapshot
Detailed revision comments:

r6611 | marko | 2010-02-09 14:28:25 +0200 (Tue, 09 Feb 2010) | 11 lines
branches/zip: Roll back dictionary transaction(s) before scanning *.ibd files

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.
2010-04-01 15:41:04 +04:00
Sergey Vojtovich
54ed7dc2bb Applying InnoDB snapshot
Detailed revision comments:

r6610 | marko | 2010-02-09 13:53:59 +0200 (Tue, 09 Feb 2010) | 17 lines
branches/zip: When dropping temporary indexes and tables at startup,
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
2010-04-01 15:40:44 +04:00
Sergey Vojtovich
5416c10bc5 Applying InnoDB snapshot
Detailed revision comments:

r6609 | marko | 2010-02-09 13:45:40 +0200 (Tue, 09 Feb 2010) | 1 line
branches/zip: dict_field_print_low(): Add const qualifier.
2010-04-01 15:40:13 +04:00
Sergey Vojtovich
f64b9eaa4f Applying InnoDB snapshot
Detailed revision comments:

r6608 | marko | 2010-02-09 11:02:37 +0200 (Tue, 09 Feb 2010) | 1 line
branches/zip: ha_innobase::add_index(): Check for !innodb_table.
2010-04-01 15:39:56 +04:00
Sergey Vojtovich
0bc041eaa5 Applying InnoDB snapshot
Detailed revision comments:

r6595 | marko | 2010-02-08 13:53:02 +0200 (Mon, 08 Feb 2010) | 1 line
branches/zip: btr_pcur_commit(): Unused function, remove.
2010-04-01 15:39:29 +04:00
Sergey Vojtovich
051e2e4b21 Applying InnoDB snapshot
Detailed revision comments:

r6594 | marko | 2010-02-08 12:55:04 +0200 (Mon, 08 Feb 2010) | 2 lines
branches/zip: rec_get_nth_field_offs_old():
Replace if (!cond) ut_error; tests with ut_a(cond).
2010-04-01 15:39:03 +04:00
Sergey Vojtovich
1a9d1bf94a Applying InnoDB snapshot
Detailed revision comments:

r6591 | marko | 2010-02-08 10:06:39 +0200 (Mon, 08 Feb 2010) | 3 lines
branches/zip: row_merge_drop_index(): Remove redundant condition
on SYS_INDEXES.TABLE_ID.  INDEX_ID must be instance-widely unique,
because SYS_FIELDS is not indexed by TABLE_ID.
2010-04-01 15:38:35 +04:00
Sergey Vojtovich
5721a38fe2 Applying InnoDB snapshot
Detailed revision comments:

r6560 | sunny | 2010-02-04 16:11:23 +0200 (Thu, 04 Feb 2010) | 7 lines
branches/zip: Remove the additional check introduced in r6534 which tries
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
2010-04-01 15:38:11 +04:00
Sergey Vojtovich
30ddb931ef Applying InnoDB snapshot
Detailed revision comments:

r6559 | marko | 2010-02-04 13:21:18 +0200 (Thu, 04 Feb 2010) | 14 lines
branches/zip: Pass the file name and line number of the caller of the
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.
2010-04-01 15:37:45 +04:00
Sergey Vojtovich
1222f0a606 Applying InnoDB snapshot, fixes BUG#35077.
Detailed revision comments:

r6548 | marko | 2010-02-03 15:01:39 +0200 (Wed, 03 Feb 2010) | 11 lines
branches/zip: buf_LRU_invalidate_tablespace(): Ensure that prev_bpage
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
2010-04-01 15:36:54 +04:00
Sergey Vojtovich
82f3117eea Applying InnoDB snapshot
Detailed revision comments:

r6547 | marko | 2010-02-03 14:43:38 +0200 (Wed, 03 Feb 2010) | 14 lines
branches/zip: Clean up CHECK TABLE error handling. (Issue #220)

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
2010-04-01 15:36:27 +04:00
Sergey Vojtovich
4cba299e29 Applying InnoDB snapshot
Detailed revision comments:

r6546 | jyang | 2010-02-03 11:05:24 +0200 (Wed, 03 Feb 2010) | 9 lines
branches/zip: Relax assertion on the number of index defined
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.
2010-04-01 15:36:02 +04:00
Sergey Vojtovich
1e1f4bebf5 Applying InnoDB snapshot
Detailed revision comments:

r6540 | marko | 2010-02-01 11:35:13 +0200 (Mon, 01 Feb 2010) | 1 line
branches/zip: ChangeLog: Document the merge of 6471:6538 from branches/5.1.
2010-04-01 15:35:30 +04:00
Sergey Vojtovich
19448219e1 Applying InnoDB snapshot
Detailed revision comments:

r6539 | marko | 2010-02-01 11:31:12 +0200 (Mon, 01 Feb 2010) | 75 lines
branches/zip: Merge revisions 6471:6538 from branches/5.1:

  ------------------------------------------------------------------------
  r6488 | sunny | 2010-01-21 02:55:08 +0200 (Thu, 21 Jan 2010) | 2 lines
  Changed paths:
     M /branches/5.1/mysql-test/innodb-autoinc.result
     M /branches/5.1/mysql-test/innodb-autoinc.test

  branches/5.1: Factor out test for bug#44030 from innodb-autoinc.test
  into a separate test/result files.
  ------------------------------------------------------------------------
  r6489 | sunny | 2010-01-21 02:57:50 +0200 (Thu, 21 Jan 2010) | 2 lines
  Changed paths:
     A /branches/5.1/mysql-test/innodb-autoinc-44030.result
     A /branches/5.1/mysql-test/innodb-autoinc-44030.test

  branches/5.1: Factor out test for bug#44030 from innodb-autoinc.test
  into a separate test/result files.
  ------------------------------------------------------------------------
  r6492 | sunny | 2010-01-21 09:38:35 +0200 (Thu, 21 Jan 2010) | 1 line
  Changed paths:
     M /branches/5.1/mysql-test/innodb-autoinc-44030.test

  branches/5.1: Add reference to bug#47621 in the comment.
  ------------------------------------------------------------------------
  r6535 | sunny | 2010-01-30 00:08:40 +0200 (Sat, 30 Jan 2010) | 11 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc

  branches/5.1: Undo the change from r6424. We need to return DB_SUCCESS even
  if we were unable to initialize the tabe autoinc value. This is required for
  the open to succeed. The only condition we currently treat as a hard error
  is if the autoinc field instance passed in by MySQL is NULL.

  Previously if the table autoinc value was 0 and the next value was requested
  we had an assertion that would fail. Change that assertion and treat a value
  of 0 to mean that the autoinc system is unavailable. Generation of next
  value will now return failure.

  rb://237
  ------------------------------------------------------------------------
  r6536 | sunny | 2010-01-30 00:13:42 +0200 (Sat, 30 Jan 2010) | 6 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
     M /branches/5.1/mysql-test/innodb-autoinc.result
     M /branches/5.1/mysql-test/innodb-autoinc.test

  branches/5.1: Check *first_value everytime against the column max
  value and  set *first_value to next autoinc if it's > col max value.
  ie.  not rely on what is passed in from MySQL.

  [49497] Error 1467 (ER_AUTOINC_READ_FAILED) on inserting a negative value
  rb://236
  ------------------------------------------------------------------------
  r6537 | sunny | 2010-01-30 00:35:00 +0200 (Sat, 30 Jan 2010) | 2 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
     M /branches/5.1/mysql-test/innodb-autoinc.result
     M /branches/5.1/mysql-test/innodb-autoinc.test

  branches/5.1: Undo r6536.
  ------------------------------------------------------------------------
  r6538 | sunny | 2010-01-30 00:43:06 +0200 (Sat, 30 Jan 2010) | 6 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
     M /branches/5.1/mysql-test/innodb-autoinc.result
     M /branches/5.1/mysql-test/innodb-autoinc.test

  branches/5.1: Check *first_value every time against the column max
  value and  set *first_value to next autoinc if it's > col max value.
  ie.  not rely on what is passed in from MySQL.

  [49497] Error 1467 (ER_AUTOINC_READ_FAILED) on inserting a negative value
  rb://236
  ------------------------------------------------------------------------
2010-04-01 15:34:53 +04:00
Sergey Vojtovich
03f0003f09 Applying InnoDB snapshot, fixes BUG#49047.
Detailed revision comments:

r6534 | sunny | 2010-01-29 23:42:49 +0200 (Fri, 29 Jan 2010) | 15 lines
branches/zip: Two changes to fix the problem:

1. First scan the joining transaction's locks and check if no other
transaction is waiting for a lock held by the joining transaction.
If no other transaction is waiting then  no deadlock an occur and
we avoid doing an exhaustive search.

2. Change the direction of the lock traversal from backward to forward.
Previously we traversed backward from the lock that has to wait, the function
to that fetched the previous node was very inefficient resulting in O(n^2)
access to the rec lock list.

Fix Bug #49047 InnoDB deadlock detection is CPU intensive with many locks on a single row.

rb://218
2010-04-01 15:32:13 +04:00