An error occurred fetching the project authors.
  1. 16 Oct, 2007 1 commit
    • marko's avatar
      branches/zip: btr_push_update_extern_fields(): Add parameter "index" · d49217dd
      marko authored
      and use it for flagging externally stored columns in the data tuple.
      The data tuple contains the same columns as the clustered index record,
      but in a different order.  This error was introduced in r1591.
      
      TODO: the assertion ut_ad(!dfield_is_ext()) may fail in
      btr_cur_pessimistic_update().
      d49217dd
  2. 20 Aug, 2007 1 commit
  3. 21 Jun, 2007 2 commits
    • 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
    • marko's avatar
      branches/zip: btr_rec_copy_externally_stored_field(): Add const qualifier · d7dbb460
      marko authored
      to rec_t*.  Remove the ut_ad(rec_offs_validate()), because this function
      will be called from row0merge.c on a record that lacks the
      REC_N_NEW_EXTRA_BYTES.
      d7dbb460
  4. 19 Jun, 2007 1 commit
  5. 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
  6. 28 Mar, 2007 1 commit
    • 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
  7. 25 Oct, 2006 1 commit
    • marko's avatar
      branches/zip: Remove a few buf_block_align() calls from debug builds. · 9ac3df76
      marko authored
      btr_check_node_ptr(): Replace page_t* parameter with buf_block_t*.
      
      btr_free_externally_stored_field(): Add const qualifier to rec.
      Remove an explicit buf_block_align() call, but replace an
      mtr_memo_contains() with mtr_memo_contains_page().
      
      row_upd_rec_sys_fields(): Reorder an assertion containing buf_block_align()
      so that the costly call can be avoided in some cases.
      9ac3df76
  8. 24 Oct, 2006 1 commit
    • marko's avatar
      branches/zip: Remove all references to buf_block_align() except those · 42dcad50
      marko authored
      from the adaptive hash index [btr_search_guess_on_hash() and
      btr_search_validate()].  Some references to buf_block_align() remain
      in debug builds.
      
      btr_store_big_rec_extern_fields(): Add the parameter rec_block.
      
      page_rec_get_next_low(): Do not assume that the page has been
      allocated from the buffer pool when printing the diagnostic information.
      
      page_cur_insert_rec_low(): Replace the parameter page_zip_des_t* page_zip
      with the parameter buf_block_t* block.
      42dcad50
  9. 20 Oct, 2006 2 commits
    • marko's avatar
      branches/zip: Remove some more buf_block_align() calls. · 8562e752
      marko authored
      btr_cur_t: Move page_block to page_cur_t::block.
      
      page_cur_get_block(), page_cur_get_page_zip(): New functions.
      
      page_cur_position(): Add parameter block.
      
      Remove many page_zip parameters, now that there is page_cur_get_page_zip().
      Replace some page, page_zip parameters with block.
      
      Add some const qualifiers to function parameters and remove casts.
      
      PAGE_HEAP_NO_INFIMUM, PAGE_HEAP_NO_SUPREMUM, PAGE_HEAP_NO_USER_LOW:
      New constants.
      
      Replace some cursor code in low-level diagnostic functions with
      direct management of rec, because buf_block_t::buf_fix_count may be 0
      when the functions are called, and debug assertions would fail.
      8562e752
    • marko's avatar
  10. 18 Oct, 2006 2 commits
    • marko's avatar
      branches/zip: btr_cur_t: replace left_page with left_block, to avoid · ab0456cb
      marko authored
      calling buf_block_align() in btr_pcur_move_backward_from_page().
      Also, enclose some assertions about page_is_comp() in #ifdef UNIV_BTR_DEBUG.
      ab0456cb
    • marko's avatar
      branches/zip: Eliminate many buf_block_align() calls. · c659b59a
      marko authored
      Replace page_t* or page_zip_des_t* parameters in some functions with
      buf_block_t*.
      
      buf_frame_get_page_zip(): Disable unless #ifdef UNIV_DEBUG || UNIV_ZIP_DEBUG.
      
      btr_cur_t: Add buf_block_t* page_block.
      
      btr_pcur_get_block(), btr_cur_get_block(), btr_cur_get_page_zip():
      New functions.
      
      btr_cur_position(): Add the parameter block.
      c659b59a
  11. 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
  12. 26 Sep, 2006 1 commit
    • marko's avatar
      branches/zip: Implement the ability to fetch a prefix of an externally · 6e269ddf
      marko authored
      stored column.  This is the first part of fixing Bug #22496.
      
      btr_copy_externally_stored_field_prefix(): New function.
      
      btr_copy_externally_stored_field(): Split to
      btr_copy_externally_stored_field_prefix_low().
      
      row_sel_sec_rec_is_for_blob(): New function, used by
      row_sel_sec_rec_is_for_clust_rec() in selects via
      a secondary index.
      6e269ddf
  13. 19 Sep, 2006 1 commit
  14. 29 Aug, 2006 1 commit
  15. 31 Jul, 2006 1 commit
    • marko's avatar
      branches/zip: Fix a bug in consistent reads of rows containing BLOB data. · 62adcfab
      marko authored
      btr_rec_copy_externally_stored_field(): Add parameter zip_size.
      Do not call buf_block_align(rec), because rec can also be in
      dynamically allocated memory.  buf_block_align() can only be invoked
      on addresses inside the buffer pool.
      
      page_zip_clear_rec(): Improve formatting.
      62adcfab
  16. 12 Apr, 2006 1 commit
  17. 23 Feb, 2006 1 commit
  18. 21 Feb, 2006 1 commit
    • marko's avatar
      branches/zip: · 69f236c2
      marko authored
      Fix the way how btr_free_externally_stored_field() is called in purge.
      
      btr_free_externally_stored_field(): Add parameter field_ref that points
      directly to the BLOB reference.  Use rec, offsets, page_zip, and i
      only for the page_zip_write_blob_ptr() call.
      
      row_purge_upd_exist_or_extern(): Do not assume that the undo log contains
      the entire record.  Only pass the BLOB reference to
      btr_free_externally_stored_field().
      69f236c2
  19. 16 Feb, 2006 1 commit
    • marko's avatar
      branches/zip: Implement the compression of BLOB columns. · ee5a92aa
      marko authored
      This has not been extensively tested yet, because some other part of the
      code breaks in "ibtestblob".
      
      btr_free_page_low(): Add parameters "space" and "page_no", because they
      are omitted from compressed BLOB pages.
      
      btr0cur.c: Implement the compression and decompression of BLOB columns,
      enabled at compile-time (#define ZIP_BLOB TRUE) for now.
      
      btr_rec_free_externally_stored_fields(),
      btr_copy_externally_stored_field(): Made static
      
      mlog_log_string(): New function, split from mlog_write_string(), allows
      to avoid a dummy memcpy() of compressed BLOB pages.
      ee5a92aa
  20. 13 Feb, 2006 1 commit
    • marko's avatar
      branches/zip: Remove in-place updates of the "external storage" · d8e3b811
      marko authored
      flag of records.  The flags may only be updated in heap-allocated
      copies of records.
      
      btr_root_raise_and_insert(),
      btr_page_split_and_insert(),
      btr_cur_insert_if_possible(),
      btr_cur_optimistic_insert(),
      btr_cur_pessimistic_insert(),
      page_cur_tuple_insert(),
      page_cur_insert_rec_low(): Add parameters "ext" and "n_ext".
      
      dtuple_convert_big_rec(): Make parameter "ext" const.
      d8e3b811
  21. 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
  22. 18 Nov, 2005 1 commit
  23. 27 Oct, 2005 2 commits