Bringing Oracle’s Associative Arrays to MariaDB

One of the standout features of Oracle PL/SQL is the associative array — a versatile and efficient in-memory data structure that developers rely on for fast temporary lookups, streamlined batch processing, and dynamic report generation.

With the MariaDB 12.1 preview release, we’re excited to announce that associative arrays have landed in MariaDB as part of our growing set of Oracle compatibility features. This milestone, tracked under MDEV-34319, brings Oracle-style associative arrays into the MariaDB procedural language — complete with native type declarations, variable construction, and method support.

Let’s explore what’s included, what’s different, and how this feature was implemented from the ground up. 

MariaDB 12.1 preview available

We are pleased to announce the availability of a preview of the MariaDB 12.1 series. MariaDB 12.1 will be a rolling release.

MariaDB 12.1 introduces numerous new features, in particular

Performance improvements

  • Segmented key cache for Aria (MDEV-24)
  • MDL scalability improvements (MDEV-19749)
  • Parallel replication for galera replicas (MDEV-20065)
  • Buffered logging for audit plugin (MDEV-34680)
  • Faster vector distance calculations via extrapolation (MDEV-36205)

Compatibility features

  • caching_sha2_password plugin (MDEV-9804)
  • ( + ) for outer join syntax (MDEV-13817)
  • rpl_semi_sync_master_wait_for_slave_count (MDEV-18983)
  • Associative arrays: DECLARE TYPE ..

MariaDB 11.4.0 preview release now available

The MariaDB Foundation is pleased to announce the availability of MariaDB 11.4.0, a preview release in the MariaDB 11.4 series. MariaDB 11.4 is a short-term release and will be maintained for one year after its G.A (stable) release.

The release contains the following new features. Note that as a preview release, not all features are guaranteed to make it into the MariaDB 11.4 series.

Partitioning

Sys Schema

MariaDB 11.3.0 preview release available

The MariaDB Foundation is pleased to announce the availability of MariaDB 11.3.0, a preview release in the MariaDB 11.3 series. MariaDB 11.3 is a short-term release and will be maintained for one year after its G.A (stable) release.

See the release notes for details.


Download MariaDB 11.3.0

Release Notes What is MariaDB 11.3?


Thanks, and enjoy MariaDB! …

MariaDB 11.2.0 preview release available

The MariaDB Foundation is pleased to announce the availability of MariaDB 11.2.0, a preview release in the MariaDB 11.2 series. MariaDB 11.2 is a short-term release and will be maintained for one year after its G.A (stable) release.

See the release notes and changelogs for details.


Download MariaDB 11.2.0

Release Notes What is MariaDB 11.2?


Thanks, and enjoy MariaDB! …

10.9 preview feature: SHOW ANALYZE and EXPLAIN FOR CONNECTION support

SHOW ANALYZE

If you ever had to do query performance troubleshooting with MariaDB, you should be
familiar with MariaDB’s ANALYZE for statements feature. It does what EXPLAIN ANALYZE does in some other database systems: ANALYZE query runs the query and produces EXPLAIN output, amended with the data from the query execution:

ANALYZE SELECT *
FROM orders, customer
WHERE
customer.c_custkey = orders.o_custkey AND
customer.c_acctbal < 0 AND
orders.o_totalprice > 200*1000
+—-+————-+———-+——+—————+————-+———+——————–+——–+——–+———-+————+————-+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | r_rows | filtered | r_filtered | Extra |
+—-+————-+———-+——+—————+————-+———+——————–+——–+——–+———-+————+————-+
| 1 | SIMPLE | customer | ALL | PRIMARY,…

10.9 preview feature: JSON path expression and JSON_OVERLAPS()

The MariaDB 10.9 preview releases introduce a MySQL compatibility syntax extension, range notation. The ‘last’ keyword was added in JSON path expression, as requested in MDEV-22224 and MDEV-27911. Additionally, negative indexes are now also supported. Range notation, implemented using the ‘to’ keyword, and the ‘last’ keyword, is basically an array element selector.

Syntax:

Range notation:
[M to N] selects a range of elements starting from index M to N.
Last keyword:
[last-N] / [last] selects the Nth from last element, and last element, respectively.

10.7 preview feature: CONVERT PARTITION

If you are using table partitioning, you have likely heard of the ALTER TABLE … EXCHANGE PARTITION … WITH TABLE … command. It existed in MariaDB since forever. But if you check the manual (any manual) or search the web, you will see that almost the only use case of it is converting a partition to a standalone non-partitoned table, or converting a standalone non-partitoned table into a partition.

And the usage was designed back then to be anything but obvious. To convert a partition to a table you need first to create an empty table with the same structure as a partition, then you exchange it with a partition, and then you drop the empty partition.