summaryrefslogtreecommitdiff
path: root/mysql-test/suite
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'upstream/10.4' into 10.5Vicențiu Ciorbaru2021-09-10121-1641/+3406
|\
| * post-merge fixSergei Golubchik2021-09-091-0/+2
| |
| * Merge remote-tracking branch 'upstream/10.3' into 10.4Vicențiu Ciorbaru2021-09-09113-1584/+3182
| |\
| | * Merge branch '10.2' into 10.3Vicențiu Ciorbaru2021-09-07113-1584/+3182
| | |\
| | | * MDEV-25325 built-in documentation for performance_schema tablesHaidong Ji2021-09-07107-1582/+3072
| | | | | | | | | | | | | | | | | | | | | | | | Improve documentation of performance_schema tables by appending COLUMN comments to tables. Additionally improve test coverage and update corresponding tests.
| | | * MDEV-26518 ; Galera incorrectly handles primary or unique keys with any ↵bb-10.2-MDEV-26517Jan Lindström2021-09-024-0/+108
| | | | | | | | | | | | | | | | | | | | | | | | | | | | multi-byte character set We need to set temporary buffer large enough to fit also multi-byte characters.
| | | * MDEV-26517 : Galera test failure on galera_fk_cascade_delete_debugJan Lindström2021-09-021-1/+1
| | | | | | | | | | | | | | | | | | | | Move --error on --reap where it belongs and take a account that there could be different return codes.
| * | | MDEV-25951 MariaDB crash after ALTER TABLE convert to utf8mb4bb-10.4-MDEV-25951-instant-utfEugene Kosov2021-09-082-0/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug happens when partially indexed CHAR or VARCHAR field in converted from utf8mb3 to utf8mb4. Fixing by relaxing assertions. For some time dict_index_t and dict_table_t are becoming not synchronized. Namely, dict_index_t has a new prefix_len which is a multiple of a user-provided length and charset->mbmaxlen. But the table still have and old mbmaxlen and assertion fails. This happens only during utf8mb3 -> utf8mb4 conversions and the magic number 4 comes from utf8mb_4_. At the end of ALTER TABLE (innobase_rename_or_enlarge_columns_cache()) dict_index_t and dict_table_t became synchronized again and will stay so at all times. For, example, they will be synchronized on table load and newly added assertion proves that.
| * | | MDEV-26503 : galera_3nodes.galera_wsrep_schema MTR failed: mysql_shutdown failedbb-10.4-MDEV-26502Jan Lindström2021-09-072-55/+41
| | | | | | | | | | | | | | | | Add wait conditions and clean up.
| * | | MDEV-26502 : galera.galera_applier_ftwrl_table_alter MTR failed : Result ↵Jan Lindström2021-09-071-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | content mismatch Add wait conditions and remove unnecessary sleep.
| * | | MDEV-25718 Assertion `transaction.is_streaming()' failedDaniele Sciascia2021-09-063-0/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * Update wsrep-lib which contains the fix * Add deterministic test case that reproduces the assertion Reviewed-by: Jan Lindström <jan.lindstrom@mariadb.com>
* | | | Added support for CHECK TABLE for S3 tablesMonty2021-09-013-18/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Other things: - Don't allocate an IO_CACHE for scanning tables of type BLOCK (It was never used in this case) - Fixed bug in page cache that cased a hang when trying to read a not existing S3 block.
* | | | Added support for ANALYZE TABLE to S3 tablesMonty2021-09-013-3/+59
| | | | | | | | | | | | | | | | | | | | Other things - Cleaned up error messages for CHECK, REPAIR and OPTIMIZE
* | | | Merge 10.4 into 10.5Marko Mäkelä2021-08-312-0/+22
|\ \ \ \ | |/ / /
| * | | Merge 10.3 into 10.4Marko Mäkelä2021-08-314-7/+24
| |\ \ \ | | |/ /
| | * | MDEV 22785 Crash with prepared statements and NEXTVAL()Michael Widenius2021-08-262-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The problem was that a PREARE followed by a non prepared statement using DEFAULT NEXT_VALUE() could change table->next_local to point to a not persitent memory aria. The next EXECUTE would then try to use the wrong pointer, which could cause a crash. Fixed by reseting the pointer to it's old value when doing EXECUTE.
| | * | Fixed failing maria.repair testMichael Widenius2021-08-262-7/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Backported patch from MariaDB 10.6 The issue was that the using session_mem_used to break a test does not guarantee where the test breaks, which gives different results depending on the environment or how MariaDB is compield.
* | | | Merge 10.4 into 10.5Marko Mäkelä2021-08-262-2/+4
|\ \ \ \ | |/ / /
| * | | After-merge fix f84e28c119b495da77e197f7cd18af4048fc3126Marko Mäkelä2021-08-252-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In a rebase of the merge, two preceding commits were accidentally reverted: commit 112b23969a30ba6441efa5e22a3017435febfa17 (MDEV-26308) commit ac2857a5fbf851d90171ac55f23385869ee6ba83 (MDEV-25717) Thanks to Daniele Sciascia for noticing this.
* | | | Merge 10.4 into 10.5Marko Mäkelä2021-08-251-0/+2
|\ \ \ \ | |/ / /
| * | | Merge 10.3 into 10.4Marko Mäkelä2021-08-251-0/+2
| |\ \ \ | | |/ /
| | * | Merge 10.2 into 10.3Marko Mäkelä2021-08-231-0/+2
| | |\ \ | | | |/
| | | * Disable 2 commonly failing innodb_gis testsMarko Mäkelä2021-08-231-0/+2
| | | |
* | | | Merge 10.4 into 10.5Marko Mäkelä2021-08-232-0/+22
|\ \ \ \ | |/ / /
| * | | Merge 10.3 into 10.4Marko Mäkelä2021-08-232-0/+24
| |\ \ \ | | |/ /
| | * | MDEV-26458 Crash on ALTER TABLE after DISCARD TABLESPACEMarko Mäkelä2021-08-232-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ha_innobase::check_if_supported_inplace_alter(): Do not invoke innobase_table_is_empty() if the tablespace has been discarded. That is, native ALTER TABLE in InnoDB will treat an empty table in the same way as a tablespace whose tablespace has been discarded. (Note: ALTER TABLE...ALGORITHM=COPY will fail if the tablespace has been discarded.) This fixes a crash that was introduced in commit c755974775a7a7f4fc24abeacd2fc9ea7bf0c247 (MDEV-19611).
* | | | MDEV-26439 Typo in Foreign Key error messageMarko Mäkelä2021-08-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | foreign_push_index_error(): Fix a typo of 'match' that was introduced in commit 5130f5206c150ba1e8a723aae63884ff64408012 (MDEV-20480). Thanks to Oli Sennhauser for reporting this.
* | | | Merge 10.4 into 10.5Marko Mäkelä2021-08-193-2/+3
|\ \ \ \ | |/ / /
| * | | After-merge fixup f84e28c119b495da77e197f7cd18af4048fc3126st-10.4-thiruThirunarayanan Balathandayuthapani2021-08-192-1/+3
| | | |
* | | | MDEV-20931 fixupMarko Mäkelä2021-08-192-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The merge commit 4a2595727465648f2d4e794d1b2f182345f0bee8 caused a test failure on Windows. The suppression regexp needs to accept the backslash. fil_invalid_page_access_msg(): Simplify the implementation and invoke sql_print_error() directly. fil_space_t::io(): Invoke fil_invalid_page_access_msg() only from one location.
* | | | Merge 10.4 into 10.5Marko Mäkelä2021-08-1825-45/+631
|\ \ \ \ | |/ / /
| * | | Merge 10.3 into 10.4Marko Mäkelä2021-08-1820-40/+445
| |\ \ \ | | |/ /
| | * | Merge 10.2 into 10.3Marko Mäkelä2021-08-181-0/+1
| | |\ \ | | | |/
| | | * MDEV-20931 fixup: innodb.import_corrupted test case cleanupMarko Mäkelä2021-08-181-0/+1
| | | |
| | * | MDEV-21555 Assertion secondary index is out of sync on delete from versioned ↵Aleksey Midenkov2021-08-182-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | table Delete-marked record is on the secondary index and the clustered index already purged the corresponding record. We cannot detect if such record is historical and we should not: the algorithm of row_ins_check_foreign_constraint() skips such record anyway.
| | * | Merge 10.2 into 10.3Marko Mäkelä2021-08-1811-29/+350
| | |\ \ | | | |/ | | | | | | | | MDEV-18734 FIXME: vcol.partition triggers ASAN heap-use-after-free
| | | * MDEV-26131 fixup: ./mtr --embedded encryption.innodb_importMarko Mäkelä2021-08-181-0/+1
| | | |
| | | * MDEV-20931 ALTER...IMPORT can crash the serverEugene Kosov2021-08-172-0/+98
| | | | | | | | | | | | | | | | | | | | Main idea: don't log-and-crash but propogate error to the upper layers of stack to handle it and show to a user.
| | | * MDEV-26131 SEGV in ha_innobase::discard_or_import_tablespaceThirunarayanan Balathandayuthapani2021-08-165-29/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Import operation without .cfg file fails when there is mismatch of index between metadata table and .ibd file. Moreover, MDEV-19022 shows that InnoDB can end up with index tree where non-leaf page has only one child page. So it is unsafe to find the secondary index root page. This patch does the following when importing the table without .cfg file: 1) If the metadata contains more than one index then InnoDB stops the import operation and report the user to drop all secondary indexes before doing import operation. 2) When the metadata contain only clustered index then InnoDB finds the index id by reading page 0 & page 3 instead of traversing the whole tablespace.
| | | * MDEV-18734 ASAN heap-use-after-free upon sorting by blob column from ↵Aleksey Midenkov2021-08-054-0/+182
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | partitioned table ha_partition stores records in array of m_ordered_rec_buffer and uses it for prio queue in ordered index scan. When the records are restored from the array the blob buffers may be already freed or rewritten. The solution is to take temporary ownership of cached blob buffers via String::swap(). When the record is restored from m_ordered_rec_buffer the ownership is returned to table fields. Cleanups: init_record_priority_queue(): removed needless !m_ordered_rec_buffer check as there is same assertion few lines before. dbug_print_row() for arbitrary row pointer
| | * | MDEV-26206 gap lock is not set if implicit lock existsVlad Lesin2021-08-173-1/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If lock type is LOCK_GAP or LOCK_ORDINARY, and the transaction holds implicit lock for the record, then explicit gap-lock will not be set for the record, as lock_rec_convert_impl_to_expl() returns true and lock_rec_convert_impl_to_expl() bypasses lock_rec_lock() call. The fix converts explicit lock to implicit one if requested lock type is not LOCK_REC_NOT_GAP. innodb_information_schema test result is also changed as after the fix the following statements execution: SET autocommit=0; INSERT INTO t1 VALUES (5,10); SELECT * FROM t1 FOR UPDATE; leads to additional gap lock requests.
| * | | MDEV-25717 Assertion `owning_thread_id_ == wsrep::this_thread::get_id()'Daniele Sciascia2021-08-182-0/+160
| | | | | | | | | | | | | | | | | | | | | | | | | | | | A test case to reproduce the issue. The actual fix is in galera library. Reviewed-by: Jan Lindström <jan.lindstrom@mariadb.com>
| * | | MDEV-26308 : Galera test failure on galera.galera_split_brainLeandro Pacheco2021-08-182-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Contains following fixes: * allow TOI commands to timeout while trying to acquire TOI with override lock_wait_timeout with a LONG_TIMEOUT only after succesfully entering TOI * only ignore lock_wait_timeout on TOI * fix galera_split_brain test as TOI operation now returns ER_LOCK_WAIT_TIMEOUT after lock_wait_timeout * explicitly test for TOI Reviewed-by: Jan Lindström <jan.lindstrom@mariadb.com>
| * | | MDEV-20215: binlog.show_concurrent_rotate failed in buildbot with wrong resultBrandon Nesterenko2021-08-132-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: ======= There are two issues that are addressed in this patch: 1) SHOW BINARY LOGS uses caching to store the binary logs that exist in the log directory; however, if new events are written to the logs, the caching strategy is unaware. This is okay for users, as it is okay for SHOW to return slightly old data. The test, however, can result in inconsistent data. It runs two connections concurrently, where one shows the logs, and the other adds a new file. The output of SHOW BINARY LOGS then depends on when the cache is built, with respect to the time that the second connection rotates the logs. 2) There is a race condition between RESET MASTER and SHOW BINARY LOGS. More specifically, where they both need the binary log lock to begin, SHOW BINARY LOGS only needs the lock to build its cache. If RESET MASTER is issued after SHOW BINARY LOGS has built its cache and before it has returned the results, the presented data may be incorrect. Solution: ======== 1) As it is okay for users to see stale data, to make the test consistent, use DEBUG_SYNC to force the race condition (problem 2) to make SHOW BINARY LOGS build a cache before RESET MASTER is called. Then, use additional logic from the next part of the solution to rebuild the cache. 2) Use an Atomic_counter to keep track of the number of times RESET MASTER has been called. If the value of the counter changes after building the cache, the cache should be rebuilt and the analysis should be restarted. Reviewed By: ============ Andrei Elkin: <andrei.elkin@mariadb.com>
| * | | Fix test failure on galera_as_slave_replay by adding wait_conditionsJan Lindström2021-08-062-7/+23
| | | |
* | | | MDEV-26273 InnoDB FTS DDL fails when innodb_force_recovery is set to 2Thirunarayanan Balathandayuthapani2021-08-162-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | InnoDB DDL fails when it tries to sync the table when innodb_force_recovery is set to 2. Problem is that fts_optimize_wq is not initialized when there are no background threads. fts_sync_during_ddl() should check whether fts_optimize_wq is initialized.
* | | | Merge branch '10.4' into 10.5Oleksandr Byelkin2021-08-025-0/+68
|\ \ \ \ | |/ / /
| * | | Merge branch '10.3' into 10.4mariadb-10.4.21Oleksandr Byelkin2021-08-025-0/+68
| |\ \ \ | | |/ /
| | * | Merge branch '10.2' into 10.3mariadb-10.3.31Oleksandr Byelkin2021-08-025-0/+68
| | |\ \ | | | |/
| | | * MDEV-26220 Server crashes with indexed by prefix virtual columnmariadb-10.2.40Nikita Malyavin2021-08-023-0/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Server crashes in Field::register_field_in_read_map upon select from partitioned table with indexed by prefix virtual column. After several read-mark fixes a problem has surfaced: Since KEY (c(10),a) uses only a prefix of c, a new field is created, duplicated from table->field[3], with a new length. However, vcol_inco->expr is not copied. Therefore, (*key_info)->key_part[i].field->vcol_info->expr was left NULL in ha_partition::index_init(). Solution: copy vcol_info from table field when it's set up.