- 16 Apr, 2007 1 commit
-
-
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 4 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).
-
marko authored
functions. ut_malloc_low(): Flag the block with UNIV_MEM_ALLOC(). Do not flag the block with UNIV_MEM_FREE() in ut_free(), because it would cause bogus Valgrind warnings in the underlying memory allocator. mem_pool_create(): Flag the data area with UNIV_MEM_FREE(). mem_pool_fill_free_list(): Flag the area header with UNIV_MEM_ALLOC(). mem_area_alloc(): Flag the data area with UNIV_MEM_ALLOC(). mem_area_free(): Flag the data area with UNIV_MEM_FREE(). mem_heap_alloc(): Flag the buffer with UNIV_MEM_ALLOC(). mem_heap_block_free(): Flag the block with UNIV_MEM_FREE(). mem_heap_free_top(): Flag the block with UNIV_MEM_FREE().
-
- 14 Mar, 2007 1 commit
-
-
marko authored
btr_rec_free_updated_extern_fields(): Remove the parameter do_not_free_inherited, which is always passed as TRUE. btr_cur_unmark_extern_fields(): Invoke rec_offs_any_extern(). btr_cur_unmark_dtuple_extern_fields(): Remove a local variable.
-
- 12 Mar, 2007 1 commit
-
-
marko authored
for displaying buddy allocator statistics. buf_buddy_used[], buf_buddy_relocated[]: Declare as global symbols. mysql_declare_plugin(innobase): Add MYSQL_INFORMATION_SCHEMA_PLUGIN for innobase_is_buddy ("INNODB_BUDDY").
-
- 05 Mar, 2007 1 commit
-
-
marko authored
ut_free(table->col_names) that should have been removed in r1264, which made the temporary memory allocations use a caller-supplied heap.
-
- 01 Mar, 2007 3 commits
- 28 Feb, 2007 3 commits
-
-
marko authored
qualifiers. Correct the documentation of the parameters.
-
marko authored
pass max_ins_size=UNIV_PAGE_SIZE and increase=ULINT_UNDEFINED to ibuf_update_free_bits_if_full(). Otherwise, a bogus assertion failure may occur when the page is recompressed and there is more space available in the modification log after inserting the record.
-
marko authored
to reorganize a compressed page. This mistake was made in r1308.
-
- 27 Feb, 2007 3 commits
-
-
marko authored
-
marko authored
-
marko authored
compressed secondary index pages after attempting the insert. btr_cur_update_alloc_zip(): Reset the insert buffer free bits if there is insufficient space available on secondary index pages. Do not update the bits after successful operation. btr_cur_update_in_place(): Update the free bits in the index buffer. btr_cur_optimistic_update(): First check rec_offs_any_extern(), because checking it is cheaper than checking the "external storage" flags of the update vector. Update the insert buffer free bits in any case after successfully calling btr_cur_update_alloc_zip().
-
- 26 Feb, 2007 1 commit
-
-
marko authored
a page during update-in-place. page_zip_alloc(): Rename to btr_cur_update_alloc_zip(). Invoke ibuf_update_free_bits_if_full().
-
- 20 Feb, 2007 4 commits
-
-
marko authored
failing insert. Reorganization will have been attempted in page_cur_tuple_insert() or page_cur_rec_insert(). page_zip_reorganize(): Recompute the insert buffer free bits for leaf pages of secondary indexes. ibuf_data_enough_free_for_insert(): Simplify.
-
marko authored
were introduced when reducing the memory footprint of the data dictionary cache (Bug #20877), around r834. This function is only compiled if PAGE_CUR_LE_OR_EXTENDS is defined in page0cur.h.
-
marko authored
compressed tablespaces. btr_page_reorganize_low(): Recompute the insert buffer free bits for compressed pages belonging to a non-clustered index. btr_cur_optimistic_insert(): Determine if the page was reorganized by page_cur_tuple_insert(). Do not attempt to reorganize compressed pages, because that will be attempted by page_cur_tuple_insert().
-
marko authored
fails, reset the insert buffer free bits for the page.
-
- 19 Feb, 2007 3 commits
-
-
marko authored
page_zip_max_ins_size(): New function. btr_cur_optimistic_insert(), btr_cur_optimistic_delete(), btr_page_split_and_insert(), btr_compress(): Do not update the ibuf free bits for non-leaf pages or pages belonging to a clustered index. The insert buffer only covers operations on leaf pages of secondary indexes. For pages covered by the insert buffer, limit the max_ins_size to page_zip_max_ins_size(). buf_page_get_gen(): Merge the insert buffer after decompressing the page. buf_page_io_complete(): Relax the assertion about ibuf_count. For compressed-only pages, the insert buffer merge takes place in buf_page_get_gen(). ibuf_index_page_calc_free_bits(), ibuf_index_page_calc_free_from_bits(), ibuf_index_page_calc_free(), ibuf_update_free_bits_if_full(), ibuf_update_free_bits_low(), ibuf_update_free_bits_for_two_pages_low(), ibuf_set_free_bits_low(): Add the parameter zip_size. Limit the maximum insert size to page_zip_max_ins_size().
-
marko authored
Replace the parameter "dict_index_t* index" with "ibool is_clust". dict_index_is_clust(): Add __attribute__((pure)).
-
marko authored
compressed pages, because doing so would require a call to buf_buddy_alloc(), which in turn can invoke buf_LRU_get_free_block() and buf_LRU_search_and_free_block(), potentially infinite recursion.
-