1. 17 Apr, 2007 1 commit
    • marko's avatar
      branches/zip: Clean up. · 65a34315
      marko authored
      cmp_rec_rec_with_match(): Initialize ret=0.  Remove assignments ret=0.
      
      rec_init_offsets(): Remove bogus comment.
      65a34315
  2. 16 Apr, 2007 4 commits
  3. 13 Apr, 2007 1 commit
  4. 12 Apr, 2007 3 commits
    • marko's avatar
      branches/zip: Clean up fast index creation. · 4e14254e
      marko authored
      row_merge_read(), row_merge_write(): Add UNIV_LIKELY hints.
      
      row_merge_sort_linked_list_in_disk(): Reduce the scope of many variables.
      Eliminate the variable "selected".
      4e14254e
    • marko's avatar
      branches/zip: Minor cleanup of merge_file_t and merge_block_header_t. · 13817f1d
      marko authored
      Replace byte offsets of type dulint with block offsets of type ulint.
      Avoid references to MERGE_BLOCK_SIZE.
      
      Improve the language of some comments.
      
      row_merge_insert_index_tuples(), row_merge_sort_linked_list_in_disk():
      Make the offset a ulint.
      
      row_merge_read(), row_merge_write(): Helper functions.  Return the
      status of os_file_read() and os_file_write().  TO DO: check the status
      in the callers.
      13817f1d
    • marko's avatar
      branches/zip: More cleanup of fast index creation. · 96e90174
      marko authored
      innobase_create_temporary_tablename(): Add static qualifier.  Allocate
      the memory from heap.  Return a fixed identifier.
      
      ha_innobase::add_index(): Allocate all memory from a single heap.
      Simplify error handling.  Use a fixed prefix for temporary table names,
      because only one add_index() can be active for a given table.
      
      mem_heap_empty_noninline(): New function, to be called from ha_innodb.cc.
      
      row_build_index_for_mysql(): Remove the parameter new_primary.
      96e90174
  5. 11 Apr, 2007 4 commits
    • marko's avatar
      branches/zip: Clean up fast index creation. · 5c54c363
      marko authored
      row_merge_remove_index(), row_merge_rename_index(): Remove risky sprintf()
      calls.  Make use of named literals and que_eval_sql().
      5c54c363
    • marko's avatar
      branches/zip: Some more cleanup of fast index creation. · 4b1e9a91
      marko authored
      Move more definitions from row0mysql.h to row0mysql.c.  Remove the
      unused definition of merge_thread.
      
      merge_index_def_t: Replace merge_index_field_t** with merge_index_field_t*.
      Use mem_heap_strdup() when copying strings.
      
      ha_innobase::add_index(): Avoid excessive use of current_thd.
      4b1e9a91
    • marko's avatar
      branches/zip: row_merge_sort_linked_list_in_disk(): Remove some unnecessary · e3e30549
      marko authored
      assignments.  A memory leak remains at "goto error_handling": the memory
      allocated with row_merge_block_create() in the beginning of this function
      will not be freed.
      e3e30549
    • marko's avatar
      branches/zip: Initial clean up of the merge sort subsystem. · fcfed198
      marko authored
      Define the merge_rec_ structures in row0merge.c instead of
      row0merge.h.  They are not used in the interface defined in row0merge.h.
      
      row_merge_create_file_structure(): Rename to row_merge_file_create().
      Input a pointer to a pre-allocated block of memory.
      
      row_merge_read_clustered_index(): Replace merge_file_t** with merge_file_t*.
      
      row_merge_sort_and_insert_thread(): Remove the declaration.
      This function was never defined or called.
      
      row_merge_is_index_usable(): Correct the formatting.
      
      row_build_index_for_mysql(): Allocate an array of merge_file_t instead
      of an array of pointers to merge_file_t.
      fcfed198
  6. 10 Apr, 2007 2 commits
  7. 04 Apr, 2007 2 commits
    • marko's avatar
      branches/zip: Fix the merge of branches/fast-index-creation -r1413 in r1414. · 5650bfbe
      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.
      5650bfbe
    • marko's avatar
      branches/zip: Merge branches/fast-index-creation -r1413. · a47b9e64
      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.
      a47b9e64
  8. 02 Apr, 2007 1 commit
  9. 29 Mar, 2007 2 commits
    • marko's avatar
      branches/zip: Make TRUNCATE TABLE recreate single-table tablespaces. · 34238330
      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.
      34238330
    • marko's avatar
      branches/zip: Minor cleanup in rollback. · 9f505aa1
      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.
      9f505aa1
  10. 28 Mar, 2007 4 commits
    • marko's avatar
      branches/zip: btr_cur_pessimistic_update(): Add parameter heap. · 750e130c
      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.
      750e130c
    • marko's avatar
      e4d8b192
    • marko's avatar
      branches/zip: buf_LRU_block_free_non_file_page(): Flag block->frame · 1cd52812
      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).
      1cd52812
    • marko's avatar
      branches/zip: Add Valgrind instrumentation to the InnoDB memory management · 3a23bff3
      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().
      3a23bff3
  11. 14 Mar, 2007 1 commit
    • marko's avatar
      branches/zip: Minor cleanup. · 6e8da36b
      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.
      6e8da36b
  12. 12 Mar, 2007 1 commit
  13. 05 Mar, 2007 1 commit
  14. 01 Mar, 2007 3 commits
  15. 28 Feb, 2007 3 commits
  16. 27 Feb, 2007 3 commits
  17. 26 Feb, 2007 1 commit
  18. 20 Feb, 2007 3 commits
    • marko's avatar
      branches/zip: Many places: Avoid re-reorganizing compressed pages after · 705dfc7c
      marko authored
      failing insert.  Reorganization will have been attempted in
      page_cur_tuple_insert() or page_cur_rec_insert().
      
      page_zip_reorganize(): Recompute the insert buffer free bits for
      leaf pages of secondary indexes.
      
      ibuf_data_enough_free_for_insert(): Simplify.
      705dfc7c
    • marko's avatar
      branches/zip: page_cur_rec_field_extends(): Fix compilation errors that · e08004c5
      marko authored
      were introduced when reducing the memory footprint of the data dictionary
      cache (Bug #20877), around r834.  This function is only compiled if
      PAGE_CUR_LE_OR_EXTENDS is defined in page0cur.h.
      e08004c5
    • marko's avatar
      branches/zip: Fix bugs related to the insert buffering of · 3e463b8b
      marko authored
      compressed tablespaces.
      
      btr_page_reorganize_low(): Recompute the insert buffer free bits
      for compressed pages belonging to a non-clustered index.
      
      btr_cur_optimistic_insert(): Determine if the page was reorganized by
      page_cur_tuple_insert(). Do not attempt to reorganize compressed pages,
      because that will be attempted by page_cur_tuple_insert().
      3e463b8b