MariaDB 13.1 is a rolling release preview, and, as usual, this is the right moment to test what is coming, give feedback, and help us polish the next MariaDB Server release.
But this time, there is something really interesting.
And by “interesting”, I mean: wow!
MariaDB 13.1 Preview includes 32 MDEVs with new features and improvements. To put that in perspective:
| Release | MDEVs |
|---|---|
| MariaDB Server 12.2 | 11 |
| MariaDB Server 12.3 | 15 |
| MariaDB Server 13.0 | 17 |
| MariaDB Server 13.1 | 32 |
How to make Joro happy
That is almost twice MariaDB 13.0, more than twice MariaDB 12.3, and almost three times MariaDB 12.2.
And all that in one quarter.
Of course, numbers are not everything. We don’t merge features just to make a nice graph for a blog post. But in this case, the number tells a real story: MariaDB 13.1 Preview is full of new work, and a large part of it comes from the community.
This is open source working exactly the way we like it.
Community, Community, Community
One of the most exciting parts of MariaDB 13.1 Preview is the amount of external contributions.
We had pull requests bringing SQL compatibility improvements, JSON enhancements, better tools, replication improvements, observability additions, engine work, and also cleanups and modernization that are not always visible in release notes but are very important for the long-term quality of the project.
And yes, I know, some changes don’t look spectacular at first sight.
But as DBAs, developers, packagers, and people running databases in production, we know that “small” improvements can be very important. Better error messages, better compatibility, safer tools, fewer surprises, cleaner internals… that’s the kind of work you appreciate the day something goes wrong at 02:00 in the morning.
So, to all contributors, once again: thank you!
And also a big thank you to the MariaDB Server team for reviewing, testing, improving, discussing, pushing, asking for changes, and eventually merging all that work. Processing that many PRs in one quarter is not magic. It requires discipline, knowledge, patience, and a lot of review work.
Open source is not only about receiving pull requests. It is also about being able to integrate them properly.
And I think the MariaDB team deserves a little applause for that too. Just a little one. Or maybe a big one. 🙂
What’s New in MariaDB 13.1 Preview?
MariaDB 13.1 Preview introduces many new features. Here are some of the areas I find particularly interesting.
SQL and compatibility improvements
There are several SQL-level improvements in this preview, including:
- support for JSON operators
column->pathandcolumn->>path. - optional lengths for string types such as
VARCHAR[(N)] - support for
SELECT ... INTOinside parentheses for better MySQL compatibility - local routine variables usable in
PREPARE,EXECUTE,DEALLOCATE, andOPEN ... FOR - package-wide
TYPEdeclarations NEWandOLDin triggers usable as row variables
These are exactly the kind of additions that make migrations easier, stored programs nicer to write, and applications a bit more portable.
I especially like the JSON operators that are a very expected feature. They are easy to read, familiar to many developers, and they make JSON expressions much less verbose.
Security and access control
MariaDB 13.1 introduces the DENY clause for access control, also known as “negative grants”.
This is a big one.
Privilege systems can become complex, especially when roles, inherited grants, and operational requirements meet real life. Being able to explicitly deny something gives administrators another tool to model access more precisely.
I will cover this particular feature in a future blog post. Stay tuned!
Better operational tools
MariaDB 13.1 also brings mariadbd --validate-config, allowing you to check whether the configuration is valid without starting the server.
That is the kind of feature that makes you say: “Why didn’t we always have this?”
Configuration mistakes happen. They happen in manual deployments, in automation, in containers, in CI/CD, and of course just before you planned to leave for dinner. Being able to validate the configuration before starting the server is a very practical improvement.
There are also InnoDB tablespace warning variables used to alert when a tablespace is approaching full capacity, before it reaches 100% and disrupts service.
That is another very practical DBA feature. Databases rarely fail at convenient moments, so having earlier warnings is always welcome.
InnoDB, MEMORY, and optimizer visibility
MariaDB 13.1 Preview includes several features for engines and query analysis:
- Per-table control of InnoDB Adaptive Hash Index
- Adaptive Hash Index statistics in
ANALYZE FORMAT=JSON - Optimizer Context Recorder, to record optimizer data and analyze query optimization on another server instance
- MEMORY tables supporting variable-length data types such as
VARCHAR,TEXT, andBLOB CHECK TABLEsupport for MEMORY tables
The Optimizer Context Recorder is another feature that deserves a dedicated article. Troubleshooting optimizer decisions can be difficult when you cannot reproduce the exact same environment. Being able to record optimizer context and analyze it somewhere else is very promising. So once again, stay tuned!
And MEMORY tables supporting variable-length columns? Nice. Very nice… and, of course, this long-awaited feature will also deserve a dedicated blog post!
JSON, XML, vectors, hashes, and more
There is more:
- formatted column support for
JSON_TABLE XMLISVALID()schema validation functionINFORMATION_SCHEMA.VECTOR_INDEXES- the
XXH3,XXH32,XXH64, andXXH128family of hash functions - short-circuit improvements for
ANDandOR slave_skip_errorsmodifiable without restarting the servermariadb-dumpno longer dumping generated column valuesmysqlbinlog --flashbackerror reporting improvements
Some of these are developer-facing. Some are DBA-facing. Some are compatibility improvements. Some are performance or operational improvements.
But together, they make 13.1 feel like a very dense preview release.
A Contribution in Focus
Not every good contribution is a shiny SQL feature.
A good example is the work done on resolveip, where deprecated network functions were replaced by modern POSIX equivalents.
The old APIs were IPv4-only, and some of them were not thread-safe. The new implementation uses modern APIs, adds IPv6 support for forward and reverse lookups, and keeps the existing output format and special cases.
This is the kind of contribution that may not get the same attention as a new SQL syntax, but it matters.
It improves portability. It improves maintainability. It removes legacy code paths. It prepares the project better for modern environments.
And this is also why community contributions are so valuable. Contributors bring features, but they also bring cleanup, modernization, testing, packaging improvements, compatibility work, and real-world operational experience.
Why Try the Preview?
As always, a preview release is not something you should deploy blindly in production.
But it is absolutely something you should test.
If one of these new features matters to your application, your migration project, your tooling, your monitoring, or your operational workflow, now is the right time to try it and provide feedback.
Preview releases are where you can influence what comes next.
And with MariaDB 13.1 Preview, there is a lot to try.
Thank You!
MariaDB Server is open source. That means code, discussions, reviews, tests, documentation, bug reports, packaging, and feedback all matter.
MariaDB 13.1 Preview is a very good reminder of that.
To all contributors: thank you for your work, your patience, your ideas, and your pull requests.
To the MariaDB Server team: thank you for reviewing, testing, integrating, and making sure this work becomes part of a coherent database server.
And to everybody else: please test MariaDB 13.1 Preview, report any issues, tell us what you like and what you don’t, and keep contributing.
As usual, enjoy MariaDB and happy testing!