- 24 Oct, 2007 3 commits
-
-
marko authored
-
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.
-
marko authored
-
- 23 Oct, 2007 1 commit
-
-
marko authored
dfield_dup(): New function for duplicating the data pointed to by dfield_t. dfield_set_len(), dfield_set_data(): Add Valgrind instrumentation.
-
- 22 Oct, 2007 7 commits
-
-
marko authored
-
marko authored
row_upd_rec_in_place(): Correct a debug assertion. row_upd_index_parse(): Initialize new_val with dfield_set_data() or dfield_set_null(). This ensures that new_val->ext is initialized.
-
marko authored
value of the block that the cursor points to. row_ins_check_foreign_constraint(): Call btr_pcur_get_block() after row_ins_foreign_check_on_constraint(), as it may reposition the cursor on a different page. row_ins_scan_sec_index_for_duplicate(): Call btr_pcur_get_block() on every iteration of the loop. Use do ... while instead of for (;;).
-
marko authored
btr_pcur_get_rel_pos(): Add a const qualifier. btr_pcur_get_btr_cur(), btr_pcur_get_page_cur(): btr_cur_get_page_cur(): Define as const-preserving macros. btr_pcur_is_on_user_rec(), btr_pcur_is_after_last_on_page(), btr_pcur_is_before_first_on_page(): Remove the unused parameter mtr. Add a const qualifier. btr_pcur_move_to_next_on_page(), btr_pcur_move_to_prev_on_page(): Remove the unused parameter mtr. page_cur_search(): Add const qualifiers. page_cur_get_page(), page_cur_is_before_first(), page_cur_is_after_last(): Add debug assertions.
-
marko authored
TRX_DICT_OP_TABLE to TRX_DICT_OP_TABLE.
-
marko authored
-
marko authored
the assertion in trx_set_dict_operation() would read uninitialized data. This mistake was made in r1998.
-
- 19 Oct, 2007 3 commits
-
-
marko authored
the data dictionary cache, do not create the index tree.
-
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.
-
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().
-
- 18 Oct, 2007 4 commits
-
-
marko authored
any indexes. Before this fix, other transactions could see the empty indexes before we acquired the table lock.
-
marko authored
for the duration of the lock_table() call in order to avoid a bogus warning.
-
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().
-
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.
-
- 17 Oct, 2007 3 commits
-
-
vasil authored
Fix typo in comment.
-
marko authored
that tmp_heap is possibly uninitialized. This was introduced in r1990.
-
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().
-
- 16 Oct, 2007 2 commits
-
-
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().
-
marko authored
that was broken in r1591. Spotted by Heikki and Vasil.
-
- 15 Oct, 2007 4 commits
-
-
marko authored
never used. Combine the three AC_CHECK_FUNCS tests.
-
marko authored
return the requested amount of memory.
-
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.
-
marko authored
those SELECTs whose ORDER BY cannot possibly make use of an index.
-
- 12 Oct, 2007 9 commits
-
-
marko authored
Do not assume anything about the contents of the bitmap. ibuf_update_free_bits_low(): Use this function only for uncompressed pages. Remove the parameter zip_size. This function avoids latching the bitmap page and updating the bitmap when the bits do not change. ibuf_update_free_bits_zip(): New function based on ibuf_update_free_bits_low(), for use on compressed pages. Remove the parameter max_insert_size that was used for computing the before image of the free bits. Always update the bitmap. ibuf_index_page_calc_free_zip(): New function, factored out from ibuf_index_page_calc_free(). ibuf_update_free_bits_if_full(): Document that this function must only be invoked on uncompressed pages. Add a debug assertion about this.
-
vasil authored
Add the proper macros for checking the correct latching order in trx information_schema code. Approved by: Marko
-
marko authored
-
marko authored
avoid repeated invocation of the costly function rec_get_converted_size().
-
marko authored
-
vasil authored
Fix off-by-one error in ut_raw_to_hex().
-
marko authored
and add some debug assertions.
-
marko authored
in r1960.
-
vasil authored
Non-functional change: add a missed space in the output message.
-
- 11 Oct, 2007 2 commits
- 10 Oct, 2007 2 commits