1. 22 Sep, 2007 3 commits
    • vasil's avatar
      branches/zip: · a6ad3753
      vasil authored
      Cosmetic: initialize the members of the cache in the same order as
      they are defined in the structure.
      a6ad3753
    • vasil's avatar
      branches/zip: · 841306b6
      vasil authored
      Make comment more clear (hopefully).
      841306b6
    • vasil's avatar
      branches/zip: · 77a2323a
      vasil authored
      Use the newly introduced mem_alloc2() to use the memory that has been
      allocated in addition to the requested memory. This is done in order to
      avoid wasting memory.
      
      Do not calculate the sizes and offsets of the chunks in advance in
      table_cache_init() because it is unknown how much bytes will actually
      be allocated by mem_alloc2(). Rather calculate these on the run: after
      each chunk is allocated set its size and the offset of the next chunk.
      
      Similar patch approved by:	Marko
      77a2323a
  2. 21 Sep, 2007 7 commits
    • marko's avatar
      branches/zip: row_merge_read_clustered_index(): After writing out the · 4ae98417
      marko authored
      merge buffer, write the next record to the beginning of the emptied buffer.
      This fixes one of the bugs mentioned in r1872.
      4ae98417
    • marko's avatar
      branches/zip: Fix a bug in the merge sort in fast index creation. · 238db632
      marko authored
      Some bug still remains, because innodb-index.test will lose some
      records from the clustered index after add primary key (a,b(255),c(255))
      when row_merge_block_t is reduced to 8192 bytes.
      
      row_merge(): Add the parameter "half".  Add some Valgrind instrumentation.
      Note that either stream can end before the other one.
      
      row_merge_sort(): Calculate "half" for row_merge().
      238db632
    • marko's avatar
      branches/zip: Reduce internal memory fragmentation. · 4bf90e53
      marko authored
      mem_alloc2(): New macro.  This is a variant of mem_alloc() that
      returns the allocated size, which is equal to or greater than
      the requested size.
      
      mem_alloc_func(): Add the output parameter *size for the allocated size.
      When it is set, adjust the parameter passed to mem_heap_alloc().
      
      rec_copy_prefix_to_buf_old(), rec_copy_prefix_to_buf(): Use mem_alloc2()
      instead of mem_alloc().
      4bf90e53
    • marko's avatar
      branches/zip: Add more details to the debug printout enabled by · 7a0a4df5
      marko authored
      row_merge_print_read and row_merge_print_write.
      7a0a4df5
    • marko's avatar
      branches/zip: When creating a memory heap, set the block size to what · 53b14f2f
      marko authored
      was actually obtained from the buddy allocator.  This should avoid some
      internal memory fragmentation in mem_heap_create() and mem_heap_alloc().
      
      mem_area_alloc(): Change the in parameter size to an in/out parameter.
      Adjust the size based on what was obtained from pool->free_list[].
      
      mem_heap_create_block(): Adjust block->len to what was obtained from
      mem_area_alloc().
      53b14f2f
    • marko's avatar
      branches/zip: innodb-index.test: Add yet another CHECK TABLE and add the · 80927016
      marko authored
      column d to two SELECT FROM t1.
      80927016
    • marko's avatar
      branches/zip: Add diagnostic printout. · 619fd43a
      marko authored
      rec_print_comp(): New function, sliced from rec_print_new().
      
      rec_print_old(), rec_print_comp(): Print the untruncated length of the column.
      
      row_merge_print_read, row_merge_print_write, row_merge_print_cmp:
      New flags, to enable debug printout in UNIV_DEBUG builds.
      
      row_merge_tuple_print(): New function for UNIV_DEBUG builds.
      
      row_merge_read_rec(): Obey row_merge_print_read.
      
      row_merge_buf_write(), row_merge_write_rec_low(),
      row_merge_write_eof(): Obey row_merge_print_write.
      
      row_merge_cmp(): Obey row_merge_print_cmp.
      619fd43a
  3. 20 Sep, 2007 3 commits
  4. 19 Sep, 2007 8 commits
  5. 17 Sep, 2007 2 commits
  6. 13 Sep, 2007 1 commit
  7. 12 Sep, 2007 3 commits
  8. 11 Sep, 2007 4 commits
    • marko's avatar
      branches/zip: ha_innobase::add_index(): Fix a race condition that · e9276f80
      marko authored
      existed before the fast-index-creation code was merged, in r1414.
      
      Do not call row_prebuilt_table_obsolete(innodb_table) until after
      the table has been renamed to a temporary name.  Otherwise, the
      following could happen when creating a clustered index on table T:
      
      (a1) copy T to T#1
      (a2) mark T obsolete
      (b1) add the name of T to the background drop list
      (a3) rename T to T#2 and T#1 to T
      (b2) drop the table on the background
      
      These steps are executed by two threads, a and b.
      
      If b1 is executed after a3, all is fine: the name T#2 will be added
      to the background drop list.  If b1 is executed before a3, the name
      T will be added, and T#2 will survive.
      e9276f80
    • marko's avatar
      branches/zip: Minor cleanup. · 5f3faa09
      marko authored
      row_add_table_to_background_drop_list(): Replace the dict_table_t*
      parameter with const char* (the table name).
      
      row_check_table_for_mysql(): Replace prebuilt->table with table.
      5f3faa09
    • inaam's avatar
      branches/zip: Undo changes commited in r1832. · 40381aed
      inaam authored
      These should have gone to branches/fts.
      
      Spotted by: Marko and Ken
      40381aed
    • inaam's avatar
      branches/zip: undo changes made in r1763. · 04fb05b1
      inaam authored
      These should have gone in branches/fts
      
      Spotted by: Marko and Ken
      04fb05b1
  9. 10 Sep, 2007 2 commits
  10. 07 Sep, 2007 2 commits
    • marko's avatar
      branches/zip: UNIV_MEM_ASSERT_AND_FREE(): · 313dabb9
      marko authored
      Use UNIV_MEM_ASSERT_W() instead of UNIV_MEM_ASSERT_RW().
      The memory area need not be initialized.
      This mistake was made in r1815.
      313dabb9
    • marko's avatar
      branches/zip: Decode table names when displaying error messages in · 45b97e55
      marko authored
      fast index creation.
      
      innobase_convert_tablename(): New function, to remove the filename
      encoding of a database and table name.
      
      ha_innobase::add_index(): Invoke innobase_convert_tablename() before
      calling my_error().
      
      innodb-index.result: Update the error messages.
      45b97e55
  11. 06 Sep, 2007 5 commits