1. 25 Oct, 2007 7 commits
  2. 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
  3. 23 Oct, 2007 1 commit
  4. 22 Oct, 2007 7 commits
  5. 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
  6. 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
  7. 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
  8. 16 Oct, 2007 2 commits
  9. 15 Oct, 2007 4 commits
    • marko's avatar
      branches/zip: plug.in: Remove the check for aio.h and -lrt, which were · 186a5e9d
      marko authored
      never used.  Combine the three AC_CHECK_FUNCS tests.
      186a5e9d
    • marko's avatar
      branches/zip: buf_chunk_init(): Note that the function does not always · 415a1045
      marko authored
      return the requested amount of memory.
      415a1045
    • marko's avatar
      branches/zip: Allow a dynamically loaded InnoDB storage engine plugin · 15e0e266
      marko authored
      to replace a built-in instance of InnoDB in mysqld.  This is work in
      progress, with several limitations:
      
      * Other plugins defined in the builtin InnoDB are not disabled.
        However, InnoDB in MySQL 5.1 only defines the storage engine plugin,
        no INFORMATION_SCHEMA plugins.
      
      * The global C symbols in ha_innodb.so except innodb_hton_ptr and
        builtin_innobase_plugin will have to be redefined, e.g., by objcopy.
      
      * The storage engine cannot be called "InnoDB" to avoid a conflict with
        the builtin name.  Here we call it InnoDBzip.
      
      innobase_hton_name[]: Rename to "InnoDBzip" when building a dynamic plugin.
      
      innodb_plugin_init(): New function for the dynamic plugin, to copy
      and redirect configuration parameters from the builtin InnoDB.
      
      innodb_dynamic: New configuration parameter.  This has to be added
      to the builtin InnoDB in MySQL 5.1.  Also, innodb_hton_ptr must be made
      global there.
      
      innobase_init(): Interpret the parameter innodb_dynamic.
      
      Makefile.am: Redefine class ha_innobase to ha_innodb by a preprocessor
      define.  Apparently, C++ classes cannot be easily renamed by objcopy.
      15e0e266
    • marko's avatar
      branches/zip: innodb-index.test: Add FORCE INDEX directives and remove · 6c9bfe78
      marko authored
      those SELECTs whose ORDER BY cannot possibly make use of an index.
      6c9bfe78
  10. 12 Oct, 2007 6 commits