- 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 5 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".
-
marko authored
-
marko authored
log_write_up_to(): Replace if-else if-else with a switch block. log_archive_do(): Remove an excess mutex_enter(). Replace if-else if-else with a switch block. (This function is not included unless UNIV_LOG_ARCHIVE is defined.)
-
marko authored
-
- 03 May, 2007 1 commit
-
-
marko authored
-
- 02 May, 2007 1 commit
-
-
marko authored
pass the compressed page size) with KEY_BLOCK_SIZE.
-
- 30 Apr, 2007 2 commits
-
-
marko authored
to the switch (row_merge_cmp(...)) to eliminate bogus warning about uninitialized variable tmp.
-
marko authored
was broken in one of the earlier cleanups. row_merge_block_merge(): Remove the variable "selected". Clear the record count of new_block1 and new_block2. Anticipate the right return values from row_merge_cmp().
-
- 17 Apr, 2007 4 commits
-
-
marko authored
Add __attribute__((const)) or __attribute__((pure)) to various mach_read functions. dtype_new_read_for_order_and_null_size(): Remove a statement without effect: mach_read_from_2(buf + 4).
-
marko authored
in r1445. They are needed after all, but apparently the tests do not actually verify that the records are sorted. (Also, a buffer overflow will occur in index_merge_innodb.test if MERGE_BLOCK_SIZE is made smaller.)
-
marko authored
Correct the language of some comments. Eliminate the local variables "num_of_merges" (renamed to "sorted" in one function).
-
marko authored
cmp_rec_rec_with_match(): Initialize ret=0. Remove assignments ret=0. rec_init_offsets(): Remove bogus comment.
-
- 16 Apr, 2007 4 commits
-
-
marko authored
-
marko authored
dict_index_is_unique(): New function. row_merge_rec_fits_to_block(), row_merge_store_rec_to_block(): Add const qualifiers to rec, offsets. row_merge_select(): Rename to row_merge_cmp(), simplify the interface. row_merge_sort_linked_list(): Change the return type to ibool. Replace sec_offs1,sec_offs2 with offsets1,offsets2. Replace offset_heap with heap. Define a func_exit label. row_merge_block_merge(): Reduce the scope of rec_offsets.
-
marko authored
merge_rec_list_t: Define n_records only #ifdef UNIV_DEBUG.
-
marko authored
row_merge_dict_table_get_index(): Add function comment. Use inlined versions of mem_alloc() and mem_free().
-
- 13 Apr, 2007 1 commit
-
-
marko authored
and os_file_write(), and return DB_CORRUPTION when they fail. Minor cleanup. row_mege_insert_index_tuples(): Use a shared heap for dtuple and rec. Use fewer gotos. row_merge_sort_linked_list_in_disk(): Free the merge blocks at error exit.
-
- 12 Apr, 2007 3 commits
-
-
marko authored
row_merge_read(), row_merge_write(): Add UNIV_LIKELY hints. row_merge_sort_linked_list_in_disk(): Reduce the scope of many variables. Eliminate the variable "selected".
-
marko authored
Replace byte offsets of type dulint with block offsets of type ulint. Avoid references to MERGE_BLOCK_SIZE. Improve the language of some comments. row_merge_insert_index_tuples(), row_merge_sort_linked_list_in_disk(): Make the offset a ulint. row_merge_read(), row_merge_write(): Helper functions. Return the status of os_file_read() and os_file_write(). TO DO: check the status in the callers.
-
marko authored
innobase_create_temporary_tablename(): Add static qualifier. Allocate the memory from heap. Return a fixed identifier. ha_innobase::add_index(): Allocate all memory from a single heap. Simplify error handling. Use a fixed prefix for temporary table names, because only one add_index() can be active for a given table. mem_heap_empty_noninline(): New function, to be called from ha_innodb.cc. row_build_index_for_mysql(): Remove the parameter new_primary.
-
- 11 Apr, 2007 4 commits
-
-
marko authored
row_merge_remove_index(), row_merge_rename_index(): Remove risky sprintf() calls. Make use of named literals and que_eval_sql().
-
marko authored
Move more definitions from row0mysql.h to row0mysql.c. Remove the unused definition of merge_thread. merge_index_def_t: Replace merge_index_field_t** with merge_index_field_t*. Use mem_heap_strdup() when copying strings. ha_innobase::add_index(): Avoid excessive use of current_thd.
-
marko authored
assignments. A memory leak remains at "goto error_handling": the memory allocated with row_merge_block_create() in the beginning of this function will not be freed.
-
marko authored
Define the merge_rec_ structures in row0merge.c instead of row0merge.h. They are not used in the interface defined in row0merge.h. row_merge_create_file_structure(): Rename to row_merge_file_create(). Input a pointer to a pre-allocated block of memory. row_merge_read_clustered_index(): Replace merge_file_t** with merge_file_t*. row_merge_sort_and_insert_thread(): Remove the declaration. This function was never defined or called. row_merge_is_index_usable(): Correct the formatting. row_build_index_for_mysql(): Allocate an array of merge_file_t instead of an array of pointers to merge_file_t.
-
- 10 Apr, 2007 2 commits
-
-
marko authored
-
marko authored
ha_innodb.cc: Add the columns COMPRESSED, COMPRESSED_OK, DECOMPRESSED to INFORMATION_SCHEMA.INNODB_BUDDY. page_zip_compress_count[], page_zip_compress_ok[]: New statistic counters, incremented in page_zip_compress(). page_zip_decompress_count[]: New statistic counter, incremented in page_zip_decompress().
-
- 04 Apr, 2007 2 commits
-
-
marko authored
innodb.test: The error code 1540 has been renumbered to 1542. innodb.result: Adjust the expected value of Innodb_buffer_pool_pages_total. Something may have changed in the BLOB handling in branches/zip. ha_innodb.cc: Add ha_innobase:: prefix to some DBUG_ENTER macros. row_merge_create_temporary_table(): Free the heap only after invoking row_create_table_for_mysql(). The table->col_names points to the heap until the system columns are added by row_create_table_for_mysql(). TODO: use the filename-safe encoding in temporary table names. Test extensively under Valgrind and fix all errors found. Eliminate merge_rec_t and rewrite row0merge.c to write the records directly to the merge blocks.
-
marko authored
Fix some bugs. The tests innodb and innodb-index fail, but that might be due to an old MySQL source tree being used.
-
- 02 Apr, 2007 1 commit
-
-
marko authored
-
- 29 Mar, 2007 2 commits
-
-
marko authored
dict_truncate_index_tree(): Add the parameter space for specifying the new tablespace identifier of a single-table tablespace that has been recreated. When SYS_INDEXES.PAGE_NO == FIL_NULL, do not abort but create the index tree. fil_discard_tablespace(): Pass the return code from fil_delete_tablespace(). row_truncate_table_for_mysql(): Attempt to discard and recreate single-table tablespaces. Reassign the tablespace identifier both in the data dictionary (SYS_TABLES and SYS_INDEXES) and in the data dictionary cache.
-
marko authored
trx_undo_left(): Add const qualifiers. trx_undo_page_report_insert(): Use exact trx_undo_left() limit. Remove a duplicated trx_undo_left() check. trx_undo_page_report_modify(): Eliminate the local variable len. Document that no prefix for BLOBs needs to be stored in the undo log. Lump two trx_undo_left() checks together.
-
- 28 Mar, 2007 3 commits
-
-
marko authored
Previously, when big_rec was returned, the fields would point to freed memory. The memory heap was allocated locally, and the data tuple was allocated from the heap, and the big_rec would point to some fields in the data tuple. row_ins_clust_index_entry_by_modify(): Add parameter heap, for the same reason.
-
marko authored
-
marko authored
allocated before overwriting some fields and flagging the frame freed. Some of the buffer frame may have been flagged freed by the user (such as mem_heap).
-