The release of the MariaDB 12.0.2 database management system has been published, marking the first stable release of the 12.0 branch. The MariaDB 12.0 branch is classified as a rolling release, continuing the gradual development of functionality and replacing the MariaDB 11.8 branch. At the same time, MariaDB 12.1.1 has been released, which has a candidate status. The MariaDB 12.0 branch will be supported until the 12.1.2 release is formed.
The MariaDB project develops a fork from MySQL, preserving backward compatibility and distinguished by the integration of additional storage engines and enhanced capabilities. The development of MariaDB is overseen by the independent MariaDB Foundation in accordance with an open and transparent development process that is not dependent on individual vendors. MariaDB is supplied instead of MySQL in many Linux distributions (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) and is implemented in major projects such as Wikipedia, Google Cloud SQL, and Nimbuzz.
Changes in the MariaDB 12.0 branch include:
- Support for SSL keys protected by a password has been added. The password for unlocking SSL certificates can be specified through the ssl_passphrase variable or manually when starting the server.
- The expression "SET SESSION AUTHORIZATION" has been added to perform actions as another user when the appropriate privileges are set (this expression can be viewed as analogous to "sudo" for database management systems).
- Support for SHA-2 hashes has been added to the file_key_management.so plugin.
- Support for weak cursor variables of the predefined type SYS_REFCURSOR has been added, allowing cursors to be returned from stored procedures (in the OUT parameter) or from functions (in the RETURN expression). A system variable "max_open_cursors" has been added to limit the maximum number of simultaneously open cursors.
- The TO_CHAR type has been enhanced with support for the FM (Fill Mode) format to exclude padding. For example, the query "SELECT CONCAT(‘\/', TO_CHAR(‘2020-01-06 10:11:12’, ‘FMDAY’), ‘\/’);" will return "\/Monday\/" instead of "\/Monday \/".
- Support for tables from the SEQUENCE engine has been added to the mariadb-check utility and the CHECK TABLE expression.
- The optimizer now supports options (hints) that influence optimization plan construction: QB_NAME, NO_RANGE_OPTIMIZATION, NO_ICP, MRR, NO_MRR, BKA, NO_BKA, BNL, NO_BNL, SEMIJOIN, SUBQUERY, JOIN_FIXED_ORDER, JOIN_ORDER, JOIN_PREFIX, JOIN_SUFFIX, and MAX_EXECUTION_TIME. Options are inserted into the query in a format compatible with MySQL, for example: SELECT /*+ BKA(t1) NO_BKA(t2) */ * FROM t1 INNER JOIN t2 WHERE …; SELECT /*+ MAX_EXECUTION_TIME(1000) */ * FROM t1 INNER JOIN t2 WHERE …;
- Support for new GIS (Geographic Information System) functions has been added: ST_Validate, MBRCoveredBy, ST_Simplif, ST_GeoHash, ST_LatFromGeoHash, ST_LongFromGeoHash, ST_PointFromGeoHash, ST_IsValid, ST_Collect.
- Support for triggers firing on multiple events has been added. The CREATE TRIGGER expression can now list the events it applies to using the syntax "{ event [ OR … ] }".
- The Audit plugin now records information about network ports for incoming connections in the audit log (previously, only the host was reflected).
- The mariadb utility has added the option "--script-dir" to specify an alternative directory for searching scripts executed by the SOURCE command.
- The variables big_tables, large_page_size, and storage_engine have been removed as they were previously marked deprecated.
Source: opennet.ru
