- 07 Dec, 2018 1 commit
-
-
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 3 commits
-
-
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.
-
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 3 commits
-
-
Alexander Barkov authored
-
Alexander Barkov authored
-
Alexander Barkov authored
-
- 04 Dec, 2018 5 commits
-
-
Anel Husakovic 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.
-
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
-
- 03 Dec, 2018 3 commits
-
-
Sergey Vojtovich authored
-
Thirunarayanan Balathandayuthapani authored
MDEV-17432 Assertion `lock_trx_has_sys_table_locks(trx) == 0' failed upon ALTER TABLE .. ADD FOREIGN KEY - Fixed innodb.table_flags test case in release build.
-
Alexander Barkov authored
-
- 02 Dec, 2018 2 commits
-
-
Thirunarayanan Balathandayuthapani authored
MDEV-17432 Assertion `lock_trx_has_sys_table_locks(trx) == 0' failed upon ALTER TABLE .. ADD FOREIGN KEY - This is a regression of commit b26e603a. While dropping the incompletely created table, InnoDB shouldn't consider that operation as non-atomic one.
-
Alexander Barkov authored
-
- 01 Dec, 2018 1 commit
-
-
Igor Babaev authored
When the with clause of a query contains a recursive CTE that is not used then processing of EXPLAIN for this query does not require optimization of the unit specifying this CTE. In this case if 'derived' is the TABLE_LIST object created for this CTE then derived->derived_result is NULL and any assignment to derived->derived_result->table causes a crash. After fixing this problem in the code of st_select_lex_unit::prepare() EXPLAIN for such a query worked without crashes. Yet an execution plan for the recursive CTE appeared there. The cause of this problem was an incorrect condition used in JOIN::save_explain_data_intern() that determined whether CTE was to be optimized or not. A similar condition was used in select_describe() and this patch has corrected it as well.
-
- 30 Nov, 2018 8 commits
-
-
Marko Mäkelä authored
Remove unnecessary #include. Remove references to UNIV_MATERIALIZE, UNIV_INLINE_ORIGINAL, UNIV_NONINL that are never defined.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
In 10.3, rec_is_metadata() takes a pointer, while in 10.4 it takes a reference as a parameter. I ported this patch from 10.4 to 10.3, and then only ran a release build, not debug build.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
The special flag REC_INFO_MIN_REC_FLAG used to be only set on the first record in the leftmost node pointer page of each level of the tree. It was never set on leaf pages. MDEV-11369 Instant ADD COLUMN in MariaDB Server 10.3 repurposed the flag to identify a hidden metadata record, which is stored in the first record on the leftmost leaf page. If the adaptive hash index points to records in the leftmost leaf page after instant ALTER TABLE, we would have such a metadata record in the table, an assertion could fail when trying to validate the index record. In a release build, we might wrongly qualify the hidden metadata record and thus return garbage results. cmp_dtuple_rec_with_match_bytes(): If the REC_INFO_MIN_REC_FLAG is set on the record, assert that this is the first record on the leftmost page and that the record is a metadata record, and finally return 1, because by definition, anything is greater than the minimum record.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Also, related to MDEV-15522, MDEV-17304, MDEV-17835, remove the Galera xtrabackup tests, because xtrabackup never worked with MariaDB Server 10.3 due to InnoDB redo log format changes.
-
- 29 Nov, 2018 5 commits
-
-
Jan Lindström authored
-
Jan Lindström authored
Disable tests that do not yet pass.
-
Jan Lindström authored
MDEV-17810: Improve error printout when decryption fails or we identify page as both encrypted and unencrypted fil_space_verify_crypt_checksum Print out both stored checksum and calculated checksums for encrypted page and unencrypted page asumptions.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
dict_create_add_foreigns_to_dictionary(): Do not commit the transaction. The operation can still fail in dict_load_foreigns(), and we want to be able to roll back the transaction. create_table_info_t::create_table(): Never reset m_drop_before_rollback, and never commit the transaction. We use a single point of rollback in ha_innobase::create(). Merge the logic from row_table_add_foreign_constraints().
-
- 28 Nov, 2018 7 commits
-
-
Marko Mäkelä authored
btr_pcur_store_position(): Merge the code from dict_index_copy_rec_order_prefix().
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
This is a regression due to MDEV-17816. When creating a table fails, we must roll back the dictionary transaction. Because the rollback may rename tables, and because InnoDB lacks proper undo logging for CREATE operations, we must drop the incompletely created table before rolling back the transaction, which could include a RENAME operation. But, we must not blindly drop the table by name; after all, the operation could have failed because another table by the same name already existed. create_table_info_t::m_drop_before_rollback: A flag that is set if the table needs to be dropped before transaction rollback. create_table_info_t::create_table(): Remove some duplicated error handling. ha_innobase::create(): On error, only drop the table if it was actually created.
-
Sergei Petrunia authored
Added a testcase
-
Alexander Barkov authored
-
Alexander Barkov authored
MDEV-17854 Assertion `decimals <= 6' failed in my_time_fraction_remainder on SELECT with NULLIF and FROM_UNIXTIME on incorrect time
-
- 27 Nov, 2018 2 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-