summaryrefslogtreecommitdiff
path: root/mysql-test/suite/innodb/r/innodb-64k.result
Commit message (Collapse)AuthorAgeFilesLines
* Merge 10.3 into 10.4Marko Mäkelä2022-10-111-1/+3
|\
| * MDEV-29742 heap number overflowMarko Mäkelä2022-10-101-1/+3
| | | | | | | | | | | | | | A previous fix in commit efd8af535a4fa4aa3dd89a325340b6eb648e1bc8 failed to cover ALTER TABLE. PageBulk::isSpaceAvailable(): Check for record heap number overflow.
* | Merge 10.3 into 10.4Marko Mäkelä2022-09-131-3/+3
|\ \ | |/
| * MDEV-29446 Change SHOW CREATE TABLE to display default collationAlexander Barkov2022-09-121-3/+3
| |
* | Merge 10.3 into 10.4, except MDEV-22543Marko Mäkelä2020-08-131-0/+7
|\ \ | |/ | | | | Also, fix GCC -Og -Wmaybe-uninitialized in run_backup_stage()
| * Merge 10.1 into 10.2Marko Mäkelä2020-08-131-0/+7
| |\
| | * MDEV-19526 heap number overflow on innodb_page_size=64kMarko Mäkelä2020-08-121-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | InnoDB only reserves 13 bits for the heap number in the record header, limiting the heap number to be at most 8191. But, when using innodb_page_size=64k and secondary index records of 7 bytes each, it is possible to exceed the maximum heap number. btr_cur_optimistic_insert(): Let the operation fail if the maximum number of records would be exceeded. page_mem_alloc_heap(): Move to the same compilation unit with the only caller, and let the operation fail if the maximum heap number has been allocated already.
* | | Write information about restart in .resultMichael Widenius2019-04-011-0/+1
|/ / | | | | | | Idea comes from MySQL which does something similar
* | Merge 10.1 into 10.2Marko Mäkelä2017-10-251-1/+2
|\ \ | |/
| * Merge 10.0 into 10.1Marko Mäkelä2017-10-241-1/+2
| |
* | Merge branch '10.1' into 10.2Sergei Golubchik2017-08-171-483/+431
|\ \ | |/
| * MDEV-11828: innodb_page_size=64k must reject ROW_FORMAT=REDUNDANT records ↵Jan Lindström2017-07-121-75/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | longer than 16383 bytes In all InnoDB row formats, the pointers or lengths stored in the record header can be at most 14 bits, that is, count up to 16383. In ROW_FORMAT=REDUNDANT, this limits the maximum possible record length to 16383 bytes. In other ROW_FORMAT, it could merely limit the maximum length of variable-length fields. When MySQL 5.7 introduced innodb_page_size=32k and 64k, the maximum record length was limited to 16383 bytes (I hope 16383, not 16384, to be able to distinguish from a record whose length is 0 bytes). This change is present in MariaDB Server 10.2. btr_cur_optimistic_update(): Restrict maximum record size to 16K-1 for REDUNDANT and 64K page size. dict_index_too_big_for_tree(): The maximum allowed record size is half a B-tree page or 16K(-1 for REDUNDANT) for 64K page size. convert_error_code_to_mysql(): Fix error message to print correct limits. my_error_innodb(): Fix error message to print correct limits. page_zip_rec_needs_ext() : record size was already restricted to 16K. Restrict REDUNDANT to 16K-1. rem0rec.h: Introduce REDUNDANT_REC_MAX_DATA_SIZE (16K-1) and COMPRESSED_REC_MAX_DATA_SIZE (16K).
* | MDEV-11782: Redefine the innodb_encrypt_log formatMarko Mäkelä2017-02-151-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Write only one encryption key to the checkpoint page. Use 4 bytes of nonce. Encrypt more of each redo log block, only skipping the 4-byte field LOG_BLOCK_HDR_NO which the initialization vector is derived from. Issue notes, not warning messages for rewriting the redo log files. recv_recovery_from_checkpoint_finish(): Do not generate any redo log, because we must avoid that before rewriting the redo log files, or otherwise a crash during a redo log rewrite (removing or adding encryption) may end up making the database unrecoverable. Instead, do these tasks in innobase_start_or_create_for_mysql(). Issue a firm "Missing MLOG_CHECKPOINT" error message. Remove some unreachable code and duplicated error messages for log corruption. LOG_HEADER_FORMAT_ENCRYPTED: A flag for identifying an encrypted redo log format. log_group_t::is_encrypted(), log_t::is_encrypted(): Determine if the redo log is in encrypted format. recv_find_max_checkpoint(): Interpret LOG_HEADER_FORMAT_ENCRYPTED. srv_prepare_to_delete_redo_log_files(): Display NOTE messages about adding or removing encryption. Do not issue warnings for redo log resizing any more. innobase_start_or_create_for_mysql(): Rebuild the redo logs also when the encryption changes. innodb_log_checksums_func_update(): Always use the CRC-32C checksum if innodb_encrypt_log. If needed, issue a warning that innodb_encrypt_log implies innodb_log_checksums. log_group_write_buf(): Compute the checksum on the encrypted block contents, so that transmission errors or incomplete blocks can be detected without decrypting. Rewrite most of the redo log encryption code. Only remember one encryption key at a time (but remember up to 5 when upgrading from the MariaDB 10.1 format.)
* | Remove references to innodb_file_format.Marko Mäkelä2017-01-181-2/+0
|/ | | | | | | | | | innodb_file_format=Barracuda is the default in MariaDB 10.2. Do not set it, because the option will be removed in MariaDB 10.3. Also, do not set innodb_file_per_table=1 because it is the default. Note that MDEV-11828 should fix the test innodb.innodb-64k already in 10.1.
* MDEV-9040: 10.1.8 fails after upgrade from 10.0.21Jan Lindström2015-11-051-20/+3
| | | | | | | | | | | | | | | | | | | | | Analysis: Lengths which are not UNIV_SQL_NULL, but bigger than the following number indicate that a field contains a reference to an externally stored part of the field in the tablespace. The length field then contains the sum of the following flag and the locally stored len. This was incorrectly set to define UNIV_EXTERN_STORAGE_FIELD (UNIV_SQL_NULL - UNIV_PAGE_SIZE_MAX) When it should be define UNIV_EXTERN_STORAGE_FIELD (UNIV_SQL_NULL - UNIV_PAGE_SIZE_DEF) Additionally, we need to disable support for > 16K page size for row compressed tables because a compressed page directory entry reserves 14 bits for the start offset and 2 bits for flags. This limits the uncompressed page size to 16k. To support larger pages page directory entry needs to be larger.
* MDEV-6075: Allow > 16K pages on InnoDBJan Lindström2014-05-131-0/+1156
This patch allows up to 64K pages for tables with DYNAMIC, COMPACT and REDUNDANT row types. Tables with COMPRESSED row type allows still only <= 16K page size. Note that single row size must be still <= 16K and max key length is not affected.