1. 21 Oct, 2008 1 commit
    • marko's avatar
      branches/innodb+: Merge revisions 2799:2835 from branches/zip: · 467b0a8d
      marko authored
        ------------------------------------------------------------------------
        r2809 | marko | 2008-10-16 09:41:13 +0300 (Thu, 16 Oct 2008) | 18 lines
      
        branches/zip: Skip the undo log size check on REDUNDANT and COMPACT tables.
      
        In ROW_FORMAT=DYNAMIC and ROW_FORMAT=COMPRESSED, column prefix indexes
        require that prefixes of externally stored columns be written to the
        undo log. This may make the undo log record 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().
      
        dict_index_add_to_cache(): Skip the undo log size check for REDUNDANT
        and COMPACT tables. These tables store prefixes of externally stored
        columns locally within the clustered index record.  There are no special
        considerations for the undo log record size.
      
        innodb-index.test: Ensure that the check exists for ROW_FORMAT=DYNAMIC,
        but not for ROW_FORMAT=COMPACT.
      
        This fixes issue #99.  rb://28 approved by Sunny.
        ------------------------------------------------------------------------
        r2810 | vasil | 2008-10-16 19:57:58 +0300 (Thu, 16 Oct 2008) | 12 lines
      
        branches/zip:
      
        Fix Mantis issue#61:
      
        In row_undo_ins_parse_undo_rec(): if we find that a table has no indexes
        (dict_table_get_first_index() returns NULL) do not try to call
        trx_undo_rec_get_row_ref() with a NULL pointer because that would lead to
        a crash. Instead, print a warning and set node->table to NULL just like
        it is done if the .ibd file is missing.
      
        Approved by:    Heikki (via IM)
        ------------------------------------------------------------------------
        r2824 | marko | 2008-10-20 09:58:01 +0300 (Mon, 20 Oct 2008) | 2 lines
      
        branches/zip: rec_convert_dtuple_to_rec_comp(): Relax a too tight assertion.
        Spotted by Sunny.
        ------------------------------------------------------------------------
        r2825 | vasil | 2008-10-20 13:41:04 +0300 (Mon, 20 Oct 2008) | 6 lines
      
        branches/zip:
      
        Print the table name via ut_print_name() and add two spaces before InnoDB.
      
        Suggested by:   Marko
        ------------------------------------------------------------------------
        r2833 | marko | 2008-10-21 10:16:45 +0300 (Tue, 21 Oct 2008) | 2 lines
      
        branches/zip: ibuf_insert_low(): Avoid unnecessarily
        acquiring and releasing ibuf_mutex.
        ------------------------------------------------------------------------
        r2834 | marko | 2008-10-21 10:18:57 +0300 (Tue, 21 Oct 2008) | 1 line
      
        branches/zip: ibuf_delete_rec(): Add debug assertions suggested by Heikki.
        ------------------------------------------------------------------------
        r2835 | marko | 2008-10-21 11:04:06 +0300 (Tue, 21 Oct 2008) | 1 line
      
        branches/zip: ibuf_insert_low(): Simplify a comparison.
        ------------------------------------------------------------------------
      467b0a8d
  2. 15 Oct, 2008 2 commits
    • marko's avatar
      branches/innodb+: Merge revisions 2774:2799 from branches/zip: · a980b544
      marko authored
        ------------------------------------------------------------------------
        r2781 | marko | 2008-10-13 13:40:57 +0300 (Mon, 13 Oct 2008) | 1 line
      
        branches/zip: page_cur_delete_rec(): Call page_zip_validate_low().
        ------------------------------------------------------------------------
        r2783 | vasil | 2008-10-13 18:34:34 +0300 (Mon, 13 Oct 2008) | 9 lines
      
        branches/zip:
      
        Remove mysql-test/patches/bug37312.diff because MySQL "fixed"
        Bug#37312 by removing the test.
      
        http://bugs.mysql.com/37312
        http://lists.mysql.com/commits/54462
        ------------------------------------------------------------------------
        r2784 | marko | 2008-10-13 21:35:30 +0300 (Mon, 13 Oct 2008) | 1 line
      
        branches/zip: Add missing NULL check to the assertion added in r2781.
        ------------------------------------------------------------------------
        r2785 | marko | 2008-10-13 22:29:12 +0300 (Mon, 13 Oct 2008) | 2 lines
      
        branches/zip: page_cur_delete_rec(): Remove the bogus page_zip_validate_low()
        assertion that was added in r2781 and explain why it was bogus.
        ------------------------------------------------------------------------
        r2786 | calvin | 2008-10-14 19:14:47 +0300 (Tue, 14 Oct 2008) | 7 lines
      
        branches/zip: fix Mantis issue #96 Problem compiling ha_innodb.cc
        on 64-bit Windows
      
        Change the definition of srv_replication_delay from ulint to ulong.
        ulint is 64-bit on Win64.
      
        Approved by:	Heikki (on IM)
        ------------------------------------------------------------------------
        r2787 | calvin | 2008-10-14 19:19:41 +0300 (Tue, 14 Oct 2008) | 7 lines
      
        branches/zip: fix compiler warning
      
        Change the definition of add_on from ulint to ullint, to eliminate
        the warning in .\btr\btr0cur.c:
        conversion from 'ullint' to 'ulint', possible loss of data
      
        Approved by:	Heikki (on IM)
        ------------------------------------------------------------------------
        r2793 | marko | 2008-10-15 10:00:06 +0300 (Wed, 15 Oct 2008) | 2 lines
      
        branches/zip: row_create_table_for_mysql(), row_create_index_for_mysql():
        Note that the dictionary object will be freed.
        ------------------------------------------------------------------------
        r2794 | marko | 2008-10-15 10:32:40 +0300 (Wed, 15 Oct 2008) | 9 lines
      
        branches/zip: When invoking page_zip_copy_recs(), update the lock table
        and the adaptive hash index.  This should fix Issue #95 and Issue #87.
      
        page_zip_copy_recs(): Copy PAGE_MAX_TRX_ID as well, to have similar behavior
        to page_copy_rec_list_start() and page_copy_rec_list_end().
      
        btr_root_raise_and_insert(), btr_page_split_and_insert(), btr_lift_page_up():
        Update the lock table and the adaptive hash index.
        ------------------------------------------------------------------------
        r2797 | marko | 2008-10-15 13:21:54 +0300 (Wed, 15 Oct 2008) | 3 lines
      
        branches/zip: Introduce UNIV_ZIP_COPY for invoking page_zip_copy_recs()
        more often in B-tree operations.
        ------------------------------------------------------------------------
        r2799 | marko | 2008-10-15 14:27:42 +0300 (Wed, 15 Oct 2008) | 25 lines
      
        branches/zip: When the server crashes while freeing an externally stored
        column of a compressed table, the BTR_EXTERN_LEN field in the BLOB pointer
        will be written as 0.  Tolerate this in the functions that deal with
        externally stored columns.  This fixes Issue #80 and was posted at rb://26.
      
        Note that the clustered index record is always deleted or purged last,
        after any secondary index records referring to it have been deleted.
      
        btr_free_externally_stored_field(): On an uncompressed table, zero out
        the BTR_EXTERN_LEN, so that half-deleted BLOBs can be detected after
        crash recovery.
      
        btr_copy_externally_stored_field_prefix(): Return 0 if the BLOB has been
        half-deleted.
      
        row_upd_ext_fetch(): Assert that the externally stored column exists.
      
        row_ext_cache_fill(): Allow btr_copy_externally_stored_field_prefix()
        to return 0.
      
        row_sel_sec_rec_is_for_blob(): Return FALSE if the BLOB has been half-deleted.
        This is correct, because the clustered index record would have been deleted
        or purged last, after any secondary index records referring to it had been
        deleted.
        ------------------------------------------------------------------------
      a980b544
    • marko's avatar
      branches/innodb+: btr_cur_search_to_nth_level(): Add a TODO comment that · d6d6f656
      marko authored
      when encountering an empty leaf page, we should advance to the right
      siblings until a non-empty page is found.  Move the initialization of
      cursor->ibuf_cnt to a better place.
      d6d6f656
  3. 11 Oct, 2008 1 commit
  4. 02 Oct, 2008 1 commit
  5. 01 Oct, 2008 1 commit
  6. 30 Sep, 2008 5 commits
    • marko's avatar
      branches/innodb+: row_search_index_entry(): Clean up the call interface · 769969cc
      marko authored
      and add assertions to callers.  Remove the added ibool* parameter and
      return enum row_search_result instead of ibool, to reflect the four
      different outcomes: record found, not found, buffered, and status unknown
      (record not in the buffer pool).
      
      rb://6
      769969cc
    • marko's avatar
      branches/innodb+: ibuf_rec_get_size(): Correct some bugs. rb://17 · 33b5eef5
      marko authored
      This function was created when the delete buffering code was merged from
      branches/fts in r2324.
      
      ibuf_rec_get_size(): Rename the parameter new_format to pre_4_1.  Use
      the correct offsets and accessors for both values of pre_4_1.
      
      ibuf_rec_get_info(): Note that the record must be in 4.1 or later format.
      33b5eef5
    • marko's avatar
      branches/innodb+: page_zip_dir_delete(): Do not clear the last record on · 99d69263
      marko authored
      a secondary index leaf page, because that could break delete buffering.
      
      btr_page_get_father_node_ptr(): Remove a TODO comment regarding this.
      99d69263
    • marko's avatar
      branches/innodb+: Minor cleanup. · 104979bf
      marko authored
      ibuf_set_entry_counter(): Turn a ut_ad() assertion into ut_a().
      
      ibuf_set_del_mark(), ibuf_delete(): Add const qualifiers to read-only
      parameters.
      104979bf
    • marko's avatar
      branches/innodb+: Non-functional changes: · e1580c30
      marko authored
      ibuf_get_entry_counter_low(): Rename from ibuf_set_entry_counter_low().
      This function only reads the counter.  Add const qualifier to the
      rec parameter.
      
      ibuf_set_entry_counter(): Document the entry parameter as in/out.
      e1580c30
  7. 29 Sep, 2008 1 commit
  8. 26 Sep, 2008 1 commit
    • marko's avatar
      branches/innodb+: Minor cleanup. · 5a6b9cf2
      marko authored
      ibuf_rec_get_info(): Eliminate the local variable "mod".  Use switch-case
      instead of if-else if-else.
      
      ibuf_rec_get_op_type(), ibuf_add_ops(), ibuf_print_ops():
      Add const qualifiers to read-only parameters.
      
      ibuf_rec_get_volume(): Remove empty line at end of block.
      5a6b9cf2
  9. 25 Sep, 2008 2 commits
  10. 24 Sep, 2008 5 commits
  11. 23 Sep, 2008 2 commits
  12. 22 Sep, 2008 8 commits
  13. 19 Sep, 2008 3 commits
    • marko's avatar
      branches/innodb+: buf0buf.c: Fix some assertions. · 583a4fb4
      marko authored
      buf_page_get_gen(): Once again, zip_size must always match the
      compressed page size of the tablespace where the page is requested from.
      This seems to hold also for all calls from the insert buffer.
      
      buf_page_optimistic_get_func(): Do not pass mtr to ibuf_page(), because
      there is no guarantee that mtr would contain an x-latch to the insert
      buffer bitmap page that covers (block->page.space, block->page.offset).
      583a4fb4
    • marko's avatar
      branches/innodb+: buf_page_get_gen(): Correct some ut_ad() assertions. · 7aeb05d8
      marko authored
      zip_size should always equal fil_space_get_zip_size(space), even when called
      from ibuf.
      
      ibuf_page() should be called with mtr=NULL to be equivalent to the original
      implementation.  We cannot assume that mtr holds an x-latch on the insert
      buffer bitmap page that covers the page that is being requested.
      7aeb05d8
    • marko's avatar
      branches/innodb+: Undo another white-space change that makes the code · 93fdc0e4
      marko authored
      differ from branches/zip.
      93fdc0e4
  14. 18 Sep, 2008 5 commits
  15. 17 Sep, 2008 2 commits