> For the complete documentation index, see [llms.txt](https://mariadb.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mariadb.com/docs/release-notes/community-server/12.3/mariadb-12.3-changes-and-improvements.md).

# MariaDB 12.3 Changes & Improvements

{% hint style="info" %}

<p align="center">The most recent release of MariaDB Community Server 12.3 is: <a href="/pages/75QkTHfOfdEFPxdrbg8y"><strong>12.3.2</strong></a> Stable (GA)</p>

<p align="center"><a href="https://mariadb.com/downloads/community/community-server/" class="button primary">Download Community Server 12.3.2</a></p>

<p align="center"><a href="https://downloads.mariadb.org/mariadb/12.3.2/"><sub><em>Alternate download from mariadb.org</em></sub></a></p>
{% endhint %}

MariaDB 12.3 is a [long term release](/docs/release-notes/community-server/about/release-model.md), maintained until June 2029. This page lists all changes and improvements added since [MariaDB 11.8](/docs/release-notes/community-server/11.8/what-is-mariadb-118.md), the previous LTS release.

## New Features

### Security <a href="#security" id="security"></a>

* Support for passphrase protected keys ([MDEV-14091](https://jira.mariadb.org/browse/MDEV-14091))
  * [ssl\_passphrase system](/docs/server/security/encryption/data-in-transit-encryption/ssltls-system-variables.md#ssl_passphrase) variable
* New statement [SET SESSION AUTHORIZATION](/docs/server/reference/sql-statements/account-management-sql-statements/set-session-authorization.md) for performing actions as another user ([MDEV-20299](https://jira.mariadb.org/browse/MDEV-20299))
* Implement SHA2 (sha256) support for the [file\_key\_management.so](https://mariadb.com/docs/release-notes/community-server/12.3/spaces/SsmexDFPv2xG2OTyO5yV/pages/kEr5f1qfVXItTlF97e6c#current-greater-than-12.0.1) plugin (TDE) — `.so` is Linux only ([MDEV-34712](https://jira.mariadb.org/browse/MDEV-34712))

### Compatibility Features

* Oracle [`TO_DATE()`](/docs/server/reference/sql-functions/date-time-functions/to_date.md) function ([MDEV-19683](https://jira.mariadb.com/browse/MDEV-19683))
* Support for [cursors](/docs/server/reference/sql-statements/programmatic-compound-statements/programmatic-compound-statements-cursors.md) on prepared statements ([MDEV-33830](https://jira.mariadb.com/browse/MDEV-33830))
* SQL Standard [`SET PATH`](/docs/server/reference/sql-statements/administrative-sql-statements/set-commands/set-path.md) statement ([MDEV-34391](https://jira.mariadb.com/browse/MDEV-34391))
* SQL Standard [`IS JSON`](/docs/server/reference/sql-structure/operators/comparison-operators/is-json.md) predicate ([MDEV-37072](https://jira.mariadb.com/browse/MDEV-37072))
* Allow [`UPDATE`/`DELETE` to read from a CTE](/docs/server/reference/sql-statements/data-manipulation/selecting-data/common-table-expressions.md) ([MDEV-37220](https://jira.mariadb.com/browse/MDEV-37220))
* Basic [XML data type](/docs/server/reference/data-types/string-data-types/xmltype.md) ([MDEV-37261](https://jira.mariadb.com/browse/MDEV-37261))
* New authentication plugin [caching\_sha2\_password](/docs/server/reference/clientserver-protocol/1-connecting/caching_sha2_password-authentication-plugin.md) for MySQL compatibility ([MDEV-9804](https://jira.mariadb.org/browse/MDEV-9804))
* [( + ) for outer join syntax in Oracle mode](/docs/server/reference/sql-statements/data-manipulation/selecting-data/joins/join-syntax.md#oracle-mode) ([MDEV-13817](https://jira.mariadb.org/browse/MDEV-13817))
* Associative arrays: [DECLARE TYPE .. TABLE OF .. INDEX BY](/docs/server/reference/sql-statements/programmatic-compound-statements/declare-type.md) ([MDEV-34319](https://jira.mariadb.org/browse/MDEV-34319)) ([blog post](https://mariadb.org/bringing-oracles-associative-arrays-to-mariadb/))
* [DROP USER](/docs/server/reference/sql-statements/account-management-sql-statements/drop-user.md) will now by default issue a warning if the user has active sessions, or fail in [Oracle mode](https://github.com/mariadb-corporation/mariadb-docs/blob/main/release-notes/about/compatibility-and-differences/sql_modeoracle.md) ([MDEV-35617](https://jira.mariadb.org/browse/MDEV-35617))
* Implement Oracle [TO\_NUMBER](/docs/server/reference/sql-functions/numeric-functions/to_number.md) function ([MDEV-20022](https://jira.mariadb.org/browse/MDEV-20022))
* Implement Oracle [TRUNC](/docs/server/reference/sql-functions/date-time-functions/trunc.md) function ([MDEV-20023](https://jira.mariadb.org/browse/MDEV-20023))

### Performance improvements <a href="#performance-improvements" id="performance-improvements"></a>

* Segmented key cache for [Aria storage engine](/docs/server/server-usage/storage-engines/aria.md) ([MDEV-24](https://jira.mariadb.org/browse/MDEV-24))
  * The new [aria\_pagecache\_segments](/docs/server/server-usage/storage-engines/aria/aria-system-variables.md#aria_pagecache_segments) system variable defines how many segments are used, default is `1`, maximum `128`
* MDL scalability improvements ([MDEV-19749](https://jira.mariadb.org/browse/MDEV-19749))
* Asynchronous replication between two [Galera Clusters](https://mariadb.com/docs/galera-cluster/) can now use parallel replication
  * This is managed by the [slave\_parallel\_threads](/docs/galera-cluster/high-availability/using-mariadb-replication-with-mariadb-galera-cluster/using-mariadb-replication-with-mariadb-galera-cluster-using-mariadb-replica.md#parallel-replication-support) system variable ([MDEV-20065](https://jira.mariadb.org/browse/MDEV-20065))
* The [audit plugin](/docs/server/reference/plugins/mariadb-audit-plugin.md) now supports buffered logging
  * The size of the buffer is defined using the new system variable [server\_audit\_file\_buffer\_size](/docs/server/reference/plugins/mariadb-audit-plugin/mariadb-audit-plugin-options-and-system-variables.md#server_audit_file_buffer_size) ([MDEV-34680](https://jira.mariadb.org/browse/MDEV-34680))
* Faster [vector](/docs/server/reference/sql-structure/vectors.md) distance calculations via extrapolation ([MDEV-36205](https://jira.mariadb.org/browse/MDEV-36205))

### Audit Plugin <a href="#audit-plugin" id="audit-plugin"></a>

* The [Audit Plugin](/docs/server/reference/plugins/mariadb-audit-plugin/mariadb-audit-plugin-overview.md) now logs HOST:PORT of incoming connections instead of just the host ([MDEV-1282](https://jira.mariadb.org/browse/MDEV-1282))
* Added [tls\_version](/docs/server/security/encryption/data-in-transit-encryption/ssltls-system-variables.md#tls_version) field for connection audit plugins ([MDEV-33834](https://jira.mariadb.org/browse/MDEV-33834))

### Configuration <a href="#configuration" id="configuration"></a>

* Get option group suffix from `$MARIADB_GROUP_SUFFIX` in addition to `$MYSQL_GROUP_SUFFIX` ([MDEV-21375](https://jira.mariadb.org/browse/MDEV-21375))

### Data types <a href="#data-types" id="data-types"></a>

* Comparison [ROW](/docs/server/reference/data-types/string-data-types/row.md)(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](https://jira.mariadb.org/browse/MDEV-36322))

### MariaDB Cluster (Galera) <a href="#galera" id="galera"></a>

* In [MariaDB Cluster (Galera)](https://mariadb.com/docs/galera-cluster/), needless foreign key checks during Incremental State Transfers are now avoided ([MDEV-34822](https://jira.mariadb.org/browse/MDEV-34822))

### GIS <a href="#gis" id="gis"></a>

New [GIS](/docs/server/reference/sql-structure/geometry/gis-features-in-533.md) functions. These functions improve compatibility with MySQL 8.

* [ST\_Validate](/docs/server/reference/sql-statements/geometry-constructors/miscellaneous-gis-functions/st_validate.md) ([MDEV-34137](https://jira.mariadb.org/browse/MDEV-34137))
* [MBRCoveredBy](/docs/server/reference/sql-statements/geometry-constructors/mbr-minimum-bounding-rectangle/mbrcoveredby.md) ([MDEV-34138](https://jira.mariadb.org/browse/MDEV-34138))
* [ST\_Simplify](/docs/server/reference/sql-statements/geometry-constructors/miscellaneous-gis-functions/st_simplify.md) ([MDEV-34141](https://jira.mariadb.org/browse/MDEV-34141))
* [ST\_GeoHash](/docs/server/reference/sql-statements/geometry-constructors/miscellaneous-gis-functions/st_geohash.md) ([MDEV-34158](https://jira.mariadb.org/browse/MDEV-34158))
* [ST\_LatFromGeoHash](/docs/server/reference/sql-statements/geometry-constructors/miscellaneous-gis-functions/st_latfromgeohash.md) ([MDEV-34159](https://jira.mariadb.org/browse/MDEV-34159))
* [ST\_LongFromGeoHash](/docs/server/reference/sql-statements/geometry-constructors/miscellaneous-gis-functions/st_longfromgeohash.md) ([MDEV-34160](https://jira.mariadb.org/browse/MDEV-34160))
* [ST\_PointFromGeoHash](/docs/server/reference/sql-statements/geometry-constructors/miscellaneous-gis-functions/st_pointfromgeohash.md) ([MDEV-34277](https://jira.mariadb.org/browse/MDEV-34277))
* [ST\_IsValid](/docs/server/reference/sql-statements/geometry-constructors/miscellaneous-gis-functions/st_isvalid.md) ([MDEV-34276](https://jira.mariadb.org/browse/MDEV-34276))
* [ST\_Collect](/docs/server/reference/sql-statements/geometry-constructors/miscellaneous-gis-functions/st_collect.md) ([MDEV-34278](https://jira.mariadb.org/browse/MDEV-34278))

### mariadb Client

* Can set an alternative directory path for searching scripts invoked via the source command, with the [--script-dir](/docs/server/clients-and-utilities/mariadb-client/mariadb-command-line-client.md#script-dir) mariadb client option ([MDEV-23818](https://jira.mariadb.org/browse/MDEV-23818))

### Optimizer <a href="#optimizer" id="optimizer"></a>

* [Rowid Filtering](/docs/server/ha-and-performance/optimization-and-tuning/query-optimizations/rowid-filtering-optimization.md) optimization can now be applied for reverse-ordered scans ([MDEV-36094](https://jira.mariadb.org/browse/MDEV-36094))
* [Index Condition Pushdown](/docs/server/ha-and-performance/optimization-and-tuning/query-optimizations/index-condition-pushdown.md) optimization can now applied for reverse-ordered scans ([MDEV-34413](https://jira.mariadb.org/browse/MDEV-34413))
* Loose Index Scan ("Use index for group-by") optimization can now use indexes with DESC key parts ([MDEV-32732](https://jira.mariadb.org/browse/MDEV-32732))
* find\_order\_in\_list mismatch when order item needs fixing() ([MDEV-36607](https://jira.mariadb.org/browse/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](https://jira.mariadb.org/browse/MDEV-36592))
* Optimizations for GROUP/ORDER BY can make use of indexes on virtual columns ([MDEV-36132](https://jira.mariadb.org/browse/MDEV-36132))
* Include definitions of tables and views in the [optimizer trace](/docs/server/ha-and-performance/optimization-and-tuning/query-optimizer/optimizer-trace.md) ([MDEV-36483](https://jira.mariadb.org/browse/MDEV-36483))
  * [optimizer\_record\_context](/docs/server/server-management/variables-and-modes/server-system-variables.md#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](https://jira.mariadb.org/browse/MDEV-36321))

### Optimizer hints <a href="#optimizer-hints" id="optimizer-hints"></a>

* Add support for [optimizer hints](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints.md) ([MDEV-35504](https://jira.mariadb.org/browse/MDEV-35504))
  * [QB\_NAME](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints.md#query-block-naming)
  * [NO\_RANGE\_OPTIMIZATION](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints.md#no_range_optimization)
  * [NO\_ICP](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints.md#no_icp)
  * [MRR, NO\_MRR](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints.md#mrr-and-no_mrr)
  * [BKA, NO\_BKA](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints.md#bka-and-no_bka)
  * [BNL, NO\_BNL](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints.md#bnl-and-no_bnl)
* Add support for subquery optimizer hints ([MDEV-34888](https://jira.mariadb.org/browse/MDEV-34888))
  * [SEMIJOIN](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints.md#semijoin-and-no_semijoin)
  * [SUBQUERY](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints.md#subquery-hint)
* Add support for join order hints ([MDEV-34870](https://jira.mariadb.org/browse/MDEV-34870))
  * [JOIN\_FIXED\_ORDER](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints/expanded-optimizer-hints.md#join_fixed_order) similar to existing STRAIGHT\_JOIN hint
  * [JOIN\_ORDER](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints/expanded-optimizer-hints.md#join_order) to apply the specified table order
  * [JOIN\_PREFIX](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints/expanded-optimizer-hints.md#join_prefix) to hint what tables should be first in the join
  * [JOIN\_SUFFIX](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints/expanded-optimizer-hints.md#join_suffix) to hint what tables should be last in the join
* Add support for the [MAX\_EXECUTION\_TIME](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints.md#max_execution_time) hint ([MDEV-34860](https://jira.mariadb.org/browse/MDEV-34860))
* [Optimizer hints](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints.md): [\[NO\_\]JOIN\_INDEX](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints.md#join_index-and-no_join_index), [\[NO\_\]GROUP\_INDEX](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints.md#group_index-and-no_group_index), [\[NO\_\]ORDER\_INDEX](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints.md#order_index-and-no_order_index), [\[NO\_\]INDEX](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints.md#index-and-no_index) ([MDEV-35856](https://jira.mariadb.org/browse/MDEV-35856))
* [Optimizer hints](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints.md): [\[NO\_\]SPLIT\_MATERIALIZED](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints.md#split_materialized-x-and-no_split_materialized-x) ([MDEV-36092](https://jira.mariadb.org/browse/MDEV-36092))
* [Optimizer hints](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints.md): [\[NO\_\]DERIVED\_CONDITION\_PUSHDOWN](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints.md#derived_condition_pushdown-and-no_derived_condition_pushdown), [\[NO\_\]MERGE ](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints.md#merge-and-no_merge)([MDEV-36106](https://jira.mariadb.org/browse/MDEV-36106))
* [Optimizer hint](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints.md): [\[NO\_\]ROWID\_FILTER](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints/index-level-hints.md#rowid_filter-no_rowid_filter) ([MDEV-36089](https://jira.mariadb.org/browse/MDEV-36089)),
* [Optimizer hint](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints.md): [\[NO\_\]INDEX\_MERGE](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints/index-level-hints.md#index_merge-no_index_merge) ([MDEV-36125](https://jira.mariadb.org/browse/MDEV-36125))
* [Optimizer hints](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints.md): Implicit query block names ([MDEV-37511](https://jira.mariadb.org/browse/MDEV-37511))

### Replication

* Server displays if it was started with the [skip-slave-start](/docs/server/server-management/starting-and-stopping-mariadb/mariadbd-options.md#skip-slave-start) option ([MDEV-27669](https://jira.mariadb.org/browse/MDEV-27669))
* [show\_slave\_auth\_info](/docs/server/ha-and-performance/standard-replication/replication-and-binary-log-system-variables.md#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](/docs/server/reference/sql-statements/administrative-sql-statements/show/show-replica-hosts.md) (SHOW SLAVE HOSTS) on the primary.
* [replicate\_same\_server\_id](/docs/server/ha-and-performance/standard-replication/replication-and-binary-log-system-variables.md#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](https://jira.mariadb.org/browse/MDEV-36099))
  * [create\_tmp\_table\_binlog\_formats](/docs/server/ha-and-performance/standard-replication/replication-and-binary-log-system-variables.md#create_tmp_table_binlog_formats) system variable.
* Configurable defaults for `MASTER_SSL_*` settings for `CHANGE MASTER` ([MDEV-28302](https://jira.mariadb.com/browse/MDEV-28302))
* Fragment ROW replication events larger than `max_packet_size` ([MDEV-32570](https://jira.mariadb.com/browse/MDEV-32570))
* Improving performance of binary logging by removing the need of syncing it ([MDEV-34705](https://jira.mariadb.com/browse/MDEV-34705))

### Stored Routines <a href="#stored-routines" id="stored-routines"></a>

* Add support for the pre-defined weak SYS\_REFCURSOR ([MDEV-20034](https://jira.mariadb.org/browse/MDEV-20034))
  * [max\_open\_cursors](/docs/server/server-management/variables-and-modes/server-system-variables.md#max_open_cursors) system variable limits the number of [cursors](/docs/server/reference/sql-statements/programmatic-compound-statements/programmatic-compound-statements-cursors.md) opened at the same time

### Server <a href="#server" id="server"></a>

* Add the FM format to [TO\_CHAR](/docs/server/reference/sql-functions/string-functions/to_char.md), which suppresses following padding ([MDEV-36216](https://jira.mariadb.org/browse/MDEV-36216))
* [mariadb-check](/docs/server/clients-and-utilities/table-tools/mariadb-check.md) and [CHECK TABLE](/docs/server/reference/sql-statements/table-statements/check-table.md) now support [SEQUENCE tables](/docs/server/server-usage/storage-engines/sequence-storage-engine.md) ([MDEV-22491](https://jira.mariadb.org/browse/MDEV-22491))

### Trigger <a href="#trigger" id="trigger"></a>

* Add support for [TRIGGERS](/docs/server/server-usage/triggers-events/triggers/create-trigger.md#trigger_event) that fire on multiple events ([MDEV-10164](https://jira.mariadb.org/browse/MDEV-10164))

### Miscellaneous

* [Hashicorp Plugin](/docs/server/security/encryption/data-at-rest-encryption/key-management-and-encryption-plugins/hashicorp-key-management-plugin.md): Implement cache flush for forced key rotation ([MDEV-30847](https://jira.mariadb.com/browse/MDEV-30847))
* New hash algorithms for [`PARTITION BY KEY`](/docs/server/server-usage/partitioning-tables/partitioning-types/key-partitioning-type.md) ([MDEV-9826](https://jira.mariadb.com/browse/MDEV-9826))
* Optimise reorderable [LEFT JOINs](/docs/server/reference/sql-statements/data-manipulation/selecting-data/joins/join-syntax.md) ([MDEV-36055](https://jira.mariadb.com/browse/MDEV-36055))
* Retry applying of write sets on [Galera](https://mariadb.com/docs/galera-cluster/) nodes ([MDEV-36077](https://jira.mariadb.org/browse/MDEV-36077))
  * Controlled through the [wsrep\_applier\_retry\_count](/docs/galera-cluster/reference/galera-cluster-system-variables.md#wsrep_applier_retry_count) system variable
* [mariadb-dump](/docs/server/clients-and-utilities/backup-restore-and-import-clients/mariadb-dump.md) now supports [wildcards](/docs/server/clients-and-utilities/backup-restore-and-import-clients/mariadb-dump.md#l-wildcards) with the `-L` or `--wildcards` option ([MDEV-21376](https://jira.mariadb.org/browse/MDEV-21376))
* [Foreign key](/docs/server/ha-and-performance/optimization-and-tuning/optimization-and-indexes/foreign-keys.md) constraint names no longer need to be unique per database, only per table ([MDEV-28933](https://jira.mariadb.org/browse/MDEV-28933)) ([blog post](https://mariadb.org/per-table-unique-foreign-key-constraint-names-new-feature-in-mariadb-12-1/))
* Remove [depth limit of 32 from JSON functions](/docs/server/reference/error-codes/mariadb-error-codes-4000-to-4099/e4043.md) ([MDEV-32854](https://jira.mariadb.org/browse/MDEV-32854))
* Add [INFORMATION\_SCHEMA.TRIGGERED\_UPDATE\_COLUMNS](/docs/server/reference/system-tables/information-schema/information-schema-tables/information-schema-triggered_update_columns.md) ([MDEV-36996](https://jira.mariadb.org/browse/MDEV-36996))
* Implement [INFORMATION\_SCHEMA.PARAMETERS](/docs/server/reference/system-tables/information-schema/information-schema-tables/information-schema-parameters-table.md).PARAMETER\_DEFAULT column ([MDEV-37054](https://jira.mariadb.org/browse/MDEV-37054))

## Notable Items

### MariaDB Cluster (Galera)

* The Galera package dependency has been removed from server packages ([MDEV-38744](https://jira.mariadb.org/browse/MDEV-38744))

### Variables

For a list of all new variables added since MariaDB 11.8, see:

* [System Variables Added in MariaDB 12.0](/docs/server/ha-and-performance/optimization-and-tuning/system-variables/system-and-status-variables-added-by-major-release/community-server/system-variables-added-in-mariadb-12.0.md)
* [System Variables Added in MariaDB 12.1](/docs/server/ha-and-performance/optimization-and-tuning/system-variables/system-and-status-variables-added-by-major-release/community-server/system-variables-added-in-mariadb-12.1.md)
* [System Variables Added in MariaDB 12.2](https://app.gitbook.com/o/diTpXxF5WsbHqTReoBsS/s/SsmexDFPv2xG2OTyO5yV/ha-and-performance/optimization-and-tuning/system-variables/system-and-status-variables-added-by-major-release/system-variables-added-in-mariadb-12.2)
* [System Variables Added in MariaDB 12.3](https://app.gitbook.com/o/diTpXxF5WsbHqTReoBsS/s/SsmexDFPv2xG2OTyO5yV/ha-and-performance/optimization-and-tuning/system-variables/system-and-status-variables-added-by-major-release/system-variables-added-in-mariadb-12.3)

## Incompatible Changes

Since MariaDB 12.3 is the first long-term release after [MariaDB 11.8](/docs/release-notes/community-server/11.8/what-is-mariadb-118.md), the following backward-incompatible changes may affect an upgrade. For the full upgrade procedure, see [Upgrading from MariaDB 11.8 to MariaDB 12.3](/docs/server/server-management/install-and-upgrade-mariadb/upgrading/mariadb-community-server-upgrade-paths/upgrading-from-mariadb-11-8-to-mariadb-12-3.md).

### New Reserved Words

The following keywords are now [reserved words](/docs/server/reference/sql-structure/sql-language-structure/reserved-words.md). They can no longer be used as [identifiers](/docs/server/reference/sql-structure/sql-language-structure/identifier-names.md) without being quoted:

* `CONVERSION`
* `ST_COLLECT`
* `TO_DATE`

### Removed System Variables

The following deprecated system variables have been removed:

* [big\_tables](/docs/server/server-management/variables-and-modes/server-system-variables.md#big_tables), deprecated in [MariaDB 10.5.0](/docs/release-notes/community-server/old-releases/10.5/10.5.0.md), removed in [MariaDB 12.0](/docs/release-notes/community-server/old-releases/12.0/what-is-mariadb-120.md)
* [large\_page\_size](/docs/server/server-management/variables-and-modes/server-system-variables.md#large_page_size), deprecated in [MariaDB 10.5.3](/docs/release-notes/community-server/old-releases/10.5/10.5.3.md), removed in [MariaDB 12.0](/docs/release-notes/community-server/old-releases/12.0/what-is-mariadb-120.md)
* [storage\_engine](/docs/server/server-management/variables-and-modes/server-system-variables.md#storage_engine), deprecated in [MariaDB 5.5](/docs/release-notes/community-server/old-releases/5.5/changes-improvements-in-mariadb-5-5.md), removed in [MariaDB 12.0](/docs/release-notes/community-server/old-releases/12.0/what-is-mariadb-120.md)

### Replication

* When upgrading a replica from a pre-12.3 release to MariaDB 12.3, the `CHANGE MASTER TO ... master_use_gtid` setting is not currently carried over and is reset to `DEFAULT` ([MDEV-39788](https://jira.mariadb.org/browse/MDEV-39788)). After upgrading, re-apply `master_use_gtid` if you rely on it. Downgrading is not affected. See [Upgrading from MariaDB 11.8 to MariaDB 12.3](/docs/server/server-management/install-and-upgrade-mariadb/upgrading/mariadb-community-server-upgrade-paths/upgrading-from-mariadb-11-8-to-mariadb-12-3.md) 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](/docs/server/security/cve/community-server.md) page.

| CVE ID (with cve.org link)                                        | CVSS base score (v3.1) | Community Server 12.3 Release                                         |
| ----------------------------------------------------------------- | ---------------------- | --------------------------------------------------------------------- |
| [CVE-2026-44173](https://www.cve.org/CVERecord?id=CVE-2026-44173) | 5.0                    | [MariaDB 12.3.2](/docs/release-notes/community-server/12.3/12.3.2.md) |
| [CVE-2026-44172](https://www.cve.org/CVERecord?id=CVE-2026-44172) | 5.0                    | [MariaDB 12.3.2](/docs/release-notes/community-server/12.3/12.3.2.md) |
| [CVE-2026-44171](https://www.cve.org/CVERecord?id=CVE-2026-44171) | 6.3                    | [MariaDB 12.3.2](/docs/release-notes/community-server/12.3/12.3.2.md) |
| [CVE-2026-44170](https://www.cve.org/CVERecord?id=CVE-2026-44170) | 5.0                    | [MariaDB 12.3.2](/docs/release-notes/community-server/12.3/12.3.2.md) |
| [CVE-2026-44169](https://www.cve.org/CVERecord?id=CVE-2026-44169) | 4.3                    | [MariaDB 12.3.2](/docs/release-notes/community-server/12.3/12.3.2.md) |
| [CVE-2026-44168](https://www.cve.org/CVERecord?id=CVE-2026-44168) | 8.0                    | [MariaDB 12.3.2](/docs/release-notes/community-server/12.3/12.3.2.md) |

## List of All MariaDB 12.3 Releases

| Date        | Release              | Status      | Release Notes                                                        | Changelog                                                                   |
| ----------- | -------------------- | ----------- | -------------------------------------------------------------------- | --------------------------------------------------------------------------- |
| 28 May 2026 | 12.3.2               | Stable (GA) | [Release Notes](/docs/release-notes/community-server/12.3/12.3.2.md) | [Changelog](/docs/release-notes/community-server/changelogs/12.3/12.3.2.md) |
| 12 Feb 2026 | 12.3.1               | RC          | [Release Notes](/docs/release-notes/community-server/12.3/12.3.1.md) | [Changelog](/docs/release-notes/community-server/changelogs/12.3/12.3.1.md) |
| 22 Dec 2025 | MariaDB 12.3 Preview | Preview     |                                                                      |                                                                             |

<sub>*This page is licensed: CC BY-SA / Gnu FDL*</sub>

{% @marketo/form formid="4316" formId="4316" %}
