- 11 Oct, 2019 3 commits
-
-
Alexander Barkov authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
In commit 0f7732d1 we introduced a innodb_checksum_algorithm=full_crc32 combination to a number of encryption tests, and also fixed the code accordingly. The default in MariaDB 10.5 is innodb_checksum_algorithm=full_crc32. In a test merge to 10.5, the test encryption.innodb-redo-badkey failed once due to a message that had been added in that commit. Let us introduce a full_crc32 option to that test. And let us use strict_crc32 and strict_full_crc32 instead of the non-strict variants, for the previously augmented tests, to be in line with the earlier tests encryption.corrupted_during_recovery and encryption.innodb_encrypt_temporary_tables.
-
- 10 Oct, 2019 16 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
btr_page_get_split_rec_to_left(): Assert that in the leftmost leaf page, if the metadata record exists, index->is_instant() must hold. The assertion of commit 01f45bec could fail during innobase_instant_try().
-
Alexander Barkov authored
These two methods: - Item_result_field::create_tmp_field_ex() - Item_func_user_var::create_tmp_field_ex() had duplicate code, except that they used a different type handler. Adding a protected method Item_result_field::create_tmp_field_ex_from_handler() with a "const Type_handler*" parameter, and reusing it from the two mentioned methods.
-
Marko Mäkelä authored
btr_page_get_split_rec_to_left(): Assert that in the leftmost leaf page, the metadata record exists if and only if index->is_instant(). page_validate(): Correct the wording of a message. rec_init_offsets(): Assert that whenever a record is in "instant ALTER" format, index->is_instant() must hold.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
In MDEV-11369 (instant ADD COLUMN) in MariaDB Server 10.3, we introduced the hidden metadata record that must be the first record in the clustered index if and only if index->is_instant() holds. To catch MDEV-19783, in commit ed0793e0 and commit 99dc40d6 we added some assertions to find cases where the metadata record is missing while it should not be, or a record exists when it should not. Those assertions were invalid when traversing the PAGE_FREE list. That list can contain anything; we must only be able to determine the successor and the size of each garbage record in it. page_validate(), page_simple_validate_old(), page_simple_validate_new(): Do not invoke page_rec_get_next_const() for traversing the PAGE_FREE list, but instead use a lower-level accessor that does not attempt to validate the REC_INFO_MIN_REC_FLAG. page_copy_rec_list_end_no_locks(), page_copy_rec_list_start(), page_delete_rec_list_start(): Add assertions. btr_page_get_split_rec_to_left(): Remove a redundant return value, and make the output parameter the return value. btr_page_get_split_rec_to_right(), btr_page_split_and_insert(): Clean up.
-
Marko Mäkelä authored
When MDEV-12026 introduced innodb_checksum_algorithm=full_crc32 in MariaDB 10.4, it accidentally added a dependency on buf_page_t::encrypted. Now that the flag has been removed, we must adjust the page-read routine. buf_page_io_complete(): When the full_crc32 page checksum matches but the tablespace ID in the page does not match after decrypting, we should declare it a decryption failure and suppress the page dump output and any attempts to re-read the page.
-
Alexey Botchkov authored
-
Aleksey Midenkov authored
Fixed warning: -Woverloaded-virtual for GCC 9 (Clang treats it differently) Caused by c9cba597
-
Marko Mäkelä authored
Field::marked_for_read() and Field::marked_for_write_or_computed() are being called from plugin/type_inet/sql_type_inet.cc ever since commit 6ea5c2b5 and thus they cannot be declared inline any more.
-
Marko Mäkelä authored
-
Aleksey Midenkov authored
Fixed warnings: -Woverloaded-virtual, -Winconsistent-missing-override Caused by c9cba597
-
Jan Lindström authored
/mariadb/10.3/wsrep/wsrep_gtid.c:45:26: error: conversion from 'long int' to 'unsigned int' may change value [-Werror=conversion] 45 | offset = endptr - str;
-
Michael Widenius authored
-
Alexey Botchkov authored
-
Alexander Barkov authored
-
- 09 Oct, 2019 21 commits
-
-
Aleksey Midenkov authored
While `handler::next_insert_id` is restored on duplicate key errors `part_share->next_auto_inc_val` is not restored which causes discrepancy.
-
Aleksey Midenkov authored
TABLE::mark_columns_needed_for_update(): use_all_columns() assigns pointer of all_set into read_set and write_set, but this is not good since all_set is changed later by TABLE::mark_columns_used_by_index_no_reset(). Do column_bitmaps_signal() whenever we change read_set/write_set.
-
Aleksey Midenkov authored
-
Aleksey Midenkov authored
MDEV-16210 FK constraints on versioned tables use historical rows, which may cause constraint violation Constraint check is done on secondary index update. F.ex. DELETE does row_upd_sec_index_entry() and checks constraints in row_upd_check_references_constraints(). UPDATE is optimized for the case when order is not changed (node->cmpl_info & UPD_NODE_NO_ORD_CHANGE) and doesn't do row_upd_sec_index_entry(), so it doesn't check constraints. Since for versioned DELETE we do UPDATE actually, but expect behaviour of DELETE in terms of constraints, we should deny this optimization to get constraints checked. Fix wrong referenced table check when versioned DELETE inserts history in parent table. Set check_ref to false in this case. Removed unused dup_chk_only argument for row_ins_sec_index_entry() and added check_ref argument. MDEV-18057 fix was superseded by this fix and reverted. foreign.test: All key_type combinations: pk, unique, sec(ondary).
-
Aleksey Midenkov authored
Preparation for MDEV-16210: replace.test: key_type combinations: PK and UNIQUE. foreign.test: Preparation for key_type combinations. Other fixes: * Merged versioning.update2 into versioning.update; * Removed test2 database and done individual drop instead.
-
-
Alexander Barkov authored
-
Sergey Vojtovich authored
-
Marko Mäkelä authored
The function was always called with lsn=LSN_MAX. Remove that redundant parameter. Spotted by Thirunarayanan Balathandayuthapani.
-
Marko Mäkelä authored
-
Thirunarayanan Balathandayuthapani authored
The field buf_page_t::encrypted was added in MDEV-8588. It was made mostly redundant in MDEV-12699. Remove the field.
-
Marko Mäkelä authored
calc_field_event_length(): For type=MYSQL_TYPE_BLOB and meta==0, return 0 instead of *ptr+1. This was noted by -Wimplicit-fallthrough.
-
Alexander Barkov authored
-
Jan Lindström authored
Add auto increment offset save and restore as node(s) are restarted.
-
Jan Lindström authored
Fix wait_condition and use repeatable read with wsrep_sync at the end.
-
Oleksandr Byelkin authored
(fix and explanation came with MDEV-20753 (duplicate of this bug))
-
Oleksandr Byelkin authored
Do not try to push down conditions to engine if query was resolved without tables (and so the engine).
-
Marko Mäkelä authored
-
Eugene Kosov authored
btr_cur_pessimistic_delete(): code changed in a way that allows to put more REC_INFO_MIN_REC_FLAG assertions inside btr_set_min_rec_mark(). Without that change tests innodb.innodb-table-online, innodb.temp_table_savepoint and innodb_zip.prefix_index_liftedlimit fail. Removed basically duplicated page_zip_validate() calls which fails because of temporary(!) invariant violation. That fixed innodb_zip.wl5522_debug_zip and innodb_zip.prefix_index_liftedlimit
-
Eugene Kosov authored
The bug affects MariaDB Server 10.3 or later, but it makes sense to improve CHECK TABLE in earlier versions already. page_validate(): Check REC_INFO_MIN_REC_FLAG in the records. This allows CHECK TABLE to catch more bugs.
-
Marko Mäkelä authored
Until now, InnoDB inefficiently compared the aligned fields FIL_PAGE_PREV, FIL_PAGE_NEXT to the byte-order-agnostic value FIL_NULL. This is a backport of 32170f8c from MariaDB Server 10.3.
-