- 13 Jun, 2007 4 commits
-
-
marko authored
Because row_drop_table_for_mysql_no_commit() checks with dict_load_table() if the table was successfully dropped, we cannot pass table->name to it. row_merge_drop_table(): Pass a copy of table->name to row_drop_table_for_mysql(). row_prebuilt_free(): Do not dereference prebuilt->table->name after a successful invocation of row_add_table_to_background_drop_list(). The table object may be freed at any time. Remove the debug message "Dropping table".
-
marko authored
occur in mysql-test-run, but mysql-test-run reports some warnings for some tests and incorrect results for innodb-index.test. innobase_start_trx_and_assign_read_view(): Use thd instead of current_thd. ha_innobase::add_index(): Use ha_thd() instead of current_thd. Commit the transaction at the end. row_merge_rename_index(): Really change the name of the index. This was broken in r1430.
-
marko authored
-
marko authored
with ut_a(err == DB_SUCCESS).
-
- 12 Jun, 2007 2 commits
-
-
marko authored
-
marko authored
during fast index creation. TEMP_TABLE_PREFIX: Move the definition from dict0dict.h to ut0ut.h. ut_print_namel(): Check if the name starts with TEMP_TABLE_PREFIX. innobase_rename_table(): Print all names with ut_print_name(). row_prebuilt_free(): Replace assert() with ut_a().
-
- 11 Jun, 2007 2 commits
-
-
marko authored
comparing uninitialized values. dict_mem_table_create(): Initialize table->version_number. ins_node_create(): Initialize node->table_version_number. row_create_prebuilt(): Initialize all fields. Initialize most fields by memset(), so that any fields that are added will be initialized automatically.
-
marko authored
temporary tablespaces in fast index creation. The tablespaces must reside in the same directory as the persistent tablespaces, so that they can be renamed without copying. Namespace collisions are avoided by replacing the ".ibd" file name suffix with ".ib1" or ".ib2". fil_make_ibd_name(): Treat names starting with TEMP_TABLE_PREFIX specially. Document the dependence on innobase_create_temporary_tablename().
-
- 08 Jun, 2007 4 commits
-
-
marko authored
row_merge_buf_add(): Correctly calculate buf->total_size. row_merge_buf_write(): Add an assertion about buf->total_size. row_merge_heap_create(), row_merge_read_rec(), row_merge_insert_index_tuples(): offsets needs to be 1 + REC_OFFS_HEADER_SIZE + n_fields. Previously, we allocated one element too little. row_merge_blocks(): Use goto instead of break in the AT_END argument of ROW_MERGE_WRITE_GET_NEXT.
-
marko authored
single os_mem_alloc_large() call. The function mem_alloc() that was used previously allocates unaligned memory. row_merge_blocks(): Replace block1, block2, block3 with a single array. Replace buf1, buf2, buf3 with buf[3]. Replace b1..b3 with b0..b2. Replace mrec1,2 with mrec0,1. Replace offsets1,2 with offsets0,1. row_merge(), row_merge_sort(): Replace block1, block2, block3 with a single array.
-
marko authored
The creation of the primary key does not work. We will have to flag externally stored columns and copy the externally stored part from the old table. row_build_index_for_mysql(): Rename to row_merge_build_indexes(). Move from row0mysql.c to row0merge.c. Remove private declarations from row0merge.h. Make many functions static in row0merge.c. cmp_rec_rec_simple(): A new comparison function. dict_index_get_min_size(): New function. OS_FILE_FROM_FD(fd): A macro for converting from int to os_file_t. rec_convert_dtuple_to_rec_comp(): Make the interface lower-level. rec_get_converted_size_comp(): Return also extra_size. UT_SORT_FUNCTION_BODY(): Remove reference to an obsolete test program. row_rec_to_index_entry_low(): New function. row0merge.c: Implement merge sort based on file streams instead of fixed-size blocks. Sort the small blocks as arrays of dfield_t*, because it is faster than invoking rec_get_offsets() for every comparison.
-
marko authored
-
- 07 Jun, 2007 5 commits
-
-
marko authored
-
marko authored
in fast index creation. innobase_create_index_def(), innobase_copy_index_def(): Copy to pre-allocated space. innobase_create_key_def(): Change the return type from merge_index_def_t** to merge_index_def_t*.
-
marko authored
innobase_create_index_def(): Add parameter new_primary. innobase_copy_index_def(): Simplify the documented algorithm, and try to implement it properly. innodb-index.test: Replace CHECKSUM TABLE with something more stable and useful. The test passes on an older BitKeeper snapshot: ChangeSet@1.2475.18.9, 2007-05-08 11:16:41+02:00, jbruehe@mysql.com +1 -0 Raise version number after cloning 5.1.18-beta But it fails on a newer one where the statement alter table t1 add primary key (a), add key (b(20)); results in fast index creation: ChangeSet@1.2500.1.40, 2007-06-01 20:06:13+04:00, kostja@bodhi.(none) +2 -0 Merge bodhi.(none):/opt/local/work/mysql-5.0-runtime into bodhi.(none):/opt/local/work/mysql-5.1-runtime MERGE: 1.1810.2984.14
-
marko authored
-
marko authored
infimum and supremum. This was broken in r1515.
-
- 06 Jun, 2007 2 commits
- 04 Jun, 2007 2 commits
-
-
marko authored
row_merge_mark_prebuilt_obsolete(): Rename to row_prebuilt_table_obsolete() and move from row0merge.c to row0mysql.c. Remove the parameter trx. row_merge_print_table(): Remove.
-
marko authored
row_remove_indexes_for_mysql(): Rename to row_merge_drop_indexes(), move from row0mysql.c to row0merge.c and make the return type void. row_merge_remove_index(): Rename to row_merge_drop_index() and make the return type void.
-
- 29 May, 2007 1 commit
-
-
marko authored
Make use of UT_BITS_IN_BYTES().
-
- 28 May, 2007 1 commit
-
-
marko authored
of UT_SORT_FUNCTION_BODY is best done by defining SORT_FUN and CMP_FUN as macros when needed. The solution of r1523 allows for only one extra parameter.
-
- 24 May, 2007 1 commit
-
-
marko authored
needed in row0merge.c for merge sorting the small blocks in main memory. Pass CTX also to SORT_FUN. Adjust all users.
-
- 22 May, 2007 4 commits
-
-
marko authored
node_ptr.
-
marko authored
rec_get_converted_size_new(): Rename to rec_get_converted_size_comp(). Add const qualifier to dtuple. Remove the assertion dict_table_is_comp(index->table), because this function will be invoked when populating the temporary files in fast index creation. rec_convert_dtuple_to_rec_new(): Rename to rec_convert_dtuple_to_rec_comp(). Add parameter "extra". rec_init_offsets_comp_ordinary(): New function. Used in rec_init_offsets().
-
marko authored
and change the return type from ibool to int (-1, 0, 1). This comparison function will be needed in fast index creation.
-
marko authored
row_merge_read_clustered_index(): Simplify the loop that scans the clustered index.
-
- 21 May, 2007 1 commit
-
-
marko authored
otherwise like INNODB_ZIP, but resets the cumulated counts. Rename innodb_buddy to innodb_zip in some comments. innobase_stat_zip_fill(): Add parameter "reset". Document the race condition with the compression statistics counters.
-
- 18 May, 2007 4 commits
-
-
marko authored
trx_undo_report_row_operation(), trx_undo_report_dict_operation(): Reduce the scope of some variables. Move the return(DB_SUCCESS) case inside the for loop.
-
marko authored
overflow.
-
marko authored
-
marko authored
Replace row0merge.h with row0mysql.h. Remove redundant test trx->dict_operation_lock_mode == 0. Fix typos in comments. row_undo_ins(): Make the function more similar to the one in trunk.
-
- 16 May, 2007 2 commits
-
-
marko authored
exactly. Rename the local variable "ulint level" to "ibool leaf". Document that if the function returns DB_SUCCESS on a compressed page that is covered by the insert buffer, the mini-transaction must be committed before latching any further pages. Verify that this is the case on all execution paths.
-
marko authored
the insert buffer bitmap. ibuf_set_free_bits_func(): Never disable redo logging. ibuf_update_free_bits_zip(): Remove. btr_page_reorganize_low(), page_zip_reorganize(): Do not update the insert buffer bitmap. Instead, document that callers will have to take care of it, and adapt the callers. btr_compress(): On error, reset the insert buffer free bits. btr_cur_insert_if_possible(): Do not modify the insert buffer bitmap. btr_compress(), btr_cur_optimistic_insert(): On compressed pages, reset the insert buffer bitmap. Document why. btr_cur_update_alloc_zip(): Document why it is necessary and sufficient to reset the insert buffer free bits. btr_cur_update_in_place(), btr_cur_optimistic_update(), btr_cur_pessimistic_update(): Update the free bits in the same mini-transaction. Document that the mini-transaction must be committed before latching any further pages. Verify that this is the case in all execution paths. row_ins_sec_index_entry_by_modify(), row_ins_clust_index_entry_by_modify(), row_undo_mod_clust_low(): Because these functions call btr_cur_update_in_place(), btr_cur_optimistic_update(), or btr_cur_pessimistic_update(), document that the mini-transaction must be committed before latching any further pages. Verify that this is the case in all execution paths.
-
- 15 May, 2007 1 commit
-
-
marko authored
page_cur_tuple_insert(), page_cur_rec_insert(): Improve the documentation. Note that the physical position of page_cursor may change. page_cur_rec_insert(), page_cur_insert_rec_low(), page_cur_insert_rec_zip(): Add a const qualifier to the parameter rec.
-
- 14 May, 2007 1 commit
-
-
marko authored
Remove mysql.patch, because the configuration parameter interface has changed.
-
- 07 May, 2007 1 commit
-
-
marko authored
mtr_commit(): Do not acquire the log mutex if no log records are to be written. ibuf_set_free_bits_func(): Do not clear mtr.modifications, because that would prevent the dirty insert buffer bitmap block from being moved to the flush list. Instead, assume that mtr_commit() will not acquire log_sys->mutex because redo logging is disabled. buf_page_init_for_read(): I/O-fix the block before buf_buddy_alloc(), because the newly allocated block could otherwise be reused by the compressed page.
-
- 06 May, 2007 2 commits
-
-
marko authored
the pages be decompressed. buf_read_page_low(), buf_page_init_for_read(): Add parameter "unzip".
-
marko authored
crash recovery is in progress. This avoids a hang when btr_parse_page_reorganize(), called from an I/O handler thread, attempts to acquire log_sys->mutex while it is being held by the main thread (the one that runs innobase_init()). This change was committed accidentally. It may be unsafe to clear mtr.modifications, because buf_page_release() at mtr_commit() may forget to put modified pages to the flush list. Cleanup: Remove the "type" parameter from many ibuf functions. Let the caller check that !dict_index_is_clust(). This should avoid function calls and register spilling. ibuf_set_free_bits_func(), ibuf_set_free_bits(): Remove the parameter "type". ibuf_reset_free_bits_with_type(): Rename to ibuf_reset_free_bits(). Remove the parameter "type". ibuf_update_free_bits_if_full(), ibuf_update_free_bits_zip(), ibuf_update_free_bits_low(), ibuf_update_free_bits_for_two_pages_low(): Remove the parameter "index".
-