summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Improving contraction performance.preview-MDEV-27009-uca-1400Alexander Barkov2021-11-233-12/+228
|
* Performance improvementAlexander Barkov2021-11-233-8/+580
|
* MDEV-27042 UCA: Resetting contractions to ignorable does not work wellAlexander Barkov2021-11-145-27/+111
|
* Preliminary refactoring for "MDEV-27009 Add UCA-14.0.0 collations"Alexander Barkov2021-11-132-25/+31
| | | | It makes the code handling collations with contractions ~10% faster.
* Merge 10.7 into 10.8Marko Mäkelä2021-11-0992-223/+3185
|\
| * Merge 10.6 into 10.7Marko Mäkelä2021-11-0960-101/+1773
| |\
| | * MDEV-26826 fixup for Valgrind and MemorySanitizerMarko Mäkelä2021-11-091-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | The debug assertion that was added in commit 9b967c4c31555174a293922d4717d83b7d68bc76 tripped Valgrind and MemorySanitizer. buf_block_init(): Assert that block->page.hash was zero-initialized.
| | * Merge 10.5 into 10.6Marko Mäkelä2021-11-0959-99/+1770
| | |\
| | | * Merge 10.4 into 10.5Marko Mäkelä2021-11-0946-55/+1536
| | | |\
| | | | * Merge 10.3 into 10.4Marko Mäkelä2021-11-0946-65/+1534
| | | | |\
| | | | | * Merge 10.2 into 10.3Marko Mäkelä2021-11-0929-35/+1362
| | | | | |\
| | | | | | * Remove a warning for clang 11 or earlierMarko Mäkelä2021-11-092-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes up commit d22c8cae00f7a7517c9b8228efbb543037c23c97
| | | | | | * Remove restarts from encrypt_and_grep testst-10.2-mergeMarko Mäkelä2021-11-092-10/+12
| | | | | | |
| | | | | | * Merge mariadb-10.2.41 into 10.2Marko Mäkelä2021-11-0923-277/+477
| | | | | | |\
| | | | | | * | MDEV-26561 mariabackup release locksDaniel Black2021-11-091-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous threads locked need to be released too. This occurs if the initialization of any of the non-first mutex/conditition variables errors occurs.
| | | | | | * | MDEV-26561 Fix a bug due to unreleased lockryancaicse2021-11-091-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix a bug of unreleased lock ctrl_mutex in the method create_worker_threads
| | | | | | * | bump the VERSIONbb-10.2-bumpversionDaniel Bartholomew2021-11-081-1/+1
| | | | | | | |
| | | | | | * | MDEV-22522 RPM packages have meaningless summary/descriptionAlexey Bychko2021-11-081-6/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | added summary/description per package.
| | | | | | * | MDEV-25610 Assertion `escape != -1' failed in Item_func_like::val_intbb-10.2-bar-MDEV-25610Alexander Barkov2021-11-086-2/+1123
| | | | | | | |
| | | | | | * | appveyor - do not use buggy cygwin bison.Vladislav Vaintroub2021-11-041-1/+7
| | | | | | | |
| | | | | | * | Revert "MDEV-19129: Xcode compatibility update: deprecated vfork -> fork"Sergei Krivonos2021-11-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 5d6f3cebca77ee650e6cde3bd738d1fac0a8110c.
| | | | | | * | MDEV-22284 Aria table key read crash because wrong index usedbb-10.2-midenok2Aleksey Midenkov2021-11-023-1/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When restoring lastinx last_key.keyinfo must be updated as well. The good example is in _ma_check_index(). The point of failure is extra(HA_EXTRA_NO_KEYREAD) in ha_maria::get_auto_increment(): 1. extra(HA_EXTRA_KEYREAD) saves lastinx; 2. maria_rkey() changes index, so the lastinx and last_key.keyinfo; 3. extra(HA_EXTRA_NO_KEYREAD) restores lastinx but not last_key.keyinfo. So we have discrepancy between lastinx and last_key.keyinfo after 3.
| | | | | | * | MDEV-24335 Unexpected question mark in the end of a TINYTEXT columnAlexander Barkov2021-11-023-2/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | my_copy_fix_mb() passed MIN(src_length,dst_length) to my_append_fix_badly_formed_tail(). It could break a multi-byte character in the middle, which put the question mark to the destination. Fixing the code to pass the true src_length to my_append_fix_badly_formed_tail().
| | | | | | * | MDEV-26949 --debug-gdb installs redundant signal handlersMarko Mäkelä2021-11-012-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is a server startup option --gdb a.k.a. --debug-gdb that requests signals to be set for more convenient debugging. Most notably, SIGINT (ctrl-c) will not be ignored, and you will be able to interrupt the execution of the server while GDB is attached to it. When we are debugging, the signal handlers that would normally display a terse stack trace are useless. When we are debugging with rr, the signal handlers may interfere with a SIGKILL that could be sent to the process by the environment, and ruin the rr replay trace, due to a Linux kernel bug https://lkml.org/lkml/2021/10/31/311 To be able to diagnose bugs in kill+restart tests, we may really need both a trace before the SIGKILL and a trace of the failure after a subsequent server startup. So, we had better avoid hitting the problem by simply not installing those signal handlers.
| | | | | | * | MDEV-19129: Xcode compatibility update: #include <editline/readline.h> pathSergei Krivonos2021-10-311-1/+5
| | | | | | | |
| | | | | | * | MDEV-19129: Xcode compatibility update: deprecated vfork -> forkSergei Krivonos2021-10-311-1/+1
| | | | | | | |
| | | | | | * | MDEV-24901 SIGSEGV in fts_get_table_name, SIGSEGV in ib_vector_size, SIGSEGV ↵bb-10.2-bar-MDEV-24901Alexander Barkov2021-10-295-4/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in row_merge_fts_doc_tokenize, stack smashing strmake() puts one extra 0x00 byte at the end of the string. The code in my_strnxfrm_tis620[_nopad] did not take this into account, so in the reported scenario the 0x00 byte was put outside of a stack variable, which made ASAN crash. This problem is already fixed in in MySQL: commit 19bd66fe43c41f0bde5f36bc6b455a46693069fb Author: bin.x.su@oracle.com <> Date: Fri Apr 4 11:35:27 2014 +0800 But the fix does not seem to be correct, as it breaks when finds a zero byte in the source string. Using memcpy() instead of strmake(). - Unlike strmake(), memcpy() it does not write beyond the destination size passed. - Unlike the MySQL fix, memcpy() does not break on the first 0x00 byte found in the source string.
| | | | | | * | MDEV-26833 Missed statement rollback in case transaction drops or create ↵bb-10.2-andreiAndrei Elkin2021-10-289-51/+1211
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | temporary table When transaction creates or drops temporary tables and afterward its statement faces an error even the transactional table statement's cached ROW format events get involved into binlog and are visible after the transaction's commit. Fixed with proper analysis of whether the errored-out statement needs to be rolled back in binlog. For instance a fact of already cached CREATE or DROP for temporary tables by previous statements alone does not cause to retain the being errored-out statement events in the cache. Conversely, if the statement creates or drops a temporary table itself it can't be rolled back - this rule remains.
| | | | | | * | rpl_get_master_version_and_clock and rpl_row_big_table_id tests are slow, so ↵Alice Sherepa2021-10-282-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | let's not run them under valgrind
| | | | | * | | Merge mariadb-10.3.32 into 10.3Marko Mäkelä2021-11-0938-368/+1749
| | | | | |\ \ \
| | | | | * | | | bump the VERSIONbb-10.3-bumpversionDaniel Bartholomew2021-11-081-1/+1
| | | | | | | | |
| | | | | * | | | MDEV-26928 Column-inclusive WITH SYSTEM VERSIONING doesn't work with ↵Aleksey Midenkov2021-11-023-5/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | explicit system fields versioning_fields flag indicates that any columns were specified WITH SYSTEM VERSIONING. In that case we imply WITH SYSTEM VERSIONING for the whole table and WITHOUT SYSTEM VERSIONING for the other columns.
| | | | | * | | | MDEV-25552 system versioned partitioned by LIMIT tables break CHECK TABLEAleksey Midenkov2021-11-022-7/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replaced HA_ADMIN_NOT_IMPLEMENTED error code by HA_ADMIN_OK. Now CHECK TABLE does not fail by unsupported check_misplaced_rows(). Admin message is not needed as well. Test case is the same as for MDEV-21011 (a7cf0db3d86), the result have been changed.
| | | | | * | | | MDEV-25803 innodb.alter_candidate_key fixAleksey Midenkov2021-11-024-10/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is a case when implicit primary key may be changed when removing NOT NULL from the part of unique key. In that case we update modified_primary_key which is then used to not skip key sorting. According to is_candidate_key() there is no other cases when primary kay may be changed implicitly.
| | | | | * | | | MDEV-25803 Inplace ALTER breaks MyISAM/Aria table when order of keys is changedAleksey Midenkov2021-11-025-4/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mysql_prepare_create_table() does my_qsort(sort_keys) on key info. This sorting is indeterministic: a table is created with one order and inplace alter may overwrite frm with another order. Since inplace alter does nothing about key info for MyISAM/Aria storage engines this results in discrepancy between frm and storage engine key definitions. The fix avoids the sorting of keys when no new keys added by ALTER (and this is ok for MyISAM/Aria since it cannot add new keys inplace). Notes: mi_keydef_write()/mi_keyseg_write() are used only in mi_create(). They should be used in ha_inplace_alter_table() as well. Aria corruption detection is unimplemented: maria_check_definition() is never used! MySQL 8.0 has this bug as well as of 8.0.26. This breaks main.long_unique in 10.4. The new result is correct and should be applied as it just different (original) order of keys.
| | | | * | | | | Merge branch '10.4' into bb-10.4-releaseOleksandr Byelkin2021-11-089-5/+62
| | | | |\ \ \ \ \
| | | | | * | | | | bump the VERSIONDaniel Bartholomew2021-11-081-1/+1
| | | | | | | | | |
| | | | | * | | | | MDEV-26929: Make the main testsuite runnable with optimizer trace enabledbb-10.4-mdev26929-part2Sergei Petrunia2021-10-292-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Part#2: check that compile-time default @@optimizer_trace is correct.
| | | | | * | | | | MDEV-26453 Assertion `0' failed in row_upd_sec_index_entry & corruptionNikita Malyavin2021-10-294-0/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Long UNIQUE HASH index silently creates virtual column index, which should be impossible for base columns featuring AUTO_INCREMENT. Fix: add a relevant check; add new vcol type for a prettier error message.
| | | | | * | | | | MDEV-26929: fixed opt_trace test for --mysqld=--optimizer_trace=enabled=onbb-10.4-MDEV-26929Sergei Krivonos2021-10-282-4/+4
| | | | | | | | | |
| | | * | | | | | | Merge branch '10.5' into bb-10.5-releaseOleksandr Byelkin2021-11-0818-21/+232
| | | |\ \ \ \ \ \ \
| | | | * | | | | | | bump the VERSIONDaniel Bartholomew2021-11-081-1/+1
| | | | | | | | | | |
| | | | * | | | | | | MDEV-24584 Selecting INT column with COLLATE utf8mb4_general_ci throws an errorbb-10.5-bar-MDEV-24584Alexander Barkov2021-11-085-2/+73
| | | | | | | | | | |
| | | | * | | | | | | MDEV-25555 Server crashes in tree_record_pos after INPLACE-recreating index ↵Aleksey Midenkov2021-11-038-6/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | on HEAP table Drop and add same key is considered rename (look ALTER_RENAME_INDEX in fill_alter_inplace_info()). But in this case order of keys may be changed, because mysql_prepare_alter_table() yet does not know about rename and treats 2 operations: drop and add. In that case we disable inplace algorithm for such engines as Memory, MyISAM and Aria with ALTER_INDEX_ORDER flag. These engines have no specialized check_if_supported_inplace_alter() and default handler::check_if_supported_inplace_alter() sees an unknown flag and returns HA_ALTER_INPLACE_NOT_SUPPORTED. ha_innobase::check_if_supported_inplace_alter() works differently and inplace is not disabled (with the help of modified INNOBASE_INPLACE_IGNORE). add_drop_v_cols fork was also tweaked as it wrongly failed with MSG_UNSUPPORTED_ALTER_ONLINE_ON_VIRTUAL_COLUMN when it seen ALTER_INDEX_ORDER. No-op operation must be still no-op no matter of ALTER_INDEX_ORDER presence, so we tweek its condition as well.
| | | | * | | | | | | MDEV-25803 Inplace ALTER breaks MyISAM/Aria table when order of keys is changedAleksey Midenkov2021-11-038-12/+114
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mysql_prepare_create_table() does my_qsort(sort_keys) on key info. This sorting is indeterministic: a table is created with one order and inplace alter may overwrite frm with another order. Since inplace alter does nothing about key info for MyISAM/Aria storage engines this results in discrepancy between frm and storage engine key definitions. The fix avoids the sorting of keys when no new keys added by ALTER (and this is ok for MyISAM/Aria since it cannot add new keys inplace). There is a case when implicit primary key may be changed when removing NOT NULL from the part of unique key. In that case we update modified_primary_key which is then used to not skip key sorting. According to is_candidate_key() there is no other cases when primary key may be changed implicitly. Notes: mi_keydef_write()/mi_keyseg_write() are used only in mi_create(). They should be used in ha_inplace_alter_table() as well. Aria corruption detection is unimplemented: maria_check_definition() is never used! MySQL 8.0 has this bug as well as of 8.0.26.
| | * | | | | | | | | Merge branch '10.6' into bb-10.6-releaseOleksandr Byelkin2021-11-0821-336/+105
| | |\ \ \ \ \ \ \ \ \
| | | * | | | | | | | | bump the VERSIONDaniel Bartholomew2021-11-081-1/+1
| | | | | | | | | | | |
| * | | | | | | | | | | Merge branch '10.7' into bb-10.7-releaseOleksandr Byelkin2021-11-0826-343/+199
| |\ \ \ \ \ \ \ \ \ \ \
| | * | | | | | | | | | | bump the VERSIONbb-10.7-bumpversionDaniel Bartholomew2021-11-081-1/+1
| | | | | | | | | | | | |
| * | | | | | | | | | | | Merge branch '10.6' into 10.7mariadb-10.7.1Oleksandr Byelkin2021-11-059-50/+1210
| |\ \ \ \ \ \ \ \ \ \ \ \ | | | |/ / / / / / / / / / | | |/| | | | | | | | | |