Unleashing Innovation Through Plugins

One of the corner stones in MariaDB Foundation’s mission is:

We strive to increase adoption by users and across use cases, platforms and means of deployment.

https://mariadb.org/about/

MariaDB Server plugins are definitely a prime “means of deployment” for server features. But a relatively neglected one so far. They have been around for many years. But, somehow, they have escaped the user’s focus. Why that happened is a very interesting topic. And one that I’d definitely like to hear your opinion on!

Which brings me to my main topic: How do we all change that?

Adding a New Data Type to MariaDB with Type_handler – Part 5

We are concluding our series related to new data types using the Type_handler framework, with some limitations that are not yet covered by the framework:

  • No custom indexing methods. A plugin type cannot introduce a new indexing method.
  • No custom hashing. Plugin types can’t provide their own function for hash-based operations. Things like MEMORY table indexes, GROUP BY, and partitioning fall back to the underlying type’s hash.
  • No new field attributes. Plugin types cannot define custom attributes beyond the existing ones: length, precision, scale, and GIS SRID.

Adding a New Data Type to MariaDB with Type_handler – Part 4

This is part 4 of a series related to extending MariaDB with a custom data type using the Type_handler framework.

You can find the previous articles below:

Overriding Existing Types

In the previous examples, our MONEY data type inherits from DOUBLE and then we override some methods.

Long live to dbdeployer!

As you know, MySQL-Sandbox and then dbdeployer have always been part of the Swiss Army knife for DBAs trying to evaluate, test, or reproduce issues with a certain version of their database.

The author, Giuseppe Maxia, aka the datacharmer, produced incredible work on these two projects. Unfortunately, Giuseppe decided to archive the project in 2023. Read the announcement.

But finally, someone has decided to take up the torch. ProxySQL announced this big decision last month.

We at the MariaDB Foundation are very happy that dbdeployer has risen from the ashes thanks to the ProxySQL team, and we are committed to further developing and contributing to this great tool for all its users, especially those who use it to deploy MariaDB Server.

Adding a New Data Type to MariaDB with Type_handler – Part 3

In the previous article, we wrote, compiled, and tested our first custom data type for MariaDB using the Type_handler framework.

But currently, aside from allowing the use of its new name (MONEY) and listing it in the metadata, our new data type behaves exactly like a DOUBLE, the class it inherits from.

In this article, we will extend our data type just a bit by transforming the result into a VARCHAR and adding a currency sign to it: the dollar sign ($).

This is the expected result:

MariaDB [test]insert into t1 (amount) values (41578.4); …

Adding a New Data Type to MariaDB with Type_handler – Part 2

After having discovered the Type_hander framework and learned how to build MariaDB Server from source, it’s time to code our first data type!

We will create a MariaDB plugin that registers a new MONEY type and instantiates a custom field object.

Our component won’t be exciting, but we want to understand how to use the framework and test it.

We want to prove that

  • the plugin loads,
  • the server sees the type hander,
  • a MONEY column can create a Field_money object.

Everything else comes later.

From Ecosystem to Architecture: Expanding How We Look at MariaDB

Over the past month, one question has been coming up with increasing frequency:

What is the MySQL / MariaDB ecosystem?

In most discussions, the answer tends to focus on contributors to the source code: engineers, committers, and core developers shaping the database itself. That perspective is both valid and essential.

But it is only part of the picture.

Over the past few months, we have been looking at the ecosystem from a different angle:

What is being built around MariaDB?
Where is it being used?

Adding a New Data Type to MariaDB with Type_handler – Part 1

This is the first part of the series about how to add a new data type to MariaDB using the Type_handler framework. A preliminary article has already been published to start the series; it covers how to set up your development environment and compile MariaDB Server: Adding a New Data Type to MariaDB with Type_handler – Part 0.

Understand Type_handler Before Writing Code

When you add a new type to MariaDB, you are not only adding a new SQL keyword. Historically, that kind of work required invasive changes across the parser, optimizer, protocol, replication, and type-conversion mechanisms.