• Satya B's avatar
    Applying InnoDB Plugin 1.0.5 snapshot ,part 12 · e011c02e
    Satya B authored
    From r5995 to r6043
    
    Detailed revision comments:
    
    r5995 | marko | 2009-09-28 03:52:25 -0500 (Mon, 28 Sep 2009) | 17 lines
    branches/zip: Do not write to PAGE_INDEX_ID after page creation,
    not even when restoring an uncompressed page after a compression failure.
    
    btr_page_reorganize_low(): On compression failure, do not restore
    those page header fields that should not be affected by the
    reorganization.  Instead, compare the fields.
    
    page_zip_decompress(): Add the parameter ibool all, for copying all
    page header fields.  Pass the parameter all=TRUE on block read
    completion, redo log application, and page_zip_validate(); pass
    all=FALSE in all other cases.
    
    page_zip_reorganize(): Do not restore the uncompressed page on
    failure.  It will be restored (to pre-modification state) by the
    caller anyway.
    
    rb://167, Issue #346
    r5996 | marko | 2009-09-28 07:46:02 -0500 (Mon, 28 Sep 2009) | 4 lines
    branches/zip: Address Issue #350 in comments.
    
    lock_rec_queue_validate(), lock_rec_queue_validate(): Note that
    this debug code may violate the latching order and cause deadlocks.
    r5997 | marko | 2009-09-28 08:03:58 -0500 (Mon, 28 Sep 2009) | 12 lines
    branches/zip: Remove an assertion failure when the InnoDB data dictionary
    is inconsistent with the MySQL .frm file.
    
    ha_innobase::index_read(): When the index cannot be found,
    return an error.
    
    ha_innobase::change_active_index(): When prebuilt->index == NULL,
    set also prebuilt->index_usable = FALSE.  This is not needed for
    correctness, because prebuilt->index_usable is only checked by
    row_search_for_mysql(), which requires prebuilt->index != NULL.
    
    This addresses Issue #349.  Approved by Heikki Tuuri over IM.
    r6005 | vasil | 2009-09-29 03:09:52 -0500 (Tue, 29 Sep 2009) | 4 lines
    branches/zip:
    
    ChangeLog: wrap around 78th column, not earlier.
    
    r6006 | vasil | 2009-09-29 05:15:25 -0500 (Tue, 29 Sep 2009) | 4 lines
    branches/zip:
    
    Add ChangeLog entry for the release of 1.0.4.
    
    r6007 | vasil | 2009-09-29 08:19:59 -0500 (Tue, 29 Sep 2009) | 6 lines
    branches/zip:
    
    Fix the year, should be 2009.
    
    Pointed by:	Calvin
    
    r6026 | marko | 2009-09-30 02:18:24 -0500 (Wed, 30 Sep 2009) | 1 line
    branches/zip: Add some debug assertions for checking FSEG_MAGIC_N.
    r6028 | marko | 2009-09-30 08:55:23 -0500 (Wed, 30 Sep 2009) | 3 lines
    branches/zip: recv_no_log_write: New debug flag for tracking down
    Mantis Issue #347.  No modifications should be made to the database
    while recv_apply_hashed_log_recs() is about to complete.
    r6029 | calvin | 2009-09-30 15:32:02 -0500 (Wed, 30 Sep 2009) | 4 lines
    branches/zip: non-functional changes
    
    Fix typo.
    
    r6031 | marko | 2009-10-01 06:24:33 -0500 (Thu, 01 Oct 2009) | 49 lines
    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);
     
    r6033 | calvin | 2009-10-01 15:19:46 -0500 (Thu, 01 Oct 2009) | 4 lines
    branches/zip: fix a typo in error message
    
    Reported as bug#47763.
    
    r6043 | inaam | 2009-10-05 09:45:35 -0500 (Mon, 05 Oct 2009) | 12 lines
    branches/zip  rb://176
    
    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.
    
    This patch also resets the state of buf_pool struct at invalidation. This
    addresses the concern where buf_pool->freed_page_clock becomes non-zero
    because we read in a system tablespace page for file format info at
    startup.
    
    Approved by: Marko
    
    e011c02e
row0merge.c 66.4 KB