Commit graph

194507 commits

Author SHA1 Message Date
Oleksandr Byelkin
d8d6e99528 Merge branch '10.5' into bb-10.5-release 2021-11-08 19:40:39 +01:00
Oleksandr Byelkin
de2fa9eced Merge branch '10.4' into bb-10.4-release 2021-11-08 19:39:13 +01:00
Daniel Bartholomew
e026eddc7d
bump the VERSION 2021-11-08 12:56:18 -05:00
Daniel Bartholomew
227b782ad6
bump the VERSION 2021-11-08 12:39:31 -05:00
Daniel Bartholomew
cf06eaf1af
bump the VERSION 2021-11-08 12:21:07 -05:00
Daniel Bartholomew
c85caaa20b
bump the VERSION 2021-11-08 12:03:38 -05:00
Daniel Bartholomew
30b0aa72d6
bump the VERSION 2021-11-08 11:37:22 -05:00
Daniel Bartholomew
8b6dfc3c02
bump the VERSION 2021-11-08 11:26:47 -05:00
Marko Mäkelä
e54a4060b6 Merge 10.7 into 10.8 2021-11-08 12:42:30 +02:00
Alexey Bychko
2a3dae115b MDEV-22522 RPM packages have meaningless summary/description
added summary/description per package.
2021-11-08 16:45:23 +07:00
Marko Mäkelä
3f3ec40c91 MDEV-26664 fixup: clang -Winconsistent-missing-override 2021-11-08 10:24:52 +02:00
Alexander Barkov
bb200599ff MDEV-24584 Selecting INT column with COLLATE utf8mb4_general_ci throws an error 2021-11-08 08:22:18 +04:00
Alexander Barkov
9dc05f1f11 MDEV-25610 Assertion `escape != -1' failed in Item_func_like::val_int 2021-11-08 08:16:48 +04:00
Thirunarayanan Balathandayuthapani
8c9cc2fb6e MDEV-26956 LeakSanitizer/Valgrind errors in trx_mod_table_time_t::start_bulk_insert upon adding system versioning
InnoDB fails to apply buffered insert operation for
'mysql/transaction_registry' table during system versioning DDL.
To avoid this, DDL calls extra(HA_EXTRA_IGNORE_INSERT) to
inform the InnoDB for applying the buffered insert operation.
2021-11-07 04:41:35 +05:30
Oleksandr Byelkin
8bd21167d2 Merge branch '10.6' into 10.7 2021-11-05 21:01:15 +01:00
Oleksandr Byelkin
109fc67d4d Merge branch '10.5' into 10.6 2021-11-05 20:35:45 +01:00
Oleksandr Byelkin
8635be6a29 Merge branch '10.4' into 10.5 2021-11-05 20:33:57 +01:00
Oleksandr Byelkin
a19ab67318 Merge branch '10.3' into 10.4 2021-11-05 19:59:58 +01:00
Oleksandr Byelkin
a2f147af35 Merge branch '10.2' into 10.3 2021-11-05 19:58:32 +01:00
Andrei Elkin
561b6c7e51 MDEV-26833 Missed statement rollback in case transaction drops or create 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.
2021-11-05 19:33:28 +02:00
Marko Mäkelä
2b551edb4e Merge 10.6 into 10.7 2021-11-05 08:13:35 +02:00
Marko Mäkelä
9b967c4c31 MDEV-26826 fixup: ROW_FORMAT=COMPRESSED may corrupt buf_pool.page_hash
In commit c091a0bc8d we removed
the use of the HASH_ macros for inserting into
buf_pool.page_hash, or accessing buf_page_t::hash.

However, the binary buddy allocator for block->page.zip.data would
still use the HASH_ macros. HASH_INSERT and not HASH_DELETE would reset
the next-block pointer to the null pointer. Our replacement of
HASH_DELETE() will reset the next-block pointer, and the replacement of
HASH_INSERT() assumes that the pointer is the null pointer.

buf_LRU_block_free_non_file_page(): Assert that the next-block pointer
is the null pointer.

buf_buddy_block_free(): Reset the pointer before invoking
buf_LRU_block_free_non_file_page(). Without this, the added
assertion would fail in the test encryption.innochecksum.
2021-11-05 08:09:33 +02:00
Sergei Golubchik
db8248d0cd Merge branch '10.6' into 10.7 2021-11-05 00:21:23 +01:00
Sergei Golubchik
20f7fc6ef2 Merge branch '10.5' into 10.6 2021-11-05 00:17:06 +01:00
Sergei Golubchik
8d7196cdf1 change pcre2 download url
old ftp.pcre.org is apparently down,
www.pcre.org says to use github as the primary download location
2021-11-05 00:02:34 +01:00
Vladislav Vaintroub
2b5fdddb1b Merge branch '10.7' into 10.8 2021-11-04 11:29:51 +01:00
Vladislav Vaintroub
d20de4d447 Merge branch '10.6' into 10.7 2021-11-04 10:55:05 +01:00
Vladislav Vaintroub
3ab358f0f1 appveyor - do not use buggy cygwin bison. 2021-11-04 10:22:06 +01:00
Sergei Golubchik
37b9467a14 columnstore 2021-11-04 09:52:03 +01:00
Sergei Golubchik
e7199671b0 columnstore 2021-11-04 09:49:59 +01:00
Marko Mäkelä
667e71399e MDEV-26826 fixup: clang++-13 -Wfree-nonheap-object 2021-11-04 09:59:06 +02:00
Marko Mäkelä
576afceadd MDEV-26966: Remove innodb_force_load_corrupted
MySQL 5.5 in commit 177d8b0c12
introduced a configuration parameter innodb_force_load_corrupted
whose purpose was to allow a corrupted table to be dropped.

Given that MDEV-11412 in MariaDB 10.5.4 aims to allow any metadata
for a missing or corrupted table to be dropped, and given that
MDEV-17567 and MDEV-25506 and related tasks made DDL operations
crash-safe, the parameter no longer serves any purpose.

Because this obscure parameter was read-only (not settable by a client),
it seems that we can simply declare it with MARIADB_REMOVED_OPTION
(commit 1bc9cce702) without breaking
any upgrades.

DICT_ERR_IGNORE_INDEX: Replaces DICT_ERR_IGNORE_INDEX_ROOT and
DICT_ERR_IGNORE_CORRUPT, which were always set equally.

dict_load_indexes(): Report "No indexes found for table" in
a uniform way, and only when the DICT_ERR_IGNORE_INDEX flag is
not set.

If the clustered index is marked corrupted, and the operation
is DICT_ERR_IGNORE_DROP (we are about to drop the table), we will
load the metadata; else, we will return DB_INDEX_CORRUPT.

If SYS_INDEXES.PAGE is FIL_NULL, report an error or warning
unless we are about to drop the table.

dict_load_table_one(): Simplify the logic.
2021-11-04 09:55:35 +02:00
Vladislav Vaintroub
322fc4f4b3 appveyor - do not use buggy cygwin bison. 2021-11-04 07:34:55 +01:00
Sergei Krivonos
2df99f2193 Revert "MDEV-19129: Xcode compatibility update: deprecated vfork -> fork"
This reverts commit 5d6f3cebca.
2021-11-03 18:14:02 +02:00
Oleksandr Byelkin
5051d34894 Merge branch '10.6' into 10.7 2021-11-03 14:18:50 +01:00
Oleksandr Byelkin
3a65a3eb93 Merge branch '10.5' into 10.6 2021-11-03 14:13:50 +01:00
Oleksandr Byelkin
bc82c622c4 Merge branch '10.4' into 10.5 2021-11-03 14:07:38 +01:00
Oleksandr Byelkin
3021b929c8 Merge branch '10.3' into 10.4 2021-11-03 14:01:20 +01:00
Oleksandr Byelkin
69c70c18af Merge branch '10.2' into 10.3 2021-11-03 13:52:52 +01:00
Oleksandr Byelkin
167eac7d43 Merge branch '10.6' into 10.7 2021-11-03 11:30:27 +01:00
Aleksey Midenkov
5cae401b00 MDEV-25555 Server crashes in tree_record_pos after INPLACE-recreating index 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.
2021-11-03 12:31:47 +03:00
Aleksey Midenkov
b3bdc1c142 MDEV-25803 Inplace ALTER breaks MyISAM/Aria table when order of keys is changed
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.
2021-11-03 12:31:47 +03:00
Sergei Golubchik
ccb345e2a3 Spider fix for 10.8+
like in 76f4a78ba2
2021-11-02 20:09:04 +01:00
Sergei Golubchik
892153bd72 10.8 branch 2021-11-02 20:08:42 +01:00
Oleksandr Byelkin
415d26913d Merge branch '10.5' into 10.6 2021-11-02 15:38:53 +01:00
Oleksandr Byelkin
e26b30d1bb Merge branch '10.4' into 10.5 2021-11-02 15:35:31 +01:00
Oleksandr Byelkin
eb2c3d38e4 post merge result fix 2021-11-02 15:34:47 +01:00
Marko Mäkelä
3dc0d884ec MDEV-26674 workaround for mariadb-backup
This is follow-up to commit 1193a793c4.
We will set innodb_use_native_aio=OFF by default also in mariadb-backup
when running on a potentially affected kernel.
2021-11-02 15:24:20 +02:00
Oleksandr Byelkin
ef968c9e63 Merge branch '10.3' into 10.4 2021-11-02 13:11:23 +01:00
Oleksandr Byelkin
bb46b79c8c Fix mutex order according to a new sequence. 2021-11-02 13:09:35 +01:00