10.2.44

Latest release in branch 10.2
Released 3 years ago (May 18, 2022)

Software MariaDB
Branch 10.2
Status
End of life
End of security fixes May 23, 2022
Extended EOL May 23, 2022
Community EOL May 23, 2022
Enterprise EOL May 23, 2022
First official release version 10.2.0
First official release date 10 years ago (April 16, 2016)
Release notes https://mariadb.com/kb/en/mariadb-10244-release-notes/
Source code https://github.com/mariadb/server/tree/mariadb-10.2.44
Documentation https://mariadb.com/kb/en/documentation/
MariaDB 10.2 Releases View full list

What Is New in MariaDB 10.2

MariaDB 10.2 is a significant release packed with new SQL features, compatibility improvements, and enhanced functionality. This version brings MariaDB closer to common SQL standards and other database systems, making it a more powerful and versatile choice.

Category Key Changes
New Features Window Functions, Common Table Expressions, JSON Functions, COMPRESSED Column Storage Format
Compatibility Oracle-like Sequences, PL/SQL Compatibility Mode, CHECK CONSTRAINT Enforcement
Replication Global Transaction ID (GTID) for multi-master, Enhanced Parallel Replication
Security ALTER USER, Password Validation Plugin, Default sql_mode includes STRICT_TRANS_TABLES
Deprecated & Removed Deprecated: InnoDB monitor tables, OQGRAPH engine. Removed: PBXT storage engine

What are the major new SQL features in 10.2?

The headline features are Window Functions and Common Table Expressions (CTEs). Window functions like ROW_NUMBER() and RANK() let you perform complex calculations over groups of rows without collapsing them. CTEs, especially recursive ones, are a game-changer for writing hierarchical queries in a much cleaner way than old methods with temporary tables.

You also get a suite of built-in JSON functions like JSON_EXTRACT() and JSON_OBJECT(). While it's not a full document store, it provides solid tools for handling semi-structured data stored in text columns, which is incredibly common in modern applications.

How does 10.2 improve compatibility with other databases?

This release makes porting applications from Oracle or PostgreSQL significantly easier. The new SEQUENCE engine provides Oracle-style sequences, a more flexible alternative to AUTO_INCREMENT. The PL/SQL compatibility mode allows for parsing some Oracle-specific syntax, reducing friction when migrating stored procedures.

Finally, the CHECK constraint is now fully enforced. This was a long-standing difference from the SQL standard and other databases, and its enforcement ensures data integrity rules defined in your schema are actually respected.

What changes were made to replication?

Global Transaction ID (GTID) support was extended to include domain_id, enabling true multi-master replication setups. This allows you to have multiple replication topologies without worrying about transaction ID collisions between masters.

Parallel replication was also improved for better performance on slave servers. In practice, this means your replicas can apply transactions from the master faster, reducing replication lag, especially under heavy write loads on the primary server.

Were there any important security updates?

Yes, user management got a major upgrade with the ALTER USER statement. This provides a standardized way to modify user accounts, which is more robust than directly manipulating the mysql.user table. The password validation plugin allows administrators to enforce strong password policies.

Perhaps the most impactful change for developers is the new default sql_mode, which now includes STRICT_TRANS_TABLES. This matters because it makes MariaDB stricter by default—it will now throw errors for invalid data inserts instead of issuing warnings and truncating data, preventing a whole class of silent data corruption bugs.

What features were deprecated or removed?

The PBXT storage engine was completely removed. If you were still using it, this is a hard break and requires a migration to another engine like InnoDB. The InnoDB monitor tables (INNODB_MONITOR) and the OQGRAPH engine were marked as deprecated, signaling that they will be removed in a future release.

This cleanup is part of the project's focus on maintaining a modern and efficient codebase. It's a good idea to check your applications for any usage of these deprecated features to ensure future compatibility.

FAQ

Can I use Window Functions in my existing queries?
Yes, absolutely. Window functions are additive and can be incorporated into your current SELECT statements. They work by performing calculations across a set of table rows that are somehow related to the current row, without grouping them into a single output row.

Does the new strict default sql_mode break my application?
It might if your application was relying on the old behavior of silently truncating data. Upon upgrading, test your application thoroughly. You might see new errors for operations that previously only generated warnings. You can revert the mode, but fixing the data handling is the better long-term solution.

What should I use instead of the deprecated InnoDB monitors?
You should use the Information Schema (INFORMATION_SCHEMA) tables and Performance Schema (PERFORMANCE_SCHEMA) tables for monitoring InnoDB status. These are standard, more powerful interfaces for getting diagnostic information about your database.

Are the new JSON functions as powerful as a dedicated NoSQL database?
No, they are not. They provide convenient ways to validate, query, and manipulate JSON data stored in a text column. For simple JSON document handling within a relational structure, they are perfect. For complex document-based applications, a dedicated document store is still more appropriate.

Why would I use a SEQUENCE instead of AUTO_INCREMENT?
Use a sequence when you need a unique number that isn't tied to a specific table, or when you need more control over the numbering (e.g., cycling, caching, or ordering). AUTO_INCREMENT is simpler and remains the best choice for standard primary key generation on a per-table basis.

Releases In Branch 10.2

Version Release date
10.2.44 3 years ago
(May 18, 2022)
10.2.43 4 years ago
(February 10, 2022)
10.2.42 4 years ago
(January 29, 2022)
10.2.41 4 years ago
(November 05, 2021)
10.2.40 4 years ago
(August 02, 2021)
10.2.39 4 years ago
(June 08, 2021)
10.2.38 4 years ago
(May 04, 2021)
10.2.37 5 years ago
(February 18, 2021)
10.2.36 5 years ago
(November 09, 2020)
10.2.35 5 years ago
(October 31, 2020)
10.2.34 5 years ago
(October 05, 2020)
10.2.33 5 years ago
(August 06, 2020)
10.2.32 5 years ago
(May 08, 2020)
10.2.31 6 years ago
(January 26, 2020)
10.2.30 6 years ago
(December 04, 2019)
10.2.29 6 years ago
(November 06, 2019)
10.2.28 6 years ago
(October 31, 2019)
10.2.27 6 years ago
(September 08, 2019)
10.2.26 6 years ago
(July 26, 2019)
10.2.25 6 years ago
(June 14, 2019)
10.2.24 6 years ago
(May 08, 2019)
10.2.23 7 years ago
(March 23, 2019)
10.2.22 7 years ago
(February 09, 2019)
10.2.21 7 years ago
(December 30, 2018)
10.2.20 7 years ago
(December 21, 2018)
10.2.19 7 years ago
(November 12, 2018)
10.2.18 7 years ago
(September 24, 2018)
10.2.17 7 years ago
(August 12, 2018)
10.2.16 7 years ago
(June 25, 2018)
10.2.15 7 years ago
(May 16, 2018)
10.2.14 8 years ago
(March 26, 2018)
10.2.13 8 years ago
(February 12, 2018)
10.2.12 8 years ago
(January 03, 2018)
10.2.11 8 years ago
(November 27, 2017)
10.2.10 8 years ago
(October 30, 2017)
10.2.9 8 years ago
(September 25, 2017)
10.2.8 8 years ago
(August 17, 2017)
10.2.7 8 years ago
(July 09, 2017)
10.2.6 8 years ago
(May 14, 2017)
10.2.5 9 years ago
(April 04, 2017)
10.2.4 9 years ago
(February 16, 2017)
10.2.3 9 years ago
(December 22, 2016)
10.2.2 9 years ago
(September 26, 2016)
10.2.1 9 years ago
(July 02, 2016)
10.2.0 10 years ago
(April 16, 2016)