summaryrefslogtreecommitdiff
path: root/mysql-test/suite/encryption
Commit message (Collapse)AuthorAgeFilesLines
* MDEV-30205: /usr/share/mysql-test -> mariadb-test (fix)Daniel Black2023-04-112-0/+2
| | | | | A suppression was needed for encryption.innodb-bad-key-change due to the path change.
* Merge 11.0 into 11.1Marko Mäkelä2023-03-172-0/+3
|\
| * Merge 10.11 into 11.0Marko Mäkelä2023-03-172-0/+3
| |\
| | * Merge 10.10 into 10.11Marko Mäkelä2023-03-172-0/+3
| | |\
| | | * Merge 10.8 into 10.9Marko Mäkelä2023-03-172-0/+3
| | | |\
| | | | * Merge 10.6 into 10.8Marko Mäkelä2023-03-162-0/+3
| | | | |\
| | | | | * Merge 10.5 into 10.6Marko Mäkelä2023-03-162-0/+3
| | | | | |\
* | | | | | | MDEV-30545 Remove innodb_defragment and related parametersMarko Mäkelä2023-03-114-78/+0
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The deprecated parameters will be removed: innodb_defragment innodb_defragment_n_pages innodb_defragment_stats_accuracy innodb_defragment_fill_factor_n_recs innodb_defragment_fill_factor innodb_defragment_frequency The mysql.innodb_index_stats.stat_name values 'n_page_split' and 'n_pages_freed' will lose their special meaning. The related changes to OPTIMIZE TABLE in InnoDB will be removed as well. The parameter innodb_optimize_fulltext_only will retain its special meaning in OPTIMIZE TABLE. Tested by: Matthias Leich
* | | | | | Merge 10.11 into 11.0Marko Mäkelä2023-02-163-0/+42
|\ \ \ \ \ \ | |/ / / / /
| * | | | | Merge branch '10.10' into 10.11Oleksandr Byelkin2023-01-313-0/+42
| |\ \ \ \ \ | | |/ / / /
| | * | | | Merge branch '10.8' into 10.9Oleksandr Byelkin2023-01-313-0/+42
| | |\ \ \ \ | | | |/ / /
| | | * | | Merge branch '10.7' into 10.8Oleksandr Byelkin2023-01-313-0/+42
| | | |\ \ \
| | | | * \ \ Merge branch '10.6' into 10.7Oleksandr Byelkin2023-01-313-0/+42
| | | | |\ \ \ | | | | | |/ /
| | | | | * | Merge branch '10.5' into 10.6Oleksandr Byelkin2023-01-311-0/+40
| | | | | |\ \ | | | | | | |/
| | | | | | * Merge branch '10.4' into 10.5Oleksandr Byelkin2023-01-271-2/+44
| | | | | | |\
| | | | | | | * Merge branch '10.3' into 10.4Oleksandr Byelkin2023-01-261-2/+44
| | | | | | | |\
| | | | | | | | * MDEV-15178: Filesort::make_sortorder: Assertion `pos->field != __null |Sergei Petrunia2023-01-231-2/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (Initial patch by Varun Gupta. Amended and added comments). When the query has both 1. Aggregate functions that require sorting data by group, and 2. Window functions we need to use two temporary tables. The first temp.table will hold the join output. Then it is passed to filesort(). Reading it in sorted order allows to compute the aggregate functions. Then, we need to write their values into the second temp. table. Then, Window Function computation step can pass that to filesort() and read them in the order it needs. Failure to create the second temp. table would cause an assertion failure: window function could would not find where to get the values of the aggregate functions.
| | | | | * | | | MDEV-29374 fixup: Suppress an error in a testMarko Mäkelä2023-01-252-0/+2
| | | | | | | | |
* | | | | | | | | MDEV-30032: EXPLAIN FORMAT=JSON output: part #2: print 'loops'.Sergei Petrunia2023-02-031-0/+13
| | | | | | | | |
* | | | | | | | | MDEV-30032: EXPLAIN FORMAT=JSON output: print costsSergei Petrunia2023-02-031-0/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Basic printout for join and table execution costs.
* | | | | | | | | MDEV-29986 Set innodb_undo_tablespaces=3 by defaultMarko Mäkelä2023-01-131-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Starting with commit baf276e6d4a44fe7cdf3b435c0153da0a42af2b6 (MDEV-19229) the parameter innodb_undo_tablespaces can be increased from its previous default value 0 while allowing an upgrade from old databases. We will change the default setting to innodb_undo_tablespaces=3 so that the space occupied by possible bursts of undo log records can be reclaimed after SET GLOBAL innodb_undo_log_truncate=ON. We will not enable innodb_undo_log_truncate by default, because it causes some observable performance degradation. Special thanks to Thirunarayanan Balathandayuthapani for diagnosing and fixing a number of bugs related to this new default setting. Tested by: Matthias Leich, Axel Schwenke, Vladislav Vaintroub (with both values of innodb_undo_log_truncate)
* | | | | | | | | MDEV-29694 Remove the InnoDB change bufferMarko Mäkelä2023-01-112-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The purpose of the change buffer was to reduce random disk access, which could be useful on rotational storage, but maybe less so on solid-state storage. When we wished to (1) insert a record into a non-unique secondary index, (2) delete-mark a secondary index record, (3) delete a secondary index record as part of purge (but not ROLLBACK), and the B-tree leaf page where the record belongs to is not in the buffer pool, we inserted a record into the change buffer B-tree, indexed by the page identifier. When the page was eventually read into the buffer pool, we looked up the change buffer B-tree for any modifications to the page, applied these upon the completion of the read operation. This was called the insert buffer merge. We remove the change buffer, because it has been the source of various hard-to-reproduce corruption bugs, including those fixed in commit 5b9ee8d8193a8c7a8ebdd35eedcadc3ae78e7fc1 and commit 165564d3c33ae3d677d70644a83afcb744bdbf65 but not limited to them. A downgrade will fail with a clear message starting with commit db14eb16f9977453467ec4765f481bb2f71814ba (MDEV-30106). buf_page_t::state: Merge IBUF_EXIST to UNFIXED and WRITE_FIX_IBUF to WRITE_FIX. buf_pool_t::watch[]: Remove. trx_t: Move isolation_level, check_foreigns, check_unique_secondary, bulk_insert into the same bit-field. The only purpose of trx_t::check_unique_secondary is to enable bulk insert into an empty table. It no longer enables insert buffering for UNIQUE INDEX. btr_cur_t::thr: Remove. This field was originally needed for change buffering. Later, its use was extended to cover SPATIAL INDEX. Much of the time, rtr_info::thr holds this field. When it does not, we will add parameters to SPATIAL INDEX specific functions. ibuf_upgrade_needed(): Check if the change buffer needs to be updated. ibuf_upgrade(): Merge and upgrade the change buffer after all redo log has been applied. Free any pages consumed by the change buffer, and zero out the change buffer root page to mark the upgrade completed, and to prevent a downgrade to an earlier version. dict_load_tablespaces(): Renamed from dict_check_tablespaces_and_store_max_id(). This needs to be invoked before ibuf_upgrade(). btr_cur_open_at_rnd_pos(): Specialize for use in persistent statistics. The change buffer merge does not need this function anymore. btr_page_alloc(): Renamed from btr_page_alloc_low(). We no longer allocate any change buffer pages. btr_cur_open_at_rnd_pos(): Specialize for use in persistent statistics. The change buffer merge does not need this function anymore. row_search_index_entry(), btr_lift_page_up(): Add a parameter thr for the SPATIAL INDEX case. rtr_page_split_and_insert(): Specialized from btr_page_split_and_insert(). rtr_root_raise_and_insert(): Specialized from btr_root_raise_and_insert(). Note: The support for upgrading from the MySQL 3.23 or MySQL 4.0 change buffer format that predates the MySQL 4.1 introduction of the option innodb_file_per_table was removed in MySQL 5.6.5 as part of mysql/mysql-server@69b6241a79876ae98bb0c9dce7c8d8799d6ad273 and MariaDB 10.0.11 as part of 1d0f70c2f894b27e98773a282871d32802f67964. In the tests innodb.log_upgrade and innodb.log_corruption, we create valid (upgraded) change buffer pages. Tested by: Matthias Leich
* | | | | | | | | MDEV-29983 Deprecate innodb_file_per_tableMarko Mäkelä2023-01-1125-36/+2
|/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before commit 6112853cdab2770e92f9cfefdfef9c0a14b71cb7 in MySQL 4.1.1 introduced the parameter innodb_file_per_table, all InnoDB data was written to the InnoDB system tablespace (often named ibdata1). A serious design problem is that once the system tablespace has grown to some size, it cannot shrink even if the data inside it has been deleted. There are also other design problems, such as the server hang MDEV-29930 that should only be possible when using innodb_file_per_table=0 and innodb_undo_tablespaces=0 (storing both tables and undo logs in the InnoDB system tablespace). The parameter innodb_change_buffering was deprecated in commit b5852ffbeebc3000982988383daeefb0549e058a. Starting with commit baf276e6d4a44fe7cdf3b435c0153da0a42af2b6 (MDEV-19229) the number of innodb_undo_tablespaces can be increased, so that the undo logs can be moved out of the system tablespace of an existing installation. If all these things (tables, undo logs, and the change buffer) are removed from the InnoDB system tablespace, the only variable-size data structure inside it is the InnoDB data dictionary. DDL operations on .ibd files was optimized in commit 86dc7b4d4cfe15a2d37f8b5f60c4fce5dba9491d (MDEV-24626). That should have removed any thinkable performance advantage of using innodb_file_per_table=0. Since there should be no benefit of setting innodb_file_per_table=0, the parameter should be deprecated. Starting with MySQL 5.6 and MariaDB Server 10.0, the default value is innodb_file_per_table=1.
* | | | | | | | Merge branch '10.10' into 10.11Daniel Black2022-12-152-0/+4
|\ \ \ \ \ \ \ \ | |/ / / / / / /
| * | | | | | | Merge branch '10.8' into 10.9Daniel Black2022-12-152-0/+4
| |\ \ \ \ \ \ \ | | |/ / / / / /
| | * | | | | | Add missing error suppressionMarko Mäkelä2022-12-142-0/+4
| | | | | | | |
* | | | | | | | Merge 10.10 into 10.11Marko Mäkelä2022-12-142-2/+2
|\ \ \ \ \ \ \ \ | |/ / / / / / /
| * | | | | | | Merge 10.8 into 10.9Marko Mäkelä2022-12-132-2/+2
| |\ \ \ \ \ \ \ | | |/ / / / / /
| | * | | | | | Merge 10.7 into 10.8Marko Mäkelä2022-12-132-2/+2
| | |\ \ \ \ \ \ | | | |/ / / / /
| | | * | | | | Merge 10.6 into 10.7Marko Mäkelä2022-12-132-2/+2
| | | |\ \ \ \ \ | | | | |/ / / /
| | | | * | | | Merge 10.5 into 10.6Marko Mäkelä2022-12-132-2/+2
| | | | |\ \ \ \ | | | | | |/ / /
| | | | | * | | Merge 10.4 into 10.5Marko Mäkelä2022-12-132-2/+2
| | | | | |\ \ \ | | | | | | |/ /
| | | | | | * | Merge 10.3 into 10.4Marko Mäkelä2022-12-131-1/+0
| | | | | | |\ \ | | | | | | | |/
| | | | | | | * MDEV-29144 ER_TABLE_SCHEMA_MISMATCH or crash on DISCARD/IMPORTMarko Mäkelä2022-12-091-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mysql_discard_or_import_tablespace(): On successful ALTER TABLE...DISCARD TABLESPACE, evict the table handle from the table definition cache, so that ha_innobase::close() will be invoked, like InnoDB expects to be the case. This will avoid an assertion failure ut_a(table->get_ref_count() == 0) during IMPORT TABLESPACE. ha_innobase::open(): Do not issue any ER_TABLESPACE_DISCARDED warning. Member functions for DML will do that. ha_innobase::truncate(), ha_innobase::check_if_supported_inplace_alter(): Issue ER_TABLESPACE_DISCARDED warnings, to compensate for the removal of the warning in ha_innobase::open(). row_quiesce_write_indexes(): Only write information about committed indexes. The ALTER TABLE t NOWAIT ADD INDEX(c) in the nondeterministic test case will most of the time fail due to a metadata lock (MDL) timeout and leave behind an uncommitted index. Reviewed by: Sergei Golubchik
| | | | | | | * MDEV-27882 Innodb - recognise MySQL-8.0 innodb flags and give a specific ↵Daniel Black2022-11-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | error message Per fsp0types.h, SDI is on tablespace flags position 14 where MariaDB stores its pagesize. Flag at position 13, also in MariaDB pagesize flags, is a MySQL encryption flag. These are checked only if fsp_flags_is_valid fails, so valid MariaDB pages sizes don't become errors. The error message "Cannot reset LSNs in table" was rather specific and not always true to replaced with more generic error. ALTER TABLE tbl IMPORT TABLESPACE now reports Unsupported on MySQL tablespace (rather than index corrupted) along with a server error message. MySQL innodb Errors are with with UNSUPPORTED rather than CORRUPTED to avoid user anxiety. Reviewer: Marko Mäkelä
* | | | | | | | Merge 10.10 into 10.11Marko Mäkelä2022-12-071-0/+24
|\ \ \ \ \ \ \ \ | |/ / / / / / /
| * | | | | | | Merge 10.8 into 10.9Marko Mäkelä2022-12-071-0/+24
| |\ \ \ \ \ \ \ | | |/ / / / / /
| | * | | | | | Merge 10.7 into 10.8Marko Mäkelä2022-12-071-0/+24
| | |\ \ \ \ \ \ | | | |/ / / / /
| | | * | | | | Merge 10.6 into 10.7Marko Mäkelä2022-12-071-0/+24
| | | |\ \ \ \ \ | | | | |/ / / /
| | | | * | | | MDEV-28206: SIGSEGV in Item_field::fix_fields when using LEAD...OVERDaniel Black2022-12-021-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | thd->lex->in_sum_func->max_arg_level cannot be set to a bigger value of select->nest_level if select is null.
* | | | | | | | Merge 10.10 into 10.11Marko Mäkelä2022-11-3011-20/+198
|\ \ \ \ \ \ \ \ | |/ / / / / / /
| * | | | | | | Merge 10.8 into 10.9Marko Mäkelä2022-11-3011-20/+198
| |\ \ \ \ \ \ \ | | |/ / / / / /
| | * | | | | | Merge 10.7 into 10.8Marko Mäkelä2022-11-3011-20/+198
| | |\ \ \ \ \ \ | | | |/ / / / /
| | | * | | | | Merge 10.6 into 10.7Marko Mäkelä2022-11-3011-21/+199
| | | |\ \ \ \ \ | | | | |/ / / /
| | | | * | | | Merge 10.5 into 10.6Marko Mäkelä2022-11-301-9/+1
| | | | |\ \ \ \ | | | | | |/ / /
| | | | | * | | MDEV-24412: Create a separate testMarko Mäkelä2022-11-301-9/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some builders in our CI, most notably FreeBSD and IBM AIX, do not support sparse files. Also, Microsoft Windows requires special means for creating sparse files. Since these platforms do not run ./mtr --big-test, we will for now simply move the test to a separate file that requires that option.
| | | | * | | | MDEV-30119 INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION.NAME is NULL for ↵Thirunarayanan Balathandayuthapani2022-11-2910-12/+198
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | undo tablespaces - Information_schema.innodb_tablespaces_encryption should print undo tablespace name as innodb_undo001, innodb_undo002 and soon. - Encryption test should include undo tablespaces count when the tests are waiting for the condition to check whether all tables are encrypted or decrypted.
* | | | | | | | Merge 10.10 into 10.11Marko Mäkelä2022-11-281-0/+8
|\ \ \ \ \ \ \ \ | |/ / / / / / /
| * | | | | | | Merge 10.8 into 10.9Marko Mäkelä2022-11-281-0/+8
| |\ \ \ \ \ \ \ | | |/ / / / / /
| | * | | | | | Merge 10.7 into 10.8Marko Mäkelä2022-11-281-0/+8
| | |\ \ \ \ \ \ | | | |/ / / / /