u/fredericdescamps

When AI finds the bugs we missed — a very busy year so far for MariaDB Security
▲ 11 r/mariadb

When AI finds the bugs we missed — a very busy year so far for MariaDB Security

We’ve seen a significant increase in security reports this year, with AI-assisted research clearly playing a role.

I wrote a post looking at what happened, how reports are triaged, the difference between a report and a confirmed vulnerability, and how those confirmed issues have been fixed and published through security advisories and CVEs.

Feedback and discussion are very welcome:

https://mariadb.org/when-ai-finds-the-bugs-we-missed-a-very-busy-year-for-mariadb-security/

u/fredericdescamps — 13 days ago
▲ 10 r/mariadb

TideSQL 5 and MariaDB: the Tides Are Moving Fast

A few months ago I shared my first experiments with TideSQL, the MariaDB storage engine powered by TidesDB.

I had another look at it now that TideSQL 5 is available, and things are moving pretty quickly.

In this post, I look at the new features, the LSM architecture, transactions and durability, replication/Galera, and the recently published TideSQL vs InnoDB sysbench results.

I also tried not to turn this into another “X is faster than Y” benchmark post. 🙂 The 4GB cache tests are particularly interesting because they show the trade-off quite well: InnoDB becomes faster for some read workloads while TideSQL keeps significant advantages on several write-heavy workloads.

For me, the interesting part is really the possibility of having different storage architectures behind MariaDB:

  • InnoDB for traditional transactional workloads
  • TideSQL/TidesDB for write-heavy workloads
  • DuckDB for analytics

Same server, same SQL interface, different storage architectures.

https://mariadb.org/tidesql-5-and-mariadb-the-tides-are-moving-fast/

I'd also be interested to hear what workloads people would like to see tested with TideSQL. I'm planning to do more tests with secondary indexes, replication and Galera.

https://preview.redd.it/abx45hvsf9rh1.png?width=1200&format=png&auto=webp&s=8f9b1615fb84ef0d326f8e13c6eb2cf089603e2f

reddit.com
u/fredericdescamps — 22 days ago
▲ 15 r/mariadb

MariaDB 13.0 is now Stable — 604 commits and 335 MDEVs since RC

MariaDB Server 13.0.2 has been released, making the 13.0 series the latest Stable rolling release.

I wrote a short overview of what “Stable” actually means here, and why the work between Preview/RC and Stable is much more than changing a label.

Between RC and Stable alone:

  • 604 additional commits
  • 1,701 files changed
  • 335 MDEVs addressed
  • 23,748 test lines added, including 4,222 lines in .test files

13.0 includes improvements around SQL compatibility, optimizer and metadata visibility, InnoDB log archiving, replication, observability, and more.

And there’s also a rather interesting new storage engine in the ecosystem… 🦆

Full post:
https://mariadb.org/mariadb-13-0-is-now-stable/

If you’re testing or upgrading to 13.0, I’d be interested to hear what you’re trying first — and of course, please report any issue you find.

https://preview.redd.it/fidfwszzz0qh1.png?width=1200&format=png&auto=webp&s=3e0af2a97a629f944bd14a361abd0dcd7045bc13

reddit.com
u/fredericdescamps — 28 days ago
▲ 26 r/mariadb+1 crossposts

The MariaDB Foundation wants to know how you use MariaDB — or why you don't. 2026 survey open, 8 min, anonymous

The MariaDB Foundation's annual survey is open until mid-October — 8 minutes, anonymous, no login:

https://mariadb.typeform.com/to/tS69UzVo?utm_source=reddit_mariadb

Last year 275 people took part in the first survey ever and it became a public report at https://mariadb.org/survey. This year:

  • Questions tailored to your role — app dev, DBA/ops, decision-maker, engine/extension dev, provider, analytics. You only see what applies to you.
  • Open to non-users — on MySQL or Postgres? We especially want to know why.
  • New questions on AI and vectors, the ecosystem, analytics, managed services.
  • A few old questions too for comparison to last year

This is a community effort, from small setups to large enterprises to providers. If you know other database people, please pass it on. Every response is appreciated and needed.

Go for it: https://mariadb.typeform.com/to/tS69UzVo?utm_source=reddit_mariadb
Thank you for your time :)

— Robert, MariaDB Foundation

u/fredericdescamps — 1 month ago

MariaDB Connector/C and CONC-821: compatibility impact, planned correction, and guidance for users

I’ve written an update on CONC-821, a MariaDB Connector/C change that affected behavior relied on by applications including Qt-based software and Diesel.

The post explains what changed, how community reports helped establish the impact, and the plan to restore the previous behavior, document it, and add regression tests.

The complete correction is not yet available in an upstream release, although some distribution packages already carry patches. I’ve included guidance on checking the connector your application actually uses and reporting any remaining issues.

Thanks to the application developers, distribution maintainers, and contributors who helped investigate this.

Read the update

If you’ve encountered this, feedback about your application, connector package, and whether a patched build resolves it would be useful.

mariadb.org
u/fredericdescamps — 1 month ago
▲ 3 r/mariadb+1 crossposts

MariaDB Foundation newsletter, September 2026: governance model, contribution stats, 13.1 preview features, Q3 releases

The Foundation has started a monthly newsletter, and the first issue is out. It covers what happened in August:

https://mariadb.org/mariadb-foundation-newsletter-september-2026/

- MariaDB Server's governance model, now written down: roles, subsystem ownership, how decisions get made

- Contribution statistics for January to June 2026, the first report in over a year, including 40 independent contributors

- 13.1 preview: JSON arrow operators (-> and ->>) and JSON_TABLE improvements

- Pluggable aggregate functions, as groundwork for HyperLogLog

- Q3 maintenance releases: 12.3.3, 11.8.9, 11.4.13, 10.11.19, and the first round without 10.6

- Around the ecosystem: Oracle's community roadmap and vector search, VillageSQL 0.0.6, Percona's OIDC auth

u/fredericdescamps — 1 month ago

MariaDB is heading to Percona Live Amsterdam! 🇳🇱

MariaDB will be well represented at Percona Live Amsterdam this year 🦭

Several sessions cover different sides of the ecosystem: plugins and extensibility, security, operations, and community.

I put together an overview of the MariaDB-related sessions here:
https://mariadb.org/mariadb-at-percona-live-amsterdam-2026-ecosystem-plugins-security-and-community/

Anyone else planning to be in Amsterdam?

u/fredericdescamps — 1 month ago
▲ 17 r/mariadb

MariaDB Server – See What Changed Between Versions

When preparing a MariaDB upgrade, I often want to know more than what’s listed in the release notes: which variables disappeared, which defaults changed, what plugins or privileges were added, etc.

So I built a small tool that lets you compare up to 8 MariaDB Server versions side by side.

I wrote about it here: https://lefred.be/content/mariadb-server-see-what-changed-between-versions/

Feedback and suggestions are very welcome!

u/fredericdescamps — 2 months ago

MariaDB InnoDB Disk Space & Fragmentation

I wrote a new post about InnoDB disk space and fragmentation in MariaDB Server.

One thing I wanted to understand better was: how can we reliably identify tables that would actually benefit from OPTIMIZE TABLE?

INFORMATION_SCHEMA.TABLES.DATA_FREE doesn't tell the whole story. After random deletes, pages can remain allocated to the B-tree while being only partially filled, so a table may be significantly fragmented without DATA_FREE showing it clearly.

In the post, I walk through several deletion patterns, visualize the actual InnoDB tablespace layout, compare DATA_FREE with Buffer Pool estimates, and test a new option in my mariadb-innodb-space-map tool to estimate the space that could be recovered.

In my example:

  • estimated saving with the fast scan: 352 MiB
  • actual space reclaimed after OPTIMIZE TABLE: 344 MiB
  • fast estimation time on a ~1.9 GB tablespace: ~0.5 sec

The fast mode reads the XDES allocation metadata and samples allocated index pages rather than scanning the entire tablespace.

Would be interested to know how other MariaDB/MySQL DBAs decide when an OPTIMIZE TABLE is actually worth running.

https://lefred.be/content/mariadb-innodb-disk-space-fragmentation/

u/fredericdescamps — 2 months ago

MariaDB 13.1 finally gets the JSON -> and ->> operators 🎯

This one has been requested for a long time!

MariaDB 13.1 adds the familiar JSON arrow operators:

document->'$.customer.name'

and

document->>'$.customer.name'

It might look like a small syntax improvement, but it makes JSON queries much cleaner and removes another compatibility difference with MySQL. PostgreSQL users will also find the syntax familiar, although nested navigation works a little differently.

13.1 also improves JSON_TABLE() with FORMAT JSON, allowing complete objects and arrays to be returned as JSON instead of forcing them into scalar values.

I wrote a few examples and comparisons with MySQL/PostgreSQL here:

https://mariadb.org/mariadb-13-1-feature-in-focus-json-operators-and-json_table-improvements/

Curious how many people here were already using JSON_EXTRACT() / JSON_UNQUOTE() heavily enough to be waiting for this?

u/fredericdescamps — 2 months ago
▲ 3 r/mariadb+1 crossposts

Teaching MariaDB About Your Domain

I’ve been experimenting quite a lot with MariaDB Server plugins, and this time I wanted to explore something a bit different: plugins that are useful to a very small audience.

I created two domain-specific data types for Belgium:

  • BEL_PAY_REF for Belgian structured payment references such as +++123/4567/89002+++
  • BCE for Belgian enterprise numbers such as 0417.497.106

Instead of storing these as generic VARCHARs and duplicating validation/normalization logic in every application, the database itself understands the domain.

The bigger point is that I don’t think every database extension needs to justify itself to millions of users. A plugin can be extremely local or industry-specific while the core server remains generic.

I wrote about the idea, the implementation and where I think this kind of extensibility can go.

I’d also be interested in examples of domain-specific types or rules you would like your database to understand natively.

lefred.be
u/fredericdescamps — 2 months ago

Say the Name: MariaDB, MySQL, and the Ecosystem We Share

MariaDB and MySQL share history, protocols, tools and community—but they are not the same product. And yes, MariaDB bugs reach us faster when they are reported to MariaDB Jira. 🦭🐬 #mariadb #mysql #community

mariadb.org
u/fredericdescamps — 3 months ago

MariaDB GTID Flashback: Reverse Transactions from Binary Logs

What if you could reverse a transaction directly from its GTID? Here is the result of an idea and a script dating back around ten years: discover the GTID Info plugin, which analyses binary logs and generates reverse SQL code for DML operations. And all this thanks to the MariaDB Server plugin interface.

lefred.be
u/fredericdescamps — 3 months ago
▲ 12 r/mariadb

From PostgreSQL 12 to MariaDB 11: lessons from a gradual fintech migration

We wrote a case study about a fintech company that migrated from a large monolithic PostgreSQL 12 environment to MariaDB 11.

Instead of performing a big-bang cutover, the team migrated tables and partitions individually, using CDC, dual writes, consistency checks, and query routing while PostgreSQL remained the default system.

The migration took approximately one year and resulted in 23% lower TCO, faster analytical queries, and a reported 20% improvement in time-to-market.

The article covers the architecture, why a PostgreSQL upgrade alone was not considered sufficient, the role of InnoDB, ColumnStore, Galera and Otterstax, the SQL compatibility work, and the trade-offs encountered during the project.

I would be interested to hear how others have approached gradual migrations between different database engines.

mariadb.org
u/fredericdescamps — 3 months ago

MariaDB Tips & Tricks: Where does my configuration variable value come from?

MariaDB Tips & Tricks: Where does my configuration variable value come from?? 🦭 https://lefred.be/content/mariadb-tips-tricks-where-does-my-configuration-variable-value-come-from/

Example: where was configured max_connections?

MariaDB [(none)]> SELECT
    VARIABLE_NAME,
    GLOBAL_VALUE,
    DEFAULT_VALUE,
    GLOBAL_VALUE_ORIGIN,
    GLOBAL_VALUE_PATH
FROM information_schema.SYSTEM_VARIABLES
WHERE VARIABLE_NAME = 'MAX_CONNECTIONS'\G
*************************** 1. row ***************************
        VARIABLE_NAME: MAX_CONNECTIONS
          GLOBAL_VALUE: 200
         DEFAULT_VALUE: 151
   GLOBAL_VALUE_ORIGIN: CONFIG
      GLOBAL_VALUE_PATH: /etc/my.cnf.d/60-custom.cnf
u/fredericdescamps — 3 months ago

MariaDB ADBC Driver: Native Apache Arrow Integration

https://preview.redd.it/o70q57fzdqdh1.png?width=1200&format=png&auto=webp&s=0c52b9dc9e9b6a8abf3667dd067df546d1914cb3

Apache Arrow Database Connectivity, or ADBC, provides a standardized way to exchange columnar data between databases and Arrow-compatible applications. The native MariaDB ADBC driver brings MariaDB into this ecosystem with support for SQL queries, Arrow record batches, prepared statements, bulk ingestion, transactions, metadata discovery, statistics, and MariaDB-specific data types. If you want to learn what the driver supports today, how it compares with the existing MySQL ADBC driver, and what remains on the roadmap, visit https://lefred.be/content/a-native-adbc-driver-for-mariadb/

reddit.com
u/fredericdescamps — 3 months ago

When the Sea Lion teaches the Duck how to bark!

https://preview.redd.it/t14gqpivxmdh1.png?width=1173&format=png&auto=webp&s=3b129a8c39160e2c32def6c781d6afbd0286f064

Install the MariaDB ADBC driver, configure a DuckDB profile 🦆, and query MariaDB 🦭 data directly from DuckDB. #mariadb #duckdb #adbc

https://lefred.be/content/when-the-sea-lion-teaches-the-duck-how-to-bark/

profile_version = 1
driver = "mariadb"

[Options]
uri="mariadb://msandbox:msandbox@127.0.0.1:13100/test"profile_version = 1
driver = "mariadb"

---------

memory D ATTACH 'profile://mydb' AS mariadb (
               TYPE adbc,
               DELIMITER '``'
           );
memory D SELECT * FROM mariadb.main.t2;
┌──────────────────────────────────────┬──────────────┬──────────────────────────┐
│                  id                  │     name     │         created          │
│               varchar                │   varchar    │ timestamp with time zone │
├──────────────────────────────────────┼──────────────┼──────────────────────────┤
│ 019f6239-5ae2-77e0-a8e5-ee4bd2bf9158 │ anna updated │ 2026-07-14 22:02:33+02   │
│ 019f6239-5ae2-78c0-a082-05c1bec9731a │ kaj          │ 2026-07-14 22:02:33+02   │
│ 019f6239-5ae2-78e8-94b2-69213c46af07 │ roman        │ 2026-07-14 22:02:33+02   │
│ 019f6246-e633-7978-af54-ad773ecd5e8e │ fred         │ 2026-07-14 22:17:21+02   │
│ 019f6246-e633-7978-af54-ad773ecd5e90 │ new name     │ 2026-07-14 23:34:04+02   │
└──────────────────────────────────────┴──────────────┴──────────────────────────┘
reddit.com
u/fredericdescamps — 3 months ago