1. 05 Oct, 2007 3 commits
  2. 04 Oct, 2007 1 commit
  3. 03 Oct, 2007 6 commits
  4. 01 Oct, 2007 4 commits
  5. 28 Sep, 2007 9 commits
  6. 27 Sep, 2007 13 commits
  7. 26 Sep, 2007 4 commits
    • marko's avatar
      branches/zip: Document the minimum size of row_merge_block_t as UNIV_PAGE_SIZE. · f8dffe6a
      marko authored
      row_merge_buf_add(): Add ut_ad(data_size < sizeof(row_merge_block_t))
      and document why it may fail if sizeof row_merge_block_t < UNIV_PAGE_SIZE.
      f8dffe6a
    • marko's avatar
      branches/zip: row_merge_build_indexes(): Call innobase_rec_reset() only once. · 9d234dd0
      marko authored
      row_merge_dup_report(): Do not call innobase_rec_reset().
      9d234dd0
    • marko's avatar
      branches/zip: Clean up some non-inlined functions. · 6b3579a8
      marko authored
      dtuple_create_for_mysql(), dtuple_free_for_mysql(): Remove.
      
      ha_innobase::records_in_range(): Use mem_heap_create(), mem_heap_free(),
      and dtuple_create() instead of the removed functions above.  Since r1587,
      InnoDB C++ functions can invoke inlined C functions.
      6b3579a8
    • marko's avatar
      branches/zip: Implement the reporting of duplicate key values to MySQL. · 03a7cb22
      marko authored
      innobase_rec_to_mysql(): New function, for converting an InnoDB clustered
      index record to MySQL table->record[0].  TODO: convert integer fields.
      Currently, integer fields are in big-endian byte order instead of
      host byte order, and signed integer fields are offset by 0x80000000.
      
      innobase_rec_reset(): New function, for resetting table->record[0].
      
      row_merge_build_indexes(): Add the parameter TABLE* table (the MySQL table
      handle) for reporting duplicate key values.
      
      dtuple_from_fields(): New function, to convert an array of dfield_t* to
      dtuple_t.
      
      dtuple_get_n_ext(): New function, to compute the number of externally stored
      fields.
      
      row_merge_dup_t: Structure for counting and reporting duplicate records.
      
      row_merge_dup_report(): Function for counting and reporting duplicate records.
      
      row_merge_tuple_cmp(), row_merge_tuple_sort(): Replace the ulint* n_dup
      parameter with row_merge_dup_t* dup.
      
      row_merge_buf_sort(): Add the parameter row_merge_dup_t* dup, which is
      NULL when sorting a non-unique index.
      
      row_merge_buf_write(), row_merge_heap_create(), row_merge_read_rec(),
      row_merge_cmp(), row_merge_read_clustered_index(), row_merge_blocks(),
      row_merge(), row_merge_sort(): Add const qualifiers.
      
      row_merge_read_clustered_index(): Use a common error handling branch err_exit.
      Invoke row_merge_buf_sort() differently on unique indexes.
      
      row_merge_blocks(): note TODO: We could invoke innobase_rec_to_mysql()
      to report duplicate key values when creating a clustered index.
      03a7cb22