- 01 Nov, 2007 3 commits
-
-
marko authored
redefined so that the dynamic plugin can replace the builtin InnoDB in MySQL 5.1. ha_innodb.cc, handler0alter.cc: #include "univ.i" before any other InnoDB header files or before defining any symbols innodb_redefine.h: New file, to contain a mapping of symbols. The idea is that this file will be replaced in the build process; because this is a large file that can be generated automatically, it does not make sense to keep it under version control. univ.i: #include "innodb_redefine.h" and #define ha_innobase ha_innodb Makefile.am (ha_innodb_la_CXXFLAGS): Remove -Dha_innobase=ha_innodb NOTE: there are still some issues in the source code. One known issue is the #undef mutex_free in sync0sync.h, which will cause the plugin to call the function mutex_free in the builtin InnoDB. The preprocessor symbols defined in innodb_redefine.h must not be undefined or redefined anywhere in the code.
-
marko authored
plugin "InnoDB", not "InnoDBzip". We can disable the builtin InnoDB by mysqld --skip-innodb. If the builtin InnoDB is not disabled, installing the InnoDB plugin by the same name will not work. innodb_plugin_init(): Ignore differences in the PLUGIN_VAR_READONLY flag.
-
marko authored
ha_innobase::write_row(): The printf format %p expects const void*. STRUCT_FLD: Do not use the GCC extension when __STRICT_ANSI__ is defined. row_merge_read_clustered_index(): Compound initializers must not contain variables. Assign to struct fields instead.
-
- 31 Oct, 2007 11 commits
-
-
marko authored
-
marko authored
initialized, although Valgrind believes that some bits in the 7th or 8th bytes from the end are uninitialized. (They might be, but the decompressor should not care about those bits after encountering the end-of-stream marker in the compressed bit stream.)
-
marko authored
-
marko authored
btr_cur_optimistic_insert(): On compressed tablespaces, check that both the compressed and the uncompressed page are completely initialized in the beginning of the function. page_zip_compress(): After successful compression, check that the compressed page is completely initialized.
-
marko authored
page_zip_write_rec(), page_zip_write_blob_ptr(), page_zip_write_node_ptr(), page_zip_write_trx_id_and_roll_ptr(), page_zip_clear_rec(), page_zip_rec_set_deleted(), page_zip_rec_set_owned(), page_zip_dir_insert(), page_zip_dir_delete(), page_zip_dir_add_slot(), page_zip_reorganize(), page_zip_copy(), page_zip_get_trailer_len(), page_zip_write_header(): Assert that the complete contents of the compressed page is defined.
-
marko authored
page_zip_compress(): Assert that the contents of the uncompressed page is entirely initialized. page_zip_decompress(): Assert that the contents of the compressed page is entirely initialized. Assert that the uncompressed page is entirely writeable. Flag the uncompressed page uninitialized in the beginning.
-
marko authored
-
marko authored
Use UNIV_MEM_ASSERT_RW() instead of UNIV_MEM_VALID(). The latter flags memory defined; the former checks that it is defined.
-
marko authored
instrumentation.
-
marko authored
Remove the Valgrind check about it.
-
marko authored
buf_buddy_relocate(): Allow the source block to contain uninitialized data. buf0buddy.c: Replace the remaining VALGRIND_CHECK_ macros with the wrappers defined in univ.i.
-
- 30 Oct, 2007 3 commits
-
-
marko authored
buf_LRU_free_block(): Check that the block descriptor contains valid data. buf_buddy_relocate(): Check that the source block contains valid data. buf_page_get_gen(): Do not dereference bpage after calling buf_relocate(). This avoids a bogus Valgrind warning; the memory itself was valid. buf_page_hash_get(): Check that the returned block descriptor contains valid data.
-
marko authored
trx_rollback_or_clean_all_recovered().
-
marko authored
-
- 29 Oct, 2007 4 commits
-
-
marko authored
recovered transactions from new ones. Until r1594, they were distinguished by trx->sess == NULL. trx_t: Add the bitfield is_recovered. trx_lists_init_at_db_start(): Set trx->is_recovered. trx_create(): Initialize trx->is_recovered = 0. trx_print(): Display information about trx->is_recovered. trx_rollback_or_clean_all_without_sess(): Skip new transactions. Protect all accesses of trx_sys->trx_list with kernel_mutex. trx_roll_crash_recv_trx, trx_roll_max_undo_no, trx_roll_progress_printed_pct: Made these variables static.
-
marko authored
trx_commit_for_mysql().
-
marko authored
-
vasil authored
Add innodb_locks.lock_data column and some relevant tests. For record locks this column represents the ordering fields of the locked row in a human readable, SQL-valid, format. Approved by: Marko
-
- 26 Oct, 2007 5 commits
-
-
marko authored
on mispredicted branches: opcontrol --event=BR_CND_MISSP_EXEC:45000 UT_SORT_FUNCTION_BODY(): Copy the array with memcpy(3). cmp_dtuple_rec_with_match(), cmp_rec_rec_with_match(), cmp_debug_dtuple_rec_with_match(): Add UNIV_UNLIKELY hints around tests for REC_INFO_MIN_REC_FLAG.
-
marko authored
to the time in which modern disks can serve a random disk read.
-
marko authored
-
marko authored
-
marko authored
wait_until_unfixed.
-
- 25 Oct, 2007 7 commits
-
-
marko authored
-
marko authored
-
vasil authored
Change mach_read_int_type() to return an integer type (ullint) instead of array of bytes that later needs to be converted to an appropriate integer type. Approved by: Sunny
-
vasil authored
Make lock_get_type_str() to also indicate if it is a gap lock. Suggested by: Heikki Approved by: Marko
-
marko authored
-
marko authored
log_block_calc_checksum(), log_block_get_checksum(): Add const qualifiers. log_block_calc_checksum(): Split a long expression to more readable chunks. Some compilers might optimize this better.
-
marko authored
-
- 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 3 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 (;;).
-