MariaDB 12.3 Changes & Improvements
An overview of changes, improvements, and what's new in MariaDB Community Server 12.3
The most recent release of MariaDB Community Server 12.3 is: 12.3.2 Stable (GA)
MariaDB 12.3 is a long term release, maintained until June 2029. This page lists all changes and improvements added since MariaDB 11.8, the previous LTS release.
New Features
Security
Support for passphrase protected keys (MDEV-14091)
ssl_passphrase system variable
New statement SET SESSION AUTHORIZATION for performing actions as another user (MDEV-20299)
Implement SHA2 (sha256) support for the file_key_management.so plugin (TDE) —
.sois Linux only (MDEV-34712)
Compatibility Features
Oracle
TO_DATE()function (MDEV-19683)Support for cursors on prepared statements (MDEV-33830)
SQL Standard
SET PATHstatement (MDEV-34391)SQL Standard
IS JSONpredicate (MDEV-37072)Basic XML data type (MDEV-37261)
New authentication plugin caching_sha2_password for MySQL compatibility (MDEV-9804)
Associative arrays: DECLARE TYPE .. TABLE OF .. INDEX BY (MDEV-34319) (blog post)
DROP USER will now by default issue a warning if the user has active sessions, or fail in Oracle mode (MDEV-35617)
Implement Oracle TO_NUMBER function (MDEV-20022)
Implement Oracle TRUNC function (MDEV-20023)
Performance improvements
Segmented key cache for Aria storage engine (MDEV-24)
The new aria_pagecache_segments system variable defines how many segments are used, default is
1, maximum128
MDL scalability improvements (MDEV-19749)
Asynchronous replication between two Galera Clusters can now use parallel replication
This is managed by the slave_parallel_threads system variable (MDEV-20065)
The audit plugin now supports buffered logging
The size of the buffer is defined using the new system variable server_audit_file_buffer_size (MDEV-34680)
Faster vector distance calculations via extrapolation (MDEV-36205)
Audit Plugin
The Audit Plugin now logs HOST:PORT of incoming connections instead of just the host (MDEV-1282)
Added tls_version field for connection audit plugins (MDEV-33834)
Configuration
Get option group suffix from
$MARIADB_GROUP_SUFFIXin addition to$MYSQL_GROUP_SUFFIX(MDEV-21375)
Data types
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)
MariaDB Cluster (Galera)
In MariaDB Cluster (Galera), needless foreign key checks during Incremental State Transfers are now avoided (MDEV-34822)
GIS
New GIS functions. These functions improve compatibility with MySQL 8.
mariadb Client
Can set an alternative directory path for searching scripts invoked via the source command, with the --script-dir mariadb client option (MDEV-23818)
Optimizer
Rowid Filtering optimization can now be applied for reverse-ordered scans (MDEV-36094)
Index Condition Pushdown optimization can now applied for reverse-ordered scans (MDEV-34413)
Loose Index Scan ("Use index for group-by") optimization can now use indexes with DESC key parts (MDEV-32732)
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)
Optimizations for GROUP/ORDER BY can make use of indexes on virtual columns (MDEV-36132)
Include definitions of tables and views in the optimizer trace (MDEV-36483)
optimizer_record_context system variable.
Join optimizer is now able to infer that derived table with GROUP BY clause has distinct GROUP BY columns (MDEV-36321)
Optimizer hints
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 MAX_EXECUTION_TIME hint (MDEV-34860)
Optimizer hints: Implicit query block names (MDEV-37511)
Replication
Server displays if it was started with the skip-slave-start option (MDEV-27669)
show_slave_auth_info has been added as a system variable (previously it was just an option). It determines whether to show the user and password in SHOW REPLICA HOSTS (SHOW SLAVE HOSTS) on the primary.
replicate_same_server_id 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 (MDEV-36099)
create_tmp_table_binlog_formats system variable.
Configurable defaults for
MASTER_SSL_*settings forCHANGE MASTER(MDEV-28302)Fragment ROW replication events larger than
max_packet_size(MDEV-32570)Improving performance of binary logging by removing the need of syncing it (MDEV-34705)
Stored Routines
Add support for the pre-defined weak SYS_REFCURSOR (MDEV-20034)
max_open_cursors system variable limits the number of cursors opened at the same time
Server
Add the FM format to TO_CHAR, which suppresses following padding (MDEV-36216)
mariadb-check and CHECK TABLE now support SEQUENCE tables (MDEV-22491)
Trigger
Add support for TRIGGERS that fire on multiple events (MDEV-10164)
Miscellaneous
Hashicorp Plugin: Implement cache flush for forced key rotation (MDEV-30847)
New hash algorithms for
PARTITION BY KEY(MDEV-9826)Optimise reorderable LEFT JOINs (MDEV-36055)
Retry applying of write sets on Galera nodes (MDEV-36077)
Controlled through the wsrep_applier_retry_count system variable
mariadb-dump now supports wildcards with the
-Lor--wildcardsoption (MDEV-21376)Foreign key constraint names no longer need to be unique per database, only per table (MDEV-28933) (blog post)
Implement INFORMATION_SCHEMA.PARAMETERS.PARAMETER_DEFAULT column (MDEV-37054)
Notable Items
MariaDB Cluster (Galera)
The Galera package dependency has been removed from server packages (MDEV-38744)
Variables
For a list of all new variables added since MariaDB 11.8, see:
Incompatible Changes
Since MariaDB 12.3 is the first long-term release after MariaDB 11.8, the following backward-incompatible changes may affect an upgrade. For the full upgrade procedure, see Upgrading from MariaDB 11.8 to MariaDB 12.3.
New Reserved Words
The following keywords are now reserved words. They can no longer be used as identifiers without being quoted:
CONVERSIONST_COLLECTTO_DATE
Removed System Variables
The following deprecated system variables have been removed:
big_tables, deprecated in MariaDB 10.5.0, removed in MariaDB 12.0
large_page_size, deprecated in MariaDB 10.5.3, removed in MariaDB 12.0
storage_engine, deprecated in MariaDB 5.5, removed in MariaDB 12.0
Replication
When upgrading a replica from a pre-12.3 release to MariaDB 12.3, the
CHANGE MASTER TO ... master_use_gtidsetting is not currently carried over and is reset toDEFAULT(MDEV-39788). After upgrading, re-applymaster_use_gtidif you rely on it. Downgrading is not affected. See Upgrading from MariaDB 11.8 to MariaDB 12.3 for details.
Security Vulnerabilities Fixed in MariaDB 12.3
For a complete list of security vulnerabilities (CVEs) fixed across all versions of MariaDB Community Server, see the Security Vulnerabilities Fixed in MariaDB Community Server page.
List of All MariaDB 12.3 Releases
22 Dec 2025
MariaDB 12.3 Preview
Preview
This page is licensed: CC BY-SA / Gnu FDL
Last updated
Was this helpful?

