1. 30 Oct, 2007 2 commits
  2. 29 Oct, 2007 4 commits
    • marko's avatar
      branches/zip: trx_rollback_or_clean_all_without_sess(): Distinguish · 7d5f2f84
      marko authored
      recovered transactions from new ones.  Until r1594, they were distinguished
      by trx->sess == NULL.
      
      trx_t: Add the bitfield is_recovered.
      
      trx_lists_init_at_db_start(): Set trx->is_recovered.
      
      trx_create(): Initialize trx->is_recovered = 0.
      
      trx_print(): Display information about trx->is_recovered.
      
      trx_rollback_or_clean_all_without_sess(): Skip new transactions.
      Protect all accesses of trx_sys->trx_list with kernel_mutex.
      
      trx_roll_crash_recv_trx, trx_roll_max_undo_no, trx_roll_progress_printed_pct:
      Made these variables static.
      7d5f2f84
    • marko's avatar
      branches/zip: row_merge_drop_temp_indexes(): Use COMMIT WORK instead of · b1d3192f
      marko authored
      trx_commit_for_mysql().
      b1d3192f
    • marko's avatar
      a877fffc
    • vasil's avatar
      branches/zip: · 0028e8d1
      vasil authored
      Add innodb_locks.lock_data column and some relevant tests.
      For record locks this column represents the ordering fields of the
      locked row in a human readable, SQL-valid, format.
      
      Approved by:	Marko
      0028e8d1
  3. 26 Oct, 2007 5 commits
  4. 25 Oct, 2007 7 commits
  5. 24 Oct, 2007 3 commits
    • marko's avatar
      branches/zip: Merge 1937:2015 from trunk. · 0d6bfafd
      marko authored
      0d6bfafd
    • marko's avatar
      branches/zip: Remove some unnecessary memory references in the master thread. · 03fcaeec
      marko authored
      srv_print_thread_releases, srv_print_lock_waits, srv_print_buf_io,
      srv_print_log_io, srv_print_latch_waits: Define these variables as
      constants (FALSE), unless UNIV_DEBUG is defined.  These variables
      are never assigned to, and they are initialized to FALSE.  It could
      be useful to set them when debugging InnoDB.
      
      srv_slot_t: Fuse the fields type, in_use, suspended to a single machine word.
      
      srv_meter[], srv_meter_low_water[], srv_meter_high_water[],
      srv_meter_high_water2[], srv_meter_foreground[]: Enclose these arrays
      inside #if 0.  The arrays are essentially constants that do not affect
      the control flow.
      
      enum srv_thread_type: New enum, to replace the #defines SRV_COM, ...
      Enclose the unused values SRV_BUFFER, SRV_RECOVERY, SRV_INSERT
      inside #if 0, so that some arrays and loops can be reduced.
      03fcaeec
    • marko's avatar
  6. 23 Oct, 2007 1 commit
  7. 22 Oct, 2007 7 commits
  8. 19 Oct, 2007 3 commits
    • marko's avatar
      branches/zip: dict_truncate_index_tree(): When the index is not found in · d8c45beb
      marko authored
      the data dictionary cache, do not create the index tree.
      d8c45beb
    • marko's avatar
      branches/zip: Introduce two new dictionary operation modes for transactions. · 3980b139
      marko authored
      enum trx_dict_op: dictionary operation modes
      
      trx_get_dict_operation(), trx_set_dict_operation(): Accessors for
      trx->dict_operation.
      
      lock_table_enqueue_waiting(), lock_rec_enqueue_waiting(): Do not complain
      about lock waits if the dictionary mode is TRX_DICT_OP_INDEX_MAY_WAIT.
      
      row_merge_lock_table(): Remove the work-around for avoiding the warning
      in lock_table_enqueue_waiting().
      
      trx_undo_mark_as_dict_operation(): Do not write trx->table_id to the
      undo log unless the dict_operation is TRX_DICT_OP_TABLE.
      
      ha_innobase::add_index(): Set the dict_operation mode initially to
      TRX_DICT_OP_INDEX_MAY_WAIT, then lock the table exclusively, and set the
      mode to TRX_DICT_OP_INDEX, and optionally to TRX_DICT_OP_TABLE when
      creating a temporary table.
      3980b139
    • marko's avatar
      branches/zip: srv_suspend_mysql_thread(): Allow the transaction to · 61e0c6a3
      marko authored
      hold an X-latch to the data dictionary, to avoid an assertion failure
      when a lock wait occurs in row_merge_lock_table().
      61e0c6a3
  9. 18 Oct, 2007 4 commits
    • marko's avatar
      branches/zip: ha_innobase::add_index(): Lock the table before creating · d8de71ff
      marko authored
      any indexes.  Before this fix, other transactions could see the empty indexes
      before we acquired the table lock.
      d8de71ff
    • marko's avatar
      branches/zip: row_merge_lock_table(): Clear the trx->dict_operation flag · 93157fcd
      marko authored
      for the duration of the lock_table() call in order to avoid a bogus warning.
      93157fcd
    • marko's avatar
      branches/zip: Remove const warnings reported by GCC 4.2.1. · 65d4e630
      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().
      65d4e630
    • marko's avatar
      innodb-test: Allow Innodb_buffer_pool_pages_total to be 511 or 512. · 3959cbd6
      marko authored
      The size of the buffer pool can be one page smaller than the requested
      size when os_mem_alloc_large() returns something that is not
      aligned by UNIV_PAGE_SIZE.  This test may still fail on systems with
      a big os_large_page_size.
      3959cbd6
  10. 17 Oct, 2007 3 commits
    • vasil's avatar
      branches/zip: · e0352dd3
      vasil authored
      Fix typo in comment.
      e0352dd3
    • marko's avatar
      branches/zip: row_scan_and_check_index(): Remove the compiler warning · aea22cad
      marko authored
      that tmp_heap is possibly uninitialized.  This was introduced in r1990.
      aea22cad
    • marko's avatar
      branches/zip: Initialize dfield_t::ext as soon as possible. This should · e7267909
      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().
      e7267909
  11. 16 Oct, 2007 1 commit
    • marko's avatar
      branches/zip: btr_push_update_extern_fields(): Add parameter "index" · c6f5ea28
      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().
      c6f5ea28