An error occurred fetching the project authors.
  1. 19 Feb, 2007 1 commit
  2. 01 Feb, 2007 1 commit
    • marko's avatar
      branches/zip: Split the function page_cur_insert_rec_low(). · fad9e987
      marko authored
      page_cur_insert_rec_zip_reorg(): New function: Recompress or
      reorganize a compressed page.
      
      page_cur_insert_rec_zip(): New function: insert a record to
      a compressed page.
      
      page_cur_insert_rec_low(): Only handle inserts to uncompressed pages.
      fad9e987
  3. 25 Oct, 2006 1 commit
  4. 24 Oct, 2006 1 commit
    • marko's avatar
      branches/zip: Remove all references to buf_block_align() except those · c1ffbbd9
      marko authored
      from the adaptive hash index [btr_search_guess_on_hash() and
      btr_search_validate()].  Some references to buf_block_align() remain
      in debug builds.
      
      btr_store_big_rec_extern_fields(): Add the parameter rec_block.
      
      page_rec_get_next_low(): Do not assume that the page has been
      allocated from the buffer pool when printing the diagnostic information.
      
      page_cur_insert_rec_low(): Replace the parameter page_zip_des_t* page_zip
      with the parameter buf_block_t* block.
      c1ffbbd9
  5. 23 Oct, 2006 1 commit
    • marko's avatar
      branches/zip: Minor cleanup. · 1834af76
      marko authored
      page_set_max_trx_id(): Replace page_t* parameter with buf_block_t*,
      to avoid a buf_block_align() call.
      
      Replace some occurrences of page_get_page_no() with buf_block_get_page_no().
      
      page_cur_delete_rec(): Replace buf_block_align() with page_cur_get_block().
      1834af76
  6. 20 Oct, 2006 2 commits
    • marko's avatar
      branches/zip: Remove some more buf_block_align() calls. · b6e26f24
      marko authored
      btr_cur_t: Move page_block to page_cur_t::block.
      
      page_cur_get_block(), page_cur_get_page_zip(): New functions.
      
      page_cur_position(): Add parameter block.
      
      Remove many page_zip parameters, now that there is page_cur_get_page_zip().
      Replace some page, page_zip parameters with block.
      
      Add some const qualifiers to function parameters and remove casts.
      
      PAGE_HEAP_NO_INFIMUM, PAGE_HEAP_NO_SUPREMUM, PAGE_HEAP_NO_USER_LOW:
      New constants.
      
      Replace some cursor code in low-level diagnostic functions with
      direct management of rec, because buf_block_t::buf_fix_count may be 0
      when the functions are called, and debug assertions would fail.
      b6e26f24
    • marko's avatar
  7. 18 Oct, 2006 1 commit
    • marko's avatar
      branches/zip: Eliminate many buf_block_align() calls. · d583b180
      marko authored
      Replace page_t* or page_zip_des_t* parameters in some functions with
      buf_block_t*.
      
      buf_frame_get_page_zip(): Disable unless #ifdef UNIV_DEBUG || UNIV_ZIP_DEBUG.
      
      btr_cur_t: Add buf_block_t* page_block.
      
      btr_pcur_get_block(), btr_cur_get_block(), btr_cur_get_page_zip():
      New functions.
      
      btr_cur_position(): Add the parameter block.
      d583b180
  8. 13 Oct, 2006 1 commit
    • marko's avatar
      branches/zip: Remove some more buf_block_align() calls. · e5b6c394
      marko authored
      Replace buf_frame_modify_clock_inc() with buf_block_modify_clock_inc().
      Replace buf_frame_get_lock_hash_val() with buf_block_get_lock_hash_val().
      Replace buf_frame_get_lock_mutex() with buf_block_get_lock_mutex().
      
      page_create_zip(), page_create(), page_create_low(), btr_page_free(),
      btr_page_free_low(): Replace page_t with buf_block_t.
      e5b6c394
  9. 09 Oct, 2006 1 commit
  10. 29 Sep, 2006 1 commit
    • marko's avatar
      branches/zip: dtuple_convert_big_rec(): Do not store anything locally · 174bd7b7
      marko authored
      of externally stored columns, and fix bugs introduced in r873.  (Bug #22496)
      
      btr_page_get_sure_split_rec(), btr_page_insert_fits(),
      rec_get_converted_size(), rec_convert_dtuple_to_rec(),
      rec_convert_dtuple_to_rec_old(), rec_convert_dtuple_to_rec_new():
      Add parameters ext and n_ext.  Flag external fields during the
      conversion.
      
      rec_set_field_extern_bits(), rec_set_field_extern_bits_new(),
      rec_offs_set_nth_extern(), rec_set_nth_field_extern_bit_old():
      Remove.  The bits are set by rec_convert_dtuple_to_rec().
      
      page_cur_insert_rec_low(): Remove the parameters ext and n_ext.
      
      btr_cur_add_ext(): New utility function for updating and sorting ext[].
      Low-level functions now expect the array to be in ascending order
      for performance reasons.  Used in btr_cur_optimistic_insert(),
      btr_cur_pessimistic_insert(), and btr_cur_pessimistic_update().
      
      btr_cur_optimistic_insert(): Remove some defensive code, because we cannot
      compute the added parameters of rec_get_converted_size().
      
      btr_push_update_extern_fields(): Sort the array.  Require the array to
      be twice the maximum usage, so that ut_ulint_sort() can be used.
      
      dtuple_convert_big_rec(): Allocate new space for the BLOB pointer,
      to avoid overwriting prefix indexes to the same column.  Adapt
      dtuple_convert_back_big_rec().
      
      row_build_index_entry(): Fetch the columns also for prefix indexes of
      the clustered index.
      
      page_zip_apply_log(), page_zip_decompress_clust(): Allow externally
      stored fields to lack a locally stored part.
      174bd7b7
  11. 19 Sep, 2006 2 commits
  12. 05 Sep, 2006 1 commit
  13. 29 Aug, 2006 1 commit
  14. 21 Aug, 2006 1 commit
  15. 18 Aug, 2006 2 commits
    • marko's avatar
      branches/zip: page_cur_insert_rec_low(): Replace page_zip_dir_rewrite() · 7e1076c7
      marko authored
      with page_zip_dir_insert().  Pass page_zip to rec_set_n_owned_new()
      and page_dir_slot_set_n_owned().
      
      page_zip_dir_insert(): New function.  Shift the dense page directory and
      write the inserted record there.
      7e1076c7
    • marko's avatar
      branches/zip: Bug fixes. · 244c9715
      marko authored
      data0data.c: Add #include "page0zip.h" that was forgotten from r739.
      
      page_cur_insert_rec_low(): Remove a memory leak when preventing
      extra_size to grow.
      244c9715
  16. 17 Aug, 2006 1 commit
  17. 01 Aug, 2006 1 commit
  18. 03 Jul, 2006 1 commit
    • marko's avatar
      branches/zip: page_cur_insert_rec_low(): Replace page_zip_alloc() · 2a8f49bf
      marko authored
      with page_zip_available() in order to avoid an extra page_zip_compress().
      
      page_zip_available(): Make the function public.
      
      page0zip.ic: Sort the inline function declarations in order to avoid
      forward references, which do not work on some compilers.
      2a8f49bf
  19. 30 Jun, 2006 1 commit
    • marko's avatar
      branches/zip: Improve assertions related to the linked lists of records · cafaf715
      marko authored
      on B-tree index pages.
      
      page_rec_set_next(): Assert that rec != next.
      
      rec_get_next_ptr(), rec_get_next_offs(): On compact pages, assert that
      there are at least REC_N_NEW_EXTRA_BYTES + 1 between records.
      
      page_cur_insert_rec_write_log(): Replace a buf_frame_align() call
      with ut_align_offset().
      
      page_cur_insert_rec_low(): Assert that current_rec != insert_rec.
      cafaf715
  20. 20 Jun, 2006 1 commit
  21. 13 Jun, 2006 1 commit
    • marko's avatar
      branches/zip: Add page_zip_validate() assertions and remove a bogus · 2117ec5a
      marko authored
      page_zip_assertion() failure in page_copy_rec_list_end().
      
      btr_root_raise_and_insert(), btr_lift_page_up(), btr_compress():
      Add page_zip_validate() assertions.
      
      btr_compress(): Only copy FIL_PAGE_PREV when UNIV_BTR_DEBUG is defined.
      
      page_cur_delete_rec(): Document why the page_zip_validate() assertion
      was removed.
      
      page_copy_rec_list_end(): Remove the page_zip_validate() assertion and
      document why.
      
      page_move_rec_list_end(): Add page_zip_validate() assertion.
      2117ec5a
  22. 12 Jun, 2006 1 commit
    • marko's avatar
      branches/zip: Add page_zip_validate() checks. · 8f6de3bb
      marko authored
      page_cur_delete_rec(): Do not call page_zip_validate() in the beginning,
      because btr_set_min_rec_mark() in btr_cur_pessimistic_delete() will
      cause a temporary mismatch.
      
      Document temporary mismatches caused by btr_set_min_rec_mark() calls
      and explain why they will not cause any problems.
      8f6de3bb
  23. 07 Jun, 2006 1 commit
  24. 16 May, 2006 2 commits
    • marko's avatar
      branches/zip: Try to reorganize the page when compression fails. · 168fa020
      marko authored
      page_zip_compress_write_log(): Make static.
      
      page_zip_compress(): Add optional parameter mtr for redo logging.
      
      page_zip_reorganize(): Low-level counterpart of btr_page_reorganize().
      
      page_zip_copy(): Add debug assertions about mtr_memo_contains.
      
      page_cur_insert_rec_low(): Try page_zip_reorganize() and seek to the
      new position of insert_rec if it succeeds.
      
      page_copy_rec_list_end(), page_copy_rec_list_start():
      Try page_zip_reorganize().
      
      page_move_rec_list_end(): Remove bogus comment.
      168fa020
    • marko's avatar
      branches/zip: Shorten the log record MLOG_ZIP_PAGE_COMPRESS. · 2c3b2247
      marko authored
      page_zip_copy(), page_zip_compress_write_log(): Add parameter 'index'.
      
      page_zip_parse_write_header(): Check for !page_zip only if page != NULL.
      
      page_zip_compress_write_log(), page_zip_parse_compress(): Omit some
      fields in the page header.  Omit the unused bytes between the modification
      log and the page trailer.
      
      parse_or_apply_log_rec_body(): Remove a bogus debug assertion.
      2c3b2247
  25. 02 May, 2006 1 commit
    • marko's avatar
      branches/zip: Prepare for writing compressed and reading pages. · f118a9c1
      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().
      f118a9c1
  26. 28 Apr, 2006 2 commits
    • marko's avatar
      branches/zip: page_cur_insert_rec_low(): Write a log record of · 7d6a4e70
      marko authored
      recompressing the page.
      7d6a4e70
    • marko's avatar
      branches/zip: Minor improvements. · bb638768
      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.
      bb638768
  27. 26 Apr, 2006 1 commit
    • marko's avatar
      branches/zip: Minor cleanup and bug fixes · ed354ce8
      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.
      ed354ce8
  28. 11 Apr, 2006 2 commits
    • marko's avatar
      branches/zip: Fix some crash recovery bugs. · 483faa77
      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.
      483faa77
    • marko's avatar
      branches/zip: Add the redo log type MLOG_ZIP_PAGE_COMPRESS. Remove · f119108f
      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().
      f119108f
  29. 10 Apr, 2006 1 commit
    • marko's avatar
      branches/zip: Replace the redo log entry types · 9b620097
      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.
      9b620097
  30. 22 Mar, 2006 1 commit
    • marko's avatar
      branches/zip: Minor improvements. · 3b88de21
      marko authored
      page_cur_search_with_match(): Add a page_zip_validate() debug assertion.
      
      page_validate(): Add a missing space to a fprintf() format string.
      3b88de21
  31. 16 Mar, 2006 1 commit
    • marko's avatar
      branches/zip: Improve the clearing of deleted records. Try to support · f137c038
      marko authored
      operations on BLOB columns.  There are some bugs in the code, because
      test-insert and a few other tests fail.
      
      page_mem_free(): Add parameter index.  Decrement PAGE_N_RECS here.
      Move some operations to page_zip_dir_delete().
      
      page_zip_clear_rec(): Make this a static function.
      
      page_zip_dir_delete(): Add parameters index and offsets.
      Decrement PAGE_N_RECS and clear info_bits and n_owned.
      
      page_zip_get_n_prev_extern(): Correct the synopsis and the algorithm.
      Add parameter page_zip.  Search the records in heap_no order instead
      of collation order.
      
      page_zip_compress(), page_zip_decompress(): Only copy BLOB pointers
      and increment n_blobs for records that have not been deleted.
      
      page_zip_clear_rec(): Clear trx_id and roll_ptr on the compressed page.
      
      page_zip_dir_delete(): Decrement PAGE_N_RECS.  Shift the array of
      BLOB pointers.  Call page_zip_clear_rec().
      
      page_zip_dir_add_slot(): Shift the array of BLOB pointers to make
      space of roll_ptr and trx_id.
      
      page_cur_delete_rec(): Do not decrement PAGE_N_RECS or call
      page_zip_clear_rec(), as page_mem_free() already does it.
      f137c038
  32. 14 Mar, 2006 1 commit
    • marko's avatar
      branches/zip: Bug fixes for BLOB handling. At least one bug remains: · 9d91b4bd
      marko authored
      page_zip_dir_delete() will need to handle BLOBs.
      
      rec_set_field_extern_bits(), rec_set_field_extern_bits_new():
      Add parameter offsets.
      
      rec_offs_set_nth_extern(): New function to set an extern bit in offsets.
      This will be called when an extern bit is set in a record.
      
      page_cur_rec_insert(), page_cur_insert_rec_low(): Document that the
      parameter "offsets" is in/out.
      
      page_zip_dir_delete(): Note that the array of BLOB pointers will need
      to be shifted.
      
      page0zip.ic: Document the entry type for clearing a record.
      
      page_zip_available(): Add parameter "index".  Remove parameters
      "is_leaf" and "is_clustered".
      
      page_zip_get_trailer_len(): New function for computing the trailer length
      of the compressed page.
      
      page_zip_apply_log(): Implement the modification log entry type for
      clearing the data bytes of a record.
      
      page_zip_decompress(): Initialize n_blobs when actually copying the
      BLOB pointers to place.
      
      page_zip_validate(): Add diagnostic messages for failures.  Check
      also m_start, m_end, and n_blobs.
      
      page_zip_write_blob_ptr(): Add page_zip_validate() assertion.
      9d91b4bd
  33. 13 Mar, 2006 1 commit
    • marko's avatar
      branches/zip: Implement in-place updates of BLOB pointers. · 65dfefe2
      marko authored
      There are still some bugs in the code.
      
      btr_store_big_rec_extern_fields(): Remove assertion on dict_table_is_zip()
      to ease testing.
      
      btr_free_externally_stored_field(): Test page_zip instead of
      dict_table_is_zip().
      
      page_zip_write_rec(): Add parameter "create".  Try to handle externally
      stored columns.
      
      rec_offs_any_extern(): Correct the function comment.
      
      Add rec_offs_n_extern() and page_zip_get_n_prev_extern().
      
      page_zip_dir_decode(): Replace assertion with if (...) return(FALSE).
      
      page_zip_decompress(): Do not clear page_zip->n_blobs after counting the
      BLOBs.
      
      page_zip_write_blob_ptr(): Use page_zip_get_n_prev_extern().
      Correct an off-by-one error in memcpy().
      65dfefe2
  34. 10 Mar, 2006 1 commit