1. 10 Apr, 2007 1 commit
    • marko's avatar
      branches/zip: Add statistics on page compression and decompression counts. · 35db9631
      marko authored
      ha_innodb.cc: Add the columns COMPRESSED, COMPRESSED_OK, DECOMPRESSED
      to INFORMATION_SCHEMA.INNODB_BUDDY.
      
      page_zip_compress_count[], page_zip_compress_ok[]: New statistic counters,
      incremented in page_zip_compress().
      
      page_zip_decompress_count[]: New statistic counter,
      incremented in page_zip_decompress().
      35db9631
  2. 04 Apr, 2007 2 commits
    • marko's avatar
      branches/zip: Fix the merge of branches/fast-index-creation -r1413 in r1414. · 1ac0e7f0
      marko authored
      innodb.test: The error code 1540 has been renumbered to 1542.
      innodb.result: Adjust the expected value of Innodb_buffer_pool_pages_total.
      Something may have changed in the BLOB handling in branches/zip.
      
      ha_innodb.cc: Add ha_innobase:: prefix to some DBUG_ENTER macros.
      
      row_merge_create_temporary_table(): Free the heap only after invoking
      row_create_table_for_mysql().  The table->col_names points to the heap
      until the system columns are added by row_create_table_for_mysql().
      
      TODO: use the filename-safe encoding in temporary table names.  Test
      extensively under Valgrind and fix all errors found.  Eliminate
      merge_rec_t and rewrite row0merge.c to write the records directly to
      the merge blocks.
      1ac0e7f0
    • marko's avatar
      branches/zip: Merge branches/fast-index-creation -r1413. · fc65b08f
      marko authored
      Fix some bugs.  The tests innodb and innodb-index fail, but that might
      be due to an old MySQL source tree being used.
      fc65b08f
  3. 02 Apr, 2007 1 commit
  4. 29 Mar, 2007 2 commits
    • marko's avatar
      branches/zip: Make TRUNCATE TABLE recreate single-table tablespaces. · d753d3e8
      marko authored
      dict_truncate_index_tree(): Add the parameter space for specifying the
      new tablespace identifier of a single-table tablespace that has been
      recreated.  When SYS_INDEXES.PAGE_NO == FIL_NULL, do not abort but
      create the index tree.
      
      fil_discard_tablespace(): Pass the return code from fil_delete_tablespace().
      
      row_truncate_table_for_mysql(): Attempt to discard and recreate
      single-table tablespaces.  Reassign the tablespace identifier both in
      the data dictionary (SYS_TABLES and SYS_INDEXES) and in the data
      dictionary cache.
      d753d3e8
    • marko's avatar
      branches/zip: Minor cleanup in rollback. · dc2e9160
      marko authored
      trx_undo_left(): Add const qualifiers.
      
      trx_undo_page_report_insert(): Use exact trx_undo_left() limit.
      Remove a duplicated trx_undo_left() check.
      
      trx_undo_page_report_modify(): Eliminate the local variable len.
      Document that no prefix for BLOBs needs to be stored in the undo log.
      Lump two trx_undo_left() checks together.
      dc2e9160
  5. 28 Mar, 2007 4 commits
    • marko's avatar
      branches/zip: btr_cur_pessimistic_update(): Add parameter heap. · a369b009
      marko authored
      Previously, when big_rec was returned, the fields would point to
      freed memory.  The memory heap was allocated locally, and the data tuple
      was allocated from the heap, and the big_rec would point to some fields
      in the data tuple.
      
      row_ins_clust_index_entry_by_modify(): Add parameter heap,
      for the same reason.
      a369b009
    • marko's avatar
      acb39de8
    • marko's avatar
      branches/zip: buf_LRU_block_free_non_file_page(): Flag block->frame · b4715b5d
      marko authored
      allocated before overwriting some fields and flagging the frame freed.
      Some of the buffer frame may have been flagged freed by the user
      (such as mem_heap).
      b4715b5d
    • marko's avatar
      branches/zip: Add Valgrind instrumentation to the InnoDB memory management · 8256b83f
      marko authored
      functions.
      
      ut_malloc_low(): Flag the block with UNIV_MEM_ALLOC().  Do not flag the
      block with UNIV_MEM_FREE() in ut_free(), because it would cause bogus
      Valgrind warnings in the underlying memory allocator.
      
      mem_pool_create(): Flag the data area with UNIV_MEM_FREE().
      
      mem_pool_fill_free_list(): Flag the area header with UNIV_MEM_ALLOC().
      
      mem_area_alloc(): Flag the data area with UNIV_MEM_ALLOC().
      
      mem_area_free(): Flag the data area with UNIV_MEM_FREE().
      
      mem_heap_alloc(): Flag the buffer with UNIV_MEM_ALLOC().
      
      mem_heap_block_free(): Flag the block with UNIV_MEM_FREE().
      
      mem_heap_free_top(): Flag the block with UNIV_MEM_FREE().
      8256b83f
  6. 14 Mar, 2007 1 commit
    • marko's avatar
      branches/zip: Minor cleanup. · 94d4f129
      marko authored
      btr_rec_free_updated_extern_fields(): Remove the parameter
      do_not_free_inherited, which is always passed as TRUE.
      
      btr_cur_unmark_extern_fields(): Invoke rec_offs_any_extern().
      
      btr_cur_unmark_dtuple_extern_fields(): Remove a local variable.
      94d4f129
  7. 12 Mar, 2007 1 commit
  8. 05 Mar, 2007 1 commit
  9. 01 Mar, 2007 3 commits
  10. 28 Feb, 2007 3 commits
  11. 27 Feb, 2007 3 commits
  12. 26 Feb, 2007 1 commit
  13. 20 Feb, 2007 4 commits
  14. 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
  15. 16 Feb, 2007 1 commit
  16. 13 Feb, 2007 3 commits
  17. 12 Feb, 2007 1 commit
  18. 08 Feb, 2007 4 commits
  19. 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