1. 22 Oct, 2007 2 commits
  2. 19 Oct, 2007 3 commits
    • marko's avatar
      branches/zip: dict_truncate_index_tree(): When the index is not found in · db361837
      marko authored
      the data dictionary cache, do not create the index tree.
      db361837
    • marko's avatar
      branches/zip: Introduce two new dictionary operation modes for transactions. · 1561b414
      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.
      1561b414
    • marko's avatar
      branches/zip: srv_suspend_mysql_thread(): Allow the transaction to · e6f452c7
      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().
      e6f452c7
  3. 18 Oct, 2007 4 commits
    • marko's avatar
      branches/zip: ha_innobase::add_index(): Lock the table before creating · 99f97f8c
      marko authored
      any indexes.  Before this fix, other transactions could see the empty indexes
      before we acquired the table lock.
      99f97f8c
    • marko's avatar
      branches/zip: row_merge_lock_table(): Clear the trx->dict_operation flag · 582c74c5
      marko authored
      for the duration of the lock_table() call in order to avoid a bogus warning.
      582c74c5
    • 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
    • marko's avatar
      innodb-test: Allow Innodb_buffer_pool_pages_total to be 511 or 512. · 00b1b124
      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.
      00b1b124
  4. 17 Oct, 2007 3 commits
    • vasil's avatar
      branches/zip: · 12729aea
      vasil authored
      Fix typo in comment.
      12729aea
    • marko's avatar
      branches/zip: row_scan_and_check_index(): Remove the compiler warning · f372ed67
      marko authored
      that tmp_heap is possibly uninitialized.  This was introduced in r1990.
      f372ed67
    • 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
  5. 16 Oct, 2007 2 commits
  6. 15 Oct, 2007 4 commits
    • marko's avatar
      branches/zip: plug.in: Remove the check for aio.h and -lrt, which were · 278334e0
      marko authored
      never used.  Combine the three AC_CHECK_FUNCS tests.
      278334e0
    • marko's avatar
      branches/zip: buf_chunk_init(): Note that the function does not always · 0349b9d2
      marko authored
      return the requested amount of memory.
      0349b9d2
    • marko's avatar
      branches/zip: Allow a dynamically loaded InnoDB storage engine plugin · 7c68ba2e
      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.
      7c68ba2e
    • marko's avatar
      branches/zip: innodb-index.test: Add FORCE INDEX directives and remove · 81761f5f
      marko authored
      those SELECTs whose ORDER BY cannot possibly make use of an index.
      81761f5f
  7. 12 Oct, 2007 9 commits
  8. 11 Oct, 2007 2 commits
    • vasil's avatar
      branches/zip: · abceb43b
      vasil authored
      Non-functional change: fix compiler warning:
      
      buf0buf.ic:637: warning: assignment discards qualifiers from pointer target type
      abceb43b
    • vasil's avatar
      branches/zip: · 9dbf703d
      vasil authored
      Non-functional change to improve readability.
      9dbf703d
  9. 10 Oct, 2007 2 commits
  10. 08 Oct, 2007 2 commits
    • marko's avatar
      branches/zip: innodb-index.result: Adapt the results to a patch from MySQL. · a8a47268
      marko authored
      Unfortunately, the patch seems to prevent MySQL from utilizing secondary
      indexes in the ORDER BY clauses.  Thus, the test no longer checks if newly
      created indexes are well-formed.
      
      ChangeSet@1.2528.98.1  2007-08-02 12:45:56-07:00  igor@mysql.com
      
      Fixed bug#28404.
      This patch adds cost estimation for the queries with ORDER BY / GROUP BY
      and LIMIT. 
      If there was a ref/range access to the table whose rows were required
      to be ordered in the result set the optimizer always employed this access
      though a scan by a different index that was compatible with the required 
      order could be cheaper to produce the first L rows of the result set.
      Now for such queries the optimizer makes a choice between the cheapest
      ref/range accesses not compatible with the given order and index scans
      compatible with it.
      a8a47268
    • vasil's avatar
      branches/zip: · fe92e646
      vasil authored
      Add diagnostic function ha_storage_get_size() to retrieve the amount of
      memory used by a ha_storage_t object.
      
      Approved by:	Marko
      fe92e646
  11. 05 Oct, 2007 7 commits