1. 13 Oct, 2006 1 commit
    • marko's avatar
      branches/zip: Remove more references to buf_block_align(). · 138ee610
      marko authored
      ibuf_reset_free_bits(): Remove, as there already is a similar function
      ibuf_reset_free_bits_with_type().
      
      ibuf_reset_free_bits_with_type(), ibuf_set_free_bits(),
      ibuf_update_free_bits_if_full(), btr_leaf_page_release(),
      buf_page_make_young(): Replace page_t with buf_block_t.
      
      btr_compress(): Replace btr_page_get() with btr_block_get().
      138ee610
  2. 12 Oct, 2006 6 commits
    • marko's avatar
      branches/zip: Eliminate some more buf_block_align() calls. · 6064200d
      marko authored
      mlog_write_initial_log_record_fast(): Remove the buf_block_align() call
      unless #ifdef UNIV_DEBUG.
      
      btr_cur_update_in_place(): Replace buf_frame_get_page_zip() with
      buf_block_get_page_zip().
      
      btr_page_create(), btr_page_empty(): Replace the parameter page with block.
      
      btr_attach_half_pages(): Use btr_block_get() instead of btr_page_get().
      Remove buf_block_align() calls.
      
      btr_cur_latch_leaves(): Remove duplicated code.  Use btr_block_get()
      instead of btr_page_get().  Remove buf_block_align() calls.
      6064200d
    • marko's avatar
      branches/zip: mem_heap_create_block(): Correct an error introduced in r909: · 82de286d
      marko authored
      When allocating a block from heap->free_block, set buf_block.
      82de286d
    • marko's avatar
      branches/zip: Replace buf_frame_alloc() and buf_frame_free() · a2085261
      marko authored
      with buf_block_alloc() and buf_block_free(), in order to
      avoid buf_block_align() calls.
      a2085261
    • marko's avatar
      branches/zip: Reduce the number of buf_block_align() calls. · c755e887
      marko authored
      btr_block_get(): New function to return buf_block_t.
      
      btr_page_alloc(), buf_page_get_release_on_io(), buf_page_get_gen(),
      buf_page_create(), fseg_create(), fseg_create_general(): Return buf_block_t.
      
      buf_page_get_known_nowait(): Expect buf_block_t instead of buf_frame_t.
      
      buf_frame_get_newest_modification(): Replace with
      buf_block_get_newest_modification().
      
      buf_page_dbg_add_level(): Replace with buf_block_dbg_add_level().
      
      buf_block_get_zip_size(): New function.
      
      buf_block_get_page_zip(): Reintroduce.
      
      recv_recover_page(): Replace page, space, page_no with block.
      
      ibuf_bitmap_page_init(): Replace page, zip_size with block.
      
      ibuf_parse_bitmap_init(): Remove the parameter zip_size.
      
      btr_search_drop_page_hash_index(): Replace page with block.
      c755e887
    • marko's avatar
      branches/zip: Replace buf_frame_get_page_no() and buf_frame_get_space_id() · d61d296c
      marko authored
      with page_get_page_no() and page_get_space_id().  We want to avoid
      buf_block_align() calls, and the page_no and space_id are now stamped
      on the pages early on.
      d61d296c
    • marko's avatar
      branches/zip: Move the assertion about holding dict_sys->mutex from · a370fdc7
      marko authored
      dict_table_add_system_columns() to dict_table_add_to_cache().
      a370fdc7
  3. 10 Oct, 2006 2 commits
  4. 09 Oct, 2006 3 commits
  5. 06 Oct, 2006 1 commit
    • marko's avatar
      branches/zip: Remove compilation errors with -DUNIV_HOTBACKUP. · 152fbb78
      marko authored
      dict_load_foreigns(): Enclose in #ifndef UNIV_HOTBACKUP.
      
      fil_extend_tablespaces_to_stored_len(): Pass zip_size to fil_read().
      
      buf_page_init_for_backup_restore(): Add parameter zip_size.
      Enclose the declaration in buf0buf.h in #ifdef UNIV_HOTBACKUP.
      
      recv_apply_log_recs_for_backup(): Replace the local variable "page"
      with the local variable "block".  Add local variable zip_size.
      152fbb78
  6. 04 Oct, 2006 1 commit
  7. 03 Oct, 2006 1 commit
  8. 02 Oct, 2006 1 commit
    • marko's avatar
      branches/zip: Fix all bugs detected by mysql-test-run. The exactly same set · a4c9d38e
      marko authored
      of tests are failing with trunk -r869, with this revision using uncompressed
      storage, and with this revision hard-wired to use 1-kilobyte compressed pages
      and innodb_file_per_table.
      
      btr_push_update_extern_fields(): Do not call ut_ulint_sort() if n_pushed == 0.
      
      btr_copy_externally_stored_field_prefix_low(): Replace ut_max() with ut_min().
      a4c9d38e
  9. 29 Sep, 2006 4 commits
    • marko's avatar
      branches/zip: Merge revisions 861:869 from trunk. · 34643119
      marko authored
      34643119
    • marko's avatar
      branches/zip: Remove os_file_check_page_trailers(). It was used in · cc605cfe
      marko authored
      os_aio_simulated_handle() before and after initiating a write.  We
      cannot easily pass the compressed page sizes to this function.  The
      check could only be performed on uncompressed pages.
      cc605cfe
    • marko's avatar
      285f1e1d
    • marko's avatar
      branches/zip: dtuple_convert_big_rec(): Do not store anything locally · 77ebaf6f
      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.
      77ebaf6f
  10. 28 Sep, 2006 2 commits
  11. 27 Sep, 2006 1 commit
    • marko's avatar
      branches/zip: Replace FIL_PAGE_ZBLOB_SPACE_ID and FIL_PAGE_ZBLOB_DATA · 9d2146e4
      marko authored
      with FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID and FIL_PAGE_DATA.  The doublewrite
      buffer needs to read the space_id in order to determine the type of the page.
      Because FIL_PAGE_TYPE could contain garbage in MySQL/InnoDB 5.0 and earlier
      versions, we cannot trust fil_page_get_type().  Instead, we have to always
      store the space_id at the same location.  This modification wastes 12 bytes
      per compressed BLOB page (1.2% on 1-kilobyte pages).
      9d2146e4
  12. 26 Sep, 2006 7 commits
  13. 25 Sep, 2006 1 commit
    • marko's avatar
      branches/zip: Minor cleanup in update related code. · ee923f5c
      marko authored
      btr_push_update_extern_fields(): Instead of iterating all upd_get_n_fields(),
      stop at the first match.
      
      row_search_index_entry(): Simplify the return statements.
      
      row_upd_sec_step(): Eliminate the local variable "err".
      
      row_upd_clust_step(): Add a UNIV_UNLIKELY hint.
      ee923f5c
  14. 22 Sep, 2006 3 commits
  15. 21 Sep, 2006 3 commits
  16. 20 Sep, 2006 3 commits
    • marko's avatar
      branches/zip: page_zip_empty_size(): New function to compute the · 75e478a0
      marko authored
      guaranteed free space available for inserting one record.
      
      btr_page_get_sure_split_rec(), btr_cur_pessimistic_insert():
      Use page_zip_empty_size().
      
      btr_page_split_and_insert(): Relax a debug assertion that there should
      be at least two user records on the page.  On compressed pages, we may
      be able to write only one record.
      75e478a0
    • marko's avatar
      branches/zip: Instrument the buffer pool allocator and deallocator · c12e237a
      marko authored
      for more accurate Valgrind debugging.
      
      univ.i: Introduce UNIV_DEBUG_VALGRIND, UNIV_MEM_VALID, and UNIV_MEM_INVALID.
      
      buf_LRU_block_free_non_file_page(): Invalidate the buffer frame
      with UNIV_MEM_INVALID().
      
      buf_LRU_get_free_block(): Declare the buffer frame valid
      with UNIV_MEM_VALID().
      
      Other memory is allocated and deallocated via malloc() and free(),
      which are already overridden by Valgrind.  Without the added
      instrumentation, accesses to free pages in the buffer pool cannot
      be caught.
      
      The diagnostics could probably be improved further by declaring all
      non-latched buffer frames invalid.
      c12e237a
    • marko's avatar
      branches/zip: Fix bugs #ifdef UNIV_DEBUG. · 9b59bd85
      marko authored
      rec_convert_dtuple_to_rec_old(): Initialize the record in order to avoid
      bogus Valgrind warnings about the ut_ad() in mach_write_to_1() and
      mach_write_to_2().
      
      page_zip_compress(), page_zip_write_rec(), page_zip_write_blob_ptr():
      Replace ut_ad(page_validate(...)) with ut_ad(page_simple_validate_new(...)),
      because otherwise crash recovery would fail.
      9b59bd85