An error occurred fetching the project authors.
  1. 25 May, 2009 1 commit
    • marko's avatar
      branches/zip: Convert the function comments to Doxygen format. · e49dee37
      marko authored
      This patch was created by running the following commands:
      
      for i in */*[ch]; do doxygenify.pl $i; done
      perl -i -pe 's#\*{3} \*/$#****/#' */*[ch]
      
      where doxygenify.pl is
      https://svn.innodb.com/svn/misc/trunk/tools/doxygenify.pl r510
      
      Verified the consistency as follows:
      
      (0) not too many /* in: */ or /* out: */ comments left in the code:
      grep -l '/\*\s*\(in\|out\)[,:/]' */*[ch]
      
      (1) no difference when ignoring blank lines, after stripping all
      C90-style /* comments */, including multi-line ones, before and after
      applying this patch:
      
      perl -i -e 'undef $/;while(<ARGV>){s#/\*(.*?)\*/##gs;print}' */*[ch]
      diff -I'^\s*$' --exclude .svn -ru TREE1 TREE2
      
      (2) after stripping @return comments and !<, generated a diff and omitted
      the hunks where /* out: */ function return comments were removed:
      
      perl -i -e'undef $/;while(<ARGV>){s#!<##g;s#\n\@return\t.*?\*/# \*/#gs;print}'\
       */*[ch]
      svn diff|
      perl -e 'undef $/;$_=<>;s#\n-\s*/\* out[:,]([^\n]*?)(\n-[^\n]*?)*\*/##gs;print'
      
      Some unintended changes were left.  These will be removed in a
      subsequent patch.
      e49dee37
  2. 19 May, 2009 1 commit
  3. 23 Mar, 2009 1 commit
  4. 17 Feb, 2009 1 commit
    • vasil's avatar
      branches/zip: · f2e84267
      vasil authored
      * Remove old Innobase copyright lines from C source files
      * Add a reference to the GPLv2 license as recommended by the lawyers
      at Oracle Legal
      
      [Step 15/28]
      f2e84267
  5. 20 Jan, 2009 1 commit
    • marko's avatar
      branches/zip: Merge revisions 3930:4005 from branches/5.1: · 7944c2ca
      marko authored
        ------------------------------------------------------------------------
        r4004 | marko | 2009-01-20 16:19:00 +0200 (Tue, 20 Jan 2009) | 12 lines
      
        branches/5.1: Merge r4003 from branches/5.0:
      
        rec_set_nth_field(): When the field already is SQL null,
        do nothing when it is being changed to SQL null. (Bug #41571)
      
        Normally, MySQL does not pass "do-nothing" updates to the storage engine.
        When it does and a column of an InnoDB table that is in ROW_FORMAT=COMPACT
        is being updated from NULL to NULL, the InnoDB buffer pool will be corrupted
        without this fix.
      
        rb://81 approved by Heikki Tuuri
        ------------------------------------------------------------------------
        r4005 | marko | 2009-01-20 16:22:36 +0200 (Tue, 20 Jan 2009) | 8 lines
      
        branches/5.1: lock_is_table_exclusive(): Acquire kernel_mutex before
        accessing table->locks and release kernel_mutex before returning from
        the function.  This fixes a portential race condition in the
        "commit every 10,000 rows" in ALTER TABLE, CREATE INDEX, DROP INDEX,
        and OPTIMIZE TABLE. (Bug #42152)
      
        rb://80 approved by Heikki Tuuri
        ------------------------------------------------------------------------
      7944c2ca
  6. 29 Sep, 2008 1 commit
    • marko's avatar
      branches/zip: btr_cur_optimistic_insert(): Correct an error that was made · 482595ad
      marko authored
      in r2631.  Include the node pointer field in the size calculation.
      
      rec_get_converted_size_comp_prefix(): New function, to compute the storage
      size of the prefix of an ordinary record in COMPACT format.
      
      rec_get_converted_size_comp(): Use rec_get_converted_size_comp_prefix().
      482595ad
  7. 18 Feb, 2008 1 commit
  8. 18 Oct, 2007 1 commit
    • marko's avatar
      branches/zip: Remove const warnings reported by GCC 4.2.1. · d967aaa6
      marko authored
      page_cur_set_before_first(), page_cur_set_after_last(),
      page_cur_position(): Add const qualifiers to buf_block_t and rec.
      A better solution would be to define a const_page_cur_t and a
      set of accessors, but it would lead to severe code duplication.
      
      page_rec_get_n_recs_before(): Add const qualifiers.
      
      page_dir_get_nth_slot(): Define as a const-preserving macro.
      
      page_dir_slot_get_rec(), page_dir_slot_get_n_owned(),
      page_dir_find_owner_slot(), page_check_dir(): Add const qualifiers.
      
      page_rec_get_next_low(): Add const qualifiers.
      
      page_rec_get_next_const(), page_rec_get_prev_const(): New functions,
      based on the const-less page_rec_get_next() and page_rec_get_prev().
      
      page_cur_get_page(), page_cur_get_block(), page_cur_get_page_zip(),
      page_cur_get_rec(): Define as const-preserving macros.
      
      page_cur_try_search_shortcut(), page_cur_search_with_match():
      Add const qualifiers.
      
      buf_page_get_mutex(): Add a const qualifier to buf_page_t*.
      
      rec_get_next_ptr_const(): Const variant of rec_get_next_ptr().
      d967aaa6
  9. 17 Oct, 2007 1 commit
    • marko's avatar
      branches/zip: Initialize dfield_t::ext as soon as possible. This should · df4c733d
      marko authored
      fix the bugs introduced in r1591.
      
      row_rec_to_index_entry_low(): Clear "n_ext".  Do not allow it to be NULL.
      Add const qualifier to dict_index_t*.
      
      row_rec_to_index_entry(): Add the parameters "offsets" and "n_ext".
      
      btr_cur_optimistic_update(): Add an assertion that there are no externally
      stored columns.  Remove the unreachable call to btr_cur_unmark_extern_fields()
      and the preceding unnecessary call to rec_get_offsets().
      
      btr_push_update_extern_fields(): Remove the parameters index, offsets.
      Only report the additional externally stored columns of the update vector.
      
      row_build(), trx_undo_rec_get_partial_row(): Flag externally stored columns
      also with dfield_set_ext().
      
      rec_copy_prefix_to_dtuple(): Assert that there are no externally stored
      columns in the prefix.
      
      row_build_row_ref(): Note and assert that the index is a secondary index,
      and assert that there are no externally stored columns.
      
      row_build_row_ref_fast(): Assert that there are no externally stored columns.
      
      rec_offs_get_n_alloc(): Expose the function.
      
      row_build_row_ref_in_tuple(): Assert that there are no externally stored
      columns in a record of a secondary index.
      
      row_build_row_ref_from_row(): Assert that there are no externally stored
      columns.
      
      row_upd_check_references_constraints(): Add the parameter offsets, to
      avoid a redundant call to rec_get_offsets().
      
      row_upd_del_mark_clust_rec(): Add the parameter offsets.  Remove
      duplicated code.
      
      row_ins_index_entry_set_vals(): Copy the external storage flag.
      
      sel_pop_prefetched_row(): Assert that there are no externally stored
      columns.
      
      row_scan_and_check_index(): Copy offsets to a temporary heap across
      the invocation of row_rec_to_index_entry().
      df4c733d
  10. 03 Oct, 2007 1 commit
  11. 28 Sep, 2007 1 commit
  12. 26 Sep, 2007 1 commit
    • marko's avatar
      branches/zip: Add some const qualifiers to input parameters. · ff9f1a14
      marko authored
      rec_get_converted_size_comp(), rec_convert_dtuple_to_rec_comp(),
      rec_convert_dtuple_to_rec_new(), rec_convert_dtuple_to_rec(): Add a
      const qualifier to dict_index_t*.
      
      row_search_on_row_ref(): Add const qualifiers to the dict_table_t*
      and dtuple_t* parameters.  Note that pcur is an "out" parameter
      and mtr is "in/out".
      ff9f1a14
  13. 24 Sep, 2007 2 commits
  14. 21 Sep, 2007 1 commit
    • marko's avatar
      branches/zip: Add diagnostic printout. · a44c5905
      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.
      a44c5905
  15. 21 Jun, 2007 1 commit
    • marko's avatar
      branches/zip: Make merge sort handle externally stored columns. · 5288876e
      marko authored
      Some things still fail in innodb-index.test, and there seems to be
      a race condition (data dictionary lock wait) when running with --valgrind.
      
      dfield_t: Add an "external storage" flag, dfield->ext.
      
      dfield_is_null(), dfield_is_ext(), dfield_set_ext(), dfield_set_null():
      New functions.
      
      dfield_copy(), dfield_copy_data(): Add const qualifiers, fix in/out comments.
      
      data_write_sql_null(): Use memset().
      
      big_rec_field_t: Replace byte* data with const void* data.
      
      ut_ulint_sort(): Remove.
      
      upd_field_t: Remove extern_storage.
      
      upd_node_t: Replace ext_vec, n_ext_vec with n_ext.
      
      row_merge_copy_blobs(): New function.
      
      row_ins_index_entry(): Add the parameter "ibool foreign" for suppressing
      foreign key checks during fast index creation or when inserting into
      secondary indexes.
      
      btr_page_insert_fits(): Add const qualifiers.
      
      btr_cur_add_ext(), upd_ext_vec_contains(): Remove.
      
      dfield_print_also_hex(), dfield_print(): Replace if...else if with switch.
      Observe dfield_is_ext().
      5288876e
  16. 08 Jun, 2007 1 commit
    • 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
  17. 22 May, 2007 2 commits
  18. 02 Feb, 2007 1 commit
    • marko's avatar
      branches/zip: Speed up rec_offs_any_extern() and rec_offs_n_extern() · e45f4cda
      marko authored
      by adding the REC_OFFS_EXTERNAL flag to rec_offs_base(offsets)[0].
      
      This reduces the processor usage of page_zip_write_rec() by about 40%
      in one test case.  The code could be sped up further by testing
      rec_offs_any_extern() outside of loops that check rec_offs_nth_extern().
      The vast majority of records does not contain any externally stored columns.
      e45f4cda
  19. 03 Jan, 2007 1 commit
  20. 26 Oct, 2006 1 commit
    • marko's avatar
      branches/zip: Add const qualifiers to read-only pointers. · a3d72680
      marko authored
      rec_get_nth_field_offs_old(): Split from rec_get_nth_field_old().
      
      rec_get_nth_field_old(): Reimplement as a constness-preserving macro.
      
      dict_drop_index_tree(), dict_truncate_index_tree(): Note that rec is
      an in/out parameter, as the B-tree root page number will be updated.
      a3d72680
  21. 20 Oct, 2006 1 commit
  22. 19 Oct, 2006 1 commit
    • marko's avatar
      branches/zip: Remove the casts introduced in r920 and r925. Replace the · e8a779e7
      marko authored
      accessors returning pointers with macros that preserve const qualifiers.
      In UNIV_DEBUG builds, retain the accessors and cast away constness there.
      
      dfield_get_type(), dfield_get_data(), dtuple_get_nth_field(),
      dict_table_get_nth_col(), dict_table_get_sys_col(): Implement as macro
      unless #ifdef UNIV_DEBUG.
      
      rec_get_nth_field(): Replace with rec_get_nth_field_offs() that does not
      do pointer arithmetics.  Implement rec_get_nth_field() as a macro.
      e8a779e7
  23. 17 Oct, 2006 1 commit
  24. 16 Oct, 2006 1 commit
  25. 29 Sep, 2006 1 commit
    • marko's avatar
      branches/zip: dtuple_convert_big_rec(): Do not store anything locally · 77ebaf6f
      marko authored
      of externally stored columns, and fix bugs introduced in r873.  (Bug #22496)
      
      btr_page_get_sure_split_rec(), btr_page_insert_fits(),
      rec_get_converted_size(), rec_convert_dtuple_to_rec(),
      rec_convert_dtuple_to_rec_old(), rec_convert_dtuple_to_rec_new():
      Add parameters ext and n_ext.  Flag external fields during the
      conversion.
      
      rec_set_field_extern_bits(), rec_set_field_extern_bits_new(),
      rec_offs_set_nth_extern(), rec_set_nth_field_extern_bit_old():
      Remove.  The bits are set by rec_convert_dtuple_to_rec().
      
      page_cur_insert_rec_low(): Remove the parameters ext and n_ext.
      
      btr_cur_add_ext(): New utility function for updating and sorting ext[].
      Low-level functions now expect the array to be in ascending order
      for performance reasons.  Used in btr_cur_optimistic_insert(),
      btr_cur_pessimistic_insert(), and btr_cur_pessimistic_update().
      
      btr_cur_optimistic_insert(): Remove some defensive code, because we cannot
      compute the added parameters of rec_get_converted_size().
      
      btr_push_update_extern_fields(): Sort the array.  Require the array to
      be twice the maximum usage, so that ut_ulint_sort() can be used.
      
      dtuple_convert_big_rec(): Allocate new space for the BLOB pointer,
      to avoid overwriting prefix indexes to the same column.  Adapt
      dtuple_convert_back_big_rec().
      
      row_build_index_entry(): Fetch the columns also for prefix indexes of
      the clustered index.
      
      page_zip_apply_log(), page_zip_decompress_clust(): Allow externally
      stored fields to lack a locally stored part.
      77ebaf6f
  26. 19 Sep, 2006 1 commit
  27. 11 May, 2006 1 commit
  28. 16 Mar, 2006 1 commit
    • marko's avatar
      branches/zip: Minor fixes · df85f728
      marko authored
      trx-undo_prev_version_build(): Pass offsets==NULL to
      rec_set_field_extern_bits().
      
      rec_set_field_extern_bits(), rec_set_field_extern_bits_new():
      Accept offsets==NULL.
      
      row_upd_rec_in_place(): Remove the bogus comment that the function
      would only be invoked on a clustered index.  Remove the related
      debug assertion.
      df85f728
  29. 14 Mar, 2006 1 commit
    • marko's avatar
      branches/zip: Bug fixes for BLOB handling. At least one bug remains: · 2e08171a
      marko authored
      page_zip_dir_delete() will need to handle BLOBs.
      
      rec_set_field_extern_bits(), rec_set_field_extern_bits_new():
      Add parameter offsets.
      
      rec_offs_set_nth_extern(): New function to set an extern bit in offsets.
      This will be called when an extern bit is set in a record.
      
      page_cur_rec_insert(), page_cur_insert_rec_low(): Document that the
      parameter "offsets" is in/out.
      
      page_zip_dir_delete(): Note that the array of BLOB pointers will need
      to be shifted.
      
      page0zip.ic: Document the entry type for clearing a record.
      
      page_zip_available(): Add parameter "index".  Remove parameters
      "is_leaf" and "is_clustered".
      
      page_zip_get_trailer_len(): New function for computing the trailer length
      of the compressed page.
      
      page_zip_apply_log(): Implement the modification log entry type for
      clearing the data bytes of a record.
      
      page_zip_decompress(): Initialize n_blobs when actually copying the
      BLOB pointers to place.
      
      page_zip_validate(): Add diagnostic messages for failures.  Check
      also m_start, m_end, and n_blobs.
      
      page_zip_write_blob_ptr(): Add page_zip_validate() assertion.
      2e08171a
  30. 13 Mar, 2006 1 commit
    • marko's avatar
      branches/zip: Implement in-place updates of BLOB pointers. · 77aba510
      marko authored
      There are still some bugs in the code.
      
      btr_store_big_rec_extern_fields(): Remove assertion on dict_table_is_zip()
      to ease testing.
      
      btr_free_externally_stored_field(): Test page_zip instead of
      dict_table_is_zip().
      
      page_zip_write_rec(): Add parameter "create".  Try to handle externally
      stored columns.
      
      rec_offs_any_extern(): Correct the function comment.
      
      Add rec_offs_n_extern() and page_zip_get_n_prev_extern().
      
      page_zip_dir_decode(): Replace assertion with if (...) return(FALSE).
      
      page_zip_decompress(): Do not clear page_zip->n_blobs after counting the
      BLOBs.
      
      page_zip_write_blob_ptr(): Use page_zip_get_n_prev_extern().
      Correct an off-by-one error in memcpy().
      77aba510
  31. 23 Feb, 2006 1 commit
  32. 22 Feb, 2006 1 commit
    • marko's avatar
      branches/zip: Try to synchronize the updates of uncompressed and · c04ddfef
      marko authored
      compressed pages.
      
      btr_root_raise_and_insert(): Distinguish root_page_zip and new_page_zip.
      
      btr_cur_set_ownership_of_extern_field(): Do not log the write on the
      uncompressed page if it will be logged for page_zip.
      
      lock_rec_insert_check_and_lock(), lock_sec_rec_modify_check_and_lock():
      Update the max_trx_id field also on the compressed page.
      
      mlog_write_ulint(): Add UNIV_UNLIKELY hints.  Remove trailing white space.
      
      mlog_log_string(): Remove trailing white space.
      
      rec_set_field_extern_bits(): Remove parameter mtr, as the write will either
      occur in the heap, or it will be logged at a higher level.
      
      recv_parse_or_apply_log_rec_body(),
      page_zip_write_header(): Add log record type MLOG_ZIP_WRITE_HEADER.
      
      page_header_set_field(): Pass mtr=NULL to page_zip_write_header().
      
      page_header_reset_last_insert(): Pass mtr to page_zip_write_header().
      
      btr_page_set_index_id(), btr_page_set_level(),
      btr_page_set_next(), btr_page_set_prev(): Pass mtr to page_zip_write_header().
      
      row_upd_rec_sys_fields(): Pass mtr=NULL to page_zip_write_trx_id() and
      page_zip_write_roll_ptr(), since the write will be logged at a higher level.
      
      page_zip_write_header(): Add parameter mtr.
      page_zip_write_header_log(): New function.
      
      Remove rec_set_nth_field_extern_bit().
      Make rec_set_nth_field_extern_bit_old() static.
      Rename rec_set_nth_field_extern_bit_new()
      to rec_set_field_extern_bits_new() and make it static.
      
      row_ins_index_entry_low(): Remove bogus TODO comment.
      c04ddfef
  33. 10 Feb, 2006 1 commit
    • marko's avatar
      branches/zip: Prepare for in-place updates of B-tree node pointers, · 062c64e8
      marko authored
      BLOB pointers, trx_id, and roll_ptr.
      
      btr_empty(), btr_create(), page_create(): Add parameter "index", as some
      index information will be encoded on the compressed page.
      
      Define REC_NODE_PTR_SIZE as 4.
      
      Allow btr_page_reorganize() and btr_page_reorganize_low() to fail.
      
      Define the error code DB_ZIP_OVERFLOW.
      
      Make row_ins_index_entry_low() static.
      
      page0zip: Encode the index, log reorganized records, and store uncompressed
      fields separately from the compressed data stream.
      062c64e8
  34. 24 Nov, 2005 1 commit
  35. 27 Oct, 2005 2 commits