Changes & Improvements in MariaDB 10.3
The most recent release of MariaDB 10.3 is:
MariaDB 10.3.39 Stable (GA) Download Now
Contents
MariaDB 10.3 is the current major development version.
Do not use beta releases in production!
The following lists the major new features in MariaDB 10.3:
Implemented Features
Syntax / General Features
- System-versioned tables (MDEV-12894)
- Table Value Constructors (MDEV-12172) — GSoC 2017 project by Galina Shalygina
- Transform [NOT] IN predicate with long list of values INTO [NOT] IN subquery (MDEV-12176) — GSoC 2017 project by Galina Shalygina
ROW TYPE OFnow supports local SP variables (MDEV-14139)- Aggregate stored functions (MDEV-7773) — GSoC 2016 project by Varun Gupta
- Support for LIMIT clause in GROUP_CONCAT() (MDEV-11297)
- PERCENTILE_CONT, PERCENTILE_DISC, and MEDIAN window functions (MDEV-12985)
FOR ... END FORstatement (MDEV-14415)- XA RECOVER FORMAT='SQL' (MDEV-14593)
- Oracle compatible SUBSTR() function (MDEV-14012) — contribution by Jérôme Brauge
- INVISIBLE columns (MDEV-10177) — GSoC 2016 project by Sachin Setiya
- Various scalability improvements (MDEV-14529, MDEV-14505)
- Sequences can now be used with DEFAULT.
- Semi-sync plugin merged into the server (MDEV-13073) — contribution by Alibaba
- CREATE SEQUENCE (MDEV-10139)
- SHOW CREATE SEQUENCE
- ALTER SEQUENCE
- DROP SEQUENCE
- NEXT VALUE FOR
- PREVIOUS VALUE FOR
- SETVAL()
- INTERSECT and EXCEPT (MDEV-10141)
- ROW data type for stored routine variables (MDEV-10914, MDEV-12007, MDEV-12291)
- TYPE OF and ROW TYPE OF anchored data types for stored routine variables (MDEV-12461)
- Cursors with parameters (MDEV-12457)
- DDL Fast Fail - WAIT/NOWAIT (MDEV-11379, MDEV-11388)
- CHR() function (MDEV-12685)
- DELETE statement can delete from the table that is used in a subquery in the
WHEREclause (MDEV-12137) - Stored routine parameters can use
ROW TYPE OF(MDEV-13581) - The server now supports the PROXY protocol - see also the new proxy_protocol_networks system variable (MDEV-11159)
- Instant ADD COLUMN (MDEV-11369) — Tencent Game DBA Team, developed by vinchen.
- UPDATE statements with the same source and target (MDEV-12874) — from Jerome Brauge.
- ORDER BY and LIMIT in multi-table update (MDEV-13911)
- DATE_FORMAT(date, format, locale) - 3 argument form of DATE_FORMAT (MDEV-11553)
Compatibility
- As a result of implementing Table Value Constructors, the VALUES function has been renamed to VALUE() (MDEV-12172)
- When running with sql_mode=ORACLE, the server now understands a subset of Oracle's PL/SQL language instead of the traditional MariaDB syntax for stored routines. See MDEV-10142, MDEV-10764 and SQL_MODE=ORACLE From MariaDB 10.3 to know the current status.
- New sql_mode, EMPTY_STRING_IS_NULL.
Compression
- Storage-engine Independent Column Compression (MDEV-11371) — Tencent Game DBA Team, developed by willhan, also thanks to AliSQL.
Encryption
- Temporary files created by merge sort and row log are encrypted if innodb_encrypt_log is set to
1, regardless of whether the table encrypted or not (MDEV-12634).
Optimizer
- Condition pushdown through
PARTITION BYclause of window functions (MDEV-10855) - New optimizer switch setting,
split_grouping_derived=on(see description)
Storage Engines
Spider
The Spider storage engine has been updated to 3.3.13. The partitioning storage engine has been updated to support all the new Spider features including:
- Direct join support. This allows Spider to do JOINS and GROUP BYs internally.
- Direct update and delete.
- Direct aggregates.
- slave_transaction_retry_errors and slave-transaction-retry-interval allow more control over handling delays or conflicts when applying binary logs.
Most of the features were done as part of MDEV-7698.
OQGRAPH
- OQGraph now supports the "leaves" algorithm (MDEV-11271) — contribution by Heinz Wiesinger
Partition Engine
- Numerous improvements for the partition engine (MDEV-7698) — contribution by Kentoku Shiba
- Full text support.
- Multi-range-read (Gives better performance when handling multiple ranges).
- Support for condition pushdown.
- HANDLER support
- Aggregate pushdown
- Bulk update/delete
Logging
- Disable logging of certain statements to the general log or the slow query log with the log_disabled_statements and log_slow_disabled_statements system variables.
- A new option to log_slow_filter,
filsort_priority_queue.
Replication
- Per-engine mysql.gtid_slave_pos tables (MDEV-12179) — Implemented by Kristian Nielsen funded by Booking.com.
Data Type API
10.3 continues refactoring for the data type API started in 10.2, which will make it possible to have user data type plugins. This work is still in progress (see MDEV-4912 for the current status and subtasks). Most of the task in this category do not change the server behavior. Some tasks do have a visible effect.
Idle Transactions
Connections with idle transactions can be automatically killed after a specified time period by means of the idle_transaction_timeout, idle_readonly_transaction_timeout and idle_write_transaction_timeout system variables.
System Variables
For a list of all new variables, see System Variables Added in MariaDB 10.3 and Status Variables Added in MariaDB 10.3.
- New system variable gtid_pos_auto_engines.
- New status variables Rpl_transactions_multi_engine, Transactions_gtid_foreign_engine, Transactions_multi_engine and Com_alter_sequence.
- session variables tracking is enabled by default (MDEV-11825)
- Remove deprecated variables innodb_file_format, innodb_file_format_check, innodb_file_format_max and innodb_large_prefix.
- version_source_revision - permits seeing which version of the source was used for the build (MDEV-12583).
- Added bind_address as a system variable (MDEV-12542).
Comparison with MySQL
List of All MariaDB 10.3 Releases
| Date | Release | Status | Release Notes | Changelog |
|---|---|---|---|---|
| 18 Jan 2018 | MariaDB 10.3.4 | Beta | Release Notes | Changelog |
| 23 Dec 2017 | MariaDB 10.3.3 | Beta | Release Notes | Changelog |
| 9 Oct 2017 | MariaDB 10.3.2 | Alpha | Release Notes | Changelog |
| 29 Aug 2017 | MariaDB 10.3.1 | Alpha | Release Notes | Changelog |
| 16 Apr 2017 | MariaDB 10.3.0 | Alpha | Release Notes | Changelog |