New GPG Release Key for RPMs

As mentioned in the previous batch of release notes (e.g. 10.6.11), our Yum/DNF/Zypper repositories for Red Hat Enterprise Linux, Centos, Fedora, openSUSE and SUSE will, from our next set of releases, be migrated to being signed with a new GPG key with SHA2 digest algorithms instead of SHA1.

The key we are migrating to is the same one we already use for our Debian and Ubuntu repositories.

  • The short Key ID is: 0xC74CD1D8
  • The long Key ID is: 0xF1656F24C74CD1D8
  • The full fingerprint of the key is: 177F 4010 FE56 CA33 3630 0305 F165 6F24 C74C D1D8

The key can be imported now in preparation for this change using the following command:

sudo rpm –import https://rpm.mariadb.org/RPM-GPG-KEY-MariaDB

Those with a gpgkey=https://mirror/yum/RPM-GPG-KEY-MariaDB in their repo file will still work, you’ll just need to accept the new key on DNF update.

Gcov in MariaDB

Gcov is a coverage testing tool, used to create better programs. It can show which parts of the codebase are untested. Gcov is located in the same package as gcc. MariaDB takes care of code quality and checks test coverage with Gcov. We are looking forward to have Gcov used soon as a part of our buildbot (MDBF-158).

How to use Gcov

Let’s write a demo example to demonstrate how it works.

— Source code:

$ cat -n test.c
int f1()
{
return 0; …

MariaDB Non-Code Contributions by Intel

I’ve mentioned in past blog posts that not every contribution is a code contribution. There are many possible contributions that are valuable, including testing, bug reports, helping the community, etc.

Non-code contributions are quite invisible

Unfortunately, non-code contributions are sometimes invisible to the wider community, so today I wanted to shine a light on some such contributions. In this case, contributions made by one of our sponsors, Intel.

Intel is open source friendly

Intel have been an open source friendly company for a long time. But have recently pushed harder than ever towards open source, even giving their first ever new Innovation Award to Linus Torvalds.

MariaDB 11.0 – new optimizer, new major version series

With MariaDB 10.0.0 having been released over ten years ago (12 Nov 2012), you may ask yourself when there will be MariaDB 11.0.0. If so, I can answer you: Today.

You can now download MariaDB Server 11.0 Alpha preview from our dedicated download page and check out the release notes.

Time has passed …

Of course, we have a better reason for going with a new first number in a release other than ten years having passed. Significant new features. Significant incompatibilities with earlier versions.

Writing User-Defined Functions in Rust

One of the most straightforward ways to add functionality to MariaDB or MySQL server instances is by creating a user-defined function (UDF). These are compiled functions loaded from dynamic binaries that can be much more performant and flexible than what can be written in SQL, providing the same capabilities as builtin functions.

These UDFs are typically written in C or C++, but a library is now available that makes it easy to write them in Rust. This blog discusses some of the reasoning for writing this library, followed by a very basic usage example that doesn’t require any experience with the language.

Going for a Code of Conduct

It may be long overdue, but based on recent events, we have launched Code of Conduct project at MariaDB Foundation. Our aim is to get your feedback and define a CoC, ideally by end of January, if we see convergence.

In the meantime, if we see unacceptable behaviour on the MariaDB mailing list or elsewhere, we will take action. We want to extend our apology to those who have had unpleasant experiences, about which we have done nothing in the past.

As for the code of conduct wording, our goal is to keep it short. Lofty goals often trigger distractive debates;

replicate_rewrite_db as a system variable in MariaDB

MariaDB 10.11.0, our latest preview release, features quite a number of improvements. The one we’ll talk about here is replicate-rewrite-db. This option has become a system variable from 10.11.0 based on MDEV-15530. Before this version it was just an option used by the mariadbd and mariadb-binlog binaries. There have been no behaviour changes with the option; it has simply become a dynamic variable.

How to try out this feature

The fastest way is to take MariaDB 10.11 for a spin in docker / podman (consult the blog mariadb-replication-using-containers) with the following commands:

To start a primary 10.11.0 MariaDB container, clone the directory, navigate to the cloned directory and run the following command:

docker run -d –rm –name mariadb-primary \
-v $PWD/config-files/primarycnf:/etc/mysql/conf.d:z \
-v $PWD/primaryinit:/docker-entrypoint-initdb.d:z \
-v $PWD/log-files-primary:/var/lib/mysql \
-e MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=True \
quay.io/mariadb-foundation/mariadb-devel:10.11

To start the replica/secondary run the command to start the mariadbd process as well as specify the replicate-rewrite-db option on the command line:

docker run -d –rm –name mariadb-secondary-1 \
-v $PWD/config-files/secondary-1:/etc/mysql/conf.d:z \
-v $PWD/secondaryinit:/docker-entrypoint-initdb.d:z \
-v $PWD/log-files-secondary-1:/var/lib/mysql \
-e MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=True \
quay.io/mariadb-foundation/mariadb-devel:10.11 –replicate-rewrite-db=’db1->db2′

Besides specifying the option as a command line argument, you can use a configuration file.

GRANT TO PUBLIC in MariaDB

MariaDB 10.11.0, our latest preview release, features quite a number of improvements. The one we’ll talk about today is GRANT … TO PUBLIC.

Background

MariaDB has quite a complex privilege system. Most of it is based on the SQL Standard spec; however we do have some specific MariaDB extensions. GRANT … TO PUBLIC (MDEV-5215) is a standard feature that is now available as a preview in MariaDB 10.11.0. It is related to ROLES and DEFAULT ROLE, but it covers a different use case.

ROLES are effectively “privilege packages” that you can enable and disable as a user.