BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News MariaDB 13 Expands Oracle Compatibility and Improves Developer Experience and Observability

MariaDB 13 Expands Oracle Compatibility and Improves Developer Experience and Observability

Listen to this article -  0:00

MariaDB Community Server 13.0 has reached General Availability (GA) and is now officially stable. This release introduces a range of new features, deprecations, and performance improvements, including expanded support for procedural SQL, new DML capabilities, and more.

To make the transition of Oracle PL/SQL-based enterprise applications smoother, MariaDB 13 introduces native support for REF CURSOR types and RECORD types in routine parameters and function return values.

Support for weak and strong REF CURSOR brings MariaDB’s cursor handling closer to Oracle PL/SQL. These cursors can be opened, fetched, and closed, and can be used as local variables, package routine parameters, or package function return types.

RECORD support is expanded to allow its use as a stored routine parameter or stored function return type, in addition to local variables. RECORD can also be used with with REF CURSORs to work with structured row data.

Neither REF CURSOR nor RECORD are currently supported as a parameter or return type for non-package (global) routines.

MariaDB 13 also introduces a more straightforward way to work with data modified by UPDATE statements, which can now return the set of modified rows using the RETURNING clause. Combined with OLD_VALUE(), this allows developers to retrieve both old and new values in a single database round trip. Previously available only for INSERT and DELETE, the RETURNING clause is currently limited to single-table statements.

Another area where MariaDB 13 brings improvements is query optimization, by building on the optimizer hint framework introduced in MariaDB 12, making hints easier to use in complex queries. The framework now automatically assigns a query block name to Views, CTEs, and derived tables, enabling hints to target them without explicitly using QB_NAME(). In addition, QB_NAME locators provide a way to specify a path to deeply nested query blocks when they cannot be targeted by name alone.

On the observability and administration front, MariaDB 13 makes server configuration and metadata easier to inspect and automate. init_rpl_role, which specifies the replication role through a startup option, is now exposed as a system variable, allowing the server’s replication role to be checked directly with SHOW VARIABLES or @@init_rpl_role. To make storage-engine-specific index and column options accessible programmatically, the I_S.STATISTICS and I_S.COLUMNS tables now include a CREATE_OPTIONS column, exposing information that was previously available only through SHOW CREATE TABLE. Finally, the I_S.SYSTEM_VARIABLES table now includes columns indicating whether a system variable is deprecated.

MariaDB is a rolling release aimed at getting the latest capabilities to users quickly rather than being the long-term stability (LTS) target. The next planned LTS release is MariaDB 13.3.

About the Author

Rate this Article

Adoption
Style

BT