Changes and Improvements in MariaDB 10.5

You are viewing an old version of this article. View the current version here.

Do not use beta releases in production!

MariaDB 10.5 is the current major development version. MariaDB 10.4 is currently stable and feature-complete, so new features are going into 10.5.


Implemented Features


  • All binaries previously beginning with mysql now begin with mariadb, with symlinks for the corresponding mysql command. (MDEV-21303)



  • Added JSON_ARRAYAGG. This returns a JSON array containing an element for each value in a given set of JSON or SQL values. It acts on a column or an expression that evaluates to a single value.
  • Added JSON_OBJECTAGG. This returns a JSON object containing key-value pairs. It takes two expressions that evaluate to a single value, or two column names, as arguments, the first used as a key, and the second as a value.

Storage Engines

  • The S3 storage engine allows one to archive MariaDB tables in Amazon S3, or any third-party public or private cloud that implements S3 API.
  • Both S3 tables and partitioned S3 tables are discoverable. This means that if you create a partitioned S3 table, both the partitioned table and its partitions can be directly used by another server that has access to the S3 storage. (MDEV-22088)


  • Split SUPER privilege to smaller privileges (MDEV-21743). New privileges were added so that more fine grained tuning of what each user can do can be applied:
    • SET USER
  • The REPLICATION CLIENT privilege was renamed to BINLOG MONITOR. The old syntax is understood for compatibility (MDEV-21743).
  • The SHOW MASTER STATUS statement was renamed to SHOW BINLOG STATUS (MDEV-21743). The old syntax is understood for compatibility.
  • A number of statements changed the privileges that they require. The old privileges were historically inappropriately chosen in the upstream. 10.5.2 fixes this problem. Note, these changes are incompatible to previous versions. A number of GRANT commands might be needed after upgrade.
    • SHOW BINLOG EVENTS now requires the BINLOG MONITOR privilege (requred REPLICATION SLAVE prior to 10.5.2).
    • SHOW SLAVE HOSTS now requires the REPLICATION MASTER ADMIN privilege (required REPLICATION SLAVE prior to 10.5.2).
    • SHOW SLAVE STATUS now requires the REPLICATION SLAVE ADMIN or the SUPER privilege (required REPLICATION CLIENT or SUPER prior to 10.5.2).
    • SHOW RELAYLOG EVENTS now requires the REPLICATION SLAVE ADMIN privilege (required REPLICATION SLAVE prior to 10.5.2).
  • In order to help the server understand which version a privilege record was written by, the mysql.global_priv.priv field contains a new JSON field, version_id (MDEV-21704)
  • SHOW PRIVILEGES now correctly lists the Delete history privilege, rather than displaying it as Delete versioning rows. (MDEV-20382)

Thread Pool


Performance Schema

  • Merge 5.7 P_S transaction instrumentation and tables (MDEV-16435)
  • Merge 5.7 P_S memory instrumentation and tables (MDEV-16431)
  • Merge 5.7 P_S mdl instrumentation and tables (MDEV-16432)
  • Merge 5.7 P_S sxlocks instrumentation and tables (MDEV-16436)
  • Merge 5.7 P_S user variables instrumentation and tables (MDEV-16439)
  • Merge 5.7 P_S [show] status instrumentation and tables (MDEV-16438)
  • Merge 5.7 P_S ps instrumentation and tables (MDEV-16433)
  • Merge 5.7 P_S sp instrumentation and tables (MDEV-16434)

Performance improvements

  • Speed up binary row logging code
  • Range optimizer speedups. Removed double calls to records_in_range() for some cases.
  • Costs for using MEMORY tables updated to be more accurate
  • Fixed that 'ref' access is preferred over 'range' for the same index.

Galera and Replication

Binary Log

  • Extended binlog metadata (MDEV-20477)
  • Binary log DDL entries can now be marked that they should be ignored if the target table doesn't exists (implicit IF EXISTS.
  • mysqlbinlog output is extended to show all replication flags. Example of output: SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/.
  • SHOW BINLOG EVENTS and SHOW RELAYLOG EVENTS are extend to show replication flags.

Query Optimizer

  • ANALYZE for statements is improved, now it also shows the time spent checking the WHERE clause and doing other auxiliary operations (MDEV-20854)
  • Inferred IS NOT NULL predicates can be used by the range optimizer (MDEV-15777)
  • Allow packed values of non-sorted fields in the sort buffer (MDEV-21263)
  • Allow packed sort keys in sort buffer (MDEV-21580)


PCRE (Perl Compatible Regular Expressions)



List of All MariaDB 10.5 Releases

DateReleaseStatusRelease NotesChangelog
26 Mar 2020MariaDB 10.5.2BetaRelease NotesChangelog
14 Feb 2020MariaDB 10.5.1BetaRelease NotesChangelog
3 Dec 2019MariaDB 10.5.0AlphaRelease NotesChangelog


Comments loading...
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.