1. 16 May, 2006 2 commits
  2. 15 May, 2006 1 commit
  3. 12 May, 2006 3 commits
  4. 11 May, 2006 4 commits
    • marko's avatar
      branches/zip: After merge fix, and cleanup. · 93fe682c
      marko authored
      btr_validate_level(): Add missing parameter to added buf_page_print() calls.
      
      btr_root_raise_and_insert(): Replace low-level code with page_zip_copy().
      
      page_zip_copy(): New function to copy the data payload of a compressed page,
      byte for byte.  The file page header and trailer are not copied, to avoid
      overwriting the fields FIL_PAGE_OFFSET, FIL_PAGE_PREV and FIL_PAGE_NEXT.
      93fe682c
    • marko's avatar
      branches/zip: Merge revisions 558:560 from trunk. · 2433ba76
      marko authored
      2433ba76
    • marko's avatar
      branches/zip: Merge revisions 536:558 from trunk. · fefd14cb
      marko authored
      fefd14cb
    • marko's avatar
      branches/zip: Minor cleanup. · 17eb5eab
      marko authored
      btr_cur_compress_if_useful(): Replace if () return(); return() with return.
      
      page_rec_get_next_low(): New function.
      
      page_rec_get_prev(): Invoke page_is_comp() outside the loop.
      Replace page_rec_get_next() with loop-specific instances of
      page_rec_get_next_low().
      
      page_copy_rec_list_end(): Add some debug assertions.
      17eb5eab
  5. 10 May, 2006 4 commits
  6. 09 May, 2006 1 commit
  7. 08 May, 2006 4 commits
  8. 04 May, 2006 1 commit
    • marko's avatar
      branches/zip: Minor improvements. · f258491a
      marko authored
      Introduce FIL_PAGE_ZBLOB_DATA as a synonym for FIL_PAGE_FILE_FLUSH_LSN.
      
      btr_store_big_rec_extern_fields(): Make the assertion about
      dict_table_zip_size() more accurate.
      
      buf_LRU_get_free_block(), buf_block_alloc(): Add parameter zip_size.
      
      buf_calc_zblob_page_checksum(): Remove. Replace with page_zip_calc_checksum().
      
      buf_page_init(): Remove parameter zip_size.
      
      buf_page_io_complete(): Add a placeholder for handling compressed pages.
      
      trx_doublewrite_page_inside(): Remove redundant function.
      
      page_zip_write_rec(): Relax an overly tight assertion about blob_no.
      f258491a
  9. 02 May, 2006 1 commit
    • marko's avatar
      branches/zip: Prepare for writing compressed and reading pages. · 7bd3aca4
      marko authored
      buf_page_print(): Print also compressed pages.  Add parameter zip_size.
      
      buf_flush_init_for_writing(): Stamp the fields on a compressed B-tree index
      page.
      
      Add the header field FIL_PAGE_ZBLOB_SPACE_ID as an alias of FIL_PAGE_PREV.
      
      page_zip_calc_checksum(): New function.
      
      page_zip_compress(): Avoid copying the fields that are written in
      buf_flush_init_for_writing().
      
      page_zip_header_cmp(): New function for comparing those fields of the
      page header that will not be written in buf_flush_init_for_writing().
      7bd3aca4
  10. 28 Apr, 2006 2 commits
    • marko's avatar
      branches/zip: page_cur_insert_rec_low(): Write a log record of · 7a54aa4d
      marko authored
      recompressing the page.
      7a54aa4d
    • marko's avatar
      branches/zip: Minor improvements. · 0cb4c58f
      marko authored
      buf_flush_init_for_writing(): Calculate the checksum with the actual zip_size.
      
      buf_calc_zblob_page_checksum(): Skip the field FIL_PAGE_SPACE_OR_CHKSUM.
      
      trx_sys_doublewrite_init_or_restore_page(): Use the actual zip_size.
      
      page_cur_insert_rec_low(): If page_zip_alloc() fails, try compressing the
      whole page afterwards.
      0cb4c58f
  11. 27 Apr, 2006 1 commit
  12. 26 Apr, 2006 1 commit
    • marko's avatar
      branches/zip: Minor cleanup and bug fixes · b0ae76c5
      marko authored
      btr_page_reorganize_low(): Rename new_page to temp_page.
      
      btr_store_big_rec_extern_fields(): FIL_PAGE_TYPE is 2 bytes, not 4.
      
      buf_page_init(), buf_page_create(), buf_read_page_low(),
      buf_page_init_for_read(): Add parameter zip_size.
      
      buf_page_init_for_backup_restore(),
      recv_apply_log_recs_for_backup(): Enclose in #ifdef UNIV_HOTBACKUP.
      
      Enclose some debug code in #ifdef UNIV_LOG_REPLICATE.
      
      page_zip_write_header_log(): Replace page_zip with a pointer to
      the uncompressed page.
      
      page_zip_write_rec(): Relax an assertion about blob_no + n_ext.
      
      page_copy_rec_list_to_created_page_write_log(): Allow logging to be disabled.
      b0ae76c5
  13. 25 Apr, 2006 1 commit
    • marko's avatar
      branches/zip: Write the compressed page size to SYS_TABLES.TYPE · 121623c1
      marko authored
      and to the file space header (FSP_PAGE_ZIP_SIZE, renamed from
      FSP_LOWEST_NO_WRITE).
      
      fil_space_struct: Add zip_size.
      
      dict_table_struct: Embed zip_size in flags.
      
      dict_table_zip_size(): Infer zip_size from table->flags.
      
      dict_sys_tables_get_zip_size(): Read zip_size from SYS_TABLES.TYPE.
      
      fil_space_get_zip_size(): Read zip_size from the file space header.
      
      Add the redo log entry type MLOG_ZIP_FILE_CREATE.
      121623c1
  14. 12 Apr, 2006 2 commits
  15. 11 Apr, 2006 4 commits
    • marko's avatar
      branches/zip: Fix some crash recovery bugs. · cb6a8cc1
      marko authored
      page_zip_alloc(): Add parameter "mtr" and log successful calls
      to page_zip_compress().
      
      page_zip_write_blob_ptr(), page_zip_write_node_ptr(): Write the offset on
      the uncompressed page, because mlog_write_initial_log_record_fast()
      does not do so.
      
      page_zip_write_header_log(), page_zip_parse_write_header(): Encode the
      offset in one byte.
      cb6a8cc1
    • marko's avatar
      branches/zip: Add the redo log type MLOG_ZIP_PAGE_COMPRESS. Remove · 829229ce
      marko authored
      MLOG_ZIP_LIST_START_COPY and MLOG_ZIP_LIST_END_COPY.
      
      btr_compress(): Simplify a debug assertion.
      
      page_zip_compress_write_log(), page_zip_parse_compress(): New functions.
      
      page_cur_parse_insert_rec(): Simplify the code.
      
      page_parse_create_zip(): Removed.
      
      page_create_zip(), page_copy_rec_list_end(),
      page_copy_rec_list_start(): Invoke page_zip_compress_write_log().
      829229ce
    • marko's avatar
      branches/zip: Minor cleanup. Remove MLOG_ZIP_ROOT_RAISE. · 64d5043f
      marko authored
      btr_page_create(): Remove parameters "prev" and "next".  The pointers
      to adjacent B-tree pages will be set in the caller before any user
      records are inserted.
      
      Remove the redo log entry type MLOG_ZIP_ROOT_RAISE, since
      btr_root_raise_and_insert() will not defer modifications to
      the compressed page.
      
      btr_attach_half_pages(): Add parameter new_page_zip.
      64d5043f
    • marko's avatar
      branches/zip: Disable accidentally committed debug code that would break · a3e8e345
      marko authored
      crash recovery of uncompressed tables.
      a3e8e345
  16. 10 Apr, 2006 2 commits
    • marko's avatar
      branches/zip: Replace the redo log entry types · 16dddacb
      marko authored
      MLOG_ZIP_COMPRESS and MLOG_ZIP_DECOMPRESS with higher-level entry types.
      Implement the logging and crash recovery of MLOG_ZIP_PAGE_CREATE.
      
      page_create_zip(): New function for creating a compressed B-tree page.
      
      page_parse_create_zip(): New function for applying a MLOG_ZIP_PAGE_CREATE
      redo log record.
      
      btr_page_create(): Remove the prototype.  Add parameters page_zip, level,
      prev, and next.
      
      btr0btr.c: Eliminate page_zip_compress() calls where possible.
      
      page_zip_alloc(), page_zip_compress(), page_zip_decompress(),
      page_zip_clear_rec(): Remove parameter mtr.
      
      recv_parse_or_apply_log_rec_body(): Handle MLOG_ZIP_PAGE_CREATE.
      Add TODO comments for the other added redo log entry types.
      16dddacb
    • marko's avatar
      branches/zip: btr_lift_page_up(): Remove return value; · 3b3c4b9d
      marko authored
      assume that the operation always succeeds.
      3b3c4b9d
  17. 07 Apr, 2006 3 commits
    • marko's avatar
      branches/zip: Implement crash recovery of writing BLOB pointers. · 1f8b0f38
      marko authored
      page_zip_parse_write_blob_ptr(): New function for applying the redo log
      record MLOG_ZIP_WRITE_BLOB_PTR.
      
      page_zip_write_blob_ptr(): Write the necessary information to the redo log.
      
      page0zip.c: Tighten the assertions to ensure that blob_ptr < page_zip->n_blobs.
      
      page_zip_write_node_ptr(): Use memcpy() instead of mach_write_to_4().
      1f8b0f38
    • marko's avatar
      branches/zip: Implement crash recovery of writing to the page header. · 817ca61f
      marko authored
      page_zip_parse_write_header(): New function for applying the redo log of
      MLOG_ZIP_WRITE_HEADER.
      
      page_zip_parse_write_node_ptr(): Mark the log corrupted if !page_zip.
      817ca61f
    • marko's avatar
      branches/zip: Implement the crash recovery of MLOG_ZIP_WRITE_NODE_PTR. · 684651ce
      marko authored
      page_zip_parse_write_node_ptr(): New function to apply a redo log of
      MLOG_ZIP_WRITE_NODE_PTR.
      
      page_zip_write_node_ptr(): Write all needed information to the redo log.
      
      page_zip_write_header_log(): Write all necessary information to the redo log.
      684651ce
  18. 05 Apr, 2006 1 commit
    • marko's avatar
      branches/zip: Initial steps towards disk-based storage of compressed pages. · f4c776f5
      marko authored
      dict_mem_table_create(): Account for DICT_TF_COMPRESSED in a debug assertion.
      
      btr_store_big_rec_extern_fields(), btr_free_externally_stored_field(),
      btr_copy_externally_stored_field(): Implement the disk format for
      compressed BLOB pages.
      
      btr_copy_externally_stored_field(): Improve error reporting and handling
      when decompressing BLOB pages.
      
      buf_flush_init_for_writing(), buf_page_is_corrupted(), buf_page_print():
      Account for compressed BLOB pages (FIL_PAGE_TYPE_ZBLOB).
      
      buf_calc_zblob_page_checksum(): New function.
      f4c776f5
  19. 04 Apr, 2006 1 commit
    • marko's avatar
      branches/zip: Minor cleanup. · ed3d5773
      marko authored
      Replace btr_page_get_level() with page_is_leaf() where possible.
      
      row_purge_upd_exist_or_extern(): Remove obsolete TODO comment.
      
      dtuple_convert_big_rec(): Replace a flag variable with goto.
      ed3d5773
  20. 03 Apr, 2006 1 commit
    • marko's avatar
      branches/zip: Fix some BLOB handling bugs. · ac5b886f
      marko authored
      btr_store_big_rec_extern_fields(): Assert that page_zip is non-NULL
      if and only if dict_table_is_zip() holds.
      
      btr_free_externally_stored_field(): Observe dict_table_is_zip().
      Allow page_zip==NULL even if dict_table_is_zip().  Remove the
      related TODO comment in row_purge_upd_exist_or_extern().
      
      page_zip_available(): uncompressed_size already includes
      PAGE_ZIP_DIR_SLOT_SIZE.
      
      page_zip_decompress(): Remove bogus assertion d_stream.next_out == last.
      Do not subtract BTR_EXTERN_FIELD_REF_SIZE from d_stream.avail_in when
      decompressing records, because the records may be deleted later in
      page_zip_apply_log(), and no BLOB pointers are allocated for deleted
      records.
      ac5b886f