1. 08 Jun, 2007 2 commits
    • marko's avatar
      branches/zip: Reimplement merge sort in fast index creation. · fd91f7bb
      marko authored
      The creation of the primary key does not work.  We will have to flag
      externally stored columns and copy the externally stored part from
      the old table.
      
      row_build_index_for_mysql(): Rename to row_merge_build_indexes().
      Move from row0mysql.c to row0merge.c.
      
      Remove private declarations from row0merge.h.  Make many functions static
      in row0merge.c.
      
      cmp_rec_rec_simple(): A new comparison function.
      
      dict_index_get_min_size(): New function.
      
      OS_FILE_FROM_FD(fd): A macro for converting from int to os_file_t.
      
      rec_convert_dtuple_to_rec_comp(): Make the interface lower-level.
      
      rec_get_converted_size_comp(): Return also extra_size.
      
      UT_SORT_FUNCTION_BODY(): Remove reference to an obsolete test program.
      
      row_rec_to_index_entry_low(): New function.
      
      row0merge.c: Implement merge sort based on file streams instead of
      fixed-size blocks.  Sort the small blocks as arrays of dfield_t*,
      because it is faster than invoking rec_get_offsets() for every
      comparison.
      fd91f7bb
    • marko's avatar
      branches/zip: Merge 1553:1556 from trunk. · 2d90ae68
      marko authored
      2d90ae68
  2. 07 Jun, 2007 5 commits
  3. 06 Jun, 2007 2 commits
  4. 04 Jun, 2007 2 commits
    • marko's avatar
      branches/zip: Minor cleanup. · 1d2284c3
      marko authored
      row_merge_mark_prebuilt_obsolete(): Rename to row_prebuilt_table_obsolete()
      and move from row0merge.c to row0mysql.c.  Remove the parameter trx.
      
      row_merge_print_table(): Remove.
      1d2284c3
    • marko's avatar
      branches/zip: Minor cleanup. · d1bf0b7d
      marko authored
      row_remove_indexes_for_mysql(): Rename to row_merge_drop_indexes(),
      move from row0mysql.c to row0merge.c and make the return type void.
      
      row_merge_remove_index(): Rename to row_merge_drop_index() and make
      the return type void.
      d1bf0b7d
  5. 29 May, 2007 1 commit
  6. 28 May, 2007 1 commit
  7. 24 May, 2007 1 commit
  8. 22 May, 2007 4 commits
  9. 21 May, 2007 1 commit
  10. 18 May, 2007 4 commits
  11. 16 May, 2007 2 commits
    • marko's avatar
      branches/zip: btr_cur_optimistic_insert(): Set the insert buffer free bits · 6613d537
      marko authored
      exactly.  Rename the local variable "ulint level" to "ibool leaf".
      Document that if the function returns DB_SUCCESS on a compressed page that
      is covered by the insert buffer, the mini-transaction must be committed
      before latching any further pages.  Verify that this is the case on all
      execution paths.
      6613d537
    • marko's avatar
      branches/zip: Document and obey the rules for modifying the free bits in · 36e875f7
      marko authored
      the insert buffer bitmap.
      
      ibuf_set_free_bits_func(): Never disable redo logging.
      
      ibuf_update_free_bits_zip(): Remove.
      
      btr_page_reorganize_low(), page_zip_reorganize(): Do not update the insert
      buffer bitmap.  Instead, document that callers will have to take care of it,
      and adapt the callers.
      
      btr_compress(): On error, reset the insert buffer free bits.
      
      btr_cur_insert_if_possible(): Do not modify the insert buffer bitmap.
      
      btr_compress(), btr_cur_optimistic_insert(): On compressed pages,
      reset the insert buffer bitmap.  Document why.
      
      btr_cur_update_alloc_zip(): Document why it is necessary and sufficient
      to reset the insert buffer free bits.
      
      btr_cur_update_in_place(), btr_cur_optimistic_update(),
      btr_cur_pessimistic_update(): Update the free bits in the same
      mini-transaction.  Document that the mini-transaction must be
      committed before latching any further pages.  Verify that this
      is the case in all execution paths.
      
      row_ins_sec_index_entry_by_modify(), row_ins_clust_index_entry_by_modify(),
      row_undo_mod_clust_low(): Because these functions call
      btr_cur_update_in_place(), btr_cur_optimistic_update(), or
      btr_cur_pessimistic_update(), document that the mini-transaction must be
      committed before latching any further pages.  Verify that this is the case
      in all execution paths.
      36e875f7
  12. 15 May, 2007 1 commit
    • marko's avatar
      branches/zip: Minor cleanup. · 19569a8b
      marko authored
      page_cur_tuple_insert(), page_cur_rec_insert(): Improve the documentation.
      Note that the physical position of page_cursor may change.
      
      page_cur_rec_insert(), page_cur_insert_rec_low(), page_cur_insert_rec_zip():
      Add a const qualifier to the parameter rec.
      19569a8b
  13. 14 May, 2007 1 commit
  14. 07 May, 2007 1 commit
    • marko's avatar
      branches/zip: Fix two bugs. · fbc6f37c
      marko authored
      mtr_commit(): Do not acquire the log mutex if no log records are to be written.
      
      ibuf_set_free_bits_func(): Do not clear mtr.modifications, because that would
      prevent the dirty insert buffer bitmap block from being moved to the flush
      list.  Instead, assume that mtr_commit() will not acquire log_sys->mutex
      because redo logging is disabled.
      
      buf_page_init_for_read(): I/O-fix the block before buf_buddy_alloc(), because
      the newly allocated block could otherwise be reused by the compressed page.
      fbc6f37c
  15. 06 May, 2007 5 commits
    • marko's avatar
      branches/zip: When reading pages for merging buffered inserts, request that · dd529ee4
      marko authored
      the pages be decompressed.
      
      buf_read_page_low(), buf_page_init_for_read(): Add parameter "unzip".
      dd529ee4
    • marko's avatar
      branches/zip: ibuf_set_free_bits_func(): Disable redo logging when · 2e739224
      marko authored
      crash recovery is in progress.  This avoids a hang when
      btr_parse_page_reorganize(), called from an I/O handler thread,
      attempts to acquire log_sys->mutex while it is being held by
      the main thread (the one that runs innobase_init()).  This change
      was committed accidentally.  It may be unsafe to clear
      mtr.modifications, because buf_page_release() at mtr_commit() may
      forget to put modified pages to the flush list.
      
      Cleanup: Remove the "type" parameter from many ibuf functions.
      Let the caller check that !dict_index_is_clust().  This should avoid
      function calls and register spilling.
      
      ibuf_set_free_bits_func(), ibuf_set_free_bits(): Remove the parameter "type".
      
      ibuf_reset_free_bits_with_type(): Rename to ibuf_reset_free_bits().
      Remove the parameter "type".
      
      ibuf_update_free_bits_if_full(), ibuf_update_free_bits_zip(),
      ibuf_update_free_bits_low(), ibuf_update_free_bits_for_two_pages_low():
      Remove the parameter "index".
      2e739224
    • marko's avatar
    • marko's avatar
      branches/zip: Minor cleanup. · fdb017ff
      marko authored
      log_write_up_to(): Replace if-else if-else with a switch block.
      
      log_archive_do(): Remove an excess mutex_enter().  Replace if-else if-else
      with a switch block.  (This function is not included unless UNIV_LOG_ARCHIVE
      is defined.)
      fdb017ff
    • marko's avatar
      08582d6d
  16. 03 May, 2007 1 commit
  17. 02 May, 2007 1 commit
  18. 30 Apr, 2007 2 commits
  19. 17 Apr, 2007 3 commits
    • marko's avatar
      branches/zip: Minor cleanup. · e0cb06f8
      marko authored
      Add __attribute__((const)) or __attribute__((pure)) to various
      mach_read functions.
      
      dtype_new_read_for_order_and_null_size(): Remove a statement
      without effect: mach_read_from_2(buf + 4).
      e0cb06f8
    • marko's avatar
      branches/zip: Reintroduce the local variables "sorted" that were removed · a55e2191
      marko authored
      in r1445.  They are needed after all, but apparently the tests do not
      actually verify that the records are sorted.  (Also, a buffer overflow
      will occur in index_merge_innodb.test if MERGE_BLOCK_SIZE is made smaller.)
      a55e2191
    • marko's avatar
      branches/zip: Clean up fast index creation. · 93558a3b
      marko authored
      Correct the language of some comments.  Eliminate the local variables
      "num_of_merges" (renamed to "sorted" in one function).
      93558a3b