1. 21 Feb, 2006 1 commit
  2. 17 Feb, 2006 3 commits
  3. 16 Feb, 2006 2 commits
    • marko's avatar
    • marko's avatar
      branches/zip: Implement the compression of BLOB columns. · 1b7710af
      marko authored
      This has not been extensively tested yet, because some other part of the
      code breaks in "ibtestblob".
      
      btr_free_page_low(): Add parameters "space" and "page_no", because they
      are omitted from compressed BLOB pages.
      
      btr0cur.c: Implement the compression and decompression of BLOB columns,
      enabled at compile-time (#define ZIP_BLOB TRUE) for now.
      
      btr_rec_free_externally_stored_fields(),
      btr_copy_externally_stored_field(): Made static
      
      mlog_log_string(): New function, split from mlog_write_string(), allows
      to avoid a dummy memcpy() of compressed BLOB pages.
      1b7710af
  4. 13 Feb, 2006 1 commit
    • marko's avatar
      branches/zip: Remove in-place updates of the "external storage" · 4b3be43c
      marko authored
      flag of records.  The flags may only be updated in heap-allocated
      copies of records.
      
      btr_root_raise_and_insert(),
      btr_page_split_and_insert(),
      btr_cur_insert_if_possible(),
      btr_cur_optimistic_insert(),
      btr_cur_pessimistic_insert(),
      page_cur_tuple_insert(),
      page_cur_insert_rec_low(): Add parameters "ext" and "n_ext".
      
      dtuple_convert_big_rec(): Make parameter "ext" const.
      4b3be43c
  5. 10 Feb, 2006 1 commit
    • marko's avatar
      branches/zip: Prepare for in-place updates of B-tree node pointers, · 12050c5c
      marko authored
      BLOB pointers, trx_id, and roll_ptr.
      
      btr_empty(), btr_create(), page_create(): Add parameter "index", as some
      index information will be encoded on the compressed page.
      
      Define REC_NODE_PTR_SIZE as 4.
      
      Allow btr_page_reorganize() and btr_page_reorganize_low() to fail.
      
      Define the error code DB_ZIP_OVERFLOW.
      
      Make row_ins_index_entry_low() static.
      
      page0zip: Encode the index, log reorganized records, and store uncompressed
      fields separately from the compressed data stream.
      12050c5c
  6. 03 Feb, 2006 1 commit
    • marko's avatar
      branches/zip: Prepare for upcoming implementation of page_zip_compress() · d5f33daf
      marko authored
      that will require complete index information.
      
      dict_create_index_step(): invoke dict_index_add_to_cache() before btr_create()
      
      dict_index_remove_from_cache(): make public
      
      dict_index_get_if_in_cache_low(): new function, for holding dict_sys->mutex
      
      buf_flush_init_for_writing(): remove the temporary hook to page_zip_compress()
      
      page_create(): add temporary hook to page_zip_compress()
      d5f33daf
  7. 30 Nov, 2005 3 commits
    • marko's avatar
      branches/zip: · 3a55efc4
      marko authored
      buf_flush_init_for_writing(): The reported dense page directory size was
      4 bytes too much.  Subtract 2 (infimum and supremum) from n_heap.
      
      page_zip_decompress(): When decompressing the last user record, only set
      heap_no and the status bits if there is data to decode, i.e., there
      are user records on the page.
      3a55efc4
    • marko's avatar
      branches/zip: Minor improvements for debugging and testing purposes. · 82c74a75
      marko authored
      buf_flush_init_for_writing(): Improve the diagnostics and make the
      condition for skipping pages accurate.
      
      univ.i: Introduce UNIV_ZIP_DEBUG for enabling some page_zip_validate() tests.
      
      page0zip.h, page0zip.c: Define and use page_zip_validate() in
      page_zip_compress() and page_zip_write() if UNIV_ZIP_DEBUG or UNIV_DEBUG
      is defined.
      82c74a75
    • marko's avatar
      branches/zip: Merge revisions 72:79 from trunk. · fe9e164f
      marko authored
      fe9e164f
  8. 29 Nov, 2005 2 commits
    • marko's avatar
      branches/zip: Merge revisions 9:72 from trunk. · 0bf7f4bd
      marko authored
      0bf7f4bd
    • marko's avatar
      branches/zip: More fixes to problems found in speedc test runs. · 541fcfcd
      marko authored
      Before the speedc test was interrupted, 121,765 B-tree pages were written.
      
      buf_flush_init_for_writing(): Do not compress other than B-tree pages
      outside the system tablespace.  Report non-B-tree pages.
      
      page_zip_decompress(): Clear the unused heap space on the uncompressed page,
      so that the whole buffer for the uncompressed page will be initialized and
      page_zip_validate() will always succeed.
      541fcfcd
  9. 28 Nov, 2005 1 commit
    • marko's avatar
      branches/zip: Fixes to allow the speedc test to run without assertion failures. · de60fbdf
      marko authored
      page_zip_dir_decode(): Correct the handling of the free list.
      
      page_zip_set_extra_bytes(): Remove off-by-one error in the first loop.
      
      page_zip_apply_log(): Replace parameter end with size, and let end=data+size.
      
      page_zip_decompress(): Properly handle pages where the first user record has
      more than REC_N_NEW_EXTRA_BYTES extra bytes.
      
      page_delete_rec_list_end(): Remove page_zip_temp.  This operation will be
      done completely in-place on page_zip.  If page_zip is specified, clear the
      data bytes and the info and status bits of deleted records and clear the
      removed directory slots.
      
      page_dir_delete_slot(): Clear the last directory slot, which will be removed.
      de60fbdf
  10. 25 Nov, 2005 3 commits
    • marko's avatar
      branches/zip: Minor fixes. Now one non-trivial page compresses and · 818d1229
      marko authored
      decompresses properly.
      
      page_mem_free(): Adjust the temporary condition for zeroing data.
      
      page_zip_compress(): Do not accept Z_STREAM_END from non-final deflate().
      Tighten the assertion on c_stream.avail_in.
      
      page_zip_dir_sort(): Note that the high bound is not inclusive.
      
      page_zip_dir_decode(): Remove off-by-one error in page_zip_dir_sort() call.
      
      page_zip_set_extra_bytes(): Add the termination condition that was forgotten
      from the second for loop.  Simplify the code a little.
      
      page_zip_decompress(): Do not accept Z_STREAM_END from non-final inflate().
      Tighten the assertion on d_stream.avail_out.  Increment heap_status correctly.
      818d1229
    • marko's avatar
      branches/zip: Minor fixes to get a page with one record compress/decompress. · d1f9c8ec
      marko authored
      A page with multiple records or deleted records still does not compress
      or decompress properly.
      
      buf_flush_init_for_writing(): Initialize block->page_zip properly so that all
      assertions in page0zip can be enabled.
      
      page_zip_decompress(): Note that corrupt data should not lead to assertions.
      
      page_zip_dir_set(): Correct the interface.  Fix off-by-one error.
      page_zip_dir_get(): Fix off-by-one error.
      
      page0zip.c: Replace n_heap with n_dense and add comments about
      the infimum and supremum records whenever we subtract 2 from heap_no.
      Fix some programming errors.
      d1f9c8ec
    • marko's avatar
      branches/zip: Minor fixes. Compression/decompression still fails. · 13002bdf
      marko authored
      buf0flu.c: Allocate the temporary buffer from buf_frame_alloc().
      
      page_zip_simple_validate(): Do not assert page_zip->m_start >= PAGE_DATA.
      
      page_zip_compress(): Replace some assertions with page_zip_simple_validate(),
      and do not assert anything about page_zip->data contents.
      
      page_zip_validate(): Do not compare the page trailer bytes.
      
      page_zip_write(): Assert that the entire page headers match and
      that page_zip->m_start >= PAGE_DATA.
      13002bdf
  11. 24 Nov, 2005 1 commit
  12. 18 Nov, 2005 2 commits
  13. 15 Nov, 2005 1 commit
  14. 14 Nov, 2005 2 commits
    • marko's avatar
      branches/zip: Minor improvements. · b0b49363
      marko authored
      page_dir_slot_set_n_owned(): Check page_zip_available().
      page_dir_add_slots(): Add parameter page_zip.
      btr_attach_half_pages(): Add parameter page_zip.
      btr_node_ptr_set_child_page_no(): Add parameter page_zip.
      Make comments about page_zip modification log usage more accurate.
      b0b49363
    • marko's avatar
      branches/zip: Minor improvements. · 2f435d29
      marko authored
      page_dir_set_n_slots(): Add debug assertion that there will be enough space
      available in the modification log of the compressed page.
      page_trailer_get_len(): Simplify the formula.  Make more use of the function.
      2f435d29
  15. 11 Nov, 2005 2 commits
    • marko's avatar
      branches/zip: Minor improvements. · d8f576e7
      marko authored
      page_set_max_trx_id(), page_update_max_trx_id(): Add parameter page_zip.
      
      Check that page_zip_decompress() is never called after modifying the
      header or trailer of the compressed page, i.e., that page_zip_decompress()
      will restore the uncompressed page as it was before the failed operation.
      d8f576e7
    • marko's avatar
      branches/zip: Restore left b-tree splits. · 83539afa
      marko authored
      page_move_rec_list_start(): Restored.  Reorganize old page if compressed.
      btr_page_split_and_insert(): Do left page splits.
      83539afa
  16. 10 Nov, 2005 1 commit
    • marko's avatar
      branches/zip: · 3bf12fb4
      marko authored
      buf_flush_buffered_writes(): Remove bogus assertion failure.
      3bf12fb4
  17. 09 Nov, 2005 1 commit
    • marko's avatar
      branches/zip: Bug fixes and improvements. · 61f21148
      marko authored
      page_header_reset_last_insert(): Add page_zip parameter.
      rec_get_next_ptr(): Return a pointer to the same page, or NULL.
      page_dir_delete_slot(): Fix off-by-one errors.
      61f21148
  18. 07 Nov, 2005 1 commit
    • marko's avatar
      branches/zip: · 18f8313a
      marko authored
      Fix some (not all) bugs found by testing.
      18f8313a
  19. 04 Nov, 2005 2 commits
    • marko's avatar
      branches/zip: · 5ec88a30
      marko authored
      Fix bugs found during testing.
      5ec88a30
    • marko's avatar
      branches/zip: · dbfea3e9
      marko authored
      Add page_zip parameter to page_dir_slot_set_rec().
      Improve the documentation of the page_zip parameters in page0page.
      Add function page_trailer_get_len().
      dbfea3e9
  20. 02 Nov, 2005 1 commit
    • marko's avatar
      branches/zip: · 9e21c7fe
      marko authored
      Slightly improve error handling.
      9e21c7fe
  21. 28 Oct, 2005 1 commit
    • marko's avatar
      branches/zip: · 1d5d3f2c
      marko authored
      Implement page_zip_write_header().
      Add page_zip parameter to btr_page_set_ functions.
      Allow page_copy_rec_list_end() to be called with invalid new_page_zip
      if the page has been newly created.
      1d5d3f2c
  22. 27 Oct, 2005 6 commits