Back to Programs

Data

MariaDB

The fastest growing Open Source Database

cc++databasejavascriptperlpython

Participation history

11 GSoC years

2026

8 projects

Official year page

Parallel HNSW Index Construction for MariaDB Vector Search

MariaDB's HNSW vector index currently builds graphs sequentially, one row at a time. This creates two problems: ALTER TABLE on large tables stalls...

Implement a distinct data type for JSON

MariaDB currently implements the JSON data type as an alias for LONGTEXT rather than as a distinct type, causing JSON columns to be misreported in...

Optimize INFORMATION_SCHEMA Queries (MDEV-31342 & MDEV-31535)

This project aims to resolve significant performance bottlenecks in MariaDB’s INFORMATION_SCHEMA when dealing with a high number of databases or...

Implementing ANY_VALUE() and GROUPING() in MariaDB

This project aims to implement the ANY_VALUE() and GROUPING() functions in MariaDB, addressing longstanding gaps in compatibility with MySQL 8.0 and...

Extending MariaDB SQL Capabilities with Binary Bitwise Operations and JSON Membership Queries

This project enhances MariaDB’s SQL engine by introducing native bitwise operations for binary and bit types and implementing the JSON MEMBER OF...

Streaming window functions and optimization of RRF queries.

Window functions in MariaDB are currently always materialized into temporary tables before producing any results, even for simple cases, like ranking...

MDEV-37605 Converting InnoDB-Based Binary Logs to Legacy Format

With MDEV-34705, MariaDB introduced the ability to store binary logs inside InnoDB tablespace files ( .ibb ) instead of traditional flat sequential...

ONE-PASS HNSW SEARCH FOR MARIADB VECTOR SEARCH

MariaDB's HNSW vector index searches the graph layer by layer, isolating each level's connections. This means denser lower-layer edges are invisible...

2025

6 projects

Official year page

Reduce computations in JOINs by using Bloom-filter-based pre-joins

Implement an efficient Bloom Filter to reduce JOIN's computations. Idea is to apply Bloom filter on columns to filter the data as much as possible,...

Plugin for automatic embedding generation and introduction of expensive functions concept

Currently, there is no plugin in MariDB that can generate vector embeddings. If the user wishes to store vector embeddings for a document, they have...

Implementation of Native INTERVAL Data Type

This project aims to transform MariaDB's INTERVAL keyword into a first-class data type, enabling its use in table columns, stored routines, and...

FRM parser Utility for MariaDB

FRM files are what MariaDB uses to store metadata about tables. These files can be used to generate DDL statements (CREATE TABLE ...). We are lacking...

Enhance mysqltest Language with Expressions and Variable Substitutions

The mysqltest tool is a core component of MariaDB’s testing infrastructure. Currently, it has two limitations that restrict the flexibility and...

Replication to Enable Filtering on Master

Currently there are two ways of replication filters in MariaDB. One method filters data on the primary node by not writing unwanted events to the...

2024

4 projects

Official year page

Implement IVFFlat indexing strategy for MariaDB Vector and evaluate the performance

implementing the IVFFlat indexing strategy for MariaDB Vector to enhance performance. including support of key features like support different...

Implement Generalized Triggers

In summary, the project is about supporting generalized triggers in MariaDB. The main focus will be on adding triggers for STARTUP/SHUTDOWN and...

Migrating my_vsnprintf Format Extensions for Compatibility with C printf-family Syntax

MariaDB provides `my_vsnprintf` (& `my_snprintf`) as a C `vsnprintf` alternative with platform-consistent results and custom extensions. However,...

Spatial (GIS) functions in MariaDB

As MariaDB continues to evolve and improve, MySQL users may consider it as a better alternative. The absence of some spatial functions could be a...

2023

5 projects

Official year page

MariaDB Columnstore - Parquet support in cpimport - proposal - Bin Ruan

The task is to make cpimport support parquet files as input or design a general framework to add new input formats. Considering cpimport finish its...

Update RocksDB to the latest upstream version

RocksDB is an embeddable persistent key-value store for fast storage. MariaDB has integrated this engine into the database since version 10.2.5....

SIMD for SQL expressions and functions

Current Mariadb ColumnStore engine doesn’t support vectorized evaluation of SQL functions and expressions. This project want to cover this by adding...

Optimize GROUP BY in MariaDB ColumnStore

This project optimized the GROUP BY operator in MariaDB ColumnStore for workloads requiring disk-based aggregation. To achieve this a) unnecessary...

JIT compiled SQL expressions

MCS uses interepreted execution to calculate SQL expressions results. Here is an example of a SQL expression 'table1.col1 + FLOOR(table2.col1)'....

2022

6 projects

Official year page

Research/implement UNION processing in Columnstore

We aim to improve the previous implementation of UNION ALL and develop the feature set operations as operators to a production-ready status, and...

Create a utility to parse .frm files and print the table DDL.

To restore a partial backup done using mariabackup, we have to create the table again using the "CREATE TABLE" statement. A situation might arise...

Add linear regression functions

MariaDB is a fork of MySQL that was created by the community. Currently, MariaDB has some aggregation functions like min and max. However, it lacks...

MariaDB - [MCOL-785] Implement DISTRIBUTED JSON functions

The goal of this project is to add the JSON_* functions support in Select Handler mode. After the project, we can use json function with Columnstore...

MariaDB ColumnStoreMCOL-4995

This project goal is to implement basic vectorized filtering for ARM platforms.The bootstrap script is right when the project is build in arm...

Proposal for MDEV-26182 Create a function to check for JSON intersection

This project will add the JSON_INTERSECT() function. This function can find the intersection of two json objects or two json arrays. We will try to...

2021

4 projects

Official year page

autocomplete and related feature

The main goal of this project is to create a component that has a clear API that can provide autocomplete feature for the jupyter kernel -...

Use JSON as on-disk format for Histograms

Histograms in databases are compact summaries of the data distribution in a column. They are usually used by the query optimizer on non-indexed...

Non-blocking multi-thread IO_CACHE

Development and implementation new kind of io_cache for optimization's purposes

Custom formatting of strings in MariaDB queries

The objective of this project is to create a new string formatting function, similar to printf in C and format in Python, in MariaDB to avoid complex...

2020

2 projects

Official year page

Load Compression Libraries at Runtime

This project aims to remove the compile time dependencies on compression libraries and defer them to run time. Right now, the MariaDB server needs...

Optimizing the distribution of tasks in a treadpool

This project aims to deploy the Thread Pool algorithm to MariaDB structure. At the moment, in tpool MariaDB the size is set by the classical formula...

2019

4 projects

Official year page

An ambitious step into mariadb developers society

Add support for Indexes on Expressions

Add returning to insert

Hello! I am Rucha Deodhar. The task I've picked is to add RETURNING clause to INSERT statement which will return the listed fields after the insert...

Implementing UPDATE with result set

The task is about adding RETURNING option to UPDATE clause in MariaDB server, that returns a set of the changed rows to the client. This feature...

Proposal for GSoC 2019 - Implement EXCEPT ALL and INTERSECT ALL operations

The project I prefer to do is “Implement EXCEPT ALL and INTERSECT ALL operations” from idea list. I choose this because in my perspective this...

2018

1 project

Official year page

Histograms with equal-width bins Project

This project implements a method of approximating histograms with equal-width bins. Such a feature is useful in cases when the tables have too many...

2017

1 project

Official year page

Transformation of IN predicate into IN subquery based on implementation of table value constructor

Now in MariaDB if in a query [NOT] IN predicate is used with a long list of values, SEL_TREE structures are built to check if the range access based...

2016

5 projects

Official year page

Unique Indexes for blobs

MyISAM supports special kinds of indexes that only store the hash of the data in the index tree.This is used in internal temporary tables that the...

Unique Index for BLOBs And Adaptive Hashing for Generated Hash

First project is about creating unique indexes for blob and varchar in Aria, MyISAM storage engine. It will provide user a direct interface for...

Pushing conditions into non-mergeable views and derived tables in MariaDB

The main goal of this project is to add the following optimization of the queries that use non-mergeable views and/or derived tables. The conditions...

Aggregate Stored Funtions

Most of the current databases like Oracle, PostgreSQL, HSQL support the notion of CREATING AGGREGATE FUNCTIONS . This notion is missing from MariaDB,...

NO PAD collations

There are 3 main string types in MariaDB: CHAR, VARCHAR and TEXT. They vary storage methods, but they are using same comparision functions. MariaDB...