- 03 Oct, 2007 2 commits
-
-
marko authored
For some reason, GCC 4.2.1 ignores casts (for removing constness) in calls to inline functions. page_align(), ut_align_down(): Make the parameter const void*, but still return a non-const pointer. This is ugly, but these functions cannot be replaced with a const-preserving macro in a portable way, given that the pointer argument is not always pointing to bytes. buf_block_get_page_zip(): Implement as a const-preserving macro. buf_frame_get_page_zip(), buf_block_align(): Add const qualifiers. lock_rec_get_prev(): Silence GCC 4.2.1 warnings. mlog_write_initial_log_record(), mlog_write_initial_log_record_fast(), mtr_memo_contains(): Add const qualifier to the pointer. page_header_get_ptr(): Rewrite as page_header_get_offs(), and implement as a macro that calls this function.
-
marko authored
-
- 01 Oct, 2007 4 commits
-
-
marko authored
-
marko authored
-
marko authored
buf_block_hash_get(): New function, similar to buf_page_hash_get(). buf_page_get_block(): Remove the const qualifiers. This is a low-level function, and the operations on block->mutex are non-const. buf_page_try_get_func(): Implement with lower-level predicates, somewhat similar to buf_page_get_known_nowait(). lock_rec_print(): Remove the unused variable zip_size and the call to fil_space_get_zip_size(). Adapt to buf_page_try_get() returning a const pointer.
-
marko authored
buf_block_fix_inc(), and use it.
-
- 28 Sep, 2007 9 commits
-
-
vasil authored
Remove bogus comment from ha_storage_empty().
-
vasil authored
Add const qualifier to the value returned by ha_storage_put(). It must not be changed as this will invalidate the hash.
-
marko authored
from buf_page_t* to buf_block_t*. buf_page_can_relocate(): Replace the incorrect __attribute__((const)) with __attribute__((pure)).
-
marko authored
ha_innobase::update_thd(void): New function, to call the inline function ha_innobase::update_thd(THD*). check_trx_exists(): Make static. handler0alter.cc does not need to call this function.
-
marko authored
offsets_[] arrays, as suggested by Vasil. rec_offs_set_n_alloc(): Declare as a public function. Assert that n_alloc > REC_OFFS_HEADER_SIZE. rec_offs_get_n_alloc(): Assert that n_alloc > REC_OFFS_HEADER_SIZE.
-
marko authored
the sync_thread_levels_g() check, so that it will be easier to add new sync levels.
-
marko authored
-
marko authored
-
vasil authored
Fix compilation warning: can_cache_be_updated(): Remove const qualifier because this function needs to call rw_lock_own().
-
- 27 Sep, 2007 13 commits
-
-
marko authored
with "col" in two debug assertions. This mistake was made in r1910.
-
vasil authored
Fix a warning produced when UNIV_DEBUG is defined.
-
vasil authored
Move part of the code from lock_rec_print() in a separate function buf_page_try_get() because the same functionality is needed in INFORMATION SCHEMA code. Approved by: Heikki
-
vasil authored
Add auxiliary function lock_rec_get_index() to retrieve the index on which the lock is. Approved by: Heikki
-
vasil authored
Fix a bug where the condition (prtype & DATA_ROW_ID) is unexpectedly always false becasue DATA_ROW_ID is 0. Use a switch instead of if-else in order to avoid repeating (prtype & DATA_SYS_PRTYPE_MASK). Approved by: Heikki
-
marko authored
-
marko authored
innobase_col_to_mysql(): New function, adapted from row_sel_field_store_in_mysql_format(). innobase_rec_to_mysql(): Correct the function comment, which was still saying "clustered index record", although we can convert any record. Make use of innobase_col_to_mysql(). Always call field->reset(), so that innobase_col_to_mysql() will not have to pad anything.
-
marko authored
"data" from byte* to const void*.
-
marko authored
if-else with switch.
-
marko authored
-
marko authored
Since r1905, innobase_rec_to_mysql() does not require a clustered index record. row_merge_dup_t: Remove old_table. row_merge_dup_report(): Do not fetch the clustered index record. Simply convert the tuple by innobase_rec_to_mysql(). row_merge_blocks(), row_merge(), row_merge_sort(): Add a TABLE* parameter for reporting duplicate key values during file sort. row_merge_read_clustered_index(): Replace UNIV_PAGE_SIZE with the more appropriate sizeof(mrec_buf_t).
-
marko authored
clustered or secondary. Remove the rec_offs_validate() assertion, because the function may be passed a mrec_t* that would fail the check.
-
marko authored
This should have been done in r1903, where the minimum size of row_merge_block_t was noted to be UNIV_PAGE_SIZE.
-
- 26 Sep, 2007 8 commits
-
-
marko authored
row_merge_buf_add(): Add ut_ad(data_size < sizeof(row_merge_block_t)) and document why it may fail if sizeof row_merge_block_t < UNIV_PAGE_SIZE.
-
marko authored
row_merge_dup_report(): Do not call innobase_rec_reset().
-
marko authored
dtuple_create_for_mysql(), dtuple_free_for_mysql(): Remove. ha_innobase::records_in_range(): Use mem_heap_create(), mem_heap_free(), and dtuple_create() instead of the removed functions above. Since r1587, InnoDB C++ functions can invoke inlined C functions.
-
marko authored
innobase_rec_to_mysql(): New function, for converting an InnoDB clustered index record to MySQL table->record[0]. TODO: convert integer fields. Currently, integer fields are in big-endian byte order instead of host byte order, and signed integer fields are offset by 0x80000000. innobase_rec_reset(): New function, for resetting table->record[0]. row_merge_build_indexes(): Add the parameter TABLE* table (the MySQL table handle) for reporting duplicate key values. dtuple_from_fields(): New function, to convert an array of dfield_t* to dtuple_t. dtuple_get_n_ext(): New function, to compute the number of externally stored fields. row_merge_dup_t: Structure for counting and reporting duplicate records. row_merge_dup_report(): Function for counting and reporting duplicate records. row_merge_tuple_cmp(), row_merge_tuple_sort(): Replace the ulint* n_dup parameter with row_merge_dup_t* dup. row_merge_buf_sort(): Add the parameter row_merge_dup_t* dup, which is NULL when sorting a non-unique index. row_merge_buf_write(), row_merge_heap_create(), row_merge_read_rec(), row_merge_cmp(), row_merge_read_clustered_index(), row_merge_blocks(), row_merge(), row_merge_sort(): Add const qualifiers. row_merge_read_clustered_index(): Use a common error handling branch err_exit. Invoke row_merge_buf_sort() differently on unique indexes. row_merge_blocks(): note TODO: We could invoke innobase_rec_to_mysql() to report duplicate key values when creating a clustered index.
-
marko authored
dict_find_index_by_max_id(): Rename this static function to its only caller, dict_table_get_index_by_max_id(). dict_table_get_index_by_max_id(): Copy the function comment from dict_find_index_by_max_id().
-
marko authored
rec_get_converted_size_comp(), rec_convert_dtuple_to_rec_comp(), rec_convert_dtuple_to_rec_new(), rec_convert_dtuple_to_rec(): Add a const qualifier to dict_index_t*. row_search_on_row_ref(): Add const qualifiers to the dict_table_t* and dtuple_t* parameters. Note that pcur is an "out" parameter and mtr is "in/out".
-
marko authored
row_build_row_ref_fast(): Note that "ref" is an in/out parameter. row_build_row_ref_from_row(): Add const qualifiers to all "in" parameters.
-
marko authored
dtuple_create(): Simplify a pointer expression. Flag the fields uninitialized after initializing them in the debug version. dtuple_t: Only declare magic_n if UNIV_DEBUG is defined. The field is not assigned to nor tested unless UNIV_DEBUG is defined.
-
- 25 Sep, 2007 1 commit
-
-
marko authored
to avoid a rec_get_offsets() call. Add some const qualifiers. row_sel_get_clust_rec_for_mysql(): Note that "offsets" will also be an input parameter.
-
- 24 Sep, 2007 3 commits
-
-
marko authored
dict_index_t* and dict_table_t* parameters of some functions.
-
vasil authored
Copy any data (currently table name and table index) that may be destroyed after releasing the kernel mutex into internal cache's storage. This is done in efficient manner using ha_storage type and a given string is copied only once into the cache's storage. Later additions of the same string use the already stored string, thus allocating memory only once per unique string. Approved by: Marko
-
vasil authored
Add a type that stores chunks of data in its own storage and avoids duplicates. Supported methods: ha_storage_create() Allocates new storage object. ha_storage_put() Copies a given data chunk into the storage and returns pointer to the copy. If the data chunk is already present, a pointer to the existing object is returned and the given data chunk is not copied. ha_storage_empty() Clears (empties) the storage from all data chunks that are stored in it. ha_storage_free() Destroys a storage object. Opposite to ha_storage_create(). Approved by: Marko
-