summaryrefslogtreecommitdiff
path: root/innobase
Commit message (Collapse)AuthorAgeFilesLines
* InnoDB: Make the srv_thread_concurrency checks more consistent.unknown2005-07-062-14/+4
| | | | | | | | | | | | | 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
* InnoDB: Fix compile-pentium-debug-max compilation problem.unknown2005-07-052-9/+12
| | | | | | | innobase/btr/btr0cur.c: Move #ifdef outside ut_ad() argument. innobase/page/page0cur.c: Move #ifdef outside ut_ad() argument.
* Merge marko@bk-internal.mysql.com:/home/bk/mysql-5.0unknown2005-07-044-86/+133
|\ | | | | | | | | | | | | | | into hundin.mysql.fi:/home/marko/mysql-5.0-current sql/ha_innodb.cc: Auto merged
| * InnoDB: Fix a bug in BLOB handling; optimize null flag handling.unknown2005-06-301-38/+67
| | | | | | | | | | | | | | | | | | | | | | innobase/rem/rem0rec.c: rec_set_nth_field_extern_bit_new(): Fix a bug (read the "extern" flag from the correct position). rec_set_nth_field_extern_bit_new(), rec_convert_dtuple_to_rec_new(), rec_copy_prefix_to_buf(): Eliminate variables, reduce branching, optimize the handling of the null flags.
| * InnoDB: Optimize page_cur_search_with_match().unknown2005-06-303-48/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | row0sel.c:unknown2005-07-021-3/+11
| | | | | | | | | | | | | | | | Optimize speed: no need to keep track of set new rec locks in a consistent read innobase/row/row0sel.c: Optimize speed: no need to keep track of set new rec locks in a consistent read
* | trx0trx.h, trx0trx.ic, row0mysql.c:unknown2005-07-013-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | 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-017-68/+287
|/ | | | | | | | | | | | | | | | | | | | | | 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-283-40/+40
|\ | | | | | | | | | | | | | | | | | | | | | | 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: After review fixesunknown2005-06-271-3/+10
| | | | | | | | | | innobase/os/os0file.c: os_file_set_size(): After review fixes (prevent overflows)
| * InnoDB: Optimize the extension of files. This will greatly speedunknown2005-06-273-43/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Many files:unknown2005-06-278-19/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove compiler warnings on Windows - Bug #11580 innobase/btr/btr0btr.c: Remove compiler warnings on Windows - Bug #11580 innobase/btr/btr0cur.c: Remove compiler warnings on Windows - Bug #11580 innobase/fil/fil0fil.c: Remove compiler warnings on Windows - Bug #11580 innobase/ibuf/ibuf0ibuf.c: Remove compiler warnings on Windows - Bug #11580 innobase/log/log0recv.c: Remove compiler warnings on Windows - Bug #11580 innobase/os/os0file.c: Remove compiler warnings on Windows - Bug #11580 innobase/page/page0page.c: Remove compiler warnings on Windows - Bug #11580 innobase/row/row0upd.c: Remove compiler warnings on Windows - Bug #11580
* | Merge heikki@bk-internal.mysql.com:/home/bk/mysql-5.0unknown2005-06-271-0/+7
|\ \ | | | | | | | | | | | | | | | | | | into hundin.mysql.fi:/home/heikki/mysql-5.0
| * | WL#2286 - Compile MySQL w/YASSL supportunknown2005-06-231-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix for compilation failure with Forte Developer C++. configure.in: Export ARFLAGS, so innobase could pick it up. innobase/configure.in: Use ARFLAGS exported by parent configure script.
* | | Merge heikki@bk-internal.mysql.com:/home/bk/mysql-5.0unknown2005-06-228-29/+12
|\ \ \ | |/ / | | | | | | | | | | | | | | | into hundin.mysql.fi:/home/heikki/mysql-5.0
| * | InnoDB: Remove compilation warnings and errors on SGI IRIX.unknown2005-06-221-8/+4
| | | | | | | | | | | | | | | innobase/row/row0ins.c: Remove compilation warnings and errors on SGI IRIX.
| * | InnoDB: Replace for loops with memset() where possible.unknown2005-06-225-19/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | innobase/btr/btr0cur.c: Replace for loop with memset() innobase/buf/buf0buf.c: buf_print(): Remove for loop for initializing counts[]. Similar to index_ids[], the elements of this array will be initialized when they are allocated, i.e., counts[n_found++] = 1. innobase/os/os0file.c: Replace for loop with memset() innobase/page/page0page.c: Replace for loop with memset() innobase/trx/trx0rec.c: Replace for loop with memset()
| * | 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 heikki@bk-internal.mysql.com:/home/bk/mysql-5.0unknown2005-06-211-16/+12
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | into hundin.mysql.fi:/home/heikki/mysql-5.0 innobase/trx/trx0undo.c: Auto merged
| * | trx0undo.c:unknown2005-06-171-16/+12
| | | | | | | | | | | | | | | | | | | | | | | | Apply manually Jan's patch to remove 64-Windows compiler warnings that were reported by Georg Richter innobase/trx/trx0undo.c: Apply manually Jan's patch to remove 64-Windows compiler warnings that were reported by Georg Richter
* | | log0log.c:unknown2005-06-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | log_checkpoint_margin(): Correct a typo that was introduced when fixing gcc 4.0 warnings. innobase/log/log0log.c: log_checkpoint_margin(): Correct a typo that was introduced when fixing gcc 4.0 warnings.
* | | InnoDB: Remove some warnings reported by GCC 4.0.0.unknown2005-06-213-15/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | innobase/log/log0recv.c: Remove GCC 4.0.0 warnings about possibly uninitialized variables. innobase/row/row0umod.c: row_undo_mod_undo_also_prev_vers(): Remove unused parameter thr, always initialize *undo_no to remove GCC 4.0.0 warning innobase/trx/trx0undo.c: trx_undo_write_xid(): Remove warning about signedness mismatch, add const qualifier to parameter xid. sql/ha_innodb.cc: Add proper casts from ulonglong to ulong in fprintf statements.
* | | Merge hundin.mysql.fi:/home/marko/mysql-5.0unknown2005-06-2176-1675/+1812
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-208-47/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-173-2/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-162-12/+6
| | | | | | | | | | | | | | | | | | | | | | | | 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-163-16/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-1511-15/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Cleanup and after review fixes.unknown2005-06-144-30/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | innobase/btr/btr0btr.c: Code formatting: add blank line before "goto", do not indent labels innobase/btr/btr0cur.c: Code formatting: add blank line before "goto" innobase/btr/btr0pcur.c: btr_pcur_restore_position(): Replace assertion on cursor->pos_state with if condition, to provide better diagnostics. Restore ut_a() assertions on cursor->old_rec and cursor->old_n_fields. innobase/btr/btr0sea.c: btr_search_check_guess(): Declare prev_rec and next_rec closer to usage. Add blank lines before goto statements.
| * | InnoDB: Remove unreferenced debug functions from non-debug builds.unknown2005-06-135-8/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-103-12/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-102-8/+13
| | | | | | | | | | | | | | | | | | | | | | | | 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-102-66/+113
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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().
| * | btr0cur.c:unknown2005-06-101-5/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move the flag btr_cur_print_record_ops behind #ifdef UNIV_DEBUG. Remove unused variable btr_cur_rnd. innobase/btr/btr0cur.c: Move the flag btr_cur_print_record_ops behind #ifdef UNIV_DEBUG. Remove unused variable btr_cur_rnd.
| * | InnoDB: Do not distinguish explicitly requested table locks.unknown2005-06-086-184/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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().
| * | InnoDB ON UPDATE CASCADE fixes:unknown2005-05-132-20/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Enforce maximum char_length of UTF-8 data (Bug #10409). Pad UTF-8 variable-length CHAR columns with 0x20. Pad UCS2 CHAR columns with 0x0020 (Bug #10511). innobase/data/data0type.c: dtype_get_at_most_n_mbchars(): Avoid division by zero in assertion when this function is called with dtype->mbmaxlen==0 innobase/row/row0ins.c: row_ins_cascade_calc_update_vec(): Enforce maximum char_length of UTF-8 data (Bug #10409). Pad UTF-8 CHAR columns with 0x20. Pad UCS2 CHAR columns with 0x0020 (Bug #10511).
| * | Remove unused function rec_offs_nth_null().unknown2005-04-273-38/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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-278-36/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-2528-856/+929
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | rem0cmp.c:unknown2005-04-223-74/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add UNIV_LIKELY and UNIV_UNLIKELY hints. cmp_dtuple_rec_with_match(): Move condition outside loop. Reduce the number of comparisons per iteration. mtr0mtr.c: mtr_memo_slot_release(): Add a UNIV_LIKELY hint. Simplify the preprocessor magic. buf0buf.c: buf_page_optimistic_get_func(): Add UNIV_UNLIKELY hints. Introduce an exit_func label to remove duplicated error exits. innobase/buf/buf0buf.c: buf_page_optimistic_get_func(): Add UNIV_UNLIKELY hints. Introduce an exit_func label to remove duplicated error exits. innobase/mtr/mtr0mtr.c: mtr_memo_slot_release(): Add a UNIV_LIKELY hint. Simplify the preprocessor magic. innobase/rem/rem0cmp.c: Add UNIV_LIKELY and UNIV_UNLIKELY hints. cmp_dtuple_rec_with_match(): Move condition outside loop. Reduce the number of comparisons per iteration.
| * | InnoDB: Optimize rec_get_offsets(), rec_copy_prefix_to_buf() andunknown2005-04-223-124/+136
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | row0upd.c:unknown2005-04-223-6/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add UNIV_UNLIKELY hint. lock0lock.c: Correct the prototypes of lock_deadlock_recursive() and lock_deadlock_occurs(). data0data.c: dtuple_convert_big_rec(): Add UNIV_UNLIKELY hint. ha_innodb.cc: ha_innobase::write_row(): Correct the type of 'mode'. sql/ha_innodb.cc: ha_innobase::write_row(): Correct the type of 'mode'. innobase/data/data0data.c: dtuple_convert_big_rec(): Add UNIV_UNLIKELY hint. innobase/lock/lock0lock.c: Correct the prototypes of lock_deadlock_recursive() and lock_deadlock_occurs(). innobase/row/row0upd.c: Add UNIV_UNLIKELY hint.
| * | InnoDB: Some low-level optimizations made based on OProfile results.unknown2005-04-2212-48/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | dict0dict.c:unknown2005-04-221-10/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add some UNIV_LIKELY and UNIV_UNLIKELY hints. dict_tree_copy_rec_order_prefix(): Add a UNIV_PREFETCH_R hint on rec. innobase/dict/dict0dict.c: Add some UNIV_LIKELY and UNIV_UNLIKELY hints. dict_tree_copy_rec_order_prefix(): Add a UNIV_PREFETCH_R hint on rec.
| * | InnoDB: Make branch prediction assume that assertions do not fail.unknown2005-04-212-7/+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-213-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-212-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-2116-68/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.