summaryrefslogtreecommitdiff
path: root/innobase/include
Commit message (Collapse)AuthorAgeFilesLines
* InnoDB: Make the srv_thread_concurrency checks more consistent.unknown2005-07-061-0/+1
| | | | | | | | | | | | | innobase/include/srv0srv.h: Define SRV_CONCURRENCY_THRESHOLD innobase/srv/srv0srv.c: Remove srv_thread_concurrency check from srv_conc_enter_innodb() and srv_conc_exit_innodb(), as the check is in the (only) caller of these functions, in ha_innodb.cc. srv_conc_force_enter_innodb(), srv_conc_force_exit_innodb(): Check for srv_thread_concurrency >= SRV_CONCURRENCY_THRESHOLD sql/ha_innodb.cc: Make use of SRV_CONCURRENCY_THRESHOLD
* Merge marko@bk-internal.mysql.com:/home/bk/mysql-5.0unknown2005-07-041-2/+4
|\ | | | | | | | | | | | | | | into hundin.mysql.fi:/home/marko/mysql-5.0-current sql/ha_innodb.cc: Auto merged
| * InnoDB: Optimize page_cur_search_with_match().unknown2005-06-301-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | innobase/btr/btr0cur.c: Disable the mode PAGE_CUR_LE_OR_EXTENDS at compile-time innobase/include/page0cur.h: Disable the mode PAGE_CUR_LE_OR_EXTENDS at compile-time Do not define PAGE_CUR_DBG unless #ifdef UNIV_SEARCH_DEBUG innobase/page/page0cur.c: Disable the mode PAGE_CUR_LE_OR_EXTENDS at compile-time Disable PAGE_CUR_DBG unless #ifdef UNIV_SEARCH_DEBUG page_cur_try_search_shortcut(): Optimize the predicates (compare the result of page_cmp_dtuple_rec_with_match() against 0, use page_rec_is_supremum()). page_cur_search_with_match(): Compare the result of cmp_dtuple_rec_with_match() against zero, add UNIV_LIKELY hints, replace duplicated code with gotos.
* | trx0trx.h, trx0trx.ic, row0mysql.c:unknown2005-07-012-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | Fix another bug in the fix of Bug #3300 innobase/row/row0mysql.c: Fix another bug in the fix of Bug #3300 innobase/include/trx0trx.ic: Fix another bug in the fix of Bug #3300 innobase/include/trx0trx.h: Fix another bug in the fix of Bug #3300
* | trx0trx.ic, trx0trx.h:unknown2005-07-012-9/+17
| | | | | | | | | | | | | | | | | | | | Fix bug in the Bug #3300 bug fix innobase/include/trx0trx.h: Fix bug in the Bug #3300 bug fix innobase/include/trx0trx.ic: Fix bug in the Bug #3300 bug fix
* | Many files:unknown2005-07-013-6/+103
|/ | | | | | | | | | | | | | | | | | | | | | Fix Bug #3300 : if innodb_locks_unsafe_for_binlog is set, release locks on rows that we do not UPDATE or DELETE sql/ha_innodb.cc: Fix Bug #3300 : if innodb_locks_unsafe_for_binlog is set, release locks on rows that we do not UPDATE or DELETE innobase/row/row0mysql.c: Fix Bug #3300 : if innodb_locks_unsafe_for_binlog is set, release locks on rows that we do not UPDATE or DELETE innobase/row/row0sel.c: Fix Bug #3300 : if innodb_locks_unsafe_for_binlog is set, release locks on rows that we do not UPDATE or DELETE innobase/include/trx0trx.ic: Fix Bug #3300 : if innodb_locks_unsafe_for_binlog is set, release locks on rows that we do not UPDATE or DELETE innobase/include/row0mysql.h: Fix Bug #3300 : if innodb_locks_unsafe_for_binlog is set, release locks on rows that we do not UPDATE or DELETE innobase/include/trx0trx.h: Fix Bug #3300 : if innodb_locks_unsafe_for_binlog is set, release locks on rows that we do not UPDATE or DELETE innobase/lock/lock0lock.c: Fix Bug #3300 : if innodb_locks_unsafe_for_binlog is set, release locks on rows that we do not UPDATE or DELETE innobase/trx/trx0trx.c: Fix Bug #3300 : if innodb_locks_unsafe_for_binlog is set, release locks on rows that we do not UPDATE or DELETE
* Merge hundin.mysql.fi:/home/marko/mysql-4.1unknown2005-06-281-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | into hundin.mysql.fi:/home/marko/mysql-5.0-current innobase/fil/fil0fil.c: SCCS merged innobase/include/os0file.h: SCCS merged innobase/os/os0file.c: SCCS merged
| * InnoDB: Optimize the extension of files. This will greatly speedunknown2005-06-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | up CREATE TABLE in innodb_file_per_table=1 mode. innobase/fil/fil0fil.c: fil_extend_space_to_desired_size(): Do not allocate or initialize more memory than is necessary. Write at most one megabyte at a time. innobase/include/os0file.h: os_file_set_size(): Corrected the synopsis innobase/os/os0file.c: os_file_set_size(): Corrected the synopsis and some comments. s/offset/current_size; s/low/desired_size/; Do not allocate or initialize more memory than is necessary. Write at most one megabyte at a time.
* | InnoDB: Correct a function comment.unknown2005-06-222-2/+2
| | | | | | | | | | | | | | innobase/include/rem0rec.h: rec_get_nth_field(): Correct the comment. innobase/include/rem0rec.ic: rec_get_nth_field(): Correct the comment.
* | Merge hundin.mysql.fi:/home/marko/mysql-5.0unknown2005-06-2135-469/+517
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into hundin.mysql.fi:/home/marko/mysql-5.0-current innobase/dict/dict0dict.c: Auto merged innobase/fil/fil0fil.c: Auto merged innobase/include/lock0lock.h: Auto merged innobase/lock/lock0lock.c: Auto merged innobase/os/os0file.c: Auto merged innobase/row/row0ins.c: Auto merged innobase/row/row0mysql.c: Auto merged innobase/srv/srv0start.c: Auto merged innobase/trx/trx0trx.c: Auto merged sql/ha_innodb.cc: Auto merged sql/ha_innodb.h: Auto merged sql/mysqld.cc: Auto merged
| * | InnoDB: Remove warnings detected by GCC 4.0.0unknown2005-06-203-13/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | innobase/fsp/fsp0fsp.c: Declare "first" in the scope where it is used, and add dummy return statement after ut_error to silence compiler warning. innobase/include/dyn0dyn.h: Add const qualifier to dyn_push_string(). innobase/include/dyn0dyn.ic: dyn_push_string(): Add const qualifier to str; remove intermediate assignment. innobase/include/mtr0log.h: mlog_write_string(), mlog_catenate_string(): Add const to str innobase/log/log0log.c: Eliminate variables new_oldest and do_preflush in order to avoid warnings about possibly uninitialized variables. (new_oldest will now be declared in the scope of usage, and do_preflush == (advance != 0).) innobase/log/log0recv.c: Remove warnings about uninitialized variables. Add UNIV_UNLIKELY() hints. innobase/mtr/mtr0log.c: mlog_write_string(), mlog_catenate_string(): Add const to str mlog_write_string(): Add UNIV_UNLIKELY hints to assertion-like tests innobase/row/row0sel.c: Remove warning about possibly uninitialized variable. (Always initialize *out_rec.)
| * | InnoDB: remove flag lock_print_waits from non-debug builds.unknown2005-06-171-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | innobase/include/lock0lock.h: Remove flag lock_print_waits from non-debug builds. innobase/lock/lock0lock.c: Remove flag lock_print_waits from non-debug builds. Add InnoDB lock compatibility matrix for easy reference. innobase/trx/trx0roll.c: Remove flag lock_print_waits from non-debug builds.
| * | InnoDB: After review fixesunknown2005-06-161-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | innobase/include/page0page.ic: page_rec_set_next(): s/ut_a()/ut_ad()/ page_rec_get_prev(): Eliminate a buf_frame_align() call innobase/lock/lock0lock.c: lock_rec_get_first(): Determine heap_no before the loop
| * | InnoDB: Fix ut0dbg compilation errors on NetWareunknown2005-06-161-6/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | innobase/dict/dict0boot.c: Remove dummy code to work around bug in the pgcc compiler. innobase/include/ut0dbg.h: UT_DBG_PANIC: Avoid exit(), as lexyy.c re-#defines exit(). Move the code to the function ut_dbg_panic() instead. innobase/ut/ut0dbg.c: [__NETWARE__] Add function ut_dbg_panic()
| * | InnoDB: Remove unreachable debug code from non-debug builds.unknown2005-06-153-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | innobase/buf/buf0buf.c: Remove buf_dbg_counter unless #ifdef UNIV_DEBUG Remove buf_debug_prints unless #ifdef UNIV_DEBUG innobase/buf/buf0flu.c: Remove buf_debug_prints unless #ifdef UNIV_DEBUG innobase/buf/buf0lru.c: Remove buf_debug_prints unless #ifdef UNIV_DEBUG innobase/buf/buf0rea.c: Remove buf_debug_prints unless #ifdef UNIV_DEBUG innobase/include/buf0buf.h: Remove buf_debug_prints unless #ifdef UNIV_DEBUG innobase/include/buf0buf.ic: Remove buf_dbg_counter unless #ifdef UNIV_DEBUG innobase/include/log0log.h: Remove log_do_write and log_debug_writes unless #ifdef UNIV_DEBUG innobase/log/log0log.c: Remove log_do_write and log_debug_writes unless #ifdef UNIV_DEBUG innobase/log/log0recv.c: Remove log_debug_writes unless #ifdef UNIV_DEBUG innobase/srv/srv0start.c: Remove log_do_write and buf_debug_prints unless #ifdef UNIV_DEBUG innobase/sync/sync0sync.c: Remove buf_debug_prints unless #ifdef UNIV_DEBUG
| * | InnoDB: Remove unreferenced debug functions from non-debug builds.unknown2005-06-133-7/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | innobase/buf/buf0buf.c: Remove buf_print() and buf_validate() unless #ifdef UNIV_DEBUG innobase/buf/buf0lru.c: Remove buf_LRU_print() and buf_LRU_validate() unless #ifdef UNIV_DEBUG innobase/include/buf0buf.h: Remove buf_print() and buf_validate() unless #ifdef UNIV_DEBUG innobase/include/buf0lru.h: Remove buf_LRU_print() and buf_LRU_validate() unless #ifdef UNIV_DEBUG innobase/include/rem0rec.h: rec_offs_comp(): Correct the comment about return value.
| * | InnoDB: Remove compiler warningunknown2005-06-101-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | innobase/fil/fil0fil.c: Move the declaration of fil_node_t to os0file.h. Remove type casting from address-of operation (which would break strict aliasing rules) innobase/include/os0file.h: Declare fil_node_t as an opaque structure. Replace void* message1 with fil_node_t* message1. innobase/os/os0file.c: Replace void* message1 with fil_node_t* message1.
| * | InnoDB: minor clean-up in os0fileunknown2005-06-101-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | innobase/include/os0file.h: Remove unused function os_aio_all_slots_free() from non-debug builds. innobase/os/os0file.c: Remove unused function os_aio_all_slots_free() from non-debug builds. Add static qualifiers to module-global variables.
| * | innobase/include/univ.i: Added some comments.unknown2005-06-101-5/+15
| | | | | | | | | | | | | | | | | | | | | innobase/include/univ.i: Replace PRULINT with ULINTPF in a comment. Document the macros based on __builtin_expect() and __builtin_prefetch().
| * | InnoDB: Improved the handling of assertions.unknown2005-06-101-59/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | innobase/include/ut0dbg.h: Write help macros to use in ut_a() and ut_error. Moved some ut_a() and ut_error code to non-inlined functions. Fixed ut_error on NetWare. Reintroduced ut_dbg_zero on non-GCC platforms. innobase/ut/ut0dbg.c: Reintroduced ut_dbg_zero on non-GCC platforms. Removed ut_dbg_null_ptr on NetWare. Add helpers ut_dbg_assertion_failed() and ut_dbg_stop_thread().
| * | InnoDB: Do not distinguish explicitly requested table locks.unknown2005-06-083-32/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since UNLOCK TABLES will commit the transaction (and thus release all InnoDB locks held by it), it is unnecessary to release the user-requested table locks separately. innobase/include/lock0lock.h: Remove references to LOCK_TABLE_EXP and LOCK_TABLE_TRANSACTIONAL. Remove lock_release_tables_off_kernel(). innobase/include/row0mysql.h: Remove row_unlock_tables_for_mysql(). innobase/include/trx0trx.h: Remove n_lock_table_exp and n_lock_table_transactional. innobase/lock/lock0lock.c: Remove references to LOCK_TABLE_EXP and LOCK_TABLE_TRANSACTIONAL. Remove lock_release_tables_off_kernel(). Remove references to trx->n_lock_table_exp and trx->n_lock_table_transactional. innobase/row/row0mysql.c: Remove row_unlock_tables_for_mysql(). Remove references to LOCK_TABLE_TRANSACTIONAL and LOCK_TABLE_EXP. innobase/trx/trx0trx.c: Remove n_lock_table_exp and n_lock_table_transactional. sql/ha_innodb.cc: Remove references to LOCK_TABLE_EXP and LOCK_TABLE_TRANSACTIONAL and row_unlock_tables_for_mysql().
| * | Remove unused function rec_offs_nth_null().unknown2005-04-272-30/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | rec_offs_nth_extern(): Return zero/nonzero instead of FALSE/TRUE. innobase/row/row0upd.c: Normalize the return value of rec_offs_nth_extern() to FALSE/TRUE. Avoid a repeated call to upd_ext_vec_contains().
| * | Fix bugs found in previous optimizations.unknown2005-04-273-14/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make rec_get_deleted_flag() return zero/nonzero instead of FALSE/TRUE. innobase/btr/btr0btr.c: btr_page_get_sure_split_rec(): Fix bug caused by optimization (dereferencing null pointer in page_rec_is_supremum()) btr_page_insert_fits(): Correct a debug assertion. innobase/btr/btr0cur.c: Add debug assertions about page_rec_is_comp(). Add UNIV_LIKELY and UNIV_UNLIKELY hints. Note that rec_get_deleted_flag() returns zero/nonzero ulint instead of FALSE/TRUE ibool. innobase/include/page0page.ic: Move debug assertion to proper place. innobase/include/rem0rec.h: rec_get_deleted_flag(), rec_set_deleted_flag(): Make the flag zero/nonzero in order to avoid FALSE/TRUE normalization in every rec_get_deleted_flag() call. innobase/include/rem0rec.ic: rec_get_deleted_flag(), rec_set_deleted_flag(): Make the flag zero/nonzero in order to avoid FALSE/TRUE normalization in every rec_get_deleted_flag() call. innobase/rem/rem0rec.c: rec_init_offsets(): Fix bugs introduced in optimization. innobase/row/row0sel.c: Make debug assertion stricter. innobase/row/row0vers.c: Note that rec_get_deleted_flag() returns zero/nonzero ulint instead of FALSE/TRUE ibool.
| * | InnoDB: Performance optimizations based on OProfile analysisunknown2005-04-2512-188/+259
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | innobase/btr/btr0btr.c: Eliminate some buf_frame_align() calls. Make use of the page_rec_is_infimum(), page_rec_is_supremum() and page_rec_is_user_rec() functions. Replace some index->table->comp with page_is_comp(). Eliminate some variables to reduce register spilling on x86. Note that page_is_comp() may return nonzero instead of TRUE. Note that rec_offs_comp() may return nonzero instead of TRUE. innobase/btr/btr0cur.c: Eliminate some buf_frame_align() calls. Replace some index->table->comp with page_is_comp() or rec_offs_comp(). Eliminate some variables to reduce register spilling on x86. Note that page_is_comp() may return nonzero instead of TRUE. Note that rec_offs_comp() may return nonzero instead of TRUE. Remove an extra mem_heap_create() call from btr_cur_update_in_place(). Add "page" parameter to lock_rec_store_on_page_infimum(). Add some UNIV_LIKELY() and UNIV_UNLIKELY() hints. btr_estimate_number_of_different_key_vals(): Rename the offsets_* variables to be more descriptive and eliminate one rec_get_offsets() and one page_rec_get_next() call in the loop. innobase/btr/btr0pcur.c: Eliminate some buf_frame_align() calls. Make use of the page_rec_is_infimum(), page_rec_is_supremum() and page_rec_is_user_rec() functions. Replace some index->table->comp with page_is_comp(). Eliminate some variables to reduce register spilling on x86. Note that page_is_comp() may return nonzero instead of TRUE. Make some ut_a() assertions ut_ad() ones to improve performance. Add some UNIV_LIKELY() and UNIV_UNLIKELY() hints. innobase/btr/btr0sea.c: Make use of page_rec_is_infimum() and page_rec_is_supremum(). Eliminate some buf_frame_align() calls. Add some UNIV_UNLIKELY and UNIV_LIKELY hints. Turn some assertions into debug assertions. innobase/dict/dict0crea.c: Replace FALSE/TRUE ibool comp with zero/nonzero ulint comp innobase/ibuf/ibuf0ibuf.c: Make use of page_rec_is_infimum() and page_rec_is_supremum(). Add some UNIV_UNLIKELY and UNIV_LIKELY hints. ibuf_get_merge_page_nos(): Rename parameter "first_rec" to "rec" and eliminate local variable "rec". innobase/include/btr0btr.h: Replace FALSE/TRUE ibool comp with zero/nonzero ulint comp innobase/include/buf0buf.h: Rename buf_frame_get_modify_clock() to buf_block_get_modify_clock(). innobase/include/buf0buf.ic: Rename buf_frame_get_modify_clock() to buf_block_get_modify_clock() and remove the buf_block_align() call. innobase/include/lock0lock.h: lock_rec_store_on_page_infimum(): Add parameter "page" innobase/include/mach0data.h: Add mach_encode_2() and mach_decode_2(). innobase/include/mach0data.ic: Add mach_encode_2() and mach_decode_2(). innobase/include/page0cur.h: Add const qualifier to page_cur_is_before_first() and page_cur_is_after_last(). innobase/include/page0cur.ic: Make use of page_rec_is_infimum() and page_rec_is_supremum(). innobase/include/page0page.h: Remove page_rec_is_first_user_rec() and page_rec_is_last_user_rec(). Add page_rec_is_infimum() and page_rec_is_supremum(). Replace FALSE/TRUE ibool comp with zero/nonzero ulint comp. innobase/include/page0page.ic: Remove page_rec_is_first_user_rec() and page_rec_is_last_user_rec(). Add page_rec_is_infimum() and page_rec_is_supremum(). Replace FALSE/TRUE ibool comp with zero/nonzero ulint comp. Add UNIV_UNLIKELY, UNIV_LIKELY and UNIV_EXPECT hints. Reduce the number of buf_frame_align() calls. innobase/include/rem0rec.ic: rec_offs_comp(): Return zero or nonzero instead of FALSE or TRUE. innobase/include/row0mysql.h: Replace FALSE/TRUE ibool comp with zero/nonzero ulint comp. innobase/lock/lock0lock.c: Replace FALSE/TRUE ibool comp with zero/nonzero ulint comp. Remove parameter "comp" from lock_rec_get_next(), lock_rec_has_expl() and lock_rec_other_has_expl_req(). Add parameter "page" to lock_rec_store_on_page_infimum(). Add UNIV_UNLIKELY hints. Reduce the number of buf_frame_align() calls. Make use of page_rec_is_infimum(), page_rec_is_supremum() and page_rec_is_user_rec(). Move the "comp" flag outside some loops. innobase/mtr/mtr0log.c: Replace index->table->comp with page_rec_is_comp(). innobase/page/page0cur.c: Replace index->table->comp with page_is_comp() or page_rec_is_comp(). Eliminate some buf_frame_align() calls. Add some debug assertions. innobase/page/page0page.c: Optimize page_dir_find_owner_slot(). Compare the record offset 16 bits at a time, because that seems to be the only way to avoid register spilling on x86. Replace FALSE/TRUE ibool comp with zero/nonzero ulint comp. Remove parameter "page" of page_delete_rec_list_write_log(). Make use of page_rec_is_infimum(). innobase/rem/rem0cmp.c: Replace FALSE/TRUE ibool comp with zero/nonzero ulint comp. innobase/row/row0ins.c: Make use of page_rec_is_infimum() and page_rec_is_supremum(). Reduce the amount of buf_frame_align() calls. row_ins_index_entry_low(): Disable assertion about column count unless #ifdef UNIV_DEBUG. innobase/row/row0mysql.c: Replace FALSE/TRUE ibool comp with zero/nonzero ulint comp. innobase/row/row0row.c: Eliminate some buf_frame_align() calls. Make use of page_rec_is_infimum(). innobase/row/row0sel.c: Make use of page_rec_is_supremum() and page_rec_is_infimum(). Turn some assertions into debug assertions. Add UNIV_LIKELY and UNIV_UNLIKELY hints. row_search_for_mysql(): Eliminate local variables "moved", "cons_read_requires_clust_rec", "was_lock_wait", "shortcut", "success" and "comp". Replace some of them with goto's. Disable variable "cnt" unless #ifdef UNIV_SEARCH_DEBUG. innobase/row/row0vers.c: Replace FALSE/TRUE ibool comp with zero/nonzero ulint comp. Replace index->table->comp with page_rec_is_comp(). Eliminate some buf_frame_align() calls.
| * | InnoDB: Optimize rec_get_offsets(), rec_copy_prefix_to_buf() andunknown2005-04-222-71/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | other rec_ functions based on OProfile measurements on GNU/Linux x86. innobase/include/rem0rec.h: Replace FALSE/TRUE ibool comp with zero/nonzero ulint comp. Remove rec_set_node_ptr_flag(). innobase/include/rem0rec.ic: Replace FALSE/TRUE ibool comp with zero/nonzero ulint comp. Remove rec_set_node_ptr_flag(). Add UNIV_LIKELY and UNIV_UNLIKELY hints. Correct a spelling error in comment. Simplify rec_get_deleted_flag(). innobase/rem/rem0rec.c: Add UNIV_LIKELY and UNIV_UNLIKELY hints. rec_init_offsets(), rec_get_offsets_func(): Optimize for x86. rec_set_field_extern_bits(): Move "comp" flag outside the loop. rec_copy_prefix_to_buf(): Add UNIV_PREFETCH hints.
| * | InnoDB: Some low-level optimizations made based on OProfile results.unknown2005-04-2211-48/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | innobase/dict/dict0mem.c: dict_mem_table_create(): Add a debug assertion. innobase/include/btr0btr.ic: btr_node_ptr_get_child_page_no(): Add a UNIV_UNLIKELY hint. Remove a buf_frame_align() call. innobase/include/btr0cur.ic: btr_cur_get_page(): Add a debug assertion. innobase/include/buf0buf.ic: buf_block_peek_if_too_old(): Replace if() with return(). buf_block_align(), buf_frame_align(): Add UNIV_UNLIKELY hints. innobase/include/data0type.ic: dtype_get_fixed_size(): Add UNIV_UNLIKELY hints. innobase/include/mem0mem.ic: Remove signedness warning in debug assertion. innobase/include/read0read.ic: read_view_sees_trx_id(): Eliminate a comparison inside loop. innobase/include/row0sel.ic: open_step(): Add UNIV_EXPECT hint. innobase/include/row0upd.ic: upd_field_set_field_no(): Add a UNIV_UNLIKELY hint. innobase/include/sync0rw.ic: Add UNIV_LIKELY and UNIV_UNLIKELY hints. rw_lock_x_lock_func_nowait(): Eliminate a function call. Replace ut_a() assertions with ut_ad(). innobase/include/trx0rseg.ic: Add UNIV_UNLIKELY hints. innobase/include/ut0rnd.ic: ut_fold_binary(): Eliminate a loop variable to avoid register spilling on x86.
| * | InnoDB: Make branch prediction assume that assertions do not fail.unknown2005-04-211-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | innobase/include/ut0dbg.h: Remove ut_dbg_zero. Use the UNIV_UNLIKELY() macro in assertions in order to assist branch prediction. innobase/ut/ut0dbg.c: Remove ut_dbg_zero.
| * | InnoDB: Speed up comparison functions by makingunknown2005-04-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | DATA_MYSQL_LATIN1_SWEDISH_CHARSET_COLL a constant. innobase/data/data0type.c: Remove data_mysql_latin1_swedish_charset_coll. innobase/include/data0type.h: Replace variable data_mysql_latin1_swedish_charset_coll with constant DATA_MYSQL_LATIN1_SWEDISH_CHARSET_COLL. innobase/rem/rem0cmp.c: Replace variable data_mysql_latin1_swedish_charset_coll with constant DATA_MYSQL_LATIN1_SWEDISH_CHARSET_COLL. sql/ha_innodb.cc: Eliminate variable data_mysql_latin1_swedish_charset_coll. Add an assertion about DATA_MYSQL_LATIN1_SWEDISH_CHARSET_COLL.
| * | InnoDB: Reduce memcpy() load in row_sel_pop_cached_row_for_mysql()unknown2005-04-211-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | by copying only a prefix of the row that covers the requested columns. innobase/include/row0mysql.h: row_prebuilt_struct: Add field mysql_prefix_len in order to reduce memcpy() time in row_sel_pop_cached_row_for_mysql(). innobase/row/row0sel.c: row_sel_pop_cached_row_for_mysql(): memcpy() only mysql_prefix_len bytes instead of mysql_row_len. sql/ha_innodb.cc: build_template(): Initialize prebuilt->mysql_prefix_len.
| * | InnoDB: Define some macros around GCC's __builtin_expect()unknown2005-04-211-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and __builtin_prefetch(). Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests. innobase/btr/btr0btr.c: Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests. innobase/btr/btr0cur.c: Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests. innobase/btr/btr0sea.c: Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests. innobase/include/univ.i: Define UNIV_EXPECT(), UNIV_LIKELY(), UNIV_UNLIKELY(), UNIV_LIKELY_NULL(), UNIV_PREFETCH_R() and UNIV_PREFETCH_RW(). innobase/lock/lock0lock.c: Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests. innobase/page/page0cur.c: Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests. innobase/page/page0page.c: Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests. innobase/rem/rem0rec.c: Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests. innobase/row/row0ins.c: Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests. innobase/row/row0mysql.c: Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests. innobase/row/row0purge.c: Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests. innobase/row/row0row.c: Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests. innobase/row/row0sel.c: Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests. innobase/row/row0undo.c: Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests. innobase/row/row0upd.c: Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests. innobase/trx/trx0rec.c: Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests.
| * | InnoDB: Make CHECK TABLE killable. (Bug #9730)unknown2005-04-202-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | innobase/btr/btr0btr.c: Enclose btr_print_size() and btr_print_tree() in #ifdef UNIV_BTR_PRINT Add trx_t* parameter to btr_validate_tree() and btr_validate_level(). btr_validate_level(): Call trx_is_interrupted() on each page. innobase/ibuf/ibuf0ibuf.c: Add trx_t* parameter to btr_validate_tree(). innobase/include/btr0btr.h: Enclose btr_print_size() and btr_print_tree() in #ifdef UNIV_BTR_PRINT Add trx_t* parameter to btr_validate_tree(). innobase/include/trx0trx.h: Declare trx_is_interrupted(). innobase/row/row0mysql.c: row_scan_and_check_index(): Check trx_is_interrupted() every 1,000 scanned rows. row_check_table_for_mysql(): Check trx_is_interrupted() for each index after btr_validate_tree(). sql/ha_innodb.cc: Define trx_is_interrupted().
| * | InnoDB: Replace the redo log entry typeunknown2005-04-182-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MLOG_COMP_REC_SEC_DELETE_MARK with MLOG_REC_SEC_DELETE_MARK in order to reduce the space occupied by the redo log. innobase/btr/btr0cur.c: Replace MLOG_COMP_REC_SEC_DELETE_MARK with MLOG_REC_SEC_DELETE_MARK and eliminate redundant dict_index_t* parameters. innobase/ibuf/ibuf0ibuf.c: Remove unnecessary parameter to btr_cur_del_unmark_for_ibuf() innobase/include/btr0cur.h: Remove unnecessary dict_index_t* parameters innobase/include/mtr0mtr.h: Note that MLOG_COMP_REC_SEC_DELETE_MARK is obsolete innobase/log/log0recv.c: recv_parse_or_apply_log_rec_body(): Ignore the index information in MLOG_COMP_REC_SEC_DELETE_MARK. Add assertions about page_is_comp().
* | | After merge fixunknown2005-05-061-0/+3
| | | | | | | | | | | | | | | innobase/include/srv0srv.h: Restore accidentally deleted comment.
* | | Mergeunknown2005-05-062-5/+14
|\ \ \ | | |/ | |/|
| * | Merge marko@bk-internal.mysql.com:/home/bk/mysql-4.1unknown2005-05-062-3/+14
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | into hundin.mysql.fi:/home/marko/mysql-4.1 sql/ha_innodb.cc: Auto merged
| | * | InnoDB: Truncate SHOW INNODB STATUS output at the start of the listunknown2005-04-192-3/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of active transactions, if necessary and possible. (Bug #5436) innobase/include/lock0lock.h: Split lock_print_info() into lock_print_info_summary() and lock_print_info_all_transactions(). innobase/lock/lock0lock.c: Split lock_print_info() into lock_print_info_summary() and lock_print_info_all_transactions(). innobase/include/srv0srv.h: srv_printf_innodb_monitor(): Add output parameters trx_start and trx_end. innobase/srv/srv0srv.c: srv_printf_innodb_monitor(): Add output parameters trx_start and trx_end. sql/ha_innodb.cc: innodb_show_status(): Truncate oversized output at the beginning of the list of active transactions, if possible.
* | | | Merge hundin.mysql.fi:/home/heikki/mysql-4.1unknown2005-04-271-0/+7
|\ \ \ \ | |/ / / | | | / | |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | into hundin.mysql.fi:/home/heikki/mysql-5.0 innobase/dict/dict0dict.c: Auto merged innobase/fil/fil0fil.c: Auto merged innobase/include/dict0dict.h: Auto merged
| * | dict0dict.c, dict0dict.h, fil0fil.c:unknown2005-04-271-0/+7
| |/ | | | | | | | | | | | | | | | | | | | | | | Fix a problem in crash recovery of .ibd files on Windows if the user used lower_case_table_names=0 or 2; the directory scan in crash recovery forgot to put all paths to lower case, so that the tablespace name would be consistent with the internal data dictionary of InnoDB; remember that InnoDB puts internally all database names and table names to lower case on Windows, regardless of the value of lower_case_table_names innobase/fil/fil0fil.c: Fix a problem in crash recovery of .ibd files on Windows if the user used lower_case_table_names=0 or 2; the directory scan in crash recovery forgot to put all paths to lower case, so that the tablespace name would be consistent with the internal data dictionary of InnoDB; remember that InnoDB puts internally all database names and table names to lower case on Windows, regardless of the value of lower_case_table_names innobase/include/dict0dict.h: Fix a problem in crash recovery of .ibd files on Windows if the user used lower_case_table_names=0 or 2; the directory scan in crash recovery forgot to put all paths to lower case, so that the tablespace name would be consistent with the internal data dictionary of InnoDB; remember that InnoDB puts internally all database names and table names to lower case on Windows, regardless of the value of lower_case_table_names innobase/dict/dict0dict.c: Fix a problem in crash recovery of .ibd files on Windows if the user used lower_case_table_names=0 or 2; the directory scan in crash recovery forgot to put all paths to lower case, so that the tablespace name would be consistent with the internal data dictionary of InnoDB; remember that InnoDB puts internally all database names and table names to lower case on Windows, regardless of the value of lower_case_table_names
* | Adding --innodb_fast_shutdown=2 which shuts down InnoDB faster than the ↵unknown2005-04-151-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | default "1": most InnoDB threads are not terminated properly and the buffer pool is not flushed to disk. Still no committed transaction is lost as we flush the logs to disk. InnoDB does crash recovery at startup after this shutdown. Using this shutdown in testsuite (mysql-test-run --mysqld=--innodb_fast_shutdown=2) saved 3 minutes (13% of total time). innobase/include/srv0srv.h: srv_fast_shutdown now int to allow 3 values, replacing the srv_fast_shutdown/srv_very_fast_shutdown combo innobase/log/log0log.c: srv_very_fast_shutdown -> (srv_fast_shutdown == 2) innobase/srv/srv0srv.c: srv_very_fast_shutdown -> (srv_fast_shutdown == 2) innobase/srv/srv0start.c: moving message to the InnoDB internal code (like "InnoDB: Starting shutdown" is) instead of ha_innodb.cc. That's to have ut_print_timestamp(). sql/ha_innodb.cc: As innodb_fast_shutdown is now settable, srv_fast_shutdown must be set at shutdown, not at startup. sql/ha_innodb.h: innobase_fast_shutdown now ulong to accept 3 values sql/mysqld.cc: Making the "very fast" InnoDB shutdown accessible to users, by passing --innodb-fast-shutdown=2 (disabled on Netware) sql/set_var.cc: innodb_fast_shutdown now settable on the fly (global variable). So that user can decide to do a normal/fast/fastest shutdown just before doing it.
* | Mergeunknown2005-04-132-2/+4
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | innobase/dict/dict0dict.c: Auto merged innobase/dict/dict0load.c: Auto merged innobase/include/dict0dict.h: Auto merged innobase/row/row0mysql.c: Auto merged myisam/mi_check.c: Auto merged myisam/mi_dynrec.c: Auto merged myisam/myisamdef.h: Auto merged mysql-test/r/kill.result: Auto merged mysql-test/t/kill.test: Auto merged ndb/src/kernel/blocks/dbdih/DbdihMain.cpp: Auto merged ndb/src/kernel/main.cpp: Auto merged ndb/src/mgmsrv/MgmtSrvr.hpp: Auto merged sql/ha_innodb.cc: Auto merged sql/mysqld.cc: Auto merged
| * InnoDB: Ignore character set mismatch in ALTER TABLE and RENAME TABLEunknown2005-04-122-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | if foreign_key_checks=0. (Bug #9802) innobase/dict/dict0dict.c: dict_foreign_add_to_cache(): Add flag check_types. If the flag is FALSE, ignore character set mismatch. innobase/dict/dict0load.c: dict_load_foreign(), dict_load_foreigns(): Add flag check_types. If the flag is FALSE, differences in character sets will be ignored. innobase/include/dict0dict.h: dict_foreign_add_to_cache(): Add flag check_types. If the flag is FALSE, differences in character sets will be ignored. innobase/include/dict0load.h: dict_load_foreigns(): Add flag check_types. If the flag is FALSE, differences in character sets will be ignored. innobase/row/row0mysql.c: row_table_add_foreign_constraints(), row_rename_table_for_mysql(): Pass trx->check_foreigns to dict_load_foreigns() sql/ha_innodb.cc: ha_innobase::rename_table(): Clear trx->check_foreign if necessary.
* | manually mergedunknown2005-04-063-0/+16
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Gluh's SESSION/GLOBAL for @variables fix in sql_yacc.yy and Bar's well_formed_len() changes in ndb code did not make it and should be re-applied manually BitKeeper/etc/logging_ok: auto-union include/m_ctype.h: Auto merged innobase/btr/btr0pcur.c: Auto merged innobase/include/btr0pcur.h: Auto merged innobase/include/os0file.h: Auto merged innobase/os/os0file.c: Auto merged innobase/row/row0sel.c: Auto merged innobase/srv/srv0start.c: Auto merged mysql-test/r/user_var.result: Auto merged mysql-test/t/user_var.test: Auto merged ndb/include/ndbapi/NdbTransaction.hpp: Auto merged ndb/src/ndbapi/NdbTransaction.cpp: Auto merged ndb/tools/desc.cpp: Auto merged strings/ctype-big5.c: Auto merged strings/ctype-mb.c: Auto merged strings/ctype-simple.c: Auto merged strings/ctype-sjis.c: Auto merged strings/ctype-ucs2.c: Auto merged strings/ctype-ujis.c: Auto merged BitKeeper/deleted/.del-NdbResultSet.cpp~84d192cf3f42600d: ul ndb/include/ndbapi/NdbScanOperation.hpp: ul ndb/src/ndbapi/NdbIndexOperation.cpp: ul ndb/src/ndbapi/NdbOperationDefine.cpp: ul ndb/src/ndbapi/NdbOperationSearch.cpp: ul ndb/src/ndbapi/NdbScanOperation.cpp: ul sql/field.cc: manually merged, because bk messed it up sql/sql_yacc.yy: merged
| * InnoDB: Avoid test suite failures caused by a locking conflictunknown2005-04-061-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | between two server instances at server shutdown/startup. This conflict on advisory locks appears to be the result of a bug in the operating system; these locks should be released when the files are closed, but somehow that does not always happen immediately in Linux. (Bug #9381) innobase/include/os0file.h: Add OS_FILE_OPEN_RETRY for os_file_create()ing ibdata1 innobase/os/os0file.c: os_file_lock(): Do not close the file on failure, but let the callers do that. os_file_create(): If create_mode==OS_FILE_OPEN_RETRY and os_file_lock() fails, keep retrying for 100 seconds. innobase/srv/srv0start.c: open_or_create_data_files(): Open the first data file with OS_FILE_OPEN_RETRY, to resolve a conflict with a shutting-down instance of the MySQL server.
| * row0sel.c, btr0pcur.c, btr0pcur.ic, btr0pcur.h:unknown2005-04-062-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Add diagnostic code to track assertion failure in ut_a(cursor->old_stored == BTR_PCUR_OLD_STORED); the failure happened in OPTIMIZE TABLE, and in 4.0.24 in some other context innobase/include/btr0pcur.h: Add diagnostic code to track assertion failure in ut_a(cursor->old_stored == BTR_PCUR_OLD_STORED); the failure happened in OPTIMIZE TABLE, and in 4.0.24 in some other context innobase/include/btr0pcur.ic: Add diagnostic code to track assertion failure in ut_a(cursor->old_stored == BTR_PCUR_OLD_STORED); the failure happened in OPTIMIZE TABLE, and in 4.0.24 in some other context innobase/btr/btr0pcur.c: Add diagnostic code to track assertion failure in ut_a(cursor->old_stored == BTR_PCUR_OLD_STORED); the failure happened in OPTIMIZE TABLE, and in 4.0.24 in some other context innobase/row/row0sel.c: Add diagnostic code to track assertion failure in ut_a(cursor->old_stored == BTR_PCUR_OLD_STORED); the failure happened in OPTIMIZE TABLE, and in 4.0.24 in some other context
* | Merge bk-internal:/home/bk/mysql-5.0unknown2005-03-221-0/+6
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into serg.mylan:/usr/home/serg/Abk/mysql-5.0 innobase/include/trx0trx.h: Auto merged sql/ha_innodb.cc: Auto merged sql/handler.cc: Auto merged sql/item.cc: Auto merged sql/log_event.cc: Auto merged sql/mysql_priv.h: Auto merged
| * \ Merge hundin.mysql.fi:/home/heikki/mysql-4.1unknown2005-03-211-0/+6
| |\ \ | | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into hundin.mysql.fi:/home/heikki/mysql-5.0 BitKeeper/etc/logging_ok: auto-union include/config-netware.h: Auto merged innobase/include/trx0trx.h: Auto merged innobase/trx/trx0trx.c: Auto merged
| | * Mergeunknown2005-03-211-0/+6
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BitKeeper/etc/logging_ok: auto-union innobase/include/trx0trx.h: Auto merged innobase/trx/trx0trx.c: SCCS merged
| | | * trx0trx.c, trx0trx.h:unknown2005-03-211-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If MySQL wrote to its binlog, but for some reason trx->update_undo and trx->insert_undo were NULL in InnoDB, then trx->commit_lsn was garbage, and InnoDB could assert in the log flush of trx_commit_complete_for_mysql() (Bug #9277) innobase/include/trx0trx.h: If MySQL wrote to its binlog, but for some reason trx->update_undo and trx->insert_undo were NULL in InnoDB, then trx->commit_lsn was garbage, and InnoDB could assert in the log flush of trx_commit_complete_for_mysql() (Bug #9277) innobase/trx/trx0trx.c: If MySQL wrote to its binlog, but for some reason trx->update_undo and trx->insert_undo were NULL in InnoDB, then trx->commit_lsn was garbage, and InnoDB could assert in the log flush of trx_commit_complete_for_mysql() (Bug #9277)
* | | | Merge bk-internal:/home/bk/mysql-5.0unknown2005-03-181-2/+3
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into serg.mylan:/usr/home/serg/Abk/mysql-5.0 libmysql/libmysql.c: Auto merged sql/log_event.cc: Auto merged sql/sql_parse.cc: Auto merged
| * | | mergedunknown2005-03-161-2/+3
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sql/ha_innodb.cc: Auto merged sql/mysql_priv.h: Auto merged sql/sql_parse.cc: Auto merged