MariaDB Community Server 10.5.2 Beta Now Available

We are pleased to announce the release of MariaDB Community Server 10.5.2, the second and final beta release. It is now available for download at: MariaDB Downloads.

The release of MariaDB Community Server 10.5.2 continues our policy of yearly releases to enable user access to new features, with following Generally Available (GA) releases that are focused on maintenance.

We encourage you to add MariaDB Server into your staging environment, so you can begin reviewing and testing the new features of MariaDB Community Server 10.5.

Changes to binary file paths

As we detailed in 2019, MariaDB Server 10.4 introduced a changeover to MariaDB-named commands to supersede historical MySQL-named commands. We have made this differentiation since MariaDB Server has its own roadmap, and incorporates features which are not present in MySQL Server. For MariaDB Server 10.4, we introduced ‘mariadb’-named symlinks to ‘mysql’-named commands for binaries. With MariaDB Server 10.5, binaries are now ‘mariadb’-named, and have ‘mysql’-named symlinks for backward compatibility. In the future we plan to make these symlinks optional.

Enhanced SQL and Data Types

MariaDB Community Server 10.5 incorporates features to improve and simplify the daily use of MariaDB as a developer or DBA, including:

  • INSERT and REPLACE support the extension RETURNING, to return a resultset of any expression based on the added value or on a specified SELECT expression.
  • EXCEPT ALL and INTERSECT ALL duplicates are delivered with the result set.
  • Since comments for tables and columns are widely used as a way to document schema objects, comments can now be added to a database via CREATE DATABASE or ALTER DATABASE.
  • JSON_ARRAYAGG and JSON_OBJECTAGG aggregate functions have been added to allow you to create JSON arrays or JSON objects from result sets.
  • RENAME INDEX and ALTER TABLE ... RENAME COLUMN syntax are now supported.
  • Recursive Common Table Expressions (CTE) implementation now includes automatic cycle suppression feature via a CYCLE clause.
  • A Data Type Plugin API has been added which permits users to create their own custom data types via plugins. New data types IPv6 and IPv4 are provided as examples.

Security

The SUPER privilege has historically covered a broad scope of administrative global privileges to control server operation. In practice we have found that users, and applications like MariaDB MaxScale, often need only a subset of the SUPER operational responsibilities.

MariaDB Server 10.5 introduces new finer-grained privilege levels to convey a subset of SUPER:

  • BINLOG ADMIN
  • BINLOG REPLAY
  • CONNECTION ADMIN
  • FEDERATED ADMIN
  • READ_ONLY ADMIN
  • REPLICATION MASTER ADMIN
  • REPLICATION SLAVE ADMIN
  • SET USER

The SUPER privilege acts as an alias combining the new privileges and the limited set of privileges retained solely by SUPER. This ensures the SUPER privilege maintains compatibility with behavior in prior MariaDB Server versions.

InnoDB Refactor

The InnoDB storage engine has undergone a substantial refactor and cleanup. Changes include:

  • Removal of unnecessary InnoDB variables
  • Updated InnoDB variable defaults
  • Additional InnoDB status variables
  • Optimized tablespace handling, and a new InnoDB thread pool for background tasks
  • Improved redo log format for increased efficiency
  • Removal of InnoDB-internal foreign key parsing, allowing this to be handled by the Server rather than the storage engine

Replication and Binary Log

Enhancements to replication and binary logging include:

  • Change of default slave_parallel_mode to “optimistic” instead of “conservative“. The optimistic mode of in-order parallel replication replays transactions in parallel, while still preserving exact transaction semantics from the application’s point of view. Such transactions can, in contrast to the conservative mode, result in a conflict if the same data is modified. The slave applier takes care of solving such conflicts by rolling back the later transaction and applies it again, to preserve binlog order committing.
  • SQL statements for controlling replication now allow the use of the term REPLICA instead of SLAVE.

System Information and Tracing

Enhancements to system information and tracing include:

  • The Information Schema now includes internals from the generic thread pool, to increase visibility of database behavior.
  • ANALYZE for statements now shows time spent checking the WHERE clause.
  • The Information Schema table SYSTEM_VARIABLES has a new column GLOBAL_VALUE_PATH that contains the path to the file that the value of the variable was read from.
  • The Performance Schema has been refactored for alignment to the MySQL 5.7 Performance Schema implementation, adding tables for memory, stored routines, prepared statements, transactions, connections, and more.

MariaDB Community Server 10.5.2