Release notes for MariaDB Community Server 12.0 Rolling Release series
An overview of changes, improvements, and what's new in MariaDB Community Server 12.0
MariaDB 12.0 is a rolling release. It is an evolution of MariaDB 11.8 with several entirely new features.
Support for passphrase protected keys ()
variable
New statement for performing actions as another user ()
Implement SHA2 support for file_key_management.so plugin (TDE) ()
Comparison (stored_func(),1)=ROW(1,1) erroneously called stored_func() twice per row. It led to a performance degradation, as well as to a double execution of the possible stored function side effects. ()
Add support for the pre-defined weak SYS_REFCURSOR ()
system variable limits the number of opened at the same time
Add the FM format to , which suppresses following padding ()
and now support ()
optimization can now be applied for reverse-ordered scans ()
optimization can now applied for reverse-ordered scans ()
Loose Index Scan ("Use index for group-by") optimization can now use indexes with DESC key parts ()
find_order_in_list mismatch when order item needs fixing() ()
Add support for ()
New functions. These functions improve compatibility with MySQL 8.
()
()
()
()
Add support for TRIGGERS that fire on multiple events ()
Server displays if it was started with the option ()
has been added as a system variable (previously it was just an option). It determines whether to show the user and password in (SHOW SLAVE HOSTS) on the primary.
system variable added (previously it was just an option), which permits not skipping events having our server id.
Ensure that creation and usage of temporary tables in replication is predictable (
In , needless foreign key checks during Incremental State Transfers are now avoided ()
The now logs HOST:PORT of incoming connections instead of just the host ()
Added tls_version field for connection audit plugins ()
Get option group suffix from $MARIADB_GROUP_SUFFIX in addition to $MYSQL_GROUP_SUFFIX ()
Can set an alternative directory path for searching scripts invoked via the source command, with the mariadb client option ()
For a list of all new variables, see .
, deprecated in
, deprecated in
, deprecated in .
If the join_condition is specified via USING (column_list), the query plan depends on the sequence of tables in the query (MDEV-36592)
Add support for subquery optimizer hints (MDEV-34888)
Add support for join order hints (MDEV-34870)
JOIN_FIXED_ORDER similar to existing STRAIGHT_JOIN hint
JOIN_ORDER to apply the specified table order
JOIN_PREFIX to hint what tables should be first in the join
JOIN_SUFFIX to hint what tables should be last in the join
Add support for the hint (MDEV-34860)
system variable.
Preview
7 Aug 2025
GA
5 Jun 2025
RC
26 March 2025
MariaDB 12.0.1 is a Release Candidate (RC) release of MariaDB Community Server 12.0, released on 2025-06-05
Release date: 5 Jun 2025
is a . It is an evolution of with several entirely new features.
MariaDB 12.0.1 is a release.
Thanks, and enjoy MariaDB!
Support for passphrase protected keys (MDEV-14091)
New SET SESSION AUTHORIZATION (MDEV-20299)
Implement SHA2 support for file_key_management.so plugin (TDE) (MDEV-34712)
Comparison ROW(stored_func(),1)=ROW(1,1) erroneously called stored_func() twice per row. It led to a performance degradation, as well as to a double execution of the possible stored function side effects. (MDEV-36322)
Add support for the pre-defined weak SYS_REFCURSOR (MDEV-20034)
TO_CHAR FM format not recognized in SQL_MODE=Oracle (MDEV-36216)
Support mariadb-check and CHECK TABLE with SEQUENCE (MDEV-22491)
find_order_in_list mismatch when order item needs fixing() (MDEV-36607)
If the join_condition is specified via USING (column_list), the query plan depends on the sequence of tables in the query (MDEV-36592)
Add support for optimizer hints (MDEV-35504)
QB_NAME()
NO_RANGE_OPTIMIZATION()
NO_ICP()
MRR(), NO_MRR()
BKA(), NO_BKA()
BNL(), NO_BNL()
Add support for subquery optimizer hints ()
SEMIJOIN()
SUBQUERY()
Add support for join order hints ()
JOIN_FIXED_ORDER similar to existing STRAIGHT_JOIN hint
JOIN_ORDER to apply the specified table order
JOIN_PREFIX to hint what tables should be first in the join
Add support for the MAX_EXECUTION_TIME hint ()
New GIS functions. These functions improve compatibility with MySQL 8.
()
()
()
()
()
Add support for TRIGGERS that fire on multiple events (MDEV-10164)
Server now displays if it was started with option (MDEV-27669)
Skip FK checks in Galera during applying in IST (MDEV-34822)
Log HOST:PORT of incoming connection instead of just the host (MDEV-1282)
Add tls_version field for connection audit plugins (MDEV-33834)
Get option group suffix from $MARIADB_GROUP_SUFFIX in addition to $MYSQL_GROUP_SUFFIX (MDEV-21375)
Can set an alternative directory path for searching scripts invoked via the source command, with the --script-dir mariadb client option (MDEV-23818)
For a complete list of changes made in MariaDB 12.0.1, with links to detailed information on each push, see the changelog.
For a full list of contributors to MariaDB 12.0.1, see the MariaDB Foundation release announcement.
MariaDB 12.0.2 is a Stable (GA) release of MariaDB Community Server 12.0, released on 2025-08-07
Release date: 7 Aug 2025
MariaDB 12.0.2 is a release. It is an evolution of with several entirely new features.
MariaDB 12.0 is a . One is expected to upgrade to MariaDB 12.1.2, there will be no 12.0.3.
Thanks, and enjoy MariaDB!
JOIN_SUFFIX to hint what tables should be last in the join
For an overview of MariaDB 12.0 see the Changes and Improvements in MariaDB 12.0 page.
Thanks, and enjoy MariaDB!
After SET GLOBAL innodb_buffer_pool_size was aborted while attempting to shrink the buffer pool, executing SET GLOBAL innodb_adaptive_hash_index=ON could lead to corruption of the adaptive hash index. (MDEV-36863)
Fatal InnoDB error: Unknown error Temp file write failure (MDEV-36017)
When innodb_buffer_pool_size is being shrunk while there are no data pages cached, InnoDB could hang or crash. (MDEV-37263)
After a successful shrinking of innodb_buffer_pool_size, there will be no message about it in the server error log.
After a failed shrinking of innodb_buffer_pool_size, the adaptive hash index will not be re-enabled if innodb_adaptive_hash_index was ON when SET GLOBAL innodb_buffer_pool_size=... started to execute. ()
AUTO_INCREMENT leads to non-serializable on results ()
Vector index was corrupted if one statement was rolled back (e.g. insert violating a unique constraint) in the middle of a larger transaction. ()
The new parameter innodb_linux_aio controls which Linux implementation to use for innodb_use_native_aio=ON. ()
innodb_linux_aio=auto is equivalent to innodb_linux_aio=io_uring when it is available, and falling back to innodb_linux_aio=aio when not.
Previously, only one implementation (libaio or io_uring) was available. Currently, if io_uring is disabled in the environment, we will fall back to the older libaio interface.
Assertion when adding FK to MyISAM/Aria table with a vector index (MDEV-37022)
Adding (with ALTER TABLE) a UNIQUE constraint that is USING HASH to a table with foreign keys could've caused the table to become corrupted. (MDEV-36852)
DROP DEFAULT makes SHOW CREATE non-idempotent (MDEV-29001)
Server crashes in do_mark_index_columns instead of ER_DUP_ENTRY on partitioned table (MDEV-36817)
A replica would crash while replicating UPDATE and DELETE DML statements that target a table which previously had a partition that was converted to a separate table via ALTER TABLE .. CONVERT PARTITION .. TO TABLE. For example, if the command looked like ALTER TABLE t1 CONVERT PARTITION p1 TO TABLE t_new; the replica would crash when trying to update/deleterows in table t1 after running the command. (MDEV-36906)
CREATE OR REPLACE with self-referencing CHECK hangs forever, cannot be killed (MDEV-29155)
Segfault on INTERSECT ALL with UNION in Oracle mode (MDEV-25158)
In certain cases privileges on sequences were too restrictive, for example, SELECT on a table might've erroneously required INSERT privilege on a sequences (MDEV-36870)
This commit fixes a bug where Aria tables are used in (master->slave1->slave2) and a backup is taken on slave2. In this case it is possible that the replication position in the backup, stored in mysql.gtid_slave_pos, will be wrong. This will lead to replication errors if one is trying to use the backup as a new slave. (MDEV-36143)
Maria-backup would crash during the 'maria_recovery' part. This could happen if server was doing repair or creating indexes while the backup was running. (MDEV-36860)
MariaDB server crash when a query includes a derived table containing unnamed column. (MDEV-24588)
Crash in add_keyuses_for_splitting() when joining with a derived table (MDEV-30711)
Split Materialized code: last_refills is never set in 11.0+ (MDEV-36323)
Don't generate index_merge plans, if a column is present in both Secondary Key and Primary Key indexes and either of the indexes include it with DESC order (as the scan itself is not a ROR scan). (MDEV-36410)
Incorrect handling of null values on join conditions. ()
Starting from 10.11.12, Incorrect handling of UTF-8 characters (and other character sets requiring more than a single byte representation) in the minimum/maximum positions of a table during the execution of ANALYZE TABLE tbl PERSISTENT FOR ALL resulted in an endless loop consuming more memory and prevented the server from terminating. (MDEV-36765)
Galera updated to 26.4.23
galera_3nodes.inconsistency_shutdown test occasionally hangs (MDEV-36968)
Galera-26.4.23 corrects an incompatibility with OpenZFS >= 2.3.0 enabling the use of galera on this filesystem.
semi sync makes the master unresponsive when a replica is stopped (MDEV-36934)
parallel slave ALTER-SEQUNCE attempted to binlog out-of-order (MDEV-35570)
mysqldump --dump-slave always starts stopped slave (MDEV-7611)
Optimize Rows_log_event Reporting of Process Info (MDEV-36839)
Seconds_Behind_Master Spike at Log Rotation on Parallel Replication ()
Crash when calling stored function in FOR loop argument (MDEV-26115)
ALTER TABLE require ALTER privilege on sequence from DEFAULT value expression (MDEV-36280)
Deadlock does not rollback transaction fully (MDEV-36959)
UNIQUE constraint that was USING HASH and UNIQUE constrant WITHOUT OVERLAPS could be violated under heavy load in READ COMMITTED transaction isolation mode. (MDEV-37199)
Changing the server character set in my.cnf could cause debian-start script to fail with "Illegal mix of collations" (MDEV-36815).
aws_key_management compilation was previously broken, is now fixed. plugin can be compiled again. As before, -DNOT_FOR_DISTRIBUTION=ON is necessary to build it. (MDEV-30831)
mariadb systemd mult-instance service was changed to not attempt changes to the permissions on its pam helper server. This prevented unconstructive behaviour and errors in the systemd journal when starting the mariadb@.service. (MDEV-36738)
Remove the error codes added to 10.11 by the MDEV-36032 patch (MDEV-36856)
DML committed within XA transaction block after deadlock error and implicit rollback (MDEV-37141)
Add option to not collect statistics for long char/varchars (MDEV-36536)
Packages for RHEL8 no longer depend on liburing. The RHEL8 kernel had insufficient kernel support so linking was an unneeded dependency. libaio was sufficient (MDBF-1042)
SLES 15 SP6 and SLES 15 SP7 are new packages in this release. Because of incompatibilities of packages between SLES service pack versions there are now separate packages for 15sp6 and 15sp7. An upgradeable repo file should include "sles/$releasever/$basearch" rather than the "sles15-amd64" or "sles/15/x86_64" path that may exist currently. (MDBF-1067, MDEV-36945)
Fedora 42 is a new release version and x86_64 and aarch64 packages are available ()
Red Hat Enterprise Linux 10 packages are available for x86_64, aarch64, ppc64le, and s390x hardware platforms ()
Centos Stream 9 previously missed building a MariaDB-provider-lzo package and this has been corrected ()
This is the last release of the interim Ubuntu 24.10 which ended its standard support in July 2025 ()
Ubuntu 25.04 (Plucky Puffin) packages are available for amd64 and arm64 ()
Debian 13 (Trixie) packages are available for amd64, arm64, ppc64le and i386 ()
For a complete list of changes made in MariaDB 12.0.1, with links to detailed information on each push, see the changelog.
Do not use non-stable (non-GA) releases in production!
This page is licensed: CC BY-SA / Gnu FDL
This page is licensed: CC BY-SA / Gnu FDL
This page is licensed: CC BY-SA / Gnu FDL