- 07 Dec, 2018 11 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
&sys_buf + DATA_TRX_ID_LEN is not &(sys_buf + DATA_TRX_ID_LEN).
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
create_table_def(), ha_innobase::create(): Defer fts_optimize_add_table() until after the table has been successfully created.
-
Marko Mäkelä authored
row_fts_merge_insert(): Correctly initialize DB_ROLL_PTR to a safe value that will not be dereferenced by MVCC.
-
Alexander Barkov authored
-
Kristian Nielsen authored
This patch changes how old rows in mysql.gtid_slave_pos* tables are deleted. Instead of doing it as part of every replicated transaction in record_gtid(), it is done periodically (every @@gtid_cleanup_batch_size transaction) in the slave background thread. This removes the deletion step from the replication process in SQL or worker threads, which could speed up replication with many small transactions. It also decreases contention on the global mutex LOCK_slave_state. And it simplifies the logic, eg. when a replicated transaction fails after having deleted old rows. With this patch, the deletion of old GTID rows happens asynchroneously and slightly non-deterministic. Thus the number of old rows in mysql.gtid_slave_pos can temporarily exceed @@gtid_cleanup_batch_size. But all old rows will be deleted eventually after sufficiently many new GTIDs have been replicated.
-
- 06 Dec, 2018 8 commits
-
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
only --datadir option is tested in this test. Other options (notably --password and --service) would need another, more comprehensive test.
-
Sergei Golubchik authored
-
Sergei Golubchik authored
merge_role_db_privileges() was remembering pointers into Dynamic_array acl_dbs, and later was using them, while pushing more elements into the array. But pushing can cause realloc, and it can invalidate all pointers. Fix: remember and use indexes of elements, not pointers.
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Vladislav Vaintroub authored
sorting them by usernames first, and then by get_sort() value. Search functions now use binary search to find the the first entry with given name. Then, linear search is done, until the first match.
-
- 05 Dec, 2018 9 commits
-
-
Marko Mäkelä authored
We must use the original page format for inserting metadata records. This is because in case the instant ALTER TABLE operation needs to be rolled back (due to crash recovery), all pages must remain in the original format. btr_cur_optimistic_insert(): Avoid reorganize for inserting the metadata record. btr_cur_optimistic_update(): Initialize rec,offsets correctly after possible page format conversion. innobase_instant_try(): Do not store NULL values for those metadata record columns that were originally declared NOT NULL. dict_index_t::get_n_nullable(): Refer to dict_col_t::was_not_null() in order to keep the original format intact. lock_move_reorganize_page(): Allow the two pages to be in different formats. rec_convert_dtuple_to_rec_comp(), rec_convert_dtuple_to_rec_comp(): Also observe the DATA_WAS_NOT_NULL flag.
-
Marko Mäkelä authored
btr_page_create(): Add the parameter 'bool flexible', similar to btr_page_empty(). In this way, btr_root_raise_and_insert() and btr_page_split_and_insert() can avoid converting the page when splitting it. If a page were converted to flexible format during the split, the page split could theoretically fail due to the growth of the record header. Remove some bogus checks for os_has_said_disk_full, to avoid dereferencing NULL pointers. btr_page_split_and_insert(): If needed, convert the page to flexible format right before inserting the record. Do not convert pages when inserting a metadata record, because we want to be able to roll back the transaction. btr_can_merge_with_page(): Convert the page to flexible format if needed. btr_lift_page_up(): Preserve the format of the page.
-
Varun Gupta authored
-
Marko Mäkelä authored
page_copy_rec_list_convert(): On page overflow, delete the records that were copied so far, and return an error. btr_page_reorganize_low(): Change the first parameter type from bool to the new type reorganize_t, so that REORGANIZE_CONVERT can be distinguished from the special case REORGANIZE_KEEP_FORMAT. btr_cur_optimistic_delete_func(), btr_cur_pessimistic_delete(): Invoke REORGANIZE_KEEP_FORMAT when rolling back the insert of a metadata record during the rollback of instant ALTER TABLE. We must preserve the original format in that case. page_cur_insert_rec_write_log(): Add a const qualifier. page_copy_rec_list_end_no_locks(): Propagate the error from page_copy_rec_list_convert(). page_copy_rec_list_to_created_page_write_log(), page_copy_rec_list_end_to_created_page(): Moved to a different compilation unit.
-
Alexander Barkov authored
-
Marko Mäkelä authored
btr_cur_optimistic_insert(), btr_cur_optimistic_update(): Propagate btr_page_reorganize() failure to the caller. btr_cur_pessimistic_update(): If page format conversion is needed and it fails, fall back to btr_cur_pessimistic_insert().
-
Marko Mäkelä authored
btr_insert_into_right_sibling(): Convert the page before insertion if needed. btr_cur_pessimistic_delete(): Convert the page before btr_compress(). btr_compress(): Assert that the page be in the correct format.
-
Alexander Barkov authored
-
Alexander Barkov authored
-
- 04 Dec, 2018 12 commits
-
-
Anel Husakovic authored
-
Marko Mäkelä authored
btr_cur_optimistic_update(), btr_cur_pessimistic_update(): Convert the page to flexible format if needed. dtuple_convert_big_rec(): Use the least efficient format.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Alexander Barkov authored
The previous patch 269da4bf was actually for MDEV-8894 (not for MDEV-5377). It was erroneously pushed with a wrong title. This patch is a small cleanup for MDEV-8894. CREATE TABLE is now not a part of binary logs recorded with MySQL, only INSERT statements are. This will allow to reuse the same binary logs in combinations with different CREATE TABLE statements, to tests different data types.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Alexander Barkov authored
MDEV-5377 Row-based replication of MariaDB temporal data types with FSP>0 into a different column type
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-