1. 05 Feb, 2007 3 commits
  2. 02 Feb, 2007 2 commits
  3. 01 Feb, 2007 2 commits
  4. 31 Jan, 2007 3 commits
  5. 30 Jan, 2007 1 commit
    • marko's avatar
      branches/zip: Avoid memory fragmentation when adding column definitions · 0178dba1
      marko authored
      to tables.
      
      dict_mem_table_add_col(): Add the parameter "heap" for temporary memory
      allocation.  Allow it and "name" to be NULL.  These parameters are NULL
      when creating dummy indexes.
      
      dict_add_col_name(): Remove calls to ut_malloc() and ut_free().
      
      dict_table_get_col_name(): Allow table->col_names to be NULL.
      
      dict_table_add_system_columns(), dict_table_add_to_cache():
      Add the parameter "heap".
      0178dba1
  6. 29 Jan, 2007 1 commit
    • marko's avatar
      branches/zip: Make zlib use InnoDB memory heaps when processing BLOBs. · 4b07b77f
      marko authored
      page_zip_set_alloc(): New function, to configure zlib to use a memory heap.
      
      btr_store_big_rec_extern_fields(): Reduce memLevel, so that a heap of
      256 kilobytes will suffice.  Use page_zip_set_alloc().
      
      btr_copy_externally_stored_field_prefix_low(): Use page_zip_set_alloc().
      
      page_zip_compress(), page_zip_decompress(): Use page_zip_set_alloc().
      4b07b77f
  7. 24 Jan, 2007 2 commits
  8. 23 Jan, 2007 4 commits
  9. 22 Jan, 2007 4 commits
  10. 19 Jan, 2007 1 commit
    • marko's avatar
      branches/zip: Fix a bug in the buddy allocator. · f5652a6a
      marko authored
      buf_buddy_relocate_block(): New function, split from buf_buddy_relocate().
      Return FALSE when buf_page_can_relocate() returns FALSE.
      
      Fix some formatting in buf_buddy_free_low() and buf_page_init_for_read().
      f5652a6a
  11. 18 Jan, 2007 8 commits
  12. 17 Jan, 2007 1 commit
    • marko's avatar
      branches/zip: btr_copy_externally_stored_field_prefix_low(): · 60c96ae3
      marko authored
      Split the code to subroutines.
      
      btr_copy_blob_prefix(): New function: copy the prefix of the externally
      stored part of an uncompressed BLOB.
      
      btr_copy_zblob_prefix(): New function: copy the prefix of the externally
      stored part of a compressed BLOB.
      
      btr_blob_get_part_len(), btr_blob_get_next_page_no(): Add const qualifier
      to the parameter.
      60c96ae3
  13. 16 Jan, 2007 8 commits
    • marko's avatar
      branches/zip: buf_flush_write_block_low(): When flushing a compressed page · c97402bc
      marko authored
      that also exists in uncompressed form in the buffer pool, pass the
      compressed frame to fil_io() instead of the uncompressed one when
      not using the doublewrite buffer.
      c97402bc
    • marko's avatar
      branches/zip: buf_flush_write_block_low(): Avoid recomputing the compressed · b76c8a5a
      marko authored
      page checksum of compressed-only blocks.  Pass the compressed page frame
      to fil_io() when needed.
      
      page_zip_calc_checksum(): Skip also FIL_PAGE_LSN and FIL_PAGE_FILE_FLUSH_LSN.
      
      buf_flush_init_for_writing(): Expect page to be non-NULL.
      b76c8a5a
    • marko's avatar
      branches/zip: Allow dirty compressed-only blocks to exist in the buffer pool · 361fe1a5
      marko authored
      and to be flushed to disk.
      
      buf_LRU_free_block(): Enable the freeing of uncompressed pages of
      compressed tablespaces.
      
      trx_doublewrite->buf_block_arr[]: Change the type from buf_block_t*
      to buf_page_t*.
      
      buf_flush_ready_for_flush(): Add debug assertion.
      
      buf_flush_buffered_writes(), buf_flush_try_page(): Support blocks of type
      BUF_BLOCK_ZIP_DIRTY.
      
      buf_flush_post_to_doublewrite_buf(), buf_flush_write_block_low():
      Change the type of the parameter from buf_block_t* to buf_page_t*.
      
      buf_flush_init_for_writing(): Allow page to be NULL if page_zip_ is non-NULL.
      361fe1a5
    • marko's avatar
      branches/zip: Note that b (the newly created control block for the · e7b0c68a
      marko authored
      compressed page) is not protected by block_mutex.  Before releasing
      buf_pool->mutex, we can simply assign b->io_fix.  After reacquiring
      buf_pool->mutex, we also have to acquire buf_pool->zip_mutex.
      e7b0c68a
    • marko's avatar
      branches/zip: buf_LRU_free_block(): When preserving the compressed page · 13629c13
      marko authored
      of a block, do not release buf_pool->mutex between the time the old control
      block is removed from buf_pool->page_hash and the new control block is
      added to it.  Prevent operations on the compressed-only block while calling
      btr_search_drop_page_hash_index() or page_zip_calc_checksum().
      
      buf_LRU_invalidate_tablespace(): Revert the change done in r1223.
      buf_pool->zip_mutex will have been released by
      buf_LRU_block_remove_hashed_page() when it returns BUF_BLOCK_ZIP_FREE.
      13629c13
    • marko's avatar
      branches/zip: buf_flush_remove(): buf_page_get_mutex(bpage) must have been · fb8b8e6d
      marko authored
      acquired by the caller.
      
      buf_LRU_invalidate_tablespace(): Do not leak buf_pool->zip_mutex when
      rescanning the LRU list.
      fb8b8e6d
    • marko's avatar
      branches/zip: buf_LRU_free_block(): When freeing the uncompressed page · 8a6e7d8c
      marko authored
      of a dirty block, relocate the control blocks on buf_pool->flush_list
      instead of calling buf_flush_insert_into_flush_list().
      8a6e7d8c
    • marko's avatar
      branches/zip: buf_page_init_for_read(): X-latch the block before · c7647f82
      marko authored
      invoking buf_buddy_alloc().  An IO-fixed block must also be x-latched
      when block->mutex and buf_pool->mutex are released.
      
      buf_page_create(): Protect the block during buf_buddy_alloc() by
      IO-fixing and X-latching it.
      c7647f82