2011-10-21 05:32:16 +02:00
|
|
|
2011-10-20 The InnoDB Team
|
|
|
|
|
|
|
|
* btr/brt0cur.c:
|
|
|
|
Fix Bug#13116045 Compilation failure using GCC 4.6.1 in btr/btr0cur.c
|
|
|
|
|
Bug#13006367 62487: innodb takes 3 minutes to clean up the adaptive
hash index at shutdown
btr_search_disable(): Just drop the entire adaptive hash index,
without dropping every record separately.
buf_pool_clear_hash_index(): Renamed and simplified from
buf_pool_drop_hash_index(). Set block->index = NULL for every block in
the buffer pool. Do not release the btr_search_latch. The caller will
have to adjust other data structures.
Remove block->is_hashed. It is redundant, should be always equal to
block->index != NULL.
Remove btr_search_fully_disabled, btr_search_enabled_mutex, and
SYNC_SEARCH_SYS_CONF. We drop the AHI in one pass, without releasing
the btr_search_latch in between.
Replace void* with const rec_t* and add assertions on btr_search_latch
and btr_search_enabled to ha0ha.h, ha0ha.ic, ha0ha.c.
page_set_max_trx_id(): Ignore the adaptive hash index. I forgot to
push this in rb:750.
btr0sea.c: Always after acquiring btr_search_latch, check for
block->index==NULL or !btr_search_enabled. We can now set
block->index=NULL while only holding btr_search_latch in exclusive
mode. Always acquire btr_search_latch before reading block->index,
except in shortcuts when testing for block->index == NULL.
ha_clear(), ha_search(): Unused function, remove.
buf_page_peek_if_search_hashed(): Remove. This function may avoid
latching a page at the cost of doing a duplicate buf_pool->page_hash
lookup.
rb:775 approved by Inaam Rana
2011-10-12 08:00:49 +02:00
|
|
|
2011-10-12 The InnoDB Team
|
|
|
|
|
|
|
|
* btr/btr0cur.c, btr/btr0sea.c, buf/buf0buf.c, buf/buf0lru.c,
|
|
|
|
ha/ha0ha.c, handler/ha_innodb.cc, ibuf/ibuf0ibuf.c, include/btr0sea.h,
|
|
|
|
include/btr0types.h, include/buf0buf.h, include/ha0ha.h,
|
|
|
|
include/ha0ha.ic, include/row0upd.ic, include/sync0sync.h,
|
|
|
|
page/page0page.c, sync/sync0sync.c:
|
|
|
|
Fix Bug#13006367 62487: innodb takes 3 minutes to clean up
|
|
|
|
the adaptive hash index at shutdown
|
|
|
|
|
2011-10-04 20:01:40 +02:00
|
|
|
2011-10-04 The InnoDB Team
|
2011-10-04 16:21:47 +02:00
|
|
|
|
2011-10-04 20:01:40 +02:00
|
|
|
* include/sync0rw.h, sync/sync0rw.c:
|
|
|
|
Fix Bug#13034534 RQG TESTS FAIL ON WINDOWS WITH CRASH NEAR
|
|
|
|
RW_LOCK_DEBUG_PRINT
|
2011-10-04 16:21:47 +02:00
|
|
|
|
2011-09-22 12:35:02 +02:00
|
|
|
2011-09-20 The InnoDB Team
|
|
|
|
|
|
|
|
* row/row0purge.c:
|
|
|
|
Fix Bug#12963823 CRASH IN PURGE THREAD UNDER UNUSUAL CIRCUMSTANCES
|
|
|
|
|
2011-09-12 09:12:15 +02:00
|
|
|
2011-09-12 The InnoDB Team
|
|
|
|
|
|
|
|
* row/row0sel.c:
|
|
|
|
Fix Bug#12601439 CONSISTENT READ FAILURE IN COLUMN PREFIX INDEX
|
|
|
|
|
2011-09-08 15:10:24 +02:00
|
|
|
2011-09-08 The InnoDB Team
|
|
|
|
|
|
|
|
* btr/btr0cur.c, include/page0page.h, include/row0upd.ic:
|
|
|
|
Fix Bug#12948130 UNNECESSARY X-LOCKING OF ADAPTIVE HASH INDEX
|
|
|
|
|
2011-09-06 09:08:52 +02:00
|
|
|
2011-09-06 The InnoDB Team
|
|
|
|
|
|
|
|
* buf/buf0buddy.c:
|
|
|
|
Fix Bug#12950803 62294: BUF_BUDDY_RELOCATE CALLS GETTIMEOFDAY
|
|
|
|
WHILE HOLDING BUFFER POOL MUTEX
|
|
|
|
|
2011-09-06 09:04:21 +02:00
|
|
|
2011-09-06 The InnoDB Team
|
|
|
|
|
|
|
|
* include/trx0undo.h, trx/trx0rec.c, trx/trx0undo.c:
|
|
|
|
Fix Bug#12547647 UPDATE LOGGING COULD EXCEED LOG PAGE SIZE
|
|
|
|
|
Bug#12704861 Corruption after a crash during BLOB update
The fix of Bug#12612184 broke crash recovery. When a record that
contains off-page columns (BLOBs) is updated, we must first write redo
log about the BLOB page writes, and only after that write the redo log
about the B-tree changes. The buggy fix would log the B-tree changes
first, meaning that after recovery, we could end up having a record
that contains a null BLOB pointer.
Because we will be redo logging the writes off the off-page columns
before the B-tree changes, we must make sure that the pages chosen for
the off-page columns are free both before and after the B-tree
changes. In this way, the worst thing that can happen in crash
recovery is that the BLOBs are written to free pages, but the B-tree
changes are not applied. The BLOB pages would correctly remain free in
this case. To achieve this, we must allocate the BLOB pages in the
mini-transaction of the B-tree operation. A further quirk is that BLOB
pages are allocated from the same file segment as leaf pages. Because
of this, we must temporarily "hide" any leaf pages that were freed
during the B-tree operation by "fake allocating" them prior to writing
the BLOBs, and freeing them again before the mtr_commit() of the
B-tree operation, in btr_mark_freed_leaves().
btr_cur_mtr_commit_and_start(): Remove this faulty function that was
introduced in the Bug#12612184 fix. The problem that this function was
trying to address was that when we did mtr_commit() the BLOB writes
before the mtr_commit() of the update, the new BLOB pages could have
overwritten clustered index B-tree leaf pages that were freed during
the update. If recovery applied the redo log of the BLOB writes but
did not see the log of the record update, the index tree would be
corrupted. The correct solution is to make the freed clustered index
pages unavailable to the BLOB allocation. This function is also a
likely culprit of InnoDB hangs that were observed when testing the
Bug#12612184 fix.
btr_mark_freed_leaves(): Mark all freed clustered index leaf pages of
a mini-transaction allocated (nonfree=TRUE) before storing the BLOBs,
or freed (nonfree=FALSE) before committing the mini-transaction.
btr_freed_leaves_validate(): A debug function for checking that all
clustered index leaf pages that have been marked free in the
mini-transaction are consistent (have not been zeroed out).
btr_page_alloc_low(): Refactored from btr_page_alloc(). Return the
number of the allocated page, or FIL_NULL if out of space. Add the
parameter "mtr_t* init_mtr" for specifying the mini-transaction where
the page should be initialized, or if this is a "fake allocation"
(init_mtr=NULL) by btr_mark_freed_leaves(nonfree=TRUE).
btr_page_alloc(): Add the parameter init_mtr, allowing the page to be
initialized and X-latched in a different mini-transaction than the one
that is used for the allocation. Invoke btr_page_alloc_low(). If a
clustered index leaf page was previously freed in mtr, remove it from
the memo of previously freed pages.
btr_page_free(): Assert that the page is a B-tree page and it has been
X-latched by the mini-transaction. If the freed page was a leaf page
of a clustered index, link it by a MTR_MEMO_FREE_CLUST_LEAF marker to
the mini-transaction.
btr_store_big_rec_extern_fields_func(): Add the parameter alloc_mtr,
which is NULL (old behaviour in inserts) and the same as local_mtr in
updates. If alloc_mtr!=NULL, the BLOB pages will be allocated from it
instead of the mini-transaction that is used for writing the BLOBs.
fsp_alloc_from_free_frag(): Refactored from
fsp_alloc_free_page(). Allocate the specified page from a partially
free extent.
fseg_alloc_free_page_low(), fseg_alloc_free_page_general(): Add the
parameter "mtr_t* init_mtr" for specifying the mini-transaction where
the page should be initialized, or NULL if this is a "fake allocation"
that prevents the reuse of a previously freed B-tree page for BLOB
storage. If init_mtr==NULL, try harder to reallocate the specified page
and assert that it succeeded.
fsp_alloc_free_page(): Add the parameter "mtr_t* init_mtr" for
specifying the mini-transaction where the page should be initialized.
Do not allow init_mtr == NULL, because this function is never to be
used for "fake allocations".
mtr_t: Add the operation MTR_MEMO_FREE_CLUST_LEAF and the flag
mtr->freed_clust_leaf for quickly determining if any
MTR_MEMO_FREE_CLUST_LEAF operations have been posted.
row_ins_index_entry_low(): When columns are being made off-page in
insert-by-update, invoke btr_mark_freed_leaves(nonfree=TRUE) and pass
the mini-transaction as the alloc_mtr to
btr_store_big_rec_extern_fields(). Finally, invoke
btr_mark_freed_leaves(nonfree=FALSE) to avoid leaking pages.
row_build(): Correct a comment, and add a debug assertion that a
record that contains NULL BLOB pointers must be a fresh insert.
row_upd_clust_rec(): When columns are being moved off-page, invoke
btr_mark_freed_leaves(nonfree=TRUE) and pass the mini-transaction as
the alloc_mtr to btr_store_big_rec_extern_fields(). Finally, invoke
btr_mark_freed_leaves(nonfree=FALSE) to avoid leaking pages.
buf_reset_check_index_page_at_flush(): Remove. The function
fsp_init_file_page_low() already sets
bpage->check_index_page_at_flush=FALSE.
There is a known issue in tablespace extension. If the request to
allocate a BLOB page leads to the tablespace being extended, crash
recovery could see BLOB writes to pages that are off the tablespace
file bounds. This should trigger an assertion failure in fil_io() at
crash recovery. The safe thing would be to write redo log about the
tablespace extension to the mini-transaction of the BLOB write, not to
the mini-transaction of the record update. However, there is no redo
log record for file extension in the current redo log format.
rb:693 approved by Sunny Bains
2011-08-29 10:16:42 +02:00
|
|
|
2011-08-29 The InnoDB Team
|
|
|
|
|
|
|
|
* btr/btr0btr.c, btr/btr0cur.c, fsp/fsp0fsp.c,
|
|
|
|
include/btr0btr.h, include/btr0cur.h, include/fsp0fsp.h,
|
|
|
|
include/mtr0mtr.h, include/mtr0mtr.ic, mtr/mtr0mtr.c,
|
|
|
|
row/row0ins.c, row/row0row.c, row/row0upd.c, trx/trx0undo.c:
|
|
|
|
Fix Bug#12704861 Corruption after a crash during BLOB update
|
|
|
|
and other regressions from the fix of Bug#12612184
|
|
|
|
|
Bug #11766591 59733: Possible deadlock when buffered changes are to be
discarded in buf_page_create()
This bug turned out to be a false alarm, a bug in the UNIV_SYNC_DEBUG
diagnostic code. Because of this, the patch was not backported to the
built-in InnoDB in MySQL 5.1. Furthermore, there is no test case for
InnoDB Plugin in MySQL 5.1, because the delete buffering in MySQL 5.5
makes triggering the failure much easier.
When a freed page for which there exist orphaned buffered changes is
allocated and reused for something else, buf_page_create() will discard
the buffered changes by invoking ibuf_merge_or_delete_for_page().
This would violate the InnoDB latching order.
Tweak the latching order as follows. Move SYNC_IBUF_MUTEX below
SYNC_FSP_PAGE, where it logically belongs, and assign new latching
levels for the ibuf->index->lock and the insert buffer B-tree pages:
#define SYNC_IBUF_MUTEX 370 /* ibuf_mutex */
#define SYNC_IBUF_INDEX_TREE 360
#define SYNC_IBUF_TREE_NODE_NEW 359
#define SYNC_IBUF_TREE_NODE 358
btr_block_get(), btr_page_get(): In UNIV_SYNC_DEBUG, add the parameter
"index" for determining the appropriate latching order
(SYNC_IBUF_TREE_NODE or SYNC_TREE_NODE).
btr_page_alloc_for_ibuf(), btr_create(): Use SYNC_IBUF_TREE_NODE_NEW
instead of SYNC_TREE_NODE_NEW for insert buffer pages.
btr_cur_search_to_nth_level(), btr_pcur_restore_position_func(): Use
SYNC_IBUF_TREE_NODE instead of SYNC_TREE_NODE for insert buffer pages.
btr_search_guess_on_hash(): Assert that the index is not an insert buffer tree.
dict_index_add_to_cache(): Use SYNC_IBUF_INDEX_TREE for the insert
buffer tree (ibuf->index->lock).
ibuf0ibuf.c: Use SYNC_IBUF_TREE_NODE or SYNC_IBUF_TREE_NODE_NEW for
all B-tree pages.
ibuf_merge_or_delete_for_page(): Assert that the user page is
BUF_IO_READ fixed. Only in this way it is OK to latch it as
SYNC_IBUF_TREE_NODE instead of the proper SYNC_TREE_NODE (which would
violate the changed latching order).
sync_thread_add_level(): Remove the special tweak for
SYNC_IBUF_MUTEX. Add rules for the added latching levels.
rb:591 approved by Jimmy Yang
2011-08-15 11:11:43 +02:00
|
|
|
2011-08-15 The InnoDB Team
|
|
|
|
|
|
|
|
* btr/btr0btr.c, btr/btr0cur.c, btr/btr0pcur.c, btr/btr0sea.c,
|
|
|
|
dict/dict0crea.c, dict/dict0dict.c, ibuf/ibuf0ibuf.c,
|
|
|
|
include/btr0btr.h, include/btr0btr.ic, include/sync0sync.h,
|
|
|
|
sync/sync0sync.c:
|
|
|
|
Fix Bug#11766591 59733: Possible deadlock when buffered changes
|
|
|
|
are to be discarded in buf_page_create()
|
|
|
|
|
2011-08-10 11:25:24 +02:00
|
|
|
2011-08-08 The InnoDB Team
|
|
|
|
|
|
|
|
* row/row0sel.c:
|
|
|
|
Fix Bug#12835650 VARCHAR maximum length performance impact
|
|
|
|
|
2011-08-08 10:22:18 +02:00
|
|
|
2011-08-08 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc:
|
|
|
|
Fix Bug#12770537 I_S.TABLES.DATA_LENGTH DOES NOT SHOW ON-DISK SIZE
|
|
|
|
FOR COMPRESSED INNODB
|
|
|
|
|
2011-07-19 16:37:37 +02:00
|
|
|
2011-07-19 The InnoDB Team
|
|
|
|
|
|
|
|
* buf/buf0buf.c, buf/buf0rea.c, handler/ha_innodb.cc,
|
|
|
|
include/buf0buf.h, include/buf0buf.ic, include/srv0srv.h,
|
|
|
|
srv/srv0srv.c:
|
2011-08-08 10:22:18 +02:00
|
|
|
Fix Bug#12356373 by reintroducing random readahead
|
2011-07-19 16:37:37 +02:00
|
|
|
|
2011-06-30 12:18:54 +02:00
|
|
|
2011-06-30 The InnoDB Team
|
|
|
|
|
|
|
|
* row/row0row.c:
|
|
|
|
Fix Bug#12637786 Wrong secondary index entries on CHAR and VARCHAR
|
|
|
|
columns in ROW_FORMAT=DYNAMIC and ROW_FORMAT=COMPRESSED
|
|
|
|
|
2011-06-17 22:20:20 +02:00
|
|
|
2011-06-16 The InnoDB Team
|
|
|
|
|
|
|
|
* btr/btr0cur.c, buf/buf0buddy.c, buf/buf0buf.c, buf/buf0lru.c,
|
|
|
|
include/buf0buddy.h, include/buf0buddy.ic, include/buf0buf.h,
|
|
|
|
include/buf0buf.ic, include/buf0lru.h, include/buf0types.h:
|
|
|
|
Fix Bug#61188 DROP TABLE extremely slow
|
|
|
|
|
2011-06-16 13:55:46 +02:00
|
|
|
2011-06-16 The InnoDB Team
|
|
|
|
|
|
|
|
* buf/buf0buddy.c, buf/buf0buf.c, buf/buf0flu.c, buf/buf0lru.c,
|
|
|
|
include/buf0buf.h, include/buf0lru.h:
|
|
|
|
Fix Bug#61341 buf_LRU_insert_zip_clean can be O(N) on LRU length
|
|
|
|
|
2011-06-16 13:22:12 +02:00
|
|
|
2011-06-16 The InnoDB Team
|
|
|
|
|
|
|
|
* page/page0zip.c, rem/rem0rec.c:
|
|
|
|
Fix Bug#61191 question about page_zip_available()
|
|
|
|
|
Bug#12612184 Race condition after btr_cur_pessimistic_update()
btr_cur_compress_if_useful(), btr_compress(): Add the parameter ibool
adjust. If adjust=TRUE, adjust the cursor position after compressing
the page.
btr_lift_page_up(): Return a pointer to the father page.
BTR_KEEP_POS_FLAG: A new flag for btr_cur_pessimistic_update().
btr_cur_pessimistic_update(): If *big_rec != NULL and flags &
BTR_KEEP_POS_FLAG, keep the cursor positioned on the updated record.
Also, do not release the index tree x-lock if *big_rec != NULL.
btr_cur_mtr_commit_and_start(): Commits and restarts a
mini-transaction so that it will retain an x-lock on index->lock and
the page of the cursor. This is invoked when
btr_cur_pessimistic_update() returns *big_rec != NULL.
In all callers of btr_cur_pessimistic_update() that do not pass
BTR_KEEP_POS_FLAG, assert that *big_rec == NULL.
btr_cur_compress(): Unused function [in the built-in MySQL 5.1], remove.
page_rec_get_nth(): Return the nth record on the page (an inverse
function of page_rec_get_n_recs_before()). Refactored from
page_get_middle_rec().
page_get_middle_rec(): Invoke page_rec_get_nth().
page_cur_insert_rec_zip_reorg(): Make use of the page directory
shortcuts in page_rec_get_nth() instead of scanning the whole list of
records.
row_ins_clust_index_entry_by_modify(): Pass BTR_KEEP_POS_FLAG to
btr_cur_pessimistic_update().
row_ins_index_entry_low(): If row_ins_clust_index_entry_by_modify()
returns a big_rec, invoke btr_cur_mtr_commit_and_start() in order to
commit and start the mini-transaction without releasing the x-locks on
index->lock and the cursor page, and write the big_rec. Releasing the
page latch in mtr_commit() caused a race condition.
row_upd_clust_rec(): Pass BTR_KEEP_POS_FLAG to
btr_cur_pessimistic_update(). If it returns a big_rec, invoke
btr_cur_mtr_commit_and_start() in order to commit and start the
mini-transaction without releasing the x-locks on index->lock and the
cursor page, and write the big_rec. Releasing the page latch in
mtr_commit() caused a race condition.
sync_thread_add_level(): Add the parameter ibool relock. When TRUE,
bypass the latching order rules.
rw_lock_add_debug_info(): For nested X-lock requests, pass relock=TRUE
to sync_thread_add_level().
rb:678 approved by Jimmy Yang
2011-06-16 09:27:21 +02:00
|
|
|
2011-06-16 The InnoDB Team
|
|
|
|
|
|
|
|
* btr/btr0btr.c, btr/btr0cur.c, include/btr0btr.h, include/btr0cur.h,
|
|
|
|
include/btr0cur.ic, include/buf0buf.h, include/buf0buf.ic,
|
|
|
|
include/page0cur.ic, include/page0page.h, include/page0page.ic,
|
|
|
|
include/sync0rw.ic, include/sync0sync.h, page/page0cur.c,
|
|
|
|
page/page0page.c, row/row0ins.c, row/row0upd.c,
|
|
|
|
sync/sync0rw.c, sync/sync0sync.c:
|
|
|
|
Fix Bug#12612184 Race condition after btr_cur_pessimistic_update()
|
|
|
|
|
2011-06-09 12:31:15 +02:00
|
|
|
2011-06-09 The InnoDB Team
|
|
|
|
* btr/btr0cur.c, include/rem0rec.h, include/rem0rec.ic,
|
|
|
|
* row/row0row.c, row/row0vers.c, trx/trx0rec.c:
|
|
|
|
Instrumentation for Bug#12612184 Race condition in row_upd_clust_rec()
|
|
|
|
|
2011-05-19 15:12:27 +02:00
|
|
|
2011-05-19 The InnoDB Team
|
|
|
|
|
|
|
|
* row/row0row.c:
|
|
|
|
Fix Bug#12429576 Assertion failure on purge of column prefix index
|
|
|
|
|
2011-04-11 15:40:28 +02:00
|
|
|
2011-04-07 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, handler/ha_innodb.h, handler/handler0alter.cc:
|
|
|
|
Fix Bug #52409 Assertion failure: long semaphore wait
|
|
|
|
|
2011-04-07 20:12:54 +02:00
|
|
|
2011-04-07 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, include/trx0trx.h, include/trx0undo.h,
|
|
|
|
log/log0log.c, trx/trx0sys.c, trx/trx0trx.c, trx/trx0undo.c:
|
|
|
|
Fix Bug #59641 Prepared XA transaction in system after hard crash
|
|
|
|
causes future shutdown hang
|
|
|
|
|
Bug#11877216 InnoDB too eager to commit suicide on a busy server
sync_array_print_long_waits(): Return the longest waiting thread ID
and the longest waited-for lock. Only if those remain unchanged
between calls in srv_error_monitor_thread(), increment
fatal_cnt. Otherwise, reset fatal_cnt.
Background: There is a built-in watchdog in InnoDB whose purpose is to
kill the server when some thread is stuck waiting for a mutex or
rw-lock. Before this fix, the logic was flawed.
The function sync_array_print_long_waits() returns TRUE if it finds a
lock wait that exceeds 10 minutes (srv_fatal_semaphore_wait_threshold).
The function srv_error_monitor_thread() will kill the server if this
happens 10 times in a row (fatal_cnt reaches 10), checked every 30
seconds. This is wrong, because this situation does not mean that the
server is hung. If the server is very busy for a little over 15
minutes, it will be killed.
Consider this example. Thread T1 is waiting for mutex M. Some time
later, threads T2..Tn start waiting for the same mutex M. If T1 keeps
waiting for 600 seconds, fatal_cnt will be incremented to 1. So far,
so good. Now, if M is granted to T1, the server was obviously not
stuck. But, T2..Tn keeps waiting, and their wait time will be longer
than 600 seconds. If 5 minutes later, some Tn has still been waiting
for more than 10 minutes for the mutex M, the server can be killed,
even though it is not stuck.
rb:622 approved by Jimmy Yang
2011-03-30 13:25:58 +02:00
|
|
|
2011-03-30 The InnoDB Team
|
|
|
|
|
|
|
|
* srv/srv0srv.c, sync/sync0arr.h, sync/sync0arr.c:
|
|
|
|
Fix Bug#11877216 InnoDB too eager to commit suicide on a busy server
|
|
|
|
|
2011-03-15 11:01:02 +01:00
|
|
|
2011-03-15 The InnoDB Team
|
|
|
|
|
|
|
|
* btr/btr0cur.c, page/page0zip.c:
|
|
|
|
Fix Bug#11849231 inflateInit() invoked without initializing all memory
|
|
|
|
|
2011-02-28 12:51:18 +01:00
|
|
|
2011-02-28 The InnoDB Team
|
|
|
|
|
|
|
|
* btr/btr0sea.c, buf/buf0buf.c, buf/buf0lru.c:
|
|
|
|
Fix Bug#58549 Race condition in buf_LRU_drop_page_hash_for_tablespace()
|
|
|
|
and compressed tables
|
|
|
|
|
2011-02-15 09:51:33 +01:00
|
|
|
2011-02-15 The InnoDB Team
|
|
|
|
|
|
|
|
* sync/sync0rw.c, innodb_bug59307.test:
|
|
|
|
Bug#59307 Valgrind: uninitialized value in
|
|
|
|
rw_lock_set_writer_id_and_recursion_flag()
|
|
|
|
|
2011-02-14 11:07:59 +01:00
|
|
|
2011-02-14 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/handler0alter.cc:
|
|
|
|
Bug#59749 Enabling concurrent reads while creating non-primary
|
|
|
|
unique index gives failures
|
|
|
|
|
2011-01-31 08:56:51 +01:00
|
|
|
2011-01-31 The InnoDB Team
|
|
|
|
|
|
|
|
* btr/btr0cur.c, include/row0upd.h,
|
|
|
|
row/row0purge.c, row/row0umod.c, row/row0upd.c:
|
|
|
|
Bug#59230 assert 0 row_upd_changes_ord_field_binary()
|
|
|
|
in post-crash rollback or purge
|
|
|
|
|
2011-01-28 09:50:10 +01:00
|
|
|
2011-01-27 The InnoDB Team
|
|
|
|
|
|
|
|
* btr/btr0cur.c:
|
|
|
|
Bug#59465 btr_estimate_number_of_different_key_vals use
|
|
|
|
incorrect offset for external_size
|
|
|
|
|
2011-01-27 12:27:29 +01:00
|
|
|
2011-01-27 The InnoDB Team
|
|
|
|
|
|
|
|
* include/trx0trx.h, trx/trx0trx.c:
|
|
|
|
Bug#59440 Race condition in XA ROLLBACK and XA COMMIT
|
|
|
|
after server restart
|
|
|
|
|
2011-01-25 14:43:08 +01:00
|
|
|
2011-01-25 The InnoDB Team
|
|
|
|
|
|
|
|
* row/row0upd.c:
|
|
|
|
Bug#59585 Fix 58912 introduces compiler warning
|
|
|
|
due to potentially uninitialized variable
|
|
|
|
|
2011-01-25 11:17:28 +01:00
|
|
|
2011-01-25 The InnoDB Team
|
|
|
|
|
|
|
|
* mtr/mtr0log.c:
|
|
|
|
Bug#59486 Incorrect usage of UNIV_UNLIKELY() in mlog_parse_string()
|
|
|
|
|
2011-01-25 10:54:50 +01:00
|
|
|
2011-01-25 The InnoDB Team
|
|
|
|
|
|
|
|
* row/row0vers.c:
|
|
|
|
Fix Bug#59464 Race condition in row_vers_build_for_semi_consistent_read
|
|
|
|
|
2011-01-25 08:56:18 +01:00
|
|
|
2011-01-25 The InnoDB Team
|
|
|
|
|
|
|
|
* btr/btr0btr.c, btr/btr0cur.c, btr/btr0sea.c,
|
|
|
|
buf/buf0buddy.c, buf/buf0buf.c, buf/buf0lru.c,
|
|
|
|
include/buf0buf.h, include/buf0buf.ic, include/buf0lru.h,
|
|
|
|
mem/mem0mem.c, page/page0zip.c:
|
|
|
|
Fix Bug#59707 Unused compression-related parameters
|
|
|
|
in buffer pool functions
|
|
|
|
|
2011-01-18 11:25:13 +01:00
|
|
|
2011-01-18 The InnoDB Team
|
|
|
|
|
|
|
|
* include/sync0rw.h, sync/sync0arr.c, sync/sync0rw.c:
|
|
|
|
Fix Bug#59579 rw_lock_debug_print outputs to stderr, not to
|
|
|
|
SHOW ENGINE INNODB STATUS
|
|
|
|
|
2011-01-14 18:02:28 +01:00
|
|
|
2011-01-14 The InnoDB Team
|
|
|
|
* btr/btr0cur.c, dict/dict0dict.c, handler/ha_innodb.cc,
|
|
|
|
include/btr0cur.h, include/dict0mem.h, include/rem0cmp.h,
|
|
|
|
include/rem0cmp.ic, include/srv0srv.h, rem/rem0cmp.c,
|
|
|
|
srv/srv0srv.c, innodb_bug30423.test:
|
|
|
|
Fix Bug#30423 InnoDBs treatment of NULL in index stats causes
|
|
|
|
bad "rows examined" estimates
|
|
|
|
|
2011-01-07 08:45:59 +01:00
|
|
|
2011-01-06 The InnoDB Team
|
|
|
|
* row/row0merge.c:
|
|
|
|
Fix Bug#59312 Examine MAX_FULL_NAME_LEN in InnoDB to address
|
|
|
|
possible insufficient name buffer
|
|
|
|
|
|
|
|
2011-01-06 The InnoDB Team
|
|
|
|
* dict/dict0dict.c, handler/ha_innodb.cc, handler/i_s.cc,
|
|
|
|
include/univ.i:
|
|
|
|
Fix Bug#58643 InnoDB: too long table name
|
|
|
|
|
2011-01-07 04:36:20 +01:00
|
|
|
2011-01-06 The InnoDB Team
|
|
|
|
* handler/i_s.cc, include/trx0i_s.h, trx/trx0i_s.c:
|
|
|
|
Fix Bug#55397 cannot select from innodb_trx when trx_query contains
|
|
|
|
blobs that aren't strings
|
|
|
|
|
2011-01-05 07:44:12 +01:00
|
|
|
2011-01-04 The InnoDB Team
|
|
|
|
* dict/dict0dict.c:
|
|
|
|
Fix Bug#59197 double quote in field comment prevents foreign
|
|
|
|
key constraint creation
|
|
|
|
|
Bug #55284 Double BLOB free due to lock wait while updating PRIMARY KEY
This bug fix requires that Bug #58912 be fixed as well (bzr revision id
marko.makela@oracle.com-20101221093919-mcmmgd4zpse9567d). Otherwise,
another double BLOB free could occur when InnoDB would try to perform
an update-in-place as delete-and-insert-by-update-in-place.
row_upd_clust_rec_by_insert(): Do not disown the externally stored
columns from the old record (btr_cur_mark_extern_inherited_fields())
until after checking the foreign key constraints and successfully
inserting the updated record. If a lock wait timeout occurs between
the delete-marking of the old record and the insertion of the updated
record, mark the columns inherited before retrying the insert.
Distinguish the state UPD_NODE_INSERT_BLOB from
UPD_NODE_INSERT_CLUSTERED.
btr_cur_del_mark_set_clust_rec(): Replace the cursor with
block,rec,index,offsets so that the offsets need not be recalculated.
Assert that rec is on a clustered index leaf page.
btr_cur_disown_inherited_fields(): Renamed from
btr_cur_mark_extern_inherited_fields(). Use
upd_get_field_by_field_no(). Assert that there are externally stored
columns. Assert that a mini-transaction is passed. Remove the return
status. (The only caller, row_upd_clust_rec_by_insert(), will have
determined that some fields have changed ownership.)
btr_cur_mark_dtuple_inherited_extern(): Rename to
row_upd_clust_rec_by_insert_inherit_func() and declare as static. Add
the debug parameters rec, offsets. When rec is given, assert that the
off-page columns match those in the inesrt tuple and that the off-page
columns are owned by the record. Assert that the non-updated off-page
columns in the insert tuple are owned, and mark them inherited.
row_upd_clust_rec_by_insert_inherit(): A wrapper macro for
row_upd_clust_rec_by_insert_inherit_func().
row_undo_mod_upd_exist_sec(): Adjust a comment about
row_upd_clust_rec_by_insert().
rb:508 approved by Jimmy Yang
2010-12-21 12:27:22 +01:00
|
|
|
2010-12-21 The InnoDB Team
|
|
|
|
* include/btr0cur.h, include/row0upd.h, btr/btr0cur.c,
|
|
|
|
row/row0umod.c, row/row0upd.c:
|
|
|
|
Fix Bug#55284 Double free of off-page columns due to lock wait
|
|
|
|
while updating PRIMARY KEY
|
|
|
|
|
2010-12-21 10:39:19 +01:00
|
|
|
2010-12-21 The InnoDB Team
|
|
|
|
|
|
|
|
* include/data0data.h, include/data0data.ic, include/row0upd.h,
|
|
|
|
btr/btr0cur.c, row/row0purge.c, row/row0umod.c, row/row0upd.c,
|
|
|
|
innodb.result, innodb.test:
|
|
|
|
Fix Bug#58912 InnoDB unnecessarily avoids update-in-place
|
|
|
|
on column prefix indexes
|
|
|
|
|
2010-12-09 10:19:46 +01:00
|
|
|
2010-12-09 The InnoDB Team
|
2010-12-21 10:39:19 +01:00
|
|
|
|
2010-12-09 10:19:46 +01:00
|
|
|
* buf/buf0lru.c:
|
|
|
|
Fix Bug#57600 output of I/O sum[%lu] can go negative
|
|
|
|
|
2010-11-11 10:55:35 +01:00
|
|
|
2010-11-11 The InnoDB Team
|
2010-12-21 10:39:19 +01:00
|
|
|
|
2010-11-11 10:55:35 +01:00
|
|
|
* thr/thr0loc.c, trx/trx0i_s.c:
|
|
|
|
Fix Bug#57802 Empty ASSERTION parameter passed to the HASH_SEARCH macro
|
|
|
|
|
2010-11-11 06:32:12 +01:00
|
|
|
2010-11-10 The InnoDB Team
|
|
|
|
|
|
|
|
* dict/dict0dict.c, handler/handler0alter.cc, include/dict0dict.h
|
|
|
|
row/row0merge.c:
|
2010-11-11 10:55:35 +01:00
|
|
|
Fix Bug#55084 InnoDB crash and corruption after ALTER TABLE
|
2010-11-11 06:32:12 +01:00
|
|
|
|
2010-11-11 06:27:10 +01:00
|
|
|
2010-11-10 The InnoDB Team
|
|
|
|
|
|
|
|
* srv/srv0start.c:
|
2010-11-11 10:55:35 +01:00
|
|
|
Fix Bug#48026 Log start and end of InnoDB buffer pool
|
2010-11-11 06:27:10 +01:00
|
|
|
initialization to the error log
|
|
|
|
|
2010-11-03 10:19:12 +01:00
|
|
|
2010-11-03 The InnoDB Team
|
|
|
|
|
|
|
|
* include/btr0btr.h, include/btr0btr.ic, dict/dict0crea.c:
|
|
|
|
Fix Bug#57947 InnoDB diagnostics shows btr_block_get calls
|
|
|
|
instead of real callers
|
|
|
|
|
2010-11-03 23:41:36 +01:00
|
|
|
2010-11-03 The InnoDB Team
|
|
|
|
|
|
|
|
* fil/fil0fil.c, fsp/fsp0fsp.c, handler/ha_innodb.cc,
|
|
|
|
include/fil0fil.h, include/univ.i:
|
|
|
|
Fix Bug #54538 - use of exclusive innodb dictionary lock limits
|
|
|
|
performance.
|
|
|
|
|
2010-11-03 10:30:08 +01:00
|
|
|
2010-11-02 The InnoDB Team
|
|
|
|
|
|
|
|
* btr/btr0cur.c, dict/dict0dict.c, dict/dict0load.c,
|
|
|
|
handler/ha_innodb.cc, include/dict0dict.h, row/row0mysql.c,
|
|
|
|
innodb_bug53046.result, innodb_bug53046.test:
|
|
|
|
Fix Bug#53046 dict_update_statistics_low can still be run
|
|
|
|
concurrently on same table
|
|
|
|
|
2010-11-02 08:28:48 +01:00
|
|
|
2010-11-02 The InnoDB Team
|
|
|
|
|
|
|
|
* row/row0sel.c:
|
|
|
|
Fix Bug#57799 READ UNCOMMITTED access failure of off-page
|
|
|
|
DYNAMIC or COMPRESSED columns again
|
|
|
|
|
2010-10-25 07:51:21 +02:00
|
|
|
2010-10-24 The InnoDB Team
|
|
|
|
|
|
|
|
* row/row0mysql.c
|
2010-11-02 08:28:05 +01:00
|
|
|
Fix Bug#57700 Latching order violation in
|
2010-10-25 07:51:21 +02:00
|
|
|
row_truncate_table_for_mysql()
|
|
|
|
|
2010-10-21 04:56:42 +02:00
|
|
|
2010-10-20 The InnoDB Team
|
|
|
|
|
|
|
|
* dict/dict0load.c
|
2010-11-02 08:28:05 +01:00
|
|
|
Fix Bug#57616 Sig 11 in dict_load_table() when failed to load
|
2010-10-21 04:56:42 +02:00
|
|
|
index or foreign key
|
|
|
|
|
2010-10-19 08:04:15 +02:00
|
|
|
2010-10-19 The InnoDB Team
|
|
|
|
|
|
|
|
* btr/btr0cur.c, buf/buf0buf.c, buf/buf0flu.c, handler/ha_innodb.cc,
|
|
|
|
ibuf/ibuf0ibuf.c, include/btr0cur.h, include/buf0flu.h,
|
|
|
|
include/ibuf0ibuf.h, include/row0mysql.h,
|
|
|
|
row/row0mysql.c, row/row0sel.c,
|
|
|
|
innodb_bug56680.test, innodb_bug56680.result:
|
2010-11-02 08:28:05 +01:00
|
|
|
Fix Bug#56680 InnoDB may return wrong results from a
|
2010-10-19 08:04:15 +02:00
|
|
|
case-insensitive covering index
|
|
|
|
|
2010-10-18 13:20:16 +02:00
|
|
|
2010-10-18 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, handler/ha_innodb.h, innodb_bug57252.result,
|
|
|
|
innodb_bug57252.test:
|
|
|
|
Fix Bug#57252 disabling innobase_stats_on_metadata disables ANALYZE
|
|
|
|
|
2010-10-15 16:30:32 +02:00
|
|
|
2010-10-14 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, innodb_bug56143.result, innodb_bug56143.test:
|
|
|
|
Fix Bug#56143 too many foreign keys causes output of show create
|
|
|
|
table to become invalid
|
|
|
|
|
2010-10-14 06:17:00 +02:00
|
|
|
2010-10-14 The InnoDB Team
|
2010-10-15 16:26:58 +02:00
|
|
|
|
|
|
|
* srv/srv0start.c:
|
|
|
|
Fix Bug#57397 io_handler_thread() will never cleanup
|
2010-10-14 06:17:00 +02:00
|
|
|
|
2010-10-11 14:36:13 +02:00
|
|
|
2010-10-11 The InnoDB Team
|
2010-10-15 16:26:58 +02:00
|
|
|
|
2010-10-11 22:13:47 +02:00
|
|
|
* row/row0sel.c
|
|
|
|
Fix Bug #57345 btr_pcur_store_position abort for load with
|
|
|
|
concurrent lock/unlock tables
|
2010-10-11 14:36:13 +02:00
|
|
|
|
2010-10-11 10:18:00 +02:00
|
|
|
2010-10-11 The InnoDB Team
|
|
|
|
|
|
|
|
* row/row0mysql.c, innodb_bug56947.result, innodb_bug56947.test:
|
|
|
|
Fix Bug #56947 InnoDB leaks memory when failing to create a table
|
|
|
|
|
2010-10-06 12:41:26 +02:00
|
|
|
2010-10-06 The InnoDB Team
|
2010-10-11 10:18:00 +02:00
|
|
|
|
2010-10-06 12:41:26 +02:00
|
|
|
* row/row0mysql.c, innodb_bug57255.result, innodb_bug57255.test
|
2010-10-11 10:18:00 +02:00
|
|
|
Fix Bug #57255 Cascade Delete results in "Got error -1 from
|
|
|
|
storage engine"
|
|
|
|
|
2010-10-04 12:06:41 +02:00
|
|
|
2010-09-27 The InnoDB Team
|
|
|
|
|
|
|
|
* row/row0sel.c, innodb_bug56716.result, innodb_bug56716.test:
|
2010-10-15 16:26:58 +02:00
|
|
|
Fix Bug#56716 InnoDB locks a record gap without locking the table
|
2010-10-04 12:06:41 +02:00
|
|
|
|
2010-09-07 07:41:37 +02:00
|
|
|
2010-09-06 The InnoDB Team
|
2010-10-15 16:26:58 +02:00
|
|
|
|
|
|
|
* dict/dict0load.c, innodb_bug53756.test innodb_bug53756.result:
|
|
|
|
Fix Bug#53756 ALTER TABLE ADD PRIMARY KEY affects crash recovery
|
2010-09-07 07:41:37 +02:00
|
|
|
|
2010-08-24 10:10:03 +02:00
|
|
|
2010-08-24 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.c, dict/dict0dict.c:
|
2010-10-15 16:26:58 +02:00
|
|
|
Fix Bug#55832 selects crash too easily when innodb_force_recovery>3
|
2010-08-24 10:10:03 +02:00
|
|
|
|
2010-08-04 12:37:44 +02:00
|
|
|
2010-08-03 The InnoDB Team
|
|
|
|
|
|
|
|
* include/dict0dict.h, include/dict0dict.ic, row/row0mysql.c:
|
2010-11-02 08:28:05 +01:00
|
|
|
Fix Bug#54678 InnoDB, TRUNCATE, ALTER, I_S SELECT, crash or deadlock
|
2010-08-04 12:37:44 +02:00
|
|
|
|
2010-08-04 12:11:33 +02:00
|
|
|
2010-08-03 The InnoDB Team
|
|
|
|
|
|
|
|
* dict/dict0load.c, handler/ha_innodb.cc, include/db0err.h,
|
|
|
|
include/dict0load.h, include/dict0mem.h, include/que0que.h,
|
|
|
|
row/row0merge.c, row/row0mysql.c:
|
|
|
|
Fix Bug#54582 stack overflow when opening many tables linked
|
|
|
|
with foreign keys at once
|
|
|
|
|
2010-08-04 05:20:55 +02:00
|
|
|
2010-08-03 The InnoDB Team
|
|
|
|
|
|
|
|
* include/ut0mem.h, ut/ut0mem.c:
|
2010-10-15 16:26:58 +02:00
|
|
|
Fix Bug#55627 segv in ut_free pars_lexer_close innobase_shutdown
|
2010-08-04 05:20:55 +02:00
|
|
|
innodb-use-sys-malloc=0
|
|
|
|
|
2010-08-02 07:25:57 +02:00
|
|
|
2010-08-01 The InnoDB Team
|
|
|
|
|
2010-10-15 16:26:58 +02:00
|
|
|
* handler/ha_innodb.cc:
|
|
|
|
Fix Bug#55382 Assignment with SELECT expressions takes unexpected
|
2010-08-02 07:25:57 +02:00
|
|
|
S locks in READ COMMITTED
|
|
|
|
|
2010-07-28 12:20:44 +02:00
|
|
|
2010-07-27 The InnoDB Team
|
|
|
|
|
|
|
|
* include/mem0pool.h, mem/mem0mem.c, mem/mem0pool.c, srv/srv0start.c:
|
|
|
|
Fix Bug#55581 shutdown with innodb-use-sys-malloc=0: assert
|
|
|
|
mutex->magic_n == MUTEX_MAGIC_N.
|
|
|
|
|
2010-07-01 07:06:01 +02:00
|
|
|
2010-06-30 The InnoDB Team
|
|
|
|
|
|
|
|
* btr/btr0sea.c, ha/ha0ha.c, handler/ha_innodb.cc, include/btr0sea.h:
|
|
|
|
Fix Bug#54311 Crash on CHECK PARTITION after concurrent LOAD DATA
|
|
|
|
and adaptive_hash_index=OFF
|
|
|
|
|
2010-06-29 15:12:19 +02:00
|
|
|
2010-06-29 The InnoDB Team
|
|
|
|
* row/row0row.c, row/row0undo.c, row/row0upd.c:
|
|
|
|
Fix Bug#54408 txn rollback after recovery: row0umod.c:673
|
|
|
|
dict_table_get_format(index->table)
|
|
|
|
|
2010-06-29 14:56:53 +02:00
|
|
|
2010-06-29 The InnoDB Team
|
|
|
|
|
2010-10-15 16:26:58 +02:00
|
|
|
* btr/btr0cur.c, include/btr0cur.h, include/row0mysql.h,
|
|
|
|
row/row0merge.c, row/row0sel.c:
|
2010-06-29 14:56:53 +02:00
|
|
|
Fix Bug#54358 READ UNCOMMITTED access failure of off-page DYNAMIC
|
|
|
|
or COMPRESSED columns
|
|
|
|
|
2010-06-24 12:48:20 +02:00
|
|
|
2010-06-24 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc:
|
|
|
|
Fix Bug#54679 alter table causes compressed row_format to revert
|
|
|
|
to compact
|
|
|
|
|
2010-06-22 19:04:54 +02:00
|
|
|
2010-06-22 The InnoDB Team
|
|
|
|
|
|
|
|
* dict/dict0dict.c, dict/dict0mem.c, include/dict0mem.h,
|
|
|
|
include/univ.i, page/page0zip.c, row/row0merge.c:
|
|
|
|
Fix Bug#47991 InnoDB Dictionary Cache memory usage increases
|
|
|
|
indefinitely when renaming tables
|
|
|
|
|
2010-06-22 13:59:49 +02:00
|
|
|
2010-06-22 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc:
|
|
|
|
Fix Bug#54686: "field->col->mtype == type" assertion error at
|
|
|
|
row/row0sel.c
|
|
|
|
|
2010-07-04 09:12:44 +02:00
|
|
|
2010-06-22 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, innodb_bug54044.result, innodb_bug54044.test:
|
|
|
|
Fix Bug#54044 Create temporary tables and using innodb crashes.
|
|
|
|
|
2010-06-21 11:51:48 +02:00
|
|
|
2010-06-21 The InnoDB Team
|
|
|
|
|
|
|
|
* dict/dict0load.c, fil/fil0fil.c:
|
|
|
|
Fix Bug#54658: InnoDB: Warning: allocated tablespace %lu,
|
2010-11-02 08:28:05 +01:00
|
|
|
old maximum was 0 (introduced in Bug#53578 fix)
|
2010-06-21 11:51:48 +02:00
|
|
|
|
2010-06-17 04:12:04 +02:00
|
|
|
2010-06-16 The InnoDB Team
|
|
|
|
|
|
|
|
* row/row0merge.c:
|
|
|
|
Fix Bug#54330 Broken fast index creation
|
|
|
|
|
2010-06-24 14:44:50 +02:00
|
|
|
2010-06-10 The InnoDB Team
|
|
|
|
|
|
|
|
* include/log0log.ic, row/row0ins.c, row/row0purge.c,
|
|
|
|
row/row0uins.c, row/row0umod.c, row/row0upd.c:
|
|
|
|
Fix Bug#39168 ERROR: the age of the last checkpoint ... exceeds
|
|
|
|
the log group capacity
|
|
|
|
|
2010-06-08 14:12:15 +02:00
|
|
|
2010-06-08 The InnoDB Team
|
|
|
|
|
|
|
|
* dict/dict0load.c:
|
|
|
|
Fix Bug#54009 Server crashes when data is selected from non backed
|
|
|
|
up table for InnoDB plugin
|
|
|
|
|
2010-06-02 12:39:03 +02:00
|
|
|
2010-06-02 The InnoDB Team
|
|
|
|
|
|
|
|
* include/db0err.h, include/lock0lock.h, include/row0mysql.h,
|
|
|
|
lock/lock0lock.c, row/row0ins.c, row/row0mysql.c, row/row0sel.c:
|
|
|
|
Fix Bug#53674 InnoDB: Error: unlock row could not find a
|
|
|
|
4 mode lock on the record
|
|
|
|
|
2010-06-01 15:58:02 +02:00
|
|
|
2010-06-01 The InnoDB Team
|
|
|
|
|
|
|
|
* include/sync0rw.h, sync/sync0rw.c:
|
|
|
|
Fix Bug#48197 Concurrent rw_lock_free may cause assertion failure
|
|
|
|
|
2010-06-01 14:05:21 +02:00
|
|
|
2010-06-01 The InnoDB Team
|
|
|
|
|
|
|
|
* row/row0umod.c:
|
|
|
|
Fix Bug#53812 assert row/row0umod.c line 660 in txn rollback
|
|
|
|
after crash recovery
|
|
|
|
|
2010-05-26 07:38:14 +02:00
|
|
|
2010-05-25 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, include/row0mysql.h, row/row0mysql.c:
|
|
|
|
Fix Bug#53592: crash replacing duplicates into table after fast
|
|
|
|
alter table added unique key
|
|
|
|
|
2010-05-24 13:43:49 +02:00
|
|
|
2010-05-24 The InnoDB Team
|
|
|
|
|
|
|
|
* dict/dict0boot.c, dict/dict0crea.c, fil/fil0fil.c,
|
|
|
|
include/dict0boot.h, include/fil0fil.h, row/row0mysql.c:
|
|
|
|
Fix Bug#53578: assert on invalid page access, in fil_io()
|
|
|
|
|
2010-05-14 15:10:50 +02:00
|
|
|
2010-05-14 The InnoDB Team
|
|
|
|
* mysql-test/innodb_bug48024.test, mysql-test/innodb_bug48024.result,
|
|
|
|
dict/dict0dict.c, handler/ha_innodb.cc, handler/ha_innodb.h,
|
|
|
|
include/dict0dict.h, include/ha_prototypes.h, include/row0mysql.h,
|
|
|
|
include/trx0trx.h, row/row0mysql.c, trx/trx0i_s.c, trx/trx0trx.c:
|
|
|
|
Fix Bug#48024 Innodb doesn't work with multi-statements
|
|
|
|
Fix Bug#53644 InnoDB thinks that /*/ starts and ends a comment
|
|
|
|
|
2010-05-12 12:46:03 +02:00
|
|
|
2010-05-12 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/handler0alter.cc:
|
|
|
|
Fix Bug#53591 crash with fast alter table and text/blob prefix
|
|
|
|
primary key
|
|
|
|
|
2010-05-12 08:09:22 +02:00
|
|
|
2010-05-12 The InnoDB Team
|
|
|
|
|
|
|
|
* row/row0merge.c:
|
|
|
|
Fix Bug#53471 row_merge_drop_temp_indexes() refers freed memory, SEGVs
|
|
|
|
|
|
|
|
2010-05-11 The InnoDB Team
|
|
|
|
|
|
|
|
* mysql-test/innodb_bug53290.test, mysql-test/innodb_bug53290.result,
|
|
|
|
include/rem0cmp.h, rem/rem0cmp.c, row/row0merge.c:
|
|
|
|
Fix Bug#53290 wrong duplicate key error when adding a unique index
|
|
|
|
via fast alter table
|
|
|
|
|
|
|
|
2010-05-11 The InnoDB Team
|
|
|
|
* buf/buf0lru.c, include/buf0buf.ic:
|
|
|
|
Fix Bug#53307 valgrind: warnings in main.partition_innodb_plugin
|
|
|
|
|
2010-05-05 13:50:11 +02:00
|
|
|
2010-05-05 The InnoDB Team
|
|
|
|
|
|
|
|
* row/row0merge.c:
|
|
|
|
Fix Bug#53256 in a stress test, assert dict/dict0dict.c:815
|
|
|
|
table2 == NULL
|
|
|
|
|
2010-05-05 12:02:19 +02:00
|
|
|
2010-05-05 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc:
|
|
|
|
Fix Bug#53165 Setting innodb_change_buffering=DEFAULT produces
|
|
|
|
incorrect result
|
|
|
|
|
2010-05-04 15:15:17 +02:00
|
|
|
2010-05-04 The InnoDB Team
|
|
|
|
|
|
|
|
* fsp/fsp0fsp.c:
|
|
|
|
Fix Bug#53306 valgrind: warnings in innodb.innodb
|
|
|
|
|
2010-05-03 14:28:59 +02:00
|
|
|
2010-05-03 The InnoDB Team
|
|
|
|
|
|
|
|
* buf0buf.c:
|
|
|
|
Fix Bug#53248 compressed tables page checksum mismatch after
|
|
|
|
re-enabling innodb_checksums
|
|
|
|
|
2010-04-29 15:37:50 +02:00
|
|
|
2010-04-28 The InnoDB Team
|
|
|
|
|
|
|
|
* log/log0recv.h, log/log0recv.c:
|
|
|
|
Fix Bug#53122 InnoDB recovery uses too big a hash table for redo
|
|
|
|
log records
|
|
|
|
|
2010-04-29 15:27:43 +02:00
|
|
|
2010-04-27 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, lock/lock0lock.c, row/row0mysql.c,
|
|
|
|
row/row0sel.c:
|
|
|
|
Fix Bug#48607 READ UNCOMMITTED uses more locks than READ COMMITTED
|
|
|
|
in InnoDB 5.1+
|
|
|
|
|
2010-04-26 12:27:25 +02:00
|
|
|
2010-04-26 The InnoDB Team
|
|
|
|
|
|
|
|
* row/row0sel.c:
|
|
|
|
Fix Bug#52663 Lost update incrementing column value under
|
|
|
|
READ COMMITTED isolation level
|
|
|
|
|
2010-04-22 11:33:42 +02:00
|
|
|
2010-04-22 The InnoDB Team
|
|
|
|
|
|
|
|
* include/dict0boot.h, dict/dict0boot.c:
|
|
|
|
Fix a bug that prevented the crash recovery of fast CREATE INDEX
|
|
|
|
from dropping partially created indexes.
|
|
|
|
|
2010-04-21 20:53:59 +02:00
|
|
|
2010-04-21 The InnoDB Team
|
|
|
|
|
|
|
|
* btr/btr0btr.c:
|
|
|
|
Fix Bug#52964 Infinite loop in btr_page_split_and_insert()
|
|
|
|
in ROW_FORMAT=COMPRESSED
|
|
|
|
|
2010-04-21 11:50:33 +02:00
|
|
|
2010-04-21 The InnoDB Team
|
|
|
|
|
|
|
|
* data/data0data.c:
|
|
|
|
Fix Bug#52745 Failing assertion: blob_no < page_zip->n_blobs
|
|
|
|
|
2010-04-20 13:42:22 +02:00
|
|
|
2010-04-20 The InnoDB Team
|
|
|
|
|
|
|
|
* dict/dict0crea.c, handler/ha_innodb.cc, include/trx0trx.h:
|
|
|
|
Fix Bug#50495 'Row size too large' for plugin, but works for
|
|
|
|
built-in InnoDB
|
|
|
|
Only check the record size at index creation time when
|
2010-04-21 12:27:23 +02:00
|
|
|
innodb_strict_mode is set or when ROW_FORMAT is DYNAMIC or COMPRESSED.
|
2010-04-20 13:42:22 +02:00
|
|
|
|
2010-04-15 09:01:22 +02:00
|
|
|
2010-04-15 The InnoDB Team
|
|
|
|
|
|
|
|
* trx/trx0rec.c:
|
|
|
|
Fix Bug#52746 InnoDB purge thread crashed with table containing
|
|
|
|
prefix indexed blobs
|
|
|
|
|
2010-03-31 09:34:22 +02:00
|
|
|
2010-03-31 The InnoDB Team
|
|
|
|
|
|
|
|
* mysql-test/innodb_bug51920.test, mysql-test/innodb_bug51920.result,
|
|
|
|
srv/srv0srv.c:
|
|
|
|
Fix Bug#51920 InnoDB connections in row lock wait ignore KILL
|
|
|
|
until lock wait timeout
|
|
|
|
|
|
|
|
2010-03-31 The InnoDB Team
|
|
|
|
|
|
|
|
* mysql-test/innodb_bug38231.test:
|
|
|
|
Remove non-determinism in the test case.
|
|
|
|
|
2010-05-05 13:45:13 +02:00
|
|
|
2010-03-29 The InnoDB Team
|
|
|
|
|
|
|
|
InnoDB Plugin 1.0.7 released
|
|
|
|
|
2010-03-18 23:32:23 +01:00
|
|
|
2010-03-18 The InnoDB Team
|
|
|
|
|
|
|
|
* CMakeLists.txt:
|
2010-03-25 16:06:56 +01:00
|
|
|
Fix Bug#52102 InnoDB Plugin shows performance drop compared to
|
2010-03-25 16:03:17 +01:00
|
|
|
InnoDB (Windows)
|
2010-03-18 23:32:23 +01:00
|
|
|
|
2010-03-18 08:48:18 +01:00
|
|
|
2010-03-18 The InnoDB Team
|
|
|
|
|
|
|
|
* buf0buf.ic:
|
|
|
|
When comparing the time of the first access to a block against
|
2010-03-25 17:18:15 +01:00
|
|
|
innodb_old_blocks_time, use 32-bit arithmetics. The comparison was
|
|
|
|
incorrect on 64-bit systems.
|
2010-03-18 08:48:18 +01:00
|
|
|
|
2010-03-11 08:53:01 +01:00
|
|
|
2010-03-11 The InnoDB Team
|
|
|
|
|
|
|
|
* buf0buf.h, buf0buf.ic:
|
|
|
|
Fix and clarify the latching of some buf_block_t members.
|
|
|
|
Note that check_index_page_at_flush is not protected by any mutex.
|
|
|
|
Note and assert that lock_hash_val is protected by the rw-latch.
|
|
|
|
|
2010-03-10 13:02:19 +01:00
|
|
|
2010-03-10 The InnoDB Team
|
|
|
|
|
|
|
|
* trx/trx0sys.c:
|
2010-03-25 16:06:56 +01:00
|
|
|
Fix Bug#51653 outdated reference to set-variable
|
2010-03-10 13:02:19 +01:00
|
|
|
|
|
|
|
2010-03-10 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, mysql-test/innodb_bug21704.result,
|
|
|
|
mysql-test/innodb_bug47621.result, mysql-test/innodb_bug47621.test:
|
2010-03-25 16:17:52 +01:00
|
|
|
Fix Bug#47621 MySQL and InnoDB data dictionaries will become out of
|
|
|
|
sync when renaming columns
|
2010-03-10 13:02:19 +01:00
|
|
|
|
2010-03-10 12:39:06 +01:00
|
|
|
2010-03-10 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc:
|
2010-03-25 16:06:56 +01:00
|
|
|
Fix Bug#51356 Many Valgrind errors in error messages
|
2010-03-10 12:39:06 +01:00
|
|
|
with concurrent DDL
|
|
|
|
|
|
|
|
2010-03-10 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, handler/handler0alter.cc,
|
|
|
|
mysql-test/innodb_bug51378.result, mysql-test/innodb_bug51378.test:
|
2010-03-25 16:06:56 +01:00
|
|
|
Fix Bug#51378 Init 'ref_length' to correct value, in case an out
|
2010-03-10 12:39:06 +01:00
|
|
|
of bound MySQL primary_key
|
|
|
|
|
2010-03-10 09:35:06 +01:00
|
|
|
2010-03-10 The InnoDB Team
|
|
|
|
|
|
|
|
* log/log0recv.c:
|
|
|
|
Remove a bogus assertion about page numbers exceeding 0x90000000
|
2010-03-25 15:39:44 +01:00
|
|
|
in the redo log. Abort when encountering a corrupted redo log
|
2010-03-10 09:35:06 +01:00
|
|
|
record, unless innodb_force_recovery is set.
|
|
|
|
|
2010-03-09 08:41:08 +01:00
|
|
|
2010-03-09 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc:
|
|
|
|
Make SHOW ENGINE INNODB MUTEX STATUS display SUM(os_waits)
|
|
|
|
for the buffer pool block mutexes and locks.
|
|
|
|
|
2010-03-08 13:35:42 +01:00
|
|
|
2010-03-08 The InnoDB Team
|
|
|
|
|
|
|
|
* fil/fil0fil.c:
|
|
|
|
Fix ALTER TABLE ... IMPORT TABLESPACE of compressed tables.
|
|
|
|
|
2010-03-03 13:52:43 +01:00
|
|
|
2010-03-03 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/handler0alter.cc, innodb-index.result, innodb-index.test,
|
|
|
|
innodb.result, innodb.test:
|
|
|
|
Disallow a duplicate index name when creating an index.
|
|
|
|
|
2010-02-12 18:22:35 +01:00
|
|
|
2010-02-11 The InnoDB Team
|
|
|
|
|
|
|
|
* include/mem0mem.h, include/mem0mem.ic, mem/mem0mem.c:
|
2010-03-25 16:06:56 +01:00
|
|
|
Fix Bug#49535 Available memory check slows down crash
|
2010-02-12 18:22:35 +01:00
|
|
|
recovery tens of times
|
|
|
|
|
2010-02-10 09:40:55 +01:00
|
|
|
2010-02-09 The InnoDB Team
|
|
|
|
|
|
|
|
* buf/buf0buf.c:
|
2010-03-25 16:06:56 +01:00
|
|
|
Fix Bug#38901 InnoDB logs error repeatedly when trying to load
|
2010-02-10 09:40:55 +01:00
|
|
|
page into buffer pool
|
|
|
|
|
2010-02-10 08:19:52 +01:00
|
|
|
2010-02-09 The InnoDB Team
|
|
|
|
|
|
|
|
* srv/srv0srv.c:
|
|
|
|
Let the master thread sleep if the amount of work to be done is
|
|
|
|
calibrated as taking less than a second.
|
|
|
|
|
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-02-04 12:21:18 +01:00
|
|
|
2010-02-04 The InnoDB Team
|
|
|
|
|
|
|
|
* btr/btr0btr.c, btr/btr0cur.c, btr/btr0pcur.c, buf/buf0buf.c,
|
|
|
|
include/btr0btr.h, include/btr0cur.h, include/btr0pcur.h,
|
|
|
|
include/btr0pcur.ic, include/buf0buf.h, row/row0ins.c, row/row0sel.c:
|
|
|
|
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.
|
|
|
|
|
2010-02-10 09:40:55 +01:00
|
|
|
2010-02-03 The InnoDB Team
|
|
|
|
|
|
|
|
* lock/lock0lock.c:
|
|
|
|
Fix Bug#49001 SHOW INNODB STATUS deadlock info incorrect
|
|
|
|
when deadlock detection aborts
|
|
|
|
|
2010-02-03 14:01:39 +01:00
|
|
|
2010-02-03 The InnoDB Team
|
|
|
|
|
|
|
|
* buf/buf0lru.c:
|
|
|
|
Fix Bug#35077 Very slow DROP TABLE (ALTER TABLE, OPTIMIZE TABLE)
|
|
|
|
on compressed tables
|
|
|
|
|
2010-02-03 13:43:38 +01:00
|
|
|
2010-02-03 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, include/row0mysql.h, row/row0mysql.c:
|
|
|
|
Clean up CHECK TABLE error handling.
|
|
|
|
|
2010-02-01 10:35:13 +01:00
|
|
|
2010-02-01 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, mysql-test/innodb-autoinc.test,
|
|
|
|
mysql-test/innodb-autoinc.result,
|
|
|
|
mysql-test/innodb-autoinc-44030.test,
|
|
|
|
mysql-test/innodb-autoinc-44030.result:
|
|
|
|
Fix Bug#49497 Error 1467 (ER_AUTOINC_READ_FAILED) on inserting
|
|
|
|
a negative value
|
|
|
|
|
2010-06-15 11:33:26 +02:00
|
|
|
2010-01-28 The InnoDB Team
|
|
|
|
* handler/ha_innodb.h, handler/ha_innodb.cc,
|
|
|
|
handler/handler0alter.cc,
|
|
|
|
mysql-test/innodb_bug47622.test,
|
|
|
|
mysql-test/innodb_bug47622.result:
|
|
|
|
Fix Bug#47622 the new index is added before the existing ones
|
|
|
|
in MySQL, but after one in SE
|
|
|
|
|
branches/zip: Drop temporary tables at startup.
This addresses the third aspect of Bug #41609.
row_mysql_drop_temp_tables(): New function, to drop all temporary
tables. These can be distinguished by the least significant bit of
MIX_LEN. However, we will skip ROW_FORMAT=REDUNDANT tables, because in
the records for those tables, that bit may be garbage.
recv_recovery_from_checkpoint_finish(): Invoke
row_mysql_drop_temp_tables(). Normally, if the .frm files for the
temporary tables exist at startup, MySQL will ask InnoDB to drop the
temporary tables. However, if the files are deleted, for instance, by
the boot scripts of the operating system, the tables would remain in
the InnoDB data dictionary unless someone digs them up by
innodb_table_monitor and creates .frm files for dropping the tables.
rb://221 approved by Sunny Bains.
2010-01-27 09:49:01 +01:00
|
|
|
2010-01-27 The InnoDB Team
|
|
|
|
|
|
|
|
* include/row0mysql.h, log/log0recv.c, row/row0mysql.c:
|
|
|
|
Drop temporary tables at startup.
|
|
|
|
This addresses the third aspect of
|
|
|
|
Bug#41609 Crash recovery does not work for InnoDB temporary tables.
|
|
|
|
|
2010-01-21 10:22:52 +01:00
|
|
|
2010-01-21 The InnoDB Team
|
|
|
|
|
|
|
|
* buf/buf0buf.c:
|
|
|
|
Do not merge buffered inserts to compressed pages before
|
|
|
|
the redo log has been applied in crash recovery.
|
|
|
|
|
2010-01-13 16:43:44 +01:00
|
|
|
2010-01-13 The InnoDB Team
|
|
|
|
|
|
|
|
* row/row0sel.c:
|
|
|
|
On the READ UNCOMMITTED isolation level, do not attempt to access
|
2010-03-25 15:39:44 +01:00
|
|
|
a clustered index record that has been marked for deletion. The
|
2010-01-13 16:43:44 +01:00
|
|
|
built-in InnoDB in MySQL 5.1 and earlier would attempt to retrieve
|
|
|
|
a previous version of the record in this case.
|
|
|
|
|
2010-01-13 16:15:29 +01:00
|
|
|
2010-01-13 The InnoDB Team
|
|
|
|
|
|
|
|
* buf/buf0buf.c:
|
|
|
|
When disabling the adaptive hash index, check the block state
|
|
|
|
before checking block->is_hashed, because the latter may be
|
|
|
|
uninitialized right after server startup.
|
|
|
|
|
2010-01-12 12:47:11 +01:00
|
|
|
2010-01-12 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, handler/ha_innodb.h:
|
2010-03-25 16:06:56 +01:00
|
|
|
Fix Bug#46193 crash when accessing tables after enabling
|
2010-01-12 12:47:11 +01:00
|
|
|
innodb_force_recovery option
|
|
|
|
|
|
|
|
2010-01-12 The InnoDB Team
|
|
|
|
|
|
|
|
* row/row0mysql.c:
|
|
|
|
Fix Bug#49238 Creating/Dropping a temporary table while at 1023
|
|
|
|
transactions will cause assert.
|
|
|
|
|
2009-12-02 10:43:49 +01:00
|
|
|
2009-12-02 The InnoDB Team
|
|
|
|
|
2010-01-12 12:47:11 +01:00
|
|
|
* srv/srv0start.c:
|
|
|
|
Display the zlib version number at startup.
|
2009-12-02 10:43:49 +01:00
|
|
|
InnoDB compressed tables use zlib, and the implementation depends
|
|
|
|
on the zlib function compressBound(), whose definition was slightly
|
2010-03-25 15:39:44 +01:00
|
|
|
changed in zlib version 1.2.3.1 in 2006. MySQL bundles zlib 1.2.3
|
2009-12-02 10:43:49 +01:00
|
|
|
from 2005, but some installations use a more recent zlib.
|
|
|
|
|
2009-11-30 11:50:11 +01:00
|
|
|
2009-11-30 The InnoDB Team
|
|
|
|
|
|
|
|
* dict/dict0crea.c, dict/dict0mem.c, dict/dict0load.c,
|
|
|
|
dict/dict0boot.c, fil/fil0fil.c, handler/ha_innodb.cc,
|
|
|
|
include/dict0mem.h, row/row0mysql.c:
|
|
|
|
Fix the bogus warning messages for non-existing temporary
|
|
|
|
tables that were reported in
|
|
|
|
Bug#41609 Crash recovery does not work for InnoDB temporary tables.
|
|
|
|
The actual crash recovery bug was corrected on 2009-04-29.
|
|
|
|
|
2009-12-01 15:19:44 +01:00
|
|
|
2009-11-27 The InnoDB Team
|
|
|
|
|
|
|
|
InnoDB Plugin 1.0.6 released
|
|
|
|
|
2009-11-20 09:49:24 +01:00
|
|
|
2009-11-20 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc:
|
|
|
|
Add a workaround to prevent a crash due to Bug#45961 DDL on
|
|
|
|
partitioned innodb tables leaves data dictionary in an inconsistent
|
|
|
|
state
|
|
|
|
|
2009-11-19 11:10:12 +01:00
|
|
|
2009-11-19 The InnoDB Team
|
|
|
|
|
|
|
|
* btr/btr0btr.c:
|
|
|
|
Fix Bug#48469 when innodb tablespace is configured too small, crash
|
|
|
|
and corruption!
|
|
|
|
|
|
|
|
2009-11-19 The InnoDB Team
|
|
|
|
|
|
|
|
* data/data0type.c:
|
|
|
|
Fix Bug#48526 Data type for float and double is incorrectly reported
|
|
|
|
in InnoDB table monitor
|
|
|
|
|
2009-11-19 08:44:31 +01:00
|
|
|
2009-11-19 The InnoDB Team
|
|
|
|
|
|
|
|
* CMakeLists.txt:
|
|
|
|
Fix Bug#48317 cannot build innodb as static library
|
|
|
|
|
2009-11-18 10:36:18 +01:00
|
|
|
2009-11-18 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/handler0alter.cc:
|
|
|
|
Fix Bug#48782 On lock wait timeout, CREATE INDEX (creating primary key)
|
|
|
|
attempts DROP TABLE
|
|
|
|
|
2009-11-17 15:48:14 +01:00
|
|
|
2009-11-17 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, mysql-test/innodb.result,
|
|
|
|
mysql-test/innodb.test, mysql-test/innodb_bug44369.result,
|
|
|
|
mysql-test/innodb_bug44369.test, mysql-test/patches/innodb-index.diff,
|
|
|
|
row/row0mysql.c:
|
|
|
|
Report duplicate table names to the client connection, not to the
|
|
|
|
error log.
|
|
|
|
|
2009-11-12 14:49:08 +01:00
|
|
|
2009-11-12 The InnoDB Team
|
|
|
|
|
2009-11-16 19:07:39 +01:00
|
|
|
* handler/ha_innodb.cc, include/db0err.h, row/row0merge.c,
|
|
|
|
row/row0mysql.c:
|
2009-11-12 14:49:08 +01:00
|
|
|
Allow CREATE INDEX to be interrupted.
|
|
|
|
Also, when CHECK TABLE is interrupted, report ER_QUERY_INTERRUPTED.
|
|
|
|
|
2009-11-11 15:00:12 +01:00
|
|
|
2009-11-11 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, mysql-test/innodb_bug47167.result,
|
|
|
|
mysql-test/innodb_bug47167.test, mysql-test/innodb_file_format.result:
|
|
|
|
Fix Bug#47167 "set global innodb_file_format_check" cannot set value
|
|
|
|
by User-Defined Variable
|
|
|
|
|
2009-11-11 14:36:16 +01:00
|
|
|
2009-11-11 The InnoDB Team
|
|
|
|
|
|
|
|
* include/os0file.h, os/os0file.c:
|
|
|
|
Fix Bug#3139 Mysql crashes: 'windows error 995' after several selects
|
|
|
|
on a large DB
|
|
|
|
|
2009-11-04 08:57:29 +01:00
|
|
|
2009-11-04 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc:
|
|
|
|
Fix Bug#32430 'show innodb status' causes errors
|
|
|
|
Invalid (old?) table or database name in logs
|
|
|
|
|
|
|
|
2009-11-02 The InnoDB Team
|
2009-11-02 10:42:56 +01:00
|
|
|
|
|
|
|
* btr/btr0sea.c, buf/buf0buf.c, dict/dict0dict.c, fil/fil0fil.c,
|
|
|
|
ibuf/ibuf0ibuf.c, include/btr0sea.h, include/dict0dict.h,
|
|
|
|
include/fil0fil.h, include/ibuf0ibuf.h, include/lock0lock.h,
|
|
|
|
include/log0log.h, include/log0recv.h, include/mem0mem.h,
|
|
|
|
include/mem0pool.h, include/os0file.h, include/pars0pars.h,
|
|
|
|
include/srv0srv.h, include/thr0loc.h, include/trx0i_s.h,
|
|
|
|
include/trx0purge.h, include/trx0rseg.h, include/trx0sys.h,
|
|
|
|
include/trx0undo.h, include/usr0sess.h, lock/lock0lock.c,
|
|
|
|
log/log0log.c, log/log0recv.c, mem/mem0dbg.c, mem/mem0pool.c,
|
|
|
|
os/os0file.c, os/os0sync.c, os/os0thread.c, pars/lexyy.c,
|
|
|
|
pars/pars0lex.l, que/que0que.c, srv/srv0srv.c, srv/srv0start.c,
|
|
|
|
sync/sync0arr.c, sync/sync0sync.c, thr/thr0loc.c, trx/trx0i_s.c,
|
|
|
|
trx/trx0purge.c, trx/trx0rseg.c, trx/trx0sys.c, trx/trx0undo.c,
|
|
|
|
usr/usr0sess.c, ut/ut0mem.c:
|
2010-03-25 16:06:56 +01:00
|
|
|
Fix Bug#45992 innodb memory not freed after shutdown
|
|
|
|
Fix Bug#46656 InnoDB plugin: memory leaks (Valgrind)
|
2009-11-02 10:42:56 +01:00
|
|
|
|
2009-10-29 12:04:11 +01:00
|
|
|
2009-10-29 The InnoDB Team
|
|
|
|
|
2009-10-29 17:43:51 +01:00
|
|
|
* handler/ha_innodb.cc, mysql-test/innodb-autoinc.result,
|
|
|
|
mysql-test/innodb-autoinc.test:
|
|
|
|
Fix Bug#47125 auto_increment start value is ignored if an index is
|
|
|
|
created and engine=innodb
|
|
|
|
|
|
|
|
2009-10-29 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, mysql-test/innodb_bug47777.result,
|
|
|
|
mysql-test/innodb_bug47777.test:
|
|
|
|
Fix Bug#47777 innodb dies with spatial pk: Failing assertion: buf <=
|
|
|
|
original_buf + buf_len
|
|
|
|
|
|
|
|
2009-10-29 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc:
|
|
|
|
Fix Bug#38996 Race condition in ANALYZE TABLE
|
|
|
|
|
|
|
|
2009-10-29 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc:
|
|
|
|
Fix bug#42383: Can't create table 'test.bug39438'
|
|
|
|
|
|
|
|
2009-10-29 The InnoDB Team
|
|
|
|
|
|
|
|
* os/os0proc.c:
|
2009-10-30 09:02:31 +01:00
|
|
|
Fix Bug#48237 Error handling in os_mem_alloc_large appears to
|
|
|
|
be incorrect
|
2009-10-29 17:43:51 +01:00
|
|
|
|
|
|
|
2009-10-29 The InnoDB Team
|
|
|
|
|
|
|
|
* buf/buf0buf.c, buf/buf0lru.c, include/buf0buf.h, include/buf0buf.ic:
|
2009-10-29 12:04:11 +01:00
|
|
|
Fix corruption of the buf_pool->LRU_old list and improve debug
|
|
|
|
assertions.
|
|
|
|
|
2009-10-29 17:43:51 +01:00
|
|
|
2009-10-28 The InnoDB Team
|
|
|
|
|
|
|
|
* srv/srv0start.c:
|
|
|
|
Fix Bug#41490 After enlargement of InnoDB page size, the error message
|
|
|
|
become inaccurate
|
|
|
|
|
2009-10-26 14:46:18 +01:00
|
|
|
2009-10-26 The InnoDB Team
|
|
|
|
|
|
|
|
* row/row0ins.c:
|
|
|
|
When allocating a data tuple, zero out the system fields in order
|
|
|
|
to avoid Valgrind warnings about uninitialized fields in
|
|
|
|
dtuple_validate().
|
|
|
|
|
2009-10-29 17:43:51 +01:00
|
|
|
2009-10-22 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, mysql-test/innodb-zip.result,
|
|
|
|
mysql-test/innodb-zip.test, mysql-test/innodb_bug44369.result,
|
|
|
|
mysql-test/innodb_bug44369.test:
|
|
|
|
Fix Bug#47233 Innodb calls push_warning(MYSQL_ERROR::WARN_LEVEL_ERROR)
|
|
|
|
|
2009-10-19 14:06:09 +02:00
|
|
|
2009-10-19 The InnoDB Team
|
|
|
|
|
|
|
|
* mysql-test/innodb_information_schema.test:
|
|
|
|
Fix Bug#47808 innodb_information_schema.test fails when run under
|
|
|
|
valgrind
|
|
|
|
|
2009-10-15 06:21:17 +02:00
|
|
|
2009-10-15 The InnoDB Team
|
|
|
|
|
|
|
|
* include/page0page.ic:
|
|
|
|
Fix Bug#47058 Failure to compile innodb_plugin on solaris 10u7 + spro
|
|
|
|
cc/CC 5.10
|
|
|
|
|
2009-11-16 19:20:38 +01:00
|
|
|
2009-10-13 The InnoDB Team
|
|
|
|
|
|
|
|
* buf/buf0flu.c:
|
|
|
|
Call fsync() on datafiles after a batch of pages is written to disk
|
|
|
|
even when skip_innodb_doublewrite is set.
|
|
|
|
|
2009-10-29 17:43:51 +01:00
|
|
|
2009-10-05 The InnoDB Team
|
|
|
|
|
|
|
|
* buf/buf0buf.c:
|
|
|
|
Do not invalidate buffer pool while an LRU batch is active. Added code
|
|
|
|
to buf_pool_invalidate() to wait for the running batches to finish.
|
|
|
|
|
|
|
|
2009-10-01 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc:
|
|
|
|
Fix Bug#47763 typo in error message: Failed to open table %s after %lu
|
|
|
|
attemtps.
|
|
|
|
|
branches/zip: Clean up after a crash during DROP INDEX.
When InnoDB crashes while dropping an index, ensure that
the index will be completely dropped during crash recovery.
row_merge_drop_index(): Before dropping an index, rename the index to
start with TEMP_INDEX_PREFIX_STR and commit the change, so that
row_merge_drop_temp_indexes() will drop the index after crash
recovery if the server crashes while dropping the index.
fseg_inode_try_get(): New function, forked from fseg_inode_get().
Return NULL if the file segment index node is free.
fseg_inode_get(): Assert that the file segment index node is not free.
fseg_free_step(): If the file segment index node is already free,
print a diagnostic message and return TRUE.
fsp_free_seg_inode(): Write a nonzero number to FSEG_MAGIC_N, so that
allocated-and-freed file segment index nodes can be better
distinguished from uninitialized ones.
This is rb://174, addressing Issue #348.
Tested by restarting mysqld upon the completion of the added
log_write_up_to() invocation below, during DROP INDEX. The index was
dropped after crash recovery, and re-issuing the DROP INDEX did not
crash the server.
Index: btr/btr0btr.c
===================================================================
--- btr/btr0btr.c (revision 6026)
+++ btr/btr0btr.c (working copy)
@@ -42,6 +42,7 @@ Created 6/2/1994 Heikki Tuuri
#include "ibuf0ibuf.h"
#include "trx0trx.h"
+#include "log0log.h"
/*
Latching strategy of the InnoDB B-tree
--------------------------------------
@@ -873,6 +874,8 @@ leaf_loop:
goto leaf_loop;
}
+
+ log_write_up_to(mtr.end_lsn, LOG_WAIT_ALL_GROUPS, TRUE);
top_loop:
mtr_start(&mtr);
2009-10-01 12:24:33 +02:00
|
|
|
2009-10-01 The InnoDB Team
|
|
|
|
|
|
|
|
* fsp/fsp0fsp.c, row/row0merge.c:
|
2009-10-29 17:43:51 +01:00
|
|
|
Clean up after a crash during DROP INDEX. When InnoDB crashes
|
branches/zip: Clean up after a crash during DROP INDEX.
When InnoDB crashes while dropping an index, ensure that
the index will be completely dropped during crash recovery.
row_merge_drop_index(): Before dropping an index, rename the index to
start with TEMP_INDEX_PREFIX_STR and commit the change, so that
row_merge_drop_temp_indexes() will drop the index after crash
recovery if the server crashes while dropping the index.
fseg_inode_try_get(): New function, forked from fseg_inode_get().
Return NULL if the file segment index node is free.
fseg_inode_get(): Assert that the file segment index node is not free.
fseg_free_step(): If the file segment index node is already free,
print a diagnostic message and return TRUE.
fsp_free_seg_inode(): Write a nonzero number to FSEG_MAGIC_N, so that
allocated-and-freed file segment index nodes can be better
distinguished from uninitialized ones.
This is rb://174, addressing Issue #348.
Tested by restarting mysqld upon the completion of the added
log_write_up_to() invocation below, during DROP INDEX. The index was
dropped after crash recovery, and re-issuing the DROP INDEX did not
crash the server.
Index: btr/btr0btr.c
===================================================================
--- btr/btr0btr.c (revision 6026)
+++ btr/btr0btr.c (working copy)
@@ -42,6 +42,7 @@ Created 6/2/1994 Heikki Tuuri
#include "ibuf0ibuf.h"
#include "trx0trx.h"
+#include "log0log.h"
/*
Latching strategy of the InnoDB B-tree
--------------------------------------
@@ -873,6 +874,8 @@ leaf_loop:
goto leaf_loop;
}
+
+ log_write_up_to(mtr.end_lsn, LOG_WAIT_ALL_GROUPS, TRUE);
top_loop:
mtr_start(&mtr);
2009-10-01 12:24:33 +02:00
|
|
|
while dropping an index, ensure that the index will be completely
|
2009-10-29 17:43:51 +01:00
|
|
|
dropped during crash recovery. The MySQL .frm file may still
|
branches/zip: Clean up after a crash during DROP INDEX.
When InnoDB crashes while dropping an index, ensure that
the index will be completely dropped during crash recovery.
row_merge_drop_index(): Before dropping an index, rename the index to
start with TEMP_INDEX_PREFIX_STR and commit the change, so that
row_merge_drop_temp_indexes() will drop the index after crash
recovery if the server crashes while dropping the index.
fseg_inode_try_get(): New function, forked from fseg_inode_get().
Return NULL if the file segment index node is free.
fseg_inode_get(): Assert that the file segment index node is not free.
fseg_free_step(): If the file segment index node is already free,
print a diagnostic message and return TRUE.
fsp_free_seg_inode(): Write a nonzero number to FSEG_MAGIC_N, so that
allocated-and-freed file segment index nodes can be better
distinguished from uninitialized ones.
This is rb://174, addressing Issue #348.
Tested by restarting mysqld upon the completion of the added
log_write_up_to() invocation below, during DROP INDEX. The index was
dropped after crash recovery, and re-issuing the DROP INDEX did not
crash the server.
Index: btr/btr0btr.c
===================================================================
--- btr/btr0btr.c (revision 6026)
+++ btr/btr0btr.c (working copy)
@@ -42,6 +42,7 @@ Created 6/2/1994 Heikki Tuuri
#include "ibuf0ibuf.h"
#include "trx0trx.h"
+#include "log0log.h"
/*
Latching strategy of the InnoDB B-tree
--------------------------------------
@@ -873,6 +874,8 @@ leaf_loop:
goto leaf_loop;
}
+
+ log_write_up_to(mtr.end_lsn, LOG_WAIT_ALL_GROUPS, TRUE);
top_loop:
mtr_start(&mtr);
2009-10-01 12:24:33 +02:00
|
|
|
contain the dropped index, but there is little that we can do
|
|
|
|
about it.
|
|
|
|
|
2009-09-28 14:03:58 +02:00
|
|
|
2009-09-28 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc:
|
|
|
|
When a secondary index exists in the MySQL .frm file but not in
|
|
|
|
the InnoDB data dictionary, return an error instead of letting an
|
|
|
|
assertion fail in index_read.
|
|
|
|
|
2009-09-28 09:52:25 +02:00
|
|
|
2009-09-28 The InnoDB Team
|
|
|
|
|
2009-09-29 09:09:52 +02:00
|
|
|
* btr/btr0btr.c, buf/buf0buf.c, include/page0page.h,
|
|
|
|
include/page0zip.h, page/page0cur.c, page/page0page.c,
|
|
|
|
page/page0zip.c:
|
2009-09-28 09:52:25 +02:00
|
|
|
Do not write to PAGE_INDEX_ID when restoring an uncompressed page
|
2009-10-29 17:43:51 +01:00
|
|
|
after a compression failure. The field should only be written
|
|
|
|
when creating a B-tree page. This fix addresses a race condition
|
2009-09-28 09:52:25 +02:00
|
|
|
in a debug assertion.
|
|
|
|
|
2009-09-28 09:33:59 +02:00
|
|
|
2009-09-28 The InnoDB Team
|
|
|
|
|
|
|
|
* fil/fil0fil.c:
|
|
|
|
Try to prevent the reuse of tablespace identifiers after InnoDB
|
2009-10-29 17:43:51 +01:00
|
|
|
has crashed during table creation. Also, refuse to start if files
|
2009-09-28 09:33:59 +02:00
|
|
|
with duplicate tablespace identifiers are encountered.
|
|
|
|
|
2009-09-28 08:10:29 +02:00
|
|
|
2009-09-25 The InnoDB Team
|
|
|
|
|
|
|
|
* include/os0file.h, os/os0file.c:
|
|
|
|
Fix Bug#47055 unconditional exit(1) on ERROR_WORKING_SET_QUOTA
|
|
|
|
1453 (0x5AD) for InnoDB backend
|
|
|
|
|
2009-09-21 06:26:04 +02:00
|
|
|
2009-09-19 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, mysql-test/innodb-consistent-master.opt,
|
|
|
|
mysql-test/innodb-consistent.result,
|
|
|
|
mysql-test/innodb-consistent.test:
|
|
|
|
Fix Bug#37232 Innodb might get too many read locks for DML with
|
|
|
|
repeatable-read
|
|
|
|
|
|
|
|
2009-09-19 The InnoDB Team
|
|
|
|
|
|
|
|
* fsp/fsp0fsp.c:
|
|
|
|
Fix Bug#31183 Tablespace full problems not reported in error log,
|
|
|
|
error message unclear
|
|
|
|
|
2009-09-17 07:32:08 +02:00
|
|
|
2009-09-17 The InnoDB Team
|
|
|
|
|
|
|
|
* mysql-test/innodb-zip.result, mysql-test/innodb-zip.test:
|
2009-09-18 05:59:30 +02:00
|
|
|
Make the test pass with zlib 1.2.3.3. Apparently, the definition
|
2009-09-17 07:32:08 +02:00
|
|
|
of compressBound() has changed between zlib versions, and the
|
|
|
|
maximum record size of a table with 1K compressed page size has
|
2009-09-18 05:59:30 +02:00
|
|
|
been reduced by one byte. This is an arbitrary test. In practical
|
|
|
|
applications, for good write performance, the compressed page size
|
|
|
|
should be chosen to be bigger than the absolute minimum.
|
2009-09-17 07:32:08 +02:00
|
|
|
|
2009-09-16 19:47:22 +02:00
|
|
|
2009-09-16 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc:
|
|
|
|
Fix Bug#46256 drop table with unknown collation crashes innodb
|
|
|
|
|
|
|
|
2009-09-16 The InnoDB Team
|
|
|
|
|
|
|
|
* dict/dict0dict.c, handler/ha_innodb.cc,
|
|
|
|
mysql-test/innodb_bug44369.result, mysql-test/innodb_bug44369.test,
|
|
|
|
row/row0mysql.c:
|
|
|
|
Fix Bug#44369 InnoDB: Does not uniformly disallow disallowed column
|
|
|
|
names
|
|
|
|
|
|
|
|
2009-09-16 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, include/db0err.h,
|
|
|
|
mysql-test/innodb_bug46000.result, mysql-test/innodb_bug46000.test:
|
|
|
|
Fix Bug#46000 using index called GEN_CLUST_INDEX crashes server
|
|
|
|
|
2009-09-02 08:08:45 +02:00
|
|
|
2009-09-02 The InnoDB Team
|
|
|
|
|
|
|
|
* include/lock0lock.h, include/row0mysql.h, lock/lock0lock.c,
|
|
|
|
row/row0mysql.c:
|
|
|
|
Fix a regression introduced by the fix for MySQL bug#26316. We check
|
|
|
|
whether a transaction holds any AUTOINC locks before we acquire
|
2009-09-16 19:37:13 +02:00
|
|
|
the kernel mutex and release those locks.
|
2009-09-02 08:08:45 +02:00
|
|
|
|
2009-08-27 12:56:24 +02:00
|
|
|
2009-08-27 The InnoDB Team
|
|
|
|
|
|
|
|
* dict/dict0dict.c, include/dict0dict.h,
|
|
|
|
mysql-test/innodb_bug44571.result, mysql-test/innodb_bug44571.test:
|
|
|
|
Fix Bug#44571 InnoDB Plugin crashes on ADD INDEX
|
|
|
|
|
branches/zip: Fix a critical bug in fast index creation that could
corrupt the created indexes.
row_merge(): Make "half" an in/out parameter. Determine the offset of
half the output file. Copy the last blocks record-by-record instead of
block-by-block, so that the records can be counted. Check that the
input and output have matching n_rec.
row_merge_sort(): Do not assume that two blocks of size N are merged
into a block of size 2*N. The output block can be shorter than the
input if the last page of each input block is almost empty. Use an
accurate termination condition, based on the "half" computed by
row_merge().
row_merge_read(), row_merge_write(), row_merge_blocks(): Add debug output.
merge_file_t, row_merge_file_create(): Add n_rec, the number of records
in the merge file.
row_merge_read_clustered_index(): Update n_rec.
row_merge_blocks(): Update and check n_rec.
row_merge_blocks_copy(): New function, for copying the last blocks in
row_merge(). Update and check n_rec.
This bug was discovered with a user-supplied test case that creates an
index where the initial temporary file is 249 one-megabyte blocks and
the merged files become smaller. In the test, possible merge record
sizes are 10, 18, and 26 bytes.
rb://150 approved by Sunny Bains. This addresses Issue #320.
2009-08-27 09:31:17 +02:00
|
|
|
2009-08-27 The InnoDB Team
|
|
|
|
|
|
|
|
* row/row0merge.c:
|
|
|
|
Fix a bug in the merge sort that can corrupt indexes in fast index
|
2009-09-18 05:59:30 +02:00
|
|
|
creation. Add some consistency checks. Check that the number of
|
branches/zip: Fix a critical bug in fast index creation that could
corrupt the created indexes.
row_merge(): Make "half" an in/out parameter. Determine the offset of
half the output file. Copy the last blocks record-by-record instead of
block-by-block, so that the records can be counted. Check that the
input and output have matching n_rec.
row_merge_sort(): Do not assume that two blocks of size N are merged
into a block of size 2*N. The output block can be shorter than the
input if the last page of each input block is almost empty. Use an
accurate termination condition, based on the "half" computed by
row_merge().
row_merge_read(), row_merge_write(), row_merge_blocks(): Add debug output.
merge_file_t, row_merge_file_create(): Add n_rec, the number of records
in the merge file.
row_merge_read_clustered_index(): Update n_rec.
row_merge_blocks(): Update and check n_rec.
row_merge_blocks_copy(): New function, for copying the last blocks in
row_merge(). Update and check n_rec.
This bug was discovered with a user-supplied test case that creates an
index where the initial temporary file is 249 one-megabyte blocks and
the merged files become smaller. In the test, possible merge record
sizes are 10, 18, and 26 bytes.
rb://150 approved by Sunny Bains. This addresses Issue #320.
2009-08-27 09:31:17 +02:00
|
|
|
records remains constant in every merge sort pass.
|
|
|
|
|
branches/zip: Replace the constant 3/8 ratio that controls the LRU_old
size with the settable global variable innodb_old_blocks_pct. The
minimum and maximum values are 5 and 95 per cent, respectively. The
default is 100*3/8, in line with the old behavior.
ut_time_ms(): New utility function, to return the current time in
milliseconds. TODO: Is there a more efficient timestamp function, such
as rdtsc divided by a power of two?
buf_LRU_old_threshold_ms: New variable, corresponding to
innodb_old_blocks_time. The value 0 is the default behaviour: no
timeout before making blocks 'new'.
bpage->accessed, bpage->LRU_position, buf_pool->ulint_clock: Remove.
bpage->access_time: New field, replacing bpage->accessed. Protected by
buf_pool_mutex instead of bpage->mutex. Updated when a page is created
or accessed the first time in the buffer pool.
buf_LRU_old_ratio, innobase_old_blocks_pct: New variables,
corresponding to innodb_old_blocks_pct
buf_LRU_old_ratio_update(), innobase_old_blocks_pct_update(): Update
functions for buf_LRU_old_ratio, innobase_old_blocks_pct.
buf_page_peek_if_too_old(): Compare ut_time_ms() to bpage->access_time
if buf_LRU_old_threshold_ms && bpage->old. Else observe
buf_LRU_old_ratio and bpage->freed_page_clock.
buf_pool_t: Add n_pages_made_young, n_pages_not_made_young,
n_pages_made_young_old, n_pages_not_made_young, for statistics.
buf_print(): Display buf_pool->n_pages_made_young,
buf_pool->n_pages_not_made_young. This function is only for crash
diagnostics.
buf_print_io(): Display buf_pool->LRU_old_len and quantities derived
from buf_pool->n_pages_made_young, buf_pool->n_pages_not_made_young.
This function is invoked by SHOW ENGINE INNODB STATUS.
rb://129 approved by Heikki Tuuri. This addresses Bug #45015.
2009-08-27 08:25:00 +02:00
|
|
|
2009-08-27 The InnoDB Team
|
|
|
|
|
2009-09-18 05:59:30 +02:00
|
|
|
* buf/buf0buf.c, buf/buf0lru.c, buf/buf0rea.c, handler/ha_innodb.cc,
|
|
|
|
include/buf0buf.h, include/buf0buf.ic, include/buf0lru.h,
|
|
|
|
include/ut0ut.h, ut/ut0ut.c:
|
branches/zip: Replace the constant 3/8 ratio that controls the LRU_old
size with the settable global variable innodb_old_blocks_pct. The
minimum and maximum values are 5 and 95 per cent, respectively. The
default is 100*3/8, in line with the old behavior.
ut_time_ms(): New utility function, to return the current time in
milliseconds. TODO: Is there a more efficient timestamp function, such
as rdtsc divided by a power of two?
buf_LRU_old_threshold_ms: New variable, corresponding to
innodb_old_blocks_time. The value 0 is the default behaviour: no
timeout before making blocks 'new'.
bpage->accessed, bpage->LRU_position, buf_pool->ulint_clock: Remove.
bpage->access_time: New field, replacing bpage->accessed. Protected by
buf_pool_mutex instead of bpage->mutex. Updated when a page is created
or accessed the first time in the buffer pool.
buf_LRU_old_ratio, innobase_old_blocks_pct: New variables,
corresponding to innodb_old_blocks_pct
buf_LRU_old_ratio_update(), innobase_old_blocks_pct_update(): Update
functions for buf_LRU_old_ratio, innobase_old_blocks_pct.
buf_page_peek_if_too_old(): Compare ut_time_ms() to bpage->access_time
if buf_LRU_old_threshold_ms && bpage->old. Else observe
buf_LRU_old_ratio and bpage->freed_page_clock.
buf_pool_t: Add n_pages_made_young, n_pages_not_made_young,
n_pages_made_young_old, n_pages_not_made_young, for statistics.
buf_print(): Display buf_pool->n_pages_made_young,
buf_pool->n_pages_not_made_young. This function is only for crash
diagnostics.
buf_print_io(): Display buf_pool->LRU_old_len and quantities derived
from buf_pool->n_pages_made_young, buf_pool->n_pages_not_made_young.
This function is invoked by SHOW ENGINE INNODB STATUS.
rb://129 approved by Heikki Tuuri. This addresses Bug #45015.
2009-08-27 08:25:00 +02:00
|
|
|
Make it possible to tune the buffer pool LRU eviction policy to be
|
2009-09-18 05:59:30 +02:00
|
|
|
more resistant against index scans. Introduce the settable global
|
branches/zip: Replace the constant 3/8 ratio that controls the LRU_old
size with the settable global variable innodb_old_blocks_pct. The
minimum and maximum values are 5 and 95 per cent, respectively. The
default is 100*3/8, in line with the old behavior.
ut_time_ms(): New utility function, to return the current time in
milliseconds. TODO: Is there a more efficient timestamp function, such
as rdtsc divided by a power of two?
buf_LRU_old_threshold_ms: New variable, corresponding to
innodb_old_blocks_time. The value 0 is the default behaviour: no
timeout before making blocks 'new'.
bpage->accessed, bpage->LRU_position, buf_pool->ulint_clock: Remove.
bpage->access_time: New field, replacing bpage->accessed. Protected by
buf_pool_mutex instead of bpage->mutex. Updated when a page is created
or accessed the first time in the buffer pool.
buf_LRU_old_ratio, innobase_old_blocks_pct: New variables,
corresponding to innodb_old_blocks_pct
buf_LRU_old_ratio_update(), innobase_old_blocks_pct_update(): Update
functions for buf_LRU_old_ratio, innobase_old_blocks_pct.
buf_page_peek_if_too_old(): Compare ut_time_ms() to bpage->access_time
if buf_LRU_old_threshold_ms && bpage->old. Else observe
buf_LRU_old_ratio and bpage->freed_page_clock.
buf_pool_t: Add n_pages_made_young, n_pages_not_made_young,
n_pages_made_young_old, n_pages_not_made_young, for statistics.
buf_print(): Display buf_pool->n_pages_made_young,
buf_pool->n_pages_not_made_young. This function is only for crash
diagnostics.
buf_print_io(): Display buf_pool->LRU_old_len and quantities derived
from buf_pool->n_pages_made_young, buf_pool->n_pages_not_made_young.
This function is invoked by SHOW ENGINE INNODB STATUS.
rb://129 approved by Heikki Tuuri. This addresses Bug #45015.
2009-08-27 08:25:00 +02:00
|
|
|
variables innodb_old_blocks_pct and innodb_old_blocks_time for
|
2009-09-18 05:59:30 +02:00
|
|
|
controlling the buffer pool eviction policy. The parameter
|
branches/zip: Replace the constant 3/8 ratio that controls the LRU_old
size with the settable global variable innodb_old_blocks_pct. The
minimum and maximum values are 5 and 95 per cent, respectively. The
default is 100*3/8, in line with the old behavior.
ut_time_ms(): New utility function, to return the current time in
milliseconds. TODO: Is there a more efficient timestamp function, such
as rdtsc divided by a power of two?
buf_LRU_old_threshold_ms: New variable, corresponding to
innodb_old_blocks_time. The value 0 is the default behaviour: no
timeout before making blocks 'new'.
bpage->accessed, bpage->LRU_position, buf_pool->ulint_clock: Remove.
bpage->access_time: New field, replacing bpage->accessed. Protected by
buf_pool_mutex instead of bpage->mutex. Updated when a page is created
or accessed the first time in the buffer pool.
buf_LRU_old_ratio, innobase_old_blocks_pct: New variables,
corresponding to innodb_old_blocks_pct
buf_LRU_old_ratio_update(), innobase_old_blocks_pct_update(): Update
functions for buf_LRU_old_ratio, innobase_old_blocks_pct.
buf_page_peek_if_too_old(): Compare ut_time_ms() to bpage->access_time
if buf_LRU_old_threshold_ms && bpage->old. Else observe
buf_LRU_old_ratio and bpage->freed_page_clock.
buf_pool_t: Add n_pages_made_young, n_pages_not_made_young,
n_pages_made_young_old, n_pages_not_made_young, for statistics.
buf_print(): Display buf_pool->n_pages_made_young,
buf_pool->n_pages_not_made_young. This function is only for crash
diagnostics.
buf_print_io(): Display buf_pool->LRU_old_len and quantities derived
from buf_pool->n_pages_made_young, buf_pool->n_pages_not_made_young.
This function is invoked by SHOW ENGINE INNODB STATUS.
rb://129 approved by Heikki Tuuri. This addresses Bug #45015.
2009-08-27 08:25:00 +02:00
|
|
|
innodb_old_blocks_pct (5..95) controls the desired amount of "old"
|
2009-09-18 05:59:30 +02:00
|
|
|
blocks in the LRU list. The default is 37, corresponding to the
|
|
|
|
old fixed ratio of 3/8. Each time a block is accessed, it will be
|
branches/zip: Replace the constant 3/8 ratio that controls the LRU_old
size with the settable global variable innodb_old_blocks_pct. The
minimum and maximum values are 5 and 95 per cent, respectively. The
default is 100*3/8, in line with the old behavior.
ut_time_ms(): New utility function, to return the current time in
milliseconds. TODO: Is there a more efficient timestamp function, such
as rdtsc divided by a power of two?
buf_LRU_old_threshold_ms: New variable, corresponding to
innodb_old_blocks_time. The value 0 is the default behaviour: no
timeout before making blocks 'new'.
bpage->accessed, bpage->LRU_position, buf_pool->ulint_clock: Remove.
bpage->access_time: New field, replacing bpage->accessed. Protected by
buf_pool_mutex instead of bpage->mutex. Updated when a page is created
or accessed the first time in the buffer pool.
buf_LRU_old_ratio, innobase_old_blocks_pct: New variables,
corresponding to innodb_old_blocks_pct
buf_LRU_old_ratio_update(), innobase_old_blocks_pct_update(): Update
functions for buf_LRU_old_ratio, innobase_old_blocks_pct.
buf_page_peek_if_too_old(): Compare ut_time_ms() to bpage->access_time
if buf_LRU_old_threshold_ms && bpage->old. Else observe
buf_LRU_old_ratio and bpage->freed_page_clock.
buf_pool_t: Add n_pages_made_young, n_pages_not_made_young,
n_pages_made_young_old, n_pages_not_made_young, for statistics.
buf_print(): Display buf_pool->n_pages_made_young,
buf_pool->n_pages_not_made_young. This function is only for crash
diagnostics.
buf_print_io(): Display buf_pool->LRU_old_len and quantities derived
from buf_pool->n_pages_made_young, buf_pool->n_pages_not_made_young.
This function is invoked by SHOW ENGINE INNODB STATUS.
rb://129 approved by Heikki Tuuri. This addresses Bug #45015.
2009-08-27 08:25:00 +02:00
|
|
|
moved to the "new" blocks if its first access was at least
|
|
|
|
innodb_old_blocks_time milliseconds ago (default 0, meaning every
|
2009-09-18 05:59:30 +02:00
|
|
|
block). The idea is that in index scans, blocks will be accessed
|
branches/zip: Replace the constant 3/8 ratio that controls the LRU_old
size with the settable global variable innodb_old_blocks_pct. The
minimum and maximum values are 5 and 95 per cent, respectively. The
default is 100*3/8, in line with the old behavior.
ut_time_ms(): New utility function, to return the current time in
milliseconds. TODO: Is there a more efficient timestamp function, such
as rdtsc divided by a power of two?
buf_LRU_old_threshold_ms: New variable, corresponding to
innodb_old_blocks_time. The value 0 is the default behaviour: no
timeout before making blocks 'new'.
bpage->accessed, bpage->LRU_position, buf_pool->ulint_clock: Remove.
bpage->access_time: New field, replacing bpage->accessed. Protected by
buf_pool_mutex instead of bpage->mutex. Updated when a page is created
or accessed the first time in the buffer pool.
buf_LRU_old_ratio, innobase_old_blocks_pct: New variables,
corresponding to innodb_old_blocks_pct
buf_LRU_old_ratio_update(), innobase_old_blocks_pct_update(): Update
functions for buf_LRU_old_ratio, innobase_old_blocks_pct.
buf_page_peek_if_too_old(): Compare ut_time_ms() to bpage->access_time
if buf_LRU_old_threshold_ms && bpage->old. Else observe
buf_LRU_old_ratio and bpage->freed_page_clock.
buf_pool_t: Add n_pages_made_young, n_pages_not_made_young,
n_pages_made_young_old, n_pages_not_made_young, for statistics.
buf_print(): Display buf_pool->n_pages_made_young,
buf_pool->n_pages_not_made_young. This function is only for crash
diagnostics.
buf_print_io(): Display buf_pool->LRU_old_len and quantities derived
from buf_pool->n_pages_made_young, buf_pool->n_pages_not_made_young.
This function is invoked by SHOW ENGINE INNODB STATUS.
rb://129 approved by Heikki Tuuri. This addresses Bug #45015.
2009-08-27 08:25:00 +02:00
|
|
|
a few times within innodb_old_blocks_time, and they will remain in
|
2009-09-18 05:59:30 +02:00
|
|
|
the "old" section of the LRU list. Thus, when innodb_old_blocks_time
|
|
|
|
is nonzero, blocks retrieved for one-time index scans will be more
|
|
|
|
likely candidates for eviction than blocks that are accessed in
|
|
|
|
random patterns.
|
branches/zip: Replace the constant 3/8 ratio that controls the LRU_old
size with the settable global variable innodb_old_blocks_pct. The
minimum and maximum values are 5 and 95 per cent, respectively. The
default is 100*3/8, in line with the old behavior.
ut_time_ms(): New utility function, to return the current time in
milliseconds. TODO: Is there a more efficient timestamp function, such
as rdtsc divided by a power of two?
buf_LRU_old_threshold_ms: New variable, corresponding to
innodb_old_blocks_time. The value 0 is the default behaviour: no
timeout before making blocks 'new'.
bpage->accessed, bpage->LRU_position, buf_pool->ulint_clock: Remove.
bpage->access_time: New field, replacing bpage->accessed. Protected by
buf_pool_mutex instead of bpage->mutex. Updated when a page is created
or accessed the first time in the buffer pool.
buf_LRU_old_ratio, innobase_old_blocks_pct: New variables,
corresponding to innodb_old_blocks_pct
buf_LRU_old_ratio_update(), innobase_old_blocks_pct_update(): Update
functions for buf_LRU_old_ratio, innobase_old_blocks_pct.
buf_page_peek_if_too_old(): Compare ut_time_ms() to bpage->access_time
if buf_LRU_old_threshold_ms && bpage->old. Else observe
buf_LRU_old_ratio and bpage->freed_page_clock.
buf_pool_t: Add n_pages_made_young, n_pages_not_made_young,
n_pages_made_young_old, n_pages_not_made_young, for statistics.
buf_print(): Display buf_pool->n_pages_made_young,
buf_pool->n_pages_not_made_young. This function is only for crash
diagnostics.
buf_print_io(): Display buf_pool->LRU_old_len and quantities derived
from buf_pool->n_pages_made_young, buf_pool->n_pages_not_made_young.
This function is invoked by SHOW ENGINE INNODB STATUS.
rb://129 approved by Heikki Tuuri. This addresses Bug #45015.
2009-08-27 08:25:00 +02:00
|
|
|
|
2009-08-27 08:01:42 +02:00
|
|
|
2009-08-26 The InnoDB Team
|
|
|
|
|
2009-08-27 08:03:15 +02:00
|
|
|
* handler/ha_innodb.cc, os/os0file.c:
|
2009-08-27 08:01:42 +02:00
|
|
|
Fix Bug#42885 buf_read_ahead_random, buf_read_ahead_linear counters,
|
|
|
|
thread wakeups
|
|
|
|
|
2009-08-20 09:18:29 +02:00
|
|
|
2009-08-20 The InnoDB Team
|
|
|
|
|
|
|
|
* lock/lock0lock.c:
|
2009-08-20 10:20:22 +02:00
|
|
|
Fix Bug#46650 Innodb assertion autoinc_lock == lock in
|
|
|
|
lock_table_remove_low on INSERT SELECT
|
2009-08-20 09:18:29 +02:00
|
|
|
|
2009-08-13 09:46:33 +02:00
|
|
|
2009-08-13 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/handler0alter.cc:
|
|
|
|
Fix Bug#46657 InnoDB plugin: invalid read in index_merge_innodb test
|
2009-08-20 10:20:22 +02:00
|
|
|
(Valgrind)
|
2009-08-13 09:46:33 +02:00
|
|
|
|
2009-09-29 14:19:59 +02:00
|
|
|
2009-08-11 The InnoDB Team
|
2009-09-29 11:15:25 +02:00
|
|
|
|
|
|
|
InnoDB Plugin 1.0.4 released
|
|
|
|
|
2009-07-20 18:14:30 +02:00
|
|
|
2009-07-20 The InnoDB Team
|
|
|
|
|
2009-07-21 10:31:26 +02:00
|
|
|
* buf/buf0rea.c, handler/ha_innodb.cc, include/srv0srv.h,
|
|
|
|
srv/srv0srv.c:
|
2009-07-20 18:14:30 +02:00
|
|
|
Change the read ahead parameter name to innodb_read_ahead_threshold.
|
|
|
|
Change the meaning of this parameter to signify the number of pages
|
|
|
|
that must be sequentially accessed for InnoDB to trigger a readahead
|
|
|
|
request.
|
|
|
|
|
2009-07-20 09:51:47 +02:00
|
|
|
2009-07-20 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc:
|
|
|
|
Fix Bug#39802 On Windows, 32-bit time_t should be enforced
|
|
|
|
|
2009-07-16 14:45:28 +02:00
|
|
|
2009-07-16 The InnoDB Team
|
|
|
|
|
|
|
|
* include/univ.i:
|
|
|
|
Support inlining of functions and prefetch with Sun Studio.
|
2009-07-21 10:31:26 +02:00
|
|
|
These changes are based on contribution from Sun Microsystems Inc.
|
|
|
|
under a BSD license.
|
2009-07-16 14:45:28 +02:00
|
|
|
|
2009-07-20 09:51:47 +02:00
|
|
|
2009-07-14 The InnoDB Team
|
|
|
|
|
|
|
|
* fil/fil0fil.c:
|
|
|
|
Fix Bug#45814 URL reference in InnoDB server errors needs adjusting to
|
|
|
|
match documentation
|
|
|
|
|
|
|
|
2009-07-14 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, mysql-test/innodb_bug21704.result,
|
|
|
|
mysql-test/innodb_bug21704.test:
|
|
|
|
Fix Bug#21704 Renaming column does not update FK definition
|
|
|
|
|
2009-07-10 10:04:20 +02:00
|
|
|
2009-07-10 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, srv/srv0srv.c:
|
|
|
|
Change the defaults for
|
|
|
|
innodb_sync_spin_loops: 20 -> 30
|
|
|
|
innodb_spin_wait_delay: 5 -> 6
|
|
|
|
|
2009-07-10 22:47:34 +02:00
|
|
|
2009-07-08 The InnoDB Team
|
|
|
|
|
2009-07-21 10:31:26 +02:00
|
|
|
* buf/buf0flu.c, handler/ha_innodb.cc, include/buf0flu.h,
|
|
|
|
include/log0log.h, include/log0log.ic, include/srv0srv.h,
|
|
|
|
srv/srv0srv.c:
|
2009-07-10 22:47:34 +02:00
|
|
|
Implement the adaptive flushing of dirty pages, which uses
|
|
|
|
a heuristics based flushing rate of dirty pages to avoid IO
|
|
|
|
bursts at checkpoint. Expose new configure knob
|
|
|
|
innodb_adaptive_flushing to control whether the new flushing
|
|
|
|
algorithm should be used.
|
|
|
|
|
|
|
|
2009-07-07 The InnoDB Team
|
|
|
|
|
2009-07-21 10:31:26 +02:00
|
|
|
* handler/ha_innodb.cc, include/srv0srv.h, log/log0log.c,
|
|
|
|
srv/srv0srv.c:
|
2009-07-10 22:47:34 +02:00
|
|
|
Implement IO capacity tuning. Expose new configure knob
|
|
|
|
innodb_io_capacity to control the master threads IO rate. The
|
|
|
|
ibuf merge is also changed from synchronous to asynchronous.
|
|
|
|
These changes are based on contribution from Google Inc.
|
|
|
|
under a BSD license.
|
|
|
|
|
2009-07-02 14:12:36 +02:00
|
|
|
2009-07-02 The InnoDB Team
|
|
|
|
|
|
|
|
* include/ut0ut.h, plug.in, ut/ut0ut.c:
|
|
|
|
Use the PAUSE instruction inside the spinloop if it is available,
|
|
|
|
Thanks to Mikael Ronstrom <mikael@mysql.com>.
|
|
|
|
|
2009-06-29 14:49:54 +02:00
|
|
|
2009-06-29 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, mysql-test/innodb_file_format.test,
|
|
|
|
mysql-test/innodb_file_format.result:
|
|
|
|
Do not crash on SET GLOBAL innodb_file_format=DEFAULT
|
|
|
|
or SET GLOBAL innodb_file_format_check=DEFAULT.
|
|
|
|
|
2009-06-29 10:54:53 +02:00
|
|
|
2009-06-29 The InnoDB Team
|
|
|
|
|
|
|
|
* buf/buf0buf.c, buf/buf0rea.c, lock/lock0lock.c:
|
|
|
|
Tolerate missing tablespaces during crash recovery and when
|
|
|
|
printing information on locks.
|
|
|
|
|
2009-06-29 10:24:27 +02:00
|
|
|
2009-06-29 The InnoDB Team
|
|
|
|
|
|
|
|
* buf/buf0buf.c:
|
|
|
|
Fix a race condition when reading buf_fix_count.
|
|
|
|
Currently, it is not being protected by the buffer pool mutex,
|
|
|
|
but by the block mutex.
|
|
|
|
|
2009-06-29 09:52:30 +02:00
|
|
|
2009-06-29 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/handler0alter.cc:
|
|
|
|
Start the user transaction prebuilt->trx if it was not started
|
2009-07-21 10:31:26 +02:00
|
|
|
before adding or dropping an index. Without this fix, the
|
2009-06-29 09:52:30 +02:00
|
|
|
table could be locked outside an active transaction.
|
|
|
|
|
2009-06-25 13:55:52 +02:00
|
|
|
2009-06-25 The InnoDB Team
|
|
|
|
|
2009-07-21 10:31:26 +02:00
|
|
|
* handler/ha_innodb.cc, mysql-test/innodb_bug42101.test,
|
2009-06-25 13:55:52 +02:00
|
|
|
mysql-test/innodb_bug42101.result,
|
|
|
|
mysql-test/innodb_bug42101-nonzero.test,
|
|
|
|
mysql-test/innodb_bug42101-nonzero.result:
|
|
|
|
Fix Bug#45749 Race condition in SET GLOBAL
|
|
|
|
innodb_commit_concurrency=DEFAULT
|
|
|
|
|
2009-06-25 11:45:57 +02:00
|
|
|
2009-06-25 The InnoDB Team
|
|
|
|
|
|
|
|
* dict/dict0dict.c:
|
|
|
|
When an index column cannot be found in the table during index
|
|
|
|
creation, display additional diagnostic before an assertion failure.
|
2010-03-25 16:06:56 +01:00
|
|
|
This does NOT fix Bug#44571 InnoDB Plugin crashes on ADD INDEX,
|
2009-06-25 11:45:57 +02:00
|
|
|
but it helps understand the reason of the crash.
|
|
|
|
|
2009-06-17 14:03:45 +02:00
|
|
|
2009-06-17 The InnoDB Team
|
|
|
|
|
|
|
|
* row/row0merge.c:
|
|
|
|
Fix Bug#45426 UNIV_DEBUG build cause assertion error at CREATE INDEX
|
|
|
|
|
2009-06-17 13:56:12 +02:00
|
|
|
2009-06-17 The InnoDB Team
|
|
|
|
|
|
|
|
* mysql-test/innodb_bug45357.result, mysql-test/innodb_bug45357.test,
|
|
|
|
row/row0mysql.c:
|
|
|
|
Fix Bug#45357 5.1.35 crashes with Failing assertion: index->type &
|
|
|
|
DICT_CLUSTERED
|
|
|
|
|
|
|
|
2009-06-17 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, mysql-test/innodb-autoinc.result,
|
|
|
|
mysql-test/innodb-autoinc.test:
|
|
|
|
Fix Bug#44030 Error: (1500) Couldn't read the MAX(ID) autoinc value
|
|
|
|
from the index (PRIMARY)
|
|
|
|
|
2009-06-16 10:03:27 +02:00
|
|
|
2009-06-11 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, mysql-test/innodb.result, srv/srv0srv.c:
|
|
|
|
Change the following defaults:
|
|
|
|
max_dirty_pages_pct: from 90 to 75, max allowed from 100 to 99
|
|
|
|
additional_mem_pool_size: from 1 to 8 MB
|
|
|
|
buffer_pool_size: from 8 to 128 MB
|
|
|
|
log_buffer_size: from 1 to 8 MB
|
|
|
|
read_io_threads/write_io_threads: from 1 to 4
|
|
|
|
|
|
|
|
2009-06-09 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, include/trx0trx.h, trx/trx0trx.c:
|
|
|
|
Enable Group Commit functionality that was broken in 5.0 when
|
|
|
|
distributed transactions were introduced.
|
|
|
|
|
2009-06-05 17:34:11 +02:00
|
|
|
2009-06-05 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, include/os0file.h, include/srv0srv.h,
|
|
|
|
os/os0file.c, srv/srv0srv.c, srv/srv0start.c:
|
|
|
|
Enable functionality to have multiple background IO helper threads.
|
|
|
|
Expose new configure knobs innodb_read_io_threads and
|
|
|
|
innodb_write_io_threads and deprecate innodb_file_io_threads (this
|
|
|
|
parameter was relevant only on windows). Internally this allows
|
|
|
|
multiple segments for read and write IO request arrays where one
|
2009-06-26 21:52:52 +02:00
|
|
|
thread works on one segment.
|
2009-06-05 17:34:11 +02:00
|
|
|
|
2009-06-05 17:26:58 +02:00
|
|
|
2009-06-05 The InnoDB Team
|
|
|
|
|
|
|
|
* buf/buf0lru.c, buf/buf0rea.c, handler/ha_innodb.cc,
|
|
|
|
include/srv0srv.h, srv/srv0srv.c:
|
|
|
|
Fix a bug in linear read ahead:
|
|
|
|
1) Take into account access pattern when deciding whether or not to
|
|
|
|
do linear read ahead.
|
|
|
|
2) Expose a knob innodb_read_ahead_factor = [0-64] default (8),
|
2009-06-26 21:52:52 +02:00
|
|
|
dynamic, global to control linear read ahead behavior. This is the
|
2009-06-05 17:26:58 +02:00
|
|
|
value of the number of pages that InnoDB will tolerate within a
|
|
|
|
64 page extent even if they are accessed out of order or have
|
|
|
|
not been accessed at all. This number (which varies from 0 to 64)
|
|
|
|
is indicative of the slack that we have when deciding about linear
|
|
|
|
readahead.
|
|
|
|
3) Disable random read ahead. Keep the code for now.
|
|
|
|
|
2009-06-03 13:26:41 +02:00
|
|
|
2009-06-03 The InnoDB Team
|
|
|
|
|
|
|
|
* dict/dict0dict.c, mysql-test/t/innodb_mysql.test,
|
|
|
|
mysql-test/r/innodb_mysql.result:
|
|
|
|
Fix Bug#39793 Foreign keys not constructed when column
|
|
|
|
has a '#' in a comment or default value
|
|
|
|
|
2009-05-27 08:01:40 +02:00
|
|
|
2009-05-27 The InnoDB Team
|
|
|
|
|
|
|
|
* Doxyfile:
|
|
|
|
Allow the extraction of documentation from the code base with the
|
2009-06-05 17:19:37 +02:00
|
|
|
Doxygen tool. Convert and add many (but not yet all) comments to
|
2009-05-27 08:01:40 +02:00
|
|
|
Doxygen format.
|
|
|
|
|
branches/zip: Write PAGE_MAX_TRX_ID to the redo log. Otherwise,
transactions that are started before the rollback of incomplete
transactions has finished may have an inconsistent view of the
secondary indexes.
dict_index_is_sec_or_ibuf(): Auxiliary function for controlling
updates and checks of PAGE_MAX_TRX_ID: check whether an index is a
secondary index or the insert buffer tree.
page_set_max_trx_id(), page_update_max_trx_id(),
lock_rec_insert_check_and_lock(),
lock_sec_rec_modify_check_and_lock(), btr_cur_ins_lock_and_undo(),
btr_cur_upd_lock_and_undo(): Add the parameter mtr.
page_set_max_trx_id(): Allow mtr to be NULL. When mtr==NULL, do not
attempt to write to the redo log. This only occurs when creating a
page or reorganizing a compressed page. In these cases, the
PAGE_MAX_TRX_ID will be set correctly during the application of redo
log records, even though there is no explicit log record about it.
btr_discard_only_page_on_level(): Preserve PAGE_MAX_TRX_ID. This
function should be unreachable, though.
btr_cur_pessimistic_update(): Update PAGE_MAX_TRX_ID.
Add some assertions for checking that PAGE_MAX_TRX_ID is set on all
secondary index leaf pages.
rb://115 tested by Michael, fixes Issue #211
2009-05-19 20:59:07 +02:00
|
|
|
2009-05-19 The InnoDB Team
|
|
|
|
|
|
|
|
* btr/btr0btr.c, btr/btr0cur.c, lock/lock0lock.c,
|
|
|
|
include/page0page.ic, include/lock0lock.h, include/dict0dict.h,
|
|
|
|
include/page0page.h, include/dict0dict.ic, ibuf/ibuf0ibuf.c,
|
|
|
|
page/page0zip.c, page/page0page.c:
|
|
|
|
Write updates of PAGE_MAX_TRX_ID to the redo log and add debug
|
|
|
|
assertions for checking that PAGE_MAX_TRX_ID is valid on leaf
|
2009-06-05 17:19:37 +02:00
|
|
|
pages of secondary indexes and the insert buffer B-tree. This bug
|
branches/zip: Write PAGE_MAX_TRX_ID to the redo log. Otherwise,
transactions that are started before the rollback of incomplete
transactions has finished may have an inconsistent view of the
secondary indexes.
dict_index_is_sec_or_ibuf(): Auxiliary function for controlling
updates and checks of PAGE_MAX_TRX_ID: check whether an index is a
secondary index or the insert buffer tree.
page_set_max_trx_id(), page_update_max_trx_id(),
lock_rec_insert_check_and_lock(),
lock_sec_rec_modify_check_and_lock(), btr_cur_ins_lock_and_undo(),
btr_cur_upd_lock_and_undo(): Add the parameter mtr.
page_set_max_trx_id(): Allow mtr to be NULL. When mtr==NULL, do not
attempt to write to the redo log. This only occurs when creating a
page or reorganizing a compressed page. In these cases, the
PAGE_MAX_TRX_ID will be set correctly during the application of redo
log records, even though there is no explicit log record about it.
btr_discard_only_page_on_level(): Preserve PAGE_MAX_TRX_ID. This
function should be unreachable, though.
btr_cur_pessimistic_update(): Update PAGE_MAX_TRX_ID.
Add some assertions for checking that PAGE_MAX_TRX_ID is set on all
secondary index leaf pages.
rb://115 tested by Michael, fixes Issue #211
2009-05-19 20:59:07 +02:00
|
|
|
could cause failures in secondary index lookups in consistent
|
|
|
|
reads right after crash recovery.
|
|
|
|
|
2009-05-18 14:40:07 +02:00
|
|
|
2009-05-18 The InnoDB Team
|
|
|
|
|
|
|
|
* btr/btr0cur.c:
|
|
|
|
Correctly estimate the space needed on the compressed page when
|
|
|
|
performing an update by delete-and-insert.
|
|
|
|
|
2009-05-14 18:13:41 +02:00
|
|
|
2009-05-14 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, include/srv0srv.h,
|
|
|
|
mysql-test/innodb_bug42101-nonzero-master.opt,
|
|
|
|
mysql-test/innodb_bug42101-nonzero.result,
|
|
|
|
mysql-test/innodb_bug42101-nonzero.test,
|
|
|
|
mysql-test/innodb_bug42101.result, mysql-test/innodb_bug42101.test,
|
|
|
|
srv/srv0srv.c:
|
|
|
|
Fix Bug#42101 Race condition in innodb_commit_concurrency
|
|
|
|
|
2009-05-13 14:21:55 +02:00
|
|
|
2009-05-13 The InnoDB Team
|
|
|
|
|
|
|
|
* dict/dict0dict.c:
|
|
|
|
Fix Bug#44320 InnoDB: missing DB_ROLL_PTR in Table Monitor COLUMNS
|
|
|
|
output
|
|
|
|
|
2009-11-30 11:19:50 +01:00
|
|
|
2009-04-29 The InnoDB Team
|
|
|
|
|
|
|
|
* fil/fil0fil.c, include/fil0fil.h, include/mtr0mtr.h,
|
|
|
|
log/log0recv.c:
|
|
|
|
Fix Bug#41609 Crash recovery does not work for InnoDB temporary tables
|
|
|
|
|
2009-04-23 08:37:40 +02:00
|
|
|
2009-04-23 The InnoDB Team
|
|
|
|
|
|
|
|
* row/row0mysql.c:
|
|
|
|
When scanning indexes, report in the error log any error codes
|
2009-06-05 17:19:37 +02:00
|
|
|
returned by the search function. These error codes will still be
|
2009-04-23 08:37:40 +02:00
|
|
|
ignored in CHECK TABLE.
|
|
|
|
|
2009-04-23 08:21:07 +02:00
|
|
|
2009-04-23 The InnoDB Team
|
|
|
|
|
2009-04-23 08:22:06 +02:00
|
|
|
* include/trx0types.h:
|
2009-04-23 08:21:07 +02:00
|
|
|
Define the logical type names trx_id_t, roll_ptr_t, and undo_no_t
|
|
|
|
and use them in place of dulint everywhere.
|
|
|
|
|
2009-04-17 22:58:08 +02:00
|
|
|
2009-04-18 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, include/pars0pars.h:
|
|
|
|
Fix Bug#29125 Windows Server X64: so many compiler warnings
|
|
|
|
|
2009-04-16 14:02:27 +02:00
|
|
|
2009-04-16 The InnoDB Team
|
|
|
|
|
2009-04-23 08:22:06 +02:00
|
|
|
* include/univ.i:
|
2009-04-16 14:02:27 +02:00
|
|
|
Define REFMAN as the base URL of the MySQL Reference Manual and
|
|
|
|
use the macro in all diagnostic output.
|
|
|
|
|
2009-04-16 07:44:48 +02:00
|
|
|
2009-04-16 The InnoDB Team
|
|
|
|
|
|
|
|
* CMakeLists.txt, include/os0sync.h, include/sync0sync.h,
|
|
|
|
include/sync0sync.ic, include/univ.i, srv/srv0start.c,
|
|
|
|
sync/sync0sync.c:
|
|
|
|
Use the Windows Interlocked functions for atomic memory
|
|
|
|
access.
|
|
|
|
|
2009-04-15 10:36:16 +02:00
|
|
|
2009-04-15 The InnoDB Team
|
|
|
|
|
|
|
|
* mysql-test/innodb.result, mysql-test/innodb.test:
|
|
|
|
Fix Bug#43309 Test main.innodb can't be run twice
|
|
|
|
|
|
|
|
2009-04-14 The InnoDB Team
|
|
|
|
|
|
|
|
* CMakeLists.txt, handler/win_delay_loader.cc,
|
|
|
|
win-plugin/win-plugin.diff:
|
|
|
|
Remove statically linked libraries from MySQL (zlib and strings).
|
|
|
|
|
|
|
|
2009-04-11 The InnoDB Team
|
|
|
|
|
|
|
|
* CMakeLists.txt, win-plugin/README, win-plugin/win-plugin.diff:
|
|
|
|
Rewrite CMakeLists.txt.
|
|
|
|
|
2009-04-08 11:11:15 +02:00
|
|
|
2009-04-07 The InnoDB Team
|
|
|
|
|
|
|
|
* include/os0sync.h, include/sync0rw.ic, include/sync0sync.h,
|
|
|
|
include/sync0sync.ic, include/univ.i, plug.in, srv/srv0srv.c,
|
|
|
|
srv/srv0start.c, sync/sync0arr.c, sync/sync0sync.c:
|
|
|
|
Enable atomics on Solaris (using the libc functions as defined in
|
|
|
|
atomic.h) if GCC atomic builtins are not present.
|
|
|
|
|
2009-04-07 13:45:28 +02:00
|
|
|
2009-04-07 The InnoDB Team
|
2009-04-08 11:08:59 +02:00
|
|
|
|
2009-04-07 13:45:28 +02:00
|
|
|
* btr/btr0btr.c, dict/dict0dict.c, ibuf/ibuf0ibuf.c,
|
|
|
|
include/data0data.h, include/data0data.ic, include/data0type.h,
|
2009-04-15 10:39:04 +02:00
|
|
|
include/data0type.ic, include/dict0dict.h, include/dict0dict.ic,
|
|
|
|
include/rem0rec.ic, mysql-test/innodb.result, mysql-test/innodb.test,
|
2009-04-07 13:45:28 +02:00
|
|
|
pars/pars0pars.c, rem/rem0rec.c, row/row0upd.c:
|
|
|
|
Fix Bug#44032 In ROW_FORMAT=REDUNDANT, update UTF-8 CHAR
|
|
|
|
to/from NULL is not in-place
|
|
|
|
|
2009-04-07 07:37:31 +02:00
|
|
|
2009-04-07 The InnoDB Team
|
|
|
|
|
|
|
|
* page/page0cur.c:
|
|
|
|
Fix Bug#43660 SHOW INDEXES/ANALYZE does NOT update cardinality for
|
|
|
|
indexes of InnoDB table
|
|
|
|
|
2009-04-06 14:17:30 +02:00
|
|
|
2009-04-06 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc:
|
|
|
|
Make the parameter innodb_change_buffering settable by the
|
2009-04-15 10:39:04 +02:00
|
|
|
configuration file or mysqld command line options. Before this
|
2009-04-06 14:17:30 +02:00
|
|
|
fix, the initial value specified for this parameter was ignored.
|
|
|
|
|
2009-04-06 13:13:45 +02:00
|
|
|
2009-04-06 The InnoDB Team
|
|
|
|
|
|
|
|
* sync/sync0rw.c:
|
|
|
|
Avoid a bogus failure in UNIV_SYNC_DEBUG diagnostics.
|
|
|
|
|
2009-04-06 08:05:25 +02:00
|
|
|
2009-04-02 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, include/srv0srv.h, srv/srv0srv.c:
|
|
|
|
Add new parameter innodb_spin_wait_delay to set the maximum delay
|
|
|
|
between polling for a spin lock.
|
|
|
|
|
2009-04-02 14:23:12 +02:00
|
|
|
2009-04-02 The InnoDB Team
|
|
|
|
|
|
|
|
* dict/dict0crea.c, handler/ha_innodb.cc, handler/ha_innodb.h,
|
2009-04-06 08:07:26 +02:00
|
|
|
include/dict0mem.h, include/row0merge.h, include/row0mysql.h,
|
|
|
|
mysql-test/innodb-index.result, mysql-test/innodb-index.test,
|
|
|
|
row/row0merge.c, row/row0sel.c:
|
2009-04-02 14:23:12 +02:00
|
|
|
In consistent reads, refuse to use newly created indexes that may
|
|
|
|
lack history.
|
|
|
|
|
2009-04-15 19:36:06 +02:00
|
|
|
2009-03-25 The InnoDB Team
|
|
|
|
|
|
|
|
* buf/buf0buf.c, handler/ha_innodb.cc, include/buf0buf.h:
|
|
|
|
In SHOW ENGINE INNODB MUTEX do not show the status of block->mutex,
|
|
|
|
block->lock, block->lock->mutex (if applicable) and all mutexes and
|
|
|
|
rw-locks for which number of os-waits are zero because this can
|
|
|
|
be overwhelming particularly when the buffer pool is very large.
|
|
|
|
|
2009-03-20 13:48:26 +01:00
|
|
|
2009-03-20 The InnoDB Team
|
|
|
|
|
|
|
|
* buf/buf0buf.c, include/log0recv.h, log/log0recv.c:
|
2009-03-20 13:56:19 +01:00
|
|
|
Remove the compile-time constant parameters of
|
2009-03-20 14:10:25 +01:00
|
|
|
recv_recover_page(), recv_scan_log_recs(), and recv_sys_init().
|
2009-03-20 13:48:26 +01:00
|
|
|
|
2009-03-20 13:15:52 +01:00
|
|
|
2009-03-20 The InnoDB Team
|
|
|
|
|
|
|
|
* data/data0type.c, handler/ha_innodb.cc, include/ha_prototypes.h:
|
|
|
|
Declare innobase_get_at_most_n_mbchars() in ha_prototypes.h.
|
|
|
|
|
2009-03-20 14:47:17 +01:00
|
|
|
2009-03-20 The InnoDB Team
|
|
|
|
|
|
|
|
* fil/fil0fil.h, fil/fil0fil.c, srv/srv0start.c:
|
|
|
|
Add the parameter hash_size to fil_init().
|
|
|
|
|
2009-03-20 12:51:35 +01:00
|
|
|
2009-03-20 The InnoDB Team
|
|
|
|
|
|
|
|
* fil/fil0fil.c:
|
|
|
|
Refer to fil_system directly, not via local variables.
|
|
|
|
|
2009-03-20 11:52:14 +01:00
|
|
|
2009-03-20 The InnoDB Team
|
|
|
|
|
|
|
|
* page/page0page.c:
|
|
|
|
In page_validate(), always report the space id, page number and
|
|
|
|
the name of the index when corruption is noticed.
|
|
|
|
|
2009-03-20 11:45:18 +01:00
|
|
|
2009-03-20 The InnoDB Team
|
|
|
|
|
|
|
|
* include/log0log.h, include/log0log.ic, log/log0log.c:
|
|
|
|
Add in/out comments or const qualifiers to some function
|
|
|
|
parameters as appropriate.
|
|
|
|
|
2009-03-20 11:33:33 +01:00
|
|
|
2009-03-20 The InnoDB Team
|
|
|
|
|
|
|
|
* dict/dict0boot.c, dict/dict0dict.c, fsp/fsp0fsp.c,
|
|
|
|
include/dict0dict.h, include/srv0srv.h, srv/srv0srv.c,
|
|
|
|
page/page0page.c:
|
|
|
|
Replace srv_sys->dummy_ind1 and srv_sys->dummy_ind2 with
|
|
|
|
dict_ind_redundant and dict_ind_compact, which are
|
|
|
|
initialized by dict_init().
|
|
|
|
|
2009-04-15 10:36:57 +02:00
|
|
|
2009-03-11 The InnoDB Team
|
2009-03-20 15:50:41 +01:00
|
|
|
|
|
|
|
InnoDB Plugin 1.0.3 released
|
|
|
|
|
2009-03-05 21:31:37 +01:00
|
|
|
2009-03-05 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, mysql-test/innodb-autoinc.result,
|
|
|
|
mysql-test/innodb-autoinc.test:
|
|
|
|
Fix Bug#43203 Overflow from auto incrementing causes server segv
|
|
|
|
|
2009-02-25 09:53:51 +01:00
|
|
|
2009-02-25 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, mysql-test/innodb-autoinc.result,
|
|
|
|
mysql-test/innodb-autoinc.test:
|
|
|
|
Fix Bug#42714 AUTO_INCREMENT errors in 5.1.31
|
|
|
|
|
2009-02-23 14:09:49 +01:00
|
|
|
2009-02-23 The InnoDB Team
|
2009-02-25 16:19:19 +01:00
|
|
|
|
2009-02-23 14:09:49 +01:00
|
|
|
* btr/btr0cur.c:
|
|
|
|
Fix Bug#43043 Crash on BLOB delete operation
|
|
|
|
|
2009-02-20 21:31:03 +01:00
|
|
|
2009-02-20 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc:
|
|
|
|
Make innodb_use_sys_malloc=ON the default.
|
|
|
|
|
2009-02-20 14:00:46 +01:00
|
|
|
2009-02-20 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, mysql-test/innodb-autoinc.result,
|
|
|
|
mysql-test/innodb-autoinc.test:
|
|
|
|
Fix Bug#42400 InnoDB autoinc code can't handle floating-point columns
|
|
|
|
|
2009-02-18 16:25:45 +01:00
|
|
|
2009-02-18 The InnoDB Team
|
|
|
|
|
2009-02-20 10:52:19 +01:00
|
|
|
* include/ut0mem.h, os/os0proc.c, ut/ut0mem.c:
|
2009-02-18 16:25:45 +01:00
|
|
|
Protect ut_total_allocated_memory with ut_list_mutex in
|
2009-02-20 10:52:19 +01:00
|
|
|
os_mem_alloc_large() and os_mem_free_large(). The lack of this mutex
|
|
|
|
protection could cause an assertion failure during fast index
|
|
|
|
creation. Also, add UNIV_MEM_ALLOC and UNIV_MEM_FREE instrumentation
|
|
|
|
to os_mem_alloc_large() and os_mem_free_large(), so that Valgrind can
|
|
|
|
detect more errors.
|
2009-02-18 16:25:45 +01:00
|
|
|
|
2009-02-11 23:14:19 +01:00
|
|
|
2009-02-11 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc:
|
2009-02-20 10:52:19 +01:00
|
|
|
Make innodb_thread_concurrency=0 the default. The old default value
|
|
|
|
was 8. A non-zero setting may be useful when InnoDB is showing severe
|
|
|
|
scalability problems under multiple concurrent connections.
|
2009-02-11 23:14:19 +01:00
|
|
|
|
2009-02-10 10:51:43 +01:00
|
|
|
2009-02-10 The InnoDB Team
|
|
|
|
|
2009-02-20 10:52:19 +01:00
|
|
|
* handler/ha_innodb.cc, handler/ha_innodb.h:
|
2009-02-10 10:51:43 +01:00
|
|
|
Fix Bug#41676 Table names are case insensitive in locking
|
|
|
|
|
2009-02-10 11:52:27 +01:00
|
|
|
2009-02-10 The InnoDB Team
|
|
|
|
|
2009-02-20 10:52:19 +01:00
|
|
|
* mem/mem0dbg.c, mem/mem0mem.c, mem/mem0pool.c:
|
2009-02-10 11:52:27 +01:00
|
|
|
When innodb_use_sys_malloc is set, ignore
|
2009-02-20 10:52:19 +01:00
|
|
|
innodb_additional_mem_pool_size, because nothing will be allocated
|
|
|
|
from mem_comm_pool.
|
2009-02-10 11:52:27 +01:00
|
|
|
|
2009-02-10 10:09:15 +01:00
|
|
|
2009-02-10 The InnoDB Team
|
|
|
|
|
|
|
|
* ut/ut0mem.c:
|
2009-02-20 10:52:19 +01:00
|
|
|
Map ut_malloc_low(), ut_realloc(), and ut_free() directly to malloc(),
|
|
|
|
realloc(), and free() when innodb_use_sys_malloc is set. As a side
|
|
|
|
effect, ut_total_allocated_memory ("Total memory allocated" in the
|
|
|
|
"BUFFER POOL AND MEMORY" section of SHOW ENGINE INNODB STATUS) will
|
|
|
|
exclude any memory allocated by these functions when
|
2009-02-10 10:09:15 +01:00
|
|
|
innodb_use_sys_malloc is set.
|
|
|
|
|
|
|
|
2009-02-10 The InnoDB Team
|
|
|
|
|
|
|
|
* btr/btr0cur.c, btr/btr0sea.c, buf/buf0buf.c, handler/ha_innodb.cc,
|
2009-02-20 10:59:42 +01:00
|
|
|
include/buf0buf.ic, include/os0sync.h, include/srv0srv.h,
|
|
|
|
include/sync0rw.h, include/sync0rw.ic, include/sync0sync.h,
|
|
|
|
include/sync0sync.ic, include/univ.i, row/row0sel.c, srv/srv0srv.c,
|
|
|
|
srv/srv0start.c, sync/sync0arr.c, sync/sync0rw.c, sync/sync0sync.c:
|
2009-02-10 10:09:15 +01:00
|
|
|
On those platforms that support it, implement the synchronization
|
|
|
|
primitives of InnoDB mutexes and read/write locks with GCC atomic
|
2009-02-20 10:52:19 +01:00
|
|
|
builtins instead of Pthreads mutexes and InnoDB mutexes. These changes
|
|
|
|
are based on a patch supplied by Mark Callaghan of Google under a BSD
|
|
|
|
license.
|
2009-02-10 10:09:15 +01:00
|
|
|
|
2009-02-02 08:32:04 +01:00
|
|
|
2009-01-30 The InnoDB Team
|
|
|
|
|
|
|
|
* btr/btr0cur.c, btr/btr0sea.c, buf/buf0buf.c, handler/ha_innodb.cc,
|
|
|
|
include/btr0sea.h, include/buf0buf.h, include/sync0sync.h,
|
|
|
|
sync/sync0sync.c:
|
|
|
|
Make the configuration parameter innodb_adaptive_hash_index dynamic,
|
2009-02-10 10:09:15 +01:00
|
|
|
so that it can be changed at runtime.
|
2009-02-02 08:32:04 +01:00
|
|
|
|
2009-01-29 10:27:09 +01:00
|
|
|
2009-01-29 The InnoDB Team
|
|
|
|
|
2009-02-20 10:52:19 +01:00
|
|
|
* handler/ha_innodb.cc, ibuf/ibuf0ibuf.c, include/ibuf0ibuf.h,
|
|
|
|
include/ibuf0ibuf.ic:
|
2009-01-29 10:27:09 +01:00
|
|
|
Implement the settable global variable innodb_change_buffering,
|
2009-02-20 10:52:19 +01:00
|
|
|
with the allowed values 'none' and 'inserts'. The default value
|
2009-01-29 10:27:09 +01:00
|
|
|
'inserts' enables the buffering of inserts to non-unique secondary
|
|
|
|
index trees when the B-tree leaf page is not in the buffer pool.
|
|
|
|
|
2009-01-27 09:05:24 +01:00
|
|
|
2009-01-27 The InnoDB Team
|
|
|
|
|
|
|
|
* buf/buf0lru.c:
|
2009-02-20 10:52:19 +01:00
|
|
|
Fix a race condition in buf_LRU_invalidate_tablespace(): The
|
|
|
|
compressed page size (zip_size) was read while the block descriptor
|
|
|
|
was no longer protected by a mutex. This could lead to corruption
|
|
|
|
when a table is dropped on a busy system that contains compressed
|
|
|
|
tables.
|
2009-01-27 09:05:24 +01:00
|
|
|
|
2009-01-26 21:33:20 +01:00
|
|
|
2009-01-26 The InnoDB Team
|
|
|
|
|
2009-02-20 10:52:19 +01:00
|
|
|
* btr/btr0sea.c, buf/buf0buf.c, include/buf0buf.h, include/buf0buf.ic,
|
|
|
|
include/mtr0log.ic, include/row0upd.ic, mtr/mtr0mtr.c:
|
|
|
|
Implement buf_block_align() with pointer arithmetics, as it is in the
|
|
|
|
built-in InnoDB distributed with MySQL. Do not acquire the buffer pool
|
|
|
|
mutex before buf_block_align(). This removes a scalability bottleneck
|
|
|
|
in the adaptive hash index lookup. In CHECK TABLE, check that
|
|
|
|
buf_pool->page_hash is consistent with buf_block_align().
|
2009-01-26 21:33:20 +01:00
|
|
|
|
2009-01-23 14:49:04 +01:00
|
|
|
2009-01-23 The InnoDB Team
|
|
|
|
|
|
|
|
* btr/btr0sea.c:
|
|
|
|
Fix Bug#42279 Race condition in btr_search_drop_page_hash_when_freed()
|
|
|
|
|
2009-01-23 14:31:36 +01:00
|
|
|
2009-01-23 The InnoDB Team
|
|
|
|
|
2009-02-20 10:52:19 +01:00
|
|
|
* buf/buf0buf.c, include/buf0buf.h:
|
2009-01-23 14:31:36 +01:00
|
|
|
Remove the unused mode BUF_GET_NOWAIT of buf_page_get_gen()
|
|
|
|
|
2009-01-20 16:01:08 +01:00
|
|
|
2009-01-20 The InnoDB Team
|
|
|
|
|
|
|
|
* include/rem0rec.h, include/rem0rec.ic:
|
|
|
|
Fix Bug#41571 MySQL segfaults after innodb recovery
|
|
|
|
|
|
|
|
2009-01-20 The InnoDB Team
|
|
|
|
|
|
|
|
* lock/lock0lock.c:
|
|
|
|
Fix Bug#42152 Race condition in lock_is_table_exclusive()
|
|
|
|
|
2009-01-15 20:15:00 +01:00
|
|
|
2009-01-14 The InnoDB Team
|
|
|
|
|
|
|
|
* include/trx0roll.h, trx/trx0roll.c, trx/trx0trx.c:
|
|
|
|
Fix Bug#38187 Error 153 when creating savepoints
|
|
|
|
|
|
|
|
2009-01-14 The InnoDB Team
|
|
|
|
|
|
|
|
* dict/dict0load.c:
|
|
|
|
Fix Bug#42075 dict_load_indexes failure in dict_load_table will
|
|
|
|
corrupt the dictionary cache
|
|
|
|
|
branches/zip: In hash table lookups, assert that the traversed items
satisfy some conditions when UNIV_DEBUG is defined.
HASH_SEARCH(): New parameter: ASSERTION. All users will pass an appropriate
ut_ad() or nothing.
dict_table_add_to_columns(): Assert that the table being added to the data
dictionary cache is not already being pointed to by the name_hash and
id_hash tables.
HASH_SEARCH_ALL(): New macro, for use in dict_table_add_to_columns().
dict_mem_table_free(): Set ut_d(table->cached = FALSE), so that we can
check ut_ad(table->cached) when traversing the hash tables, as in
HASH_SEARCH(name_hash, dict_sys->table_hash, ...) and
HASH_SEARCH(id_hash, dict_sys->table_id_hash, ...).
dict_table_get_low(), dict_table_get_on_id_low(): Assert
ut_ad(!table || table->cached).
fil_space_get_by_id(): Check ut_ad(space->magic_n == FIL_SPACE_MAGIC_N)
in HASH_SEARCH(hash, fil_system->spaces, ...).
fil_space_get_by_name(): Check ut_ad(space->magic_n == FIL_SPACE_MAGIC_N)
in HASH_SEARCH(name_hash, fil_system->name_hash, ...).
buf_buddy_block_free(): Check that the blocks are in valid state in
HASH_SEARCH(hash, buf_pool->zip_hash, ...).
buf_page_hash_get(): Check that the blocks are in valid state in
HASH_SEARCH(hash, buf_pool->page_hash, ...).
get_share(), free_share(): Check ut_ad(share->use_count > 0) in
HASH_SEARCH(table_name_hash, innobase_open_tables, ...).
This was posted as rb://75 for tracking down errors similar to Issue #153.
2009-01-13 20:46:22 +01:00
|
|
|
2009-01-13 The InnoDB Team
|
|
|
|
|
2009-02-20 10:52:19 +01:00
|
|
|
* buf/buf0buddy.c, dict/dict0dict.c, dict/dict0mem.c, fil/fil0fil.c,
|
|
|
|
ha/ha0storage.c, handler/ha_innodb.cc, handler/win_delay_loader.cc,
|
|
|
|
include/buf0buf.ic, include/dict0dict.ic, include/hash0hash.h,
|
|
|
|
thr/thr0loc.c, trx/trx0i_s.c:
|
branches/zip: In hash table lookups, assert that the traversed items
satisfy some conditions when UNIV_DEBUG is defined.
HASH_SEARCH(): New parameter: ASSERTION. All users will pass an appropriate
ut_ad() or nothing.
dict_table_add_to_columns(): Assert that the table being added to the data
dictionary cache is not already being pointed to by the name_hash and
id_hash tables.
HASH_SEARCH_ALL(): New macro, for use in dict_table_add_to_columns().
dict_mem_table_free(): Set ut_d(table->cached = FALSE), so that we can
check ut_ad(table->cached) when traversing the hash tables, as in
HASH_SEARCH(name_hash, dict_sys->table_hash, ...) and
HASH_SEARCH(id_hash, dict_sys->table_id_hash, ...).
dict_table_get_low(), dict_table_get_on_id_low(): Assert
ut_ad(!table || table->cached).
fil_space_get_by_id(): Check ut_ad(space->magic_n == FIL_SPACE_MAGIC_N)
in HASH_SEARCH(hash, fil_system->spaces, ...).
fil_space_get_by_name(): Check ut_ad(space->magic_n == FIL_SPACE_MAGIC_N)
in HASH_SEARCH(name_hash, fil_system->name_hash, ...).
buf_buddy_block_free(): Check that the blocks are in valid state in
HASH_SEARCH(hash, buf_pool->zip_hash, ...).
buf_page_hash_get(): Check that the blocks are in valid state in
HASH_SEARCH(hash, buf_pool->page_hash, ...).
get_share(), free_share(): Check ut_ad(share->use_count > 0) in
HASH_SEARCH(table_name_hash, innobase_open_tables, ...).
This was posted as rb://75 for tracking down errors similar to Issue #153.
2009-01-13 20:46:22 +01:00
|
|
|
Add the parameter ASSERTION to HASH_SEARCH() macro, and use it for
|
|
|
|
light validation of the traversed items in hash table lookups when
|
|
|
|
UNIV_DEBUG is enabled.
|
|
|
|
|
2009-01-09 14:40:11 +01:00
|
|
|
2009-01-09 The InnoDB Team
|
|
|
|
|
2009-02-20 10:52:19 +01:00
|
|
|
* buf/buf0flu.c, include/buf0flu.h, include/buf0flu.ic:
|
2009-01-09 14:40:11 +01:00
|
|
|
Remove unused code from the functions
|
|
|
|
buf_flush_insert_into_flush_list() and
|
|
|
|
buf_flush_insert_sorted_into_flush_list().
|
|
|
|
|
|
|
|
2009-01-09 The InnoDB Team
|
|
|
|
|
2009-02-20 10:52:19 +01:00
|
|
|
* buf/buf0flu.c:
|
|
|
|
Simplify the functions buf_flush_try_page() and buf_flush_batch(). Add
|
|
|
|
debug assertions and an explanation to buf_flush_write_block_low().
|
2009-01-09 14:40:11 +01:00
|
|
|
|
2009-01-08 21:10:10 +01:00
|
|
|
2009-01-07 The InnoDB Team
|
|
|
|
|
|
|
|
* row/row0merge.c:
|
2009-02-20 10:52:19 +01:00
|
|
|
Fix a bug in recovery when dropping temporary indexes.
|
2009-01-08 21:10:10 +01:00
|
|
|
|
|
|
|
2009-01-07 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, handler/ha_innodb.h, handler/handler0alter.cc:
|
|
|
|
Fix Bug#41680 calls to trx_allocate_for_mysql are not consistent
|
|
|
|
|
|
|
|
2009-01-07 The InnoDB Team
|
|
|
|
|
|
|
|
* mysql-test/innodb_bug41904.result, mysql-test/innodb_bug41904.test,
|
|
|
|
row/row0merge.c:
|
|
|
|
Fix Bug#41904 create unique index problem
|
|
|
|
|
2009-01-02 14:55:12 +01:00
|
|
|
2009-01-02 The InnoDB Team
|
|
|
|
|
2009-02-20 10:52:19 +01:00
|
|
|
* handler/ha_innodb.cc, include/srv0srv.h, mem/mem0pool.c,
|
2009-01-02 14:55:12 +01:00
|
|
|
mysql-test/innodb-use-sys-malloc-master.opt,
|
|
|
|
mysql-test/innodb-use-sys-malloc.result,
|
2009-02-20 10:52:19 +01:00
|
|
|
mysql-test/innodb-use-sys-malloc.test, srv/srv0srv.c, srv/srv0start.c:
|
|
|
|
Implement the configuration parameter innodb_use_sys_malloc (false by
|
|
|
|
default), for disabling InnoDB's internal memory allocator and using
|
|
|
|
system malloc/free instead. The "BUFFER POOL AND MEMORY" section of
|
|
|
|
SHOW ENGINE INNODB STATUS will report "in additional pool allocated
|
|
|
|
allocated 0" when innodb_use_sys_malloc is set.
|
2009-01-02 14:55:12 +01:00
|
|
|
|
|
|
|
2008-12-30 The InnoDB Team
|
|
|
|
|
|
|
|
* btr/btr0btr.c:
|
2009-02-20 10:52:19 +01:00
|
|
|
When setting the PAGE_LEVEL of a compressed B-tree page from or to 0,
|
|
|
|
compress the page at the same time. This is necessary, because the
|
|
|
|
column information stored on the compressed page will differ between
|
|
|
|
leaf and non-leaf pages. Leaf pages are identified by PAGE_LEVEL=0.
|
|
|
|
This bug can make InnoDB crash when all rows of a compressed table are
|
|
|
|
deleted.
|
2009-01-02 14:55:12 +01:00
|
|
|
|
2008-12-17 13:40:59 +01:00
|
|
|
2008-12-17 The InnoDB Team
|
|
|
|
|
2009-02-20 10:52:19 +01:00
|
|
|
* include/row0sel.h, include/row0upd.h, pars/pars0pars.c,
|
|
|
|
row/row0mysql.c, row/row0sel.c, row/row0upd.c:
|
|
|
|
Remove update-in-place select from the internal SQL interpreter. It
|
|
|
|
was only used for updating the InnoDB internal data dictionary when
|
|
|
|
renaming or dropping tables. It could have caused deadlocks when
|
|
|
|
acquiring latches on insert buffer bitmap pages.
|
2008-12-17 13:40:59 +01:00
|
|
|
|
2008-12-17 10:19:56 +01:00
|
|
|
2008-12-17 The InnoDB Team
|
|
|
|
|
2009-02-20 10:52:19 +01:00
|
|
|
* btr/btr0sea.c, buf/buf0buf.c, buf/buf0lru.c, ha/ha0ha.c,
|
|
|
|
ha/hash0hash.c, include/buf0buf.h, include/ha0ha.h, include/ha0ha.ic,
|
|
|
|
include/hash0hash.h, include/univ.i:
|
|
|
|
Introduce the preprocessor symbol UNIV_AHI_DEBUG for enabling adaptive
|
|
|
|
hash index debugging independently of UNIV_DEBUG.
|
2008-12-17 10:19:56 +01:00
|
|
|
|
2008-12-17 11:44:31 +01:00
|
|
|
2008-12-16 The InnoDB Team
|
|
|
|
|
|
|
|
* btr/btr0cur.c:
|
2009-02-20 10:52:19 +01:00
|
|
|
Do not update the free bits in the insert buffer bitmap when inserting
|
|
|
|
or deleting from the insert buffer B-tree. Assert that records in the
|
|
|
|
insert buffer B-tree are never updated.
|
2008-12-17 11:44:31 +01:00
|
|
|
|
|
|
|
2008-12-12 The InnoDB Team
|
|
|
|
|
2009-02-20 10:52:19 +01:00
|
|
|
* buf/buf0buf.c, fil/fil0fil.c, fsp/fsp0fsp.c, ibuf/ibuf0ibuf.c,
|
|
|
|
include/fil0fil.h, include/ibuf0ibuf.h, include/ibuf0ibuf.ic,
|
|
|
|
include/ibuf0types.h:
|
2008-12-17 11:44:31 +01:00
|
|
|
Clean up the insert buffer subsystem so that only one insert
|
|
|
|
buffer B-tree exists.
|
|
|
|
Originally, there were provisions in InnoDB for multiple insert
|
|
|
|
buffer B-trees, apparently one for each tablespace.
|
|
|
|
When Heikki Tuuri implemented multiple InnoDB tablespaces in
|
|
|
|
MySQL/InnoDB 4.1, he made the insert buffer live only in the
|
|
|
|
system tablespace (space 0) but left the provisions in the code.
|
|
|
|
|
|
|
|
2008-12-11 The InnoDB Team
|
|
|
|
|
2009-02-20 10:52:19 +01:00
|
|
|
* include/srv0srv.h, os/os0proc.c, srv/srv0srv.c:
|
|
|
|
Fix the issue that the InnoDB plugin fails if innodb_buffer_pool_size
|
|
|
|
is defined bigger than 4096M on 64-bit Windows. This bug should not
|
|
|
|
have affected other 64-bit systems.
|
2008-12-17 11:44:31 +01:00
|
|
|
|
|
|
|
2008-12-09 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc:
|
|
|
|
Fix Bug#40386 Not flushing query cache after truncate.
|
|
|
|
|
|
|
|
2008-12-09 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, srv/srv0srv.c, trx/trx0trx.c:
|
2009-02-25 10:08:32 +01:00
|
|
|
Fix Bug#40760 "set global innodb_thread_concurrency = 0;" is not safe
|
2008-12-17 11:44:31 +01:00
|
|
|
|
|
|
|
2008-12-04 The InnoDB Team
|
|
|
|
|
2009-02-20 10:52:19 +01:00
|
|
|
* handler/ha_innodb.cc, handler/mysql_addons.cc,
|
|
|
|
include/mysql_addons.h, trx/trx0i_s.c, win-plugin/win-plugin.diff:
|
2008-12-17 11:44:31 +01:00
|
|
|
Remove dependencies to MySQL internals (defining MYSQL_SERVER).
|
|
|
|
|
|
|
|
2008-12-02 The InnoDB Team
|
|
|
|
|
|
|
|
* page/page0cur.c:
|
2009-02-20 10:52:19 +01:00
|
|
|
When allocating space for a record from the free list of previously
|
|
|
|
purged records, zero out the DB_TRX_ID and DB_ROLL_PTR of the purged
|
|
|
|
record if the new record would not overwrite these fields. This fixes
|
|
|
|
a harmless content mismatch reported by page_zip_validate().
|
2008-12-17 11:44:31 +01:00
|
|
|
|
2008-12-02 12:34:36 +01:00
|
|
|
2008-12-02 The InnoDB Team
|
|
|
|
|
|
|
|
* row/row0merge.c:
|
2009-02-20 10:52:19 +01:00
|
|
|
Replace the WHILE 1 with WHILE 1=1 in the SQL procedure, so that the
|
|
|
|
loop will actually be entered and temporary indexes be dropped during
|
|
|
|
crash recovery.
|
2008-12-02 12:34:36 +01:00
|
|
|
|
2008-12-02 11:03:17 +01:00
|
|
|
2008-12-01 The InnoDB Team
|
|
|
|
|
|
|
|
InnoDB Plugin 1.0.2 released
|
|
|
|
|
2008-10-31 08:44:45 +01:00
|
|
|
2008-10-31 The InnoDB Team
|
2008-10-31 10:47:56 +01:00
|
|
|
|
|
|
|
* dict/dict0mem.c, include/dict0mem.h, include/lock0lock.h,
|
|
|
|
include/row0mysql.h, include/trx0trx.h, include/univ.i,
|
|
|
|
include/ut0vec.h, include/ut0vec.ic, lock/lock0lock.c,
|
|
|
|
row/row0mysql.c, trx/trx0trx.c:
|
2008-10-31 08:44:45 +01:00
|
|
|
Fix Bug#26316 Triggers create duplicate entries on auto-increment
|
|
|
|
columns
|
|
|
|
|
2008-10-30 11:28:47 +01:00
|
|
|
2008-10-30 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, handler/handler0vars.h,
|
|
|
|
handler/win_delay_loader.cc, mysql-test/innodb_bug40360.result,
|
|
|
|
mysql-test/innodb_bug40360.test:
|
|
|
|
Fix Bug#40360 Binlog related errors with binlog off
|
|
|
|
|
2008-10-29 21:10:40 +01:00
|
|
|
2008-10-29 The InnoDB Team
|
|
|
|
|
|
|
|
* include/data0type.ic:
|
|
|
|
Fix Bug#40369 dtype_get_sql_null_size() returns 0 or 1, not the size
|
|
|
|
|
|
|
|
2008-10-29 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, include/srv0srv.h, srv/srv0srv.c:
|
|
|
|
Fix Bug#38189 innodb_stats_on_metadata missing
|
|
|
|
|
2008-10-28 07:40:45 +01:00
|
|
|
2008-10-28 The InnoDB Team
|
|
|
|
|
|
|
|
* CMakeLists.txt, ha_innodb.def, handler/ha_innodb.cc,
|
|
|
|
handler/handler0alter.cc, handler/handler0vars.h, handler/i_s.cc,
|
|
|
|
handler/win_delay_loader.cc, win-plugin/*:
|
|
|
|
Implemented the delayloading of externals for the plugin on Windows.
|
|
|
|
This makes it possible to build a dynamic plugin (ha_innodb.dll) on
|
|
|
|
Windows.
|
|
|
|
|
2008-10-27 10:48:46 +01:00
|
|
|
2008-10-27 The InnoDB Team
|
|
|
|
|
|
|
|
* CMakeLists.txt:
|
|
|
|
Fix Bug#19424 InnoDB: Possibly a memory overrun of the buffer being
|
|
|
|
freed (64-bit Visual C)
|
|
|
|
|
2008-10-24 08:24:17 +02:00
|
|
|
2008-10-23 The InnoDB Team
|
|
|
|
|
|
|
|
* ibuf/ibuf0ibuf.c:
|
|
|
|
ibuf_delete_rec(): When the cursor to the insert buffer record
|
|
|
|
cannot be restored, do not complain if the tablespace does not
|
|
|
|
exist, because the insert buffer record may have been discarded by
|
2008-10-24 09:14:16 +02:00
|
|
|
some other thread. This bug has existed in MySQL/InnoDB since
|
2008-10-24 08:24:17 +02:00
|
|
|
version 4.1, when innodb_file_per_table was implemented.
|
2008-10-29 08:52:30 +01:00
|
|
|
This may fix Bug#27276 InnoDB Error: ibuf cursor restoration fails.
|
2008-10-24 08:24:17 +02:00
|
|
|
|
2008-10-23 09:33:43 +02:00
|
|
|
2008-10-22 The InnoDB Team
|
|
|
|
|
|
|
|
* dict/dict0dict.c, dict/dict0mem.c, handler/ha_innodb.cc,
|
|
|
|
handler/ha_innodb.h, include/dict0dict.h, include/dict0mem.h,
|
|
|
|
row/row0mysql.c:
|
|
|
|
Fix Bug#39830 Table autoinc value not updated on first insert
|
|
|
|
Fix Bug#35498 Cannot get table test/table1 auto-inccounter value in
|
|
|
|
::info
|
|
|
|
Fix Bug#36411 "Failed to read auto-increment value from storage
|
|
|
|
engine" in 5.1.24 auto-inc
|
|
|
|
|
|
|
|
2008-10-22 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, include/row0mysql.h, row/row0mysql.c:
|
|
|
|
Fix Bug#40224 New AUTOINC changes mask reporting of deadlock/timeout
|
|
|
|
errors
|
|
|
|
|
2008-10-24 08:24:17 +02:00
|
|
|
2008-10-16 The InnoDB Team
|
|
|
|
|
2008-10-24 09:14:16 +02:00
|
|
|
* dict/dict0dict.c, mysql-test/innodb-index.result,
|
|
|
|
mysql-test/innodb-index.test:
|
2008-10-24 08:24:17 +02:00
|
|
|
Skip the undo log size check when creating REDUNDANT and COMPACT
|
2008-10-24 09:14:16 +02:00
|
|
|
tables. In ROW_FORMAT=DYNAMIC and ROW_FORMAT=COMPRESSED, column
|
2008-10-24 08:24:17 +02:00
|
|
|
prefix indexes require that prefixes of externally stored columns
|
|
|
|
be written to the undo log. This may make the undo log record
|
2008-10-24 09:14:16 +02:00
|
|
|
bigger than the record on the B-tree page. The maximum size of an
|
|
|
|
undo log record is the page size. That must be checked for, in
|
|
|
|
dict_index_add_to_cache(). However, this restriction must not
|
2008-10-24 08:24:17 +02:00
|
|
|
be enforced on REDUNDANT or COMPACT tables.
|
|
|
|
|
|
|
|
2008-10-15 The InnoDB Team
|
|
|
|
|
2008-10-24 09:14:16 +02:00
|
|
|
* btr/btr0cur.c, include/btr0cur.h, row/row0ext.c, row/row0sel.c,
|
|
|
|
row/row0upd.c:
|
2008-10-24 08:24:17 +02:00
|
|
|
When the server crashes while freeing an externally stored column
|
|
|
|
of a compressed table, the BTR_EXTERN_LEN field in the BLOB
|
2008-10-24 09:14:16 +02:00
|
|
|
pointer will be written as 0. Tolerate this in the functions that
|
|
|
|
deal with externally stored columns. This fixes problems after
|
2008-10-24 08:24:17 +02:00
|
|
|
crash recovery, in the rollback of incomplete transactions, and in
|
|
|
|
the purge of delete-marked records.
|
|
|
|
|
|
|
|
2008-10-15 The InnoDB Team
|
|
|
|
|
|
|
|
* btr/btr0btr.c, include/page0zip.h, page/page0zip.c, include/univ.i:
|
|
|
|
When a B-tree node of a compressed table is split or merged, the
|
2008-10-24 09:14:16 +02:00
|
|
|
compression may fail. In this case, the entire compressed page
|
|
|
|
will be copied and the excess records will be deleted. However,
|
2008-10-24 08:24:17 +02:00
|
|
|
page_zip_copy(), now renamed to page_zip_copy_recs(), copied too
|
|
|
|
many fields in the page header, overwriting PAGE_BTR_SEG_LEAF and
|
2008-10-24 09:14:16 +02:00
|
|
|
PAGE_BTR_SEG_TOP when splitting the B-tree root. This caused
|
|
|
|
corruption of compressed tables. Furthermore, the lock table and
|
2008-10-24 08:24:17 +02:00
|
|
|
the adaptive hash index would be corrupted, because we forgot to
|
|
|
|
update them when invoking page_zip_copy_recs().
|
|
|
|
|
|
|
|
Introduce the symbol UNIV_ZIP_DEBUG for triggering the copying of
|
|
|
|
compressed pages more often, for debugging purposes.
|
|
|
|
|
|
|
|
2008-10-10 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/handler0alter.cc, include/row0merge.h, row/row0merge.c,
|
|
|
|
row/row0mysql.c:
|
2008-10-24 09:14:16 +02:00
|
|
|
Fix some locking issues, mainly in fast index creation. The
|
2008-10-24 08:24:17 +02:00
|
|
|
InnoDB data dictionary cache should be latched whenever a
|
|
|
|
transaction is holding locks on any data dictionary tables.
|
2008-10-24 09:14:16 +02:00
|
|
|
Otherwise, lock waits or deadlocks could occur. Furthermore, the
|
2008-10-24 08:24:17 +02:00
|
|
|
data dictionary transaction must be committed (and the locks
|
|
|
|
released) before the data dictionary latch is released.
|
|
|
|
|
|
|
|
ha_innobase::add_index(): Lock the data dictionary before renaming
|
|
|
|
or dropping the created indexes, because neither operation will
|
|
|
|
commit the data dictionary transaction.
|
|
|
|
|
|
|
|
ha_innobase::final_drop_index(): Commit the transactions before
|
|
|
|
unlocking the data dictionary.
|
|
|
|
|
2008-10-23 09:33:43 +02:00
|
|
|
2008-10-09 The InnoDB Team
|
|
|
|
|
|
|
|
* buf/buf0lru.c:
|
|
|
|
Fix Bug#39939 DROP TABLE/DISCARD TABLESPACE takes long time in
|
|
|
|
buf_LRU_invalidate_tablespace()
|
|
|
|
|
2008-10-08 10:54:16 +02:00
|
|
|
2008-10-08 The InnoDB Team
|
|
|
|
|
|
|
|
* dict/dict0crea.c, trx/trx0roll.c, include/row0mysql.h,
|
2008-10-24 09:14:16 +02:00
|
|
|
row/row0merge.c, row/row0mysql.c:
|
|
|
|
When dropping a table, hold the data dictionary latch until the
|
|
|
|
transaction has been committed. The data dictionary latch is
|
|
|
|
supposed to prevent lock waits and deadlocks in the data
|
|
|
|
dictionary tables. Due to this bug, DROP TABLE could cause a
|
|
|
|
deadlock or hang. Note that because of Bug#33650 and Bug#39833,
|
|
|
|
MySQL may also drop a (temporary) table when executing CREATE INDEX
|
|
|
|
or ALTER TABLE ... ADD INDEX.
|
2008-10-08 10:54:16 +02:00
|
|
|
|
2008-10-06 09:00:19 +02:00
|
|
|
2008-10-04 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, mysql-test/innodb_bug39438-master.opt,
|
|
|
|
mysql-test/innodb_bug39438.result, mysql-test/innodb_bug39438.test:
|
|
|
|
Fix Bug#39438 Testcase for Bug#39436 crashes on 5.1 in
|
|
|
|
fil_space_get_latch
|
|
|
|
|
|
|
|
2008-10-04 The InnoDB Team
|
|
|
|
|
|
|
|
* include/lock0lock.h, lock/lock0lock.c,
|
|
|
|
mysql-test/innodb_bug38231.result, mysql-test/innodb_bug38231.test,
|
|
|
|
row/row0mysql.c:
|
|
|
|
Fix Bug#38231 Innodb crash in lock_reset_all_on_table() on TRUNCATE +
|
|
|
|
LOCK / UNLOCK
|
|
|
|
|
|
|
|
2008-10-04 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc:
|
|
|
|
Fix Bug#35498 Cannot get table test/table1 auto-inccounter value in
|
|
|
|
::info
|
|
|
|
|
2008-10-06 08:52:37 +02:00
|
|
|
2008-10-04 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, handler/ha_innodb.h:
|
|
|
|
Fix Bug#37788 InnoDB Plugin: AUTO_INCREMENT wrong for compressed
|
|
|
|
tables
|
|
|
|
|
2008-10-06 08:14:04 +02:00
|
|
|
2008-10-04 The InnoDB Team
|
|
|
|
|
|
|
|
* dict/dict0dict.c, handler/ha_innodb.cc, handler/ha_innodb.h,
|
|
|
|
include/dict0dict.h, include/dict0mem.h, row/row0mysql.c:
|
|
|
|
Fix Bug#39830 Table autoinc value not updated on first insert
|
|
|
|
|
2008-10-03 11:24:23 +02:00
|
|
|
2008-10-03 The InnoDB Team
|
|
|
|
|
|
|
|
* mysql-test/innodb-index.test, mysql-test/innodb-index.result,
|
|
|
|
mysql-test/innodb-timeout.test, mysql-test/innodb-timeout.result,
|
2008-10-24 09:14:16 +02:00
|
|
|
srv/srv0srv.c, include/srv0srv.h, handler/ha_innodb.cc,
|
|
|
|
include/ha_prototypes.h:
|
2008-10-03 12:31:53 +02:00
|
|
|
Fix Bug#36285 innodb_lock_wait_timeout is not dynamic, not per session
|
2008-10-03 11:24:23 +02:00
|
|
|
|
2008-09-22 10:14:01 +02:00
|
|
|
2008-09-19 The InnoDB Team
|
|
|
|
|
|
|
|
* os/os0proc.c:
|
|
|
|
Fix a memory leak on Windows. The memory leak was due to wrong
|
|
|
|
parameters passed into VirtualFree() call. As the result, the
|
|
|
|
call fails with Windows error 87.
|
|
|
|
|
2008-09-18 14:31:17 +02:00
|
|
|
2008-09-17 The InnoDB Team
|
|
|
|
|
|
|
|
* mysql-test/innodb.result, mysql-test/innodb-zip.result,
|
2008-10-24 09:14:16 +02:00
|
|
|
mysql-test/innodb-zip.test, mysql-test/innodb.test, ibuf/ibuf0ibuf.c,
|
|
|
|
dict/dict0crea.c, dict/dict0load.c, dict/dict0boot.c,
|
|
|
|
include/dict0dict.h, include/trx0trx.h, dict/dict0dict.c,
|
|
|
|
trx/trx0trx.c, include/ha_prototypes.h, handler/ha_innodb.cc:
|
2008-09-18 14:31:17 +02:00
|
|
|
When creating an index in innodb_strict_mode, check that the
|
|
|
|
maximum record size will never exceed the B-tree page size limit.
|
|
|
|
For uncompressed tables, there should always be enough space for
|
2008-10-24 09:14:16 +02:00
|
|
|
two records in an empty B-tree page. For compressed tables, there
|
2008-09-18 14:31:17 +02:00
|
|
|
should be enough space for storing two node pointer records or one
|
|
|
|
data record in an empty page in uncompressed format.
|
|
|
|
The purpose of this check is to guarantee that INSERT or UPDATE
|
|
|
|
will never fail due to too big record size.
|
|
|
|
|
2008-09-17 10:48:32 +02:00
|
|
|
2008-09-17 The InnoDB Team
|
|
|
|
|
|
|
|
* btr/btr0cur.c, data/data0data.c, include/page0zip.h,
|
2008-10-24 09:14:16 +02:00
|
|
|
include/page0zip.ic, page/page0zip.c, mysql-test/innodb_bug36172.test:
|
2008-09-17 10:48:32 +02:00
|
|
|
Prevent infinite B-tree page splits in compressed tables by
|
|
|
|
ensuring that there will always be enough space for two node
|
2008-10-24 09:14:16 +02:00
|
|
|
pointer records in an empty B-tree page. Also, require that at
|
|
|
|
least one data record will fit in an empty compressed page. This
|
2008-09-17 10:48:32 +02:00
|
|
|
will reduce the maximum size of records in compressed tables.
|
|
|
|
|
2008-09-12 14:02:03 +02:00
|
|
|
2008-09-09 The InnoDB Team
|
|
|
|
|
|
|
|
* mysql-test/innodb.result:
|
|
|
|
Fix the failing innodb test by merging changes that MySQL made to
|
|
|
|
that file (r2646.12.1 in MySQL BZR repository)
|
|
|
|
|
|
|
|
2008-09-09 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, mysql-test/innodb-autoinc.result,
|
|
|
|
mysql-test/innodb-autoinc.test:
|
|
|
|
Fix Bug#38839 auto increment does not work properly with InnoDB after
|
|
|
|
update
|
|
|
|
|
|
|
|
2008-09-09 The InnoDB Team
|
|
|
|
|
|
|
|
* dict/dict0dict.c, handler/handler0alter.cc, include/dict0dict.h,
|
|
|
|
mysql-test/innodb-index.result, mysql-test/innodb-index.test:
|
|
|
|
Fix Bug#38786 InnoDB plugin crashes on drop table/create table with FK
|
|
|
|
|
|
|
|
2008-08-21 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, include/ha_prototypes.h, row/row0sel.c:
|
|
|
|
Fix Bug#37885 row_search_for_mysql may gap lock unnecessarily with SQL
|
|
|
|
comments in query
|
|
|
|
|
|
|
|
2008-08-21 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc:
|
|
|
|
Fix Bug#38185 ha_innobase::info can hold locks even when called with
|
|
|
|
HA_STATUS_NO_LOCK
|
|
|
|
|
|
|
|
2008-08-18 The InnoDB Team
|
|
|
|
|
|
|
|
* buf/buf0buf.c, buf/buf0lru.c, include/buf0buf.ic, include/univ.i:
|
|
|
|
Introduce UNIV_LRU_DEBUG for debugging the LRU buffer pool cache
|
|
|
|
|
|
|
|
2008-08-08 The InnoDB Team
|
|
|
|
|
|
|
|
* buf/buf0lru.c, include/buf0buf.h:
|
|
|
|
Fix two recovery bugs that could lead to a crash in debug builds with
|
|
|
|
small buffer size
|
|
|
|
|
|
|
|
2008-08-07 The InnoDB Team
|
|
|
|
|
|
|
|
* btr/btr0cur.c, handler/ha_innodb.cc, include/srv0srv.h,
|
|
|
|
srv/srv0srv.c:
|
|
|
|
Add a parameter innodb_stats_sample_pages to allow users to control
|
|
|
|
the number of index dives when InnoDB estimates the cardinality of
|
|
|
|
an index (ANALYZE TABLE, SHOW TABLE STATUS etc)
|
|
|
|
|
|
|
|
2008-08-07 The InnoDB Team
|
|
|
|
|
|
|
|
* trx/trx0i_s.c:
|
|
|
|
Fix a bug that would lead to a crash if a SELECT was issued from the
|
|
|
|
INFORMATION_SCHEMA tables and there are rolling back transactions at
|
|
|
|
the same time
|
|
|
|
|
|
|
|
2008-08-06 The InnoDB Team
|
|
|
|
|
|
|
|
* btr/btr0btr.c, btr/btr0cur.c, ibuf/ibuf0ibuf.c, include/btr0cur.h,
|
|
|
|
include/trx0roll.h, include/trx0types.h, row/row0purge.c,
|
|
|
|
row/row0uins.c, row/row0umod.c, trx/trx0roll.c:
|
|
|
|
In the rollback of incomplete transactions after crash recovery,
|
|
|
|
tolerate clustered index records whose externally stored columns
|
|
|
|
have not been written.
|
|
|
|
|
|
|
|
2008-07-30 The InnoDB Team
|
|
|
|
|
|
|
|
* trx/trx0trx.c:
|
|
|
|
Fixes a race in recovery where the recovery thread recovering a
|
|
|
|
PREPARED trx and the background rollback thread can both try
|
|
|
|
to free the trx after its status is set to COMMITTED_IN_MEMORY.
|
|
|
|
|
|
|
|
2008-07-29 The InnoDB Team
|
|
|
|
|
|
|
|
* include/trx0rec.h, row/row0purge.c, row/row0vers.c, trx/trx0rec.c:
|
|
|
|
Fix a BLOB corruption bug
|
|
|
|
|
|
|
|
2008-07-15 The InnoDB Team
|
|
|
|
|
|
|
|
* btr/btr0sea.c, dict/dict0dict.c, include/btr0sea.h:
|
|
|
|
Fixed a timing hole where a thread dropping an index can free the
|
|
|
|
in-memory index struct while another thread is still using that
|
|
|
|
structure to remove entries from adaptive hash index belonging
|
|
|
|
to one of the pages that belongs to the index being dropped.
|
|
|
|
|
|
|
|
2008-07-04 The InnoDB Team
|
|
|
|
|
|
|
|
* mysql-test/innodb-index.result:
|
|
|
|
Fix the failing innodb-index test by adjusting the result to a new
|
|
|
|
MySQL behavior (the change occured in BZR-r2667)
|
|
|
|
|
|
|
|
2008-07-03 The InnoDB Team
|
|
|
|
|
|
|
|
* mysql-test/innodb-zip.result, mysql-test/innodb-zip.test:
|
|
|
|
Remove the negative test cases that produce warnings
|
|
|
|
|
|
|
|
2008-07-02 The InnoDB Team
|
|
|
|
|
|
|
|
* mysql-test/innodb-replace.result, mysql-test/innodb-index.test:
|
|
|
|
Disable part of innodb-index test because MySQL changed its behavior
|
|
|
|
and is not calling ::add_index() anymore when adding primary index on
|
|
|
|
non-NULL column
|
|
|
|
|
|
|
|
2008-07-01 The InnoDB Team
|
|
|
|
|
|
|
|
* mysql-test/innodb-replace.result, mysql-test/innodb-replace.test:
|
|
|
|
Fix the failing innodb-replace test by merging changes that MySQL
|
|
|
|
made to that file (r2659 in MySQL BZR repository)
|
|
|
|
|
|
|
|
2008-07-01 The InnoDB Team
|
|
|
|
|
|
|
|
* lock/lock0lock.c:
|
|
|
|
Fix Bug#36942 Performance problem in lock_get_n_rec_locks (SHOW INNODB
|
|
|
|
STATUS)
|
|
|
|
|
|
|
|
2008-07-01 The InnoDB Team
|
|
|
|
|
|
|
|
* ha/ha0ha.c:
|
|
|
|
Fix Bug#36941 Performance problem in ha_print_info (SHOW INNODB
|
|
|
|
STATUS)
|
|
|
|
|
|
|
|
2008-07-01 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, mysql-test/innodb-autoinc.result,
|
|
|
|
mysql-test/innodb-autoinc.test:
|
|
|
|
Fix Bug#37531 After truncate, auto_increment behaves incorrectly for
|
|
|
|
InnoDB
|
|
|
|
|
|
|
|
2008-06-19 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc:
|
|
|
|
Rewrite the function innodb_plugin_init() to support parameters in
|
|
|
|
different order (in static and dynamic InnoDB) and to support more
|
|
|
|
parameters in the static InnoDB
|
|
|
|
|
|
|
|
2008-06-19 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/handler0alter.cc:
|
|
|
|
Fix a bug in ::add_index() which set the transaction state to "active"
|
|
|
|
but never restored it to the original value. This bug caused warnings
|
|
|
|
to be printed by the rpl.rpl_ddl mysql-test.
|
|
|
|
|
|
|
|
2008-06-19 The InnoDB Team
|
|
|
|
|
|
|
|
* mysql-test/patches:
|
|
|
|
Add a directory which contains patches, which need to be applied to
|
|
|
|
MySQL source in order to get some mysql-tests to succeed. The patches
|
|
|
|
cannot be committed in MySQL repository because they are specific to
|
|
|
|
the InnoDB plugin.
|
|
|
|
|
|
|
|
2008-06-19 The InnoDB Team
|
|
|
|
|
|
|
|
* mysql-test/innodb-zip.result, mysql-test/innodb-zip.test,
|
|
|
|
row/row0row.c:
|
|
|
|
Fix an anomaly when updating a record with BLOB prefix
|
|
|
|
|
|
|
|
2008-06-18 The InnoDB Team
|
|
|
|
|
|
|
|
* include/trx0sys.h, srv/srv0start.c, trx/trx0sys.c:
|
|
|
|
Fix a bug in recovery which was a side effect of the file_format_check
|
|
|
|
changes
|
|
|
|
|
2008-06-09 12:27:39 +02:00
|
|
|
2008-06-09 The InnoDB Team
|
|
|
|
|
|
|
|
* mysql-test/innodb.result:
|
|
|
|
Fix the failing innodb test by merging changes that MySQL made to that
|
|
|
|
file
|
|
|
|
|
2008-06-06 17:34:17 +02:00
|
|
|
2008-06-06 The InnoDB Team
|
|
|
|
|
|
|
|
* buf/buf0buf.c, handler/ha_innodb.cc, include/buf0buf.h,
|
|
|
|
include/srv0srv.h, srv/srv0srv.c:
|
|
|
|
Fix Bug#36600 SHOW STATUS takes a lot of CPU in
|
|
|
|
buf_get_latched_pages_number
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, os/os0file.c:
|
|
|
|
Fix Bug#11894 innodb_file_per_table crashes w/ Windows .sym symbolic
|
|
|
|
link hack
|
|
|
|
|
|
|
|
* include/ut0ut.h, srv/srv0srv.c, ut/ut0ut.c:
|
|
|
|
Fix Bug#36819 ut_usectime does not handle errors from gettimeofday
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc:
|
|
|
|
Fix Bug#35602 Failed to read auto-increment value from storage engine
|
|
|
|
|
|
|
|
* srv/srv0start.c:
|
|
|
|
Fix Bug#36149 Read buffer overflow in srv0start.c found during "make
|
|
|
|
test"
|
|
|
|
|
2008-05-21 08:29:55 +02:00
|
|
|
2008-05-08 The InnoDB Team
|
|
|
|
|
|
|
|
* btr/btr0btr.c, mysql-test/innodb_bug36172.result,
|
|
|
|
mysql-test/innodb_bug36172.test:
|
|
|
|
Fix Bug#36172 insert into compressed innodb table crashes
|
|
|
|
|
|
|
|
2008-05-08 The InnoDB Team
|
|
|
|
|
|
|
|
InnoDB Plugin 1.0.1 released
|
|
|
|
|
2008-05-07 13:20:37 +02:00
|
|
|
2008-05-06 The InnoDB Team
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, include/srv0srv.h, include/sync0sync.h,
|
|
|
|
include/trx0sys.h, mysql-test/innodb-zip.result,
|
|
|
|
mysql-test/innodb-zip.test, srv/srv0srv.c, srv/srv0start.c,
|
|
|
|
sync/sync0sync.c, trx/trx0sys.c:
|
|
|
|
Implement the system tablespace tagging
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, handler/i_s.cc, include/univ.i,
|
|
|
|
srv/srv0start.c:
|
|
|
|
Add InnoDB version in INFORMATION_SCHEMA.PLUGINS.PLUGIN_VERSION,
|
|
|
|
in the startup message and in a server variable innodb_version.
|
|
|
|
|
|
|
|
* sync/sync0sync.c:
|
|
|
|
Fix a bug in the sync debug code where a lock with level
|
|
|
|
SYNC_LEVEL_VARYING would cause an assertion failure when a thread
|
|
|
|
tried to release it.
|
|
|
|
|
2008-04-30 08:20:52 +02:00
|
|
|
2008-04-30 The InnoDB Team
|
|
|
|
|
2008-05-07 13:20:37 +02:00
|
|
|
* Makefile.am:
|
|
|
|
Fix Bug#36434 ha_innodb.so is installed in the wrong directory
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc:
|
|
|
|
Merge change from MySQL (Fix Bug#35406 5.1-opt crashes on select from
|
|
|
|
I_S.REFERENTIAL_CONSTRAINTS):
|
|
|
|
ChangeSet@1.2563, 2008-03-18 19:42:04+04:00, gluh@mysql.com +1 -0
|
|
|
|
|
|
|
|
* scripts/install_innodb_plugins.sql:
|
|
|
|
Added
|
|
|
|
|
2008-04-30 08:20:52 +02:00
|
|
|
* mysql-test/innodb.result:
|
|
|
|
Merge change from MySQL (this fixes the failing innodb test):
|
|
|
|
ChangeSet@1.1810.3601.4, 2008-02-07 02:33:21+04:00
|
|
|
|
|
|
|
|
* row/row0sel.c:
|
|
|
|
Fix Bug#35226 RBR event crashes slave
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc:
|
|
|
|
Change the fix for Bug#32440 to show bytes instead of kilobytes in
|
|
|
|
INFORMATION_SCHEMA.TABLES.DATA_FREE
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, mysql-test/innodb.result,
|
|
|
|
mysql-test/innodb.test:
|
|
|
|
Fix Bug#29507 TRUNCATE shows to many rows effected
|
|
|
|
|
|
|
|
* handler/ha_innodb.cc, mysql-test/innodb.result,
|
|
|
|
mysql-test/innodb.test:
|
|
|
|
Fix Bug#35537 Innodb doesn't increment handler_update and
|
|
|
|
handler_delete
|
|
|
|
|
|
|
|
2008-04-29 The InnoDB Team
|
|
|
|
|
2008-10-24 09:14:16 +02:00
|
|
|
* handler/i_s.cc, include/srv0start.h, srv/srv0start.c:
|
2008-04-30 08:20:52 +02:00
|
|
|
Fix Bug#36310 InnoDB plugin crash
|
|
|
|
|
|
|
|
2008-04-23 The InnoDB Team
|
|
|
|
|
|
|
|
* mysql-test/innodb_bug36169.result, mysql-test/innodb_bug36169.test,
|
|
|
|
row/row0mysql.c:
|
|
|
|
Fix Bug#36169 create innodb compressed table with too large row size
|
|
|
|
crashed
|
|
|
|
|
2008-05-07 16:01:33 +02:00
|
|
|
* (outside the source tree):
|
|
|
|
Fix Bug#36222 New InnoDB plugin 1.0 has wrong MKDIR_P defined in
|
|
|
|
Makefile.in
|
|
|
|
|
2008-04-30 08:20:52 +02:00
|
|
|
2008-04-15 The InnoDB Team
|
|
|
|
|
|
|
|
InnoDB Plugin 1.0.0 released
|