1. 27 Feb, 2007 1 commit
    • marko's avatar
      branches/zip: btr_cur_insert_if_possible(): Update the free bits on · 71cbde3b
      marko authored
      compressed secondary index pages after attempting the insert.
      
      btr_cur_update_alloc_zip(): Reset the insert buffer free bits if there is
      insufficient space available on secondary index pages.  Do not update
      the bits after successful operation.
      
      btr_cur_update_in_place(): Update the free bits in the index buffer.
      
      btr_cur_optimistic_update(): First check rec_offs_any_extern(), because
      checking it is cheaper than checking the "external storage" flags of the
      update vector.  Update the insert buffer free bits in any case after
      successfully calling btr_cur_update_alloc_zip().
      71cbde3b
  2. 26 Feb, 2007 1 commit
  3. 20 Feb, 2007 4 commits
  4. 19 Feb, 2007 3 commits
    • marko's avatar
      branches/zip: Enable the insert buffer on compressed tablespaces. · efd79c7a
      marko authored
      page_zip_max_ins_size(): New function.
      
      btr_cur_optimistic_insert(), btr_cur_optimistic_delete(),
      btr_page_split_and_insert(), btr_compress(): Do not update the
      ibuf free bits for non-leaf pages or pages belonging to a clustered index.
      The insert buffer only covers operations on leaf pages of secondary indexes.
      For pages covered by the insert buffer, limit the max_ins_size to
      page_zip_max_ins_size().
      
      buf_page_get_gen(): Merge the insert buffer after decompressing the page.
      
      buf_page_io_complete(): Relax the assertion about ibuf_count.  For
      compressed-only pages, the insert buffer merge takes place
      in buf_page_get_gen().
      
      ibuf_index_page_calc_free_bits(), ibuf_index_page_calc_free_from_bits(),
      ibuf_index_page_calc_free(), ibuf_update_free_bits_if_full(),
      ibuf_update_free_bits_low(), ibuf_update_free_bits_for_two_pages_low(),
      ibuf_set_free_bits_low(): Add the parameter zip_size.  Limit the maximum
      insert size to page_zip_max_ins_size().
      efd79c7a
    • marko's avatar
      branches/zip: page_zip_get_trailer_len(), page_zip_available(): · ea9a89da
      marko authored
      Replace the parameter "dict_index_t* index" with "ibool is_clust".
      
      dict_index_is_clust(): Add __attribute__((pure)).
      ea9a89da
    • marko's avatar
      branches/zip: buf_LRU_search_and_free_block(): Do not try to preserve · df5a9376
      marko authored
      compressed pages, because doing so would require a call to
      buf_buddy_alloc(), which in turn can invoke buf_LRU_get_free_block()
      and buf_LRU_search_and_free_block(), potentially infinite recursion.
      df5a9376
  5. 16 Feb, 2007 1 commit
  6. 13 Feb, 2007 3 commits
  7. 12 Feb, 2007 1 commit
  8. 08 Feb, 2007 4 commits
  9. 07 Feb, 2007 1 commit
    • marko's avatar
      branches/zip: Do not decompress blocks in buf_page_init_for_read(), · 1f0b739f
      marko authored
      but in buf_page_get_gen().  Adjust comments.  This prevents
      unnecessary decompression in read-ahead when the compressed block
      exists in the buffer pool.
      
      If the block does not exist in the buffer pool, read-ahead will still
      allocate an uncompressed page and decompress the block.
      
      Move buf_block_init_low() and buf_zip_decompress() earlier in the file,
      because some compilers are unable to inline functions that are defined
      after the invocation.
      
      buf_page_get_gen(): Decompress the block if needed.
      
      buf_page_init_for_read(): Do not decompress.
      1f0b739f
  10. 05 Feb, 2007 4 commits
  11. 02 Feb, 2007 2 commits
  12. 01 Feb, 2007 2 commits
  13. 31 Jan, 2007 3 commits
  14. 30 Jan, 2007 1 commit
    • marko's avatar
      branches/zip: Avoid memory fragmentation when adding column definitions · 463aaf28
      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".
      463aaf28
  15. 29 Jan, 2007 1 commit
    • marko's avatar
      branches/zip: Make zlib use InnoDB memory heaps when processing BLOBs. · 6e2c59d4
      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().
      6e2c59d4
  16. 24 Jan, 2007 2 commits
  17. 23 Jan, 2007 4 commits
  18. 22 Jan, 2007 2 commits