New Backported Features Available in MariaDB Enterprise Server Releases 10.4-10.6
New maintenance releases for MariaDB Enterprise Server 10.6.15-10, 10.5.22-16 and 10.4.31-21 are now available.
Backported Features
New JSON Features have been backported from MariaDB Community Server to MariaDB Enterprise Server 10.4, 10.5 and 10.6 after reaching maturity in MariaDB Community Server.
- The new JSON function
JSON_SCHEMA_VALID()
can be used to validate a JSON document against a JSON schema, as documented by the JSON Schema Draft 2020. This function can also be used in a CHECK constraint to verify that only JSON documents are stored in the database which include required items and that the values are within a given range, length, etcetera.
SET @schema= '{ "properties" : { "lastname":{ "type":"string"}, "age":{ "type":"number","minimum":18 } }, "required" : ["lastname"] }'; SELECT JSON_SCHEMA_VALID(@schema, '{ "age":25, "lastname":"Miller" }') as is_valid; +----------+ | is_valid | +----------+ | 1 | +----------+ SELECT JSON_SCHEMA_VALID(@schema, '{ "age":10, "lastname":"Miller" }') as wrong_age; +-----------+ | wrong_age | +-----------+ | 0 | +-----------+ SELECT JSON_SCHEMA_VALID(@schema, '{ "age":25 }') as lastname_missing; +------------------+ | lastname_missing | +------------------+ | 0 | +------------------+
- The new
JSON_OVERLAPS()
function, which compares JSON documents to determine if they have any key-value pairs or array elements in common.
SELECT JSON_OVERLAPS('{"A": 1, "B": {"C":2}}', '{"A": 2, "B": {"C":2}}') AS is_overlap; +---------------------+ | is_overlap | +---------------------+ | 1 | +---------------------+
Other Notable Release Updates
We have several other maintenance items included in these releases
MARIADB ENTERPRISE SERVER 10.6.15-10
Detailed MariaDB Enterprise Server 10.6.15-10 Release Notes
- The package for the cracklib_password_check plugin includes an SELinux policy, allowing the plugin to work with SELinux.
- MariaDB Enterprise Backup reports detailed recovery progress during
mariabackup --prepare
. - With Optimizer Trace, a
sel_arg_alloc_limit_hit
record is written when MAX_SEL_ARGS is reached.- MAX_SEL_ARGS is one of the limits in the optimizer that triggers short-cut of time-intensive or memory-intensive analysis for complex WHERE clauses.
For example:
- MAX_SEL_ARGS is one of the limits in the optimizer that triggers short-cut of time-intensive or memory-intensive analysis for complex WHERE clauses.
SELECT JSON_DETAILED(JSON_EXTRACT(trace, '$**.setup_range_conditions')) FROM information_schema.OPTIMIZER_TRACE; [ [ { "sel_arg_alloc_limit_hit": { "alloced_sel_args": 16001 } } ] ]
ANALYZE FORMAT=JSON
output includes InnoDB statistics.
For example:
"table": { "table_name": "t1", ... "r_engine_stats": { "pages_accessed": integer, "pages_updated" : integer, "pages_read_count" : integer, "pages_read_time_ms" : double_val, "old_rows_read" : integer, },
- Slow query log output includes InnoDB engine information.
- InnoDB engine information output is enabled with
--log-slow-verbosity=innodb
Sample output:
- InnoDB engine information output is enabled with
# Pages_accessed: 184Â Pages_read: 95Â Pages_updated: 0Â Undo_rows_read: 1 # Pages_read_tim e: 17.0204Â Engine_time: 248.1297
-
- Engine_time is the time in milliseconds spent inside engine calls.
- Page_* variables are supported for the InnoDB storage engine.
- For the Spider storage engine, the default values and behavior of some system variables has changed:
- Prior to this release:
- These variables used a value of -1 (the default) to indicate that Spider would use the default table value, and this value was not user visible.
- Spider table parameters could set values, but these values would be overridden with the system variable value if the system variable was set to a value other than -1.
- Starting with this release:
- The default value for these system variables has been updated to reflect the actual default table value, rather than -1.
- Where a value is set by a table parameter, this value overrides the system default and the value set by Spider system variable.
- If a table parameter is not set, the Spider system variable’s value is used. This behavior is unchanged.
- See “Interface Changes” for a full list of updated default values.
- Prior to this release:
MARIADB ENTERPRISE SERVER 10.5.22-16
Detailed MariaDB Enterprise Server 10.5.22-16 Release Notes
- The package for the cracklib_password_check plugin includes an SELinux policy, allowing the plugin to work with SELinux.
- With Optimizer Trace, a
sel_arg_alloc_limit_hit
record is written when MAX_SEL_ARGS is reached.- MAX_SEL_ARGS is one of the limits in the optimizer that triggers short-cut of time-intensive or memory-intensive analysis for complex WHERE clauses.
For example:
- MAX_SEL_ARGS is one of the limits in the optimizer that triggers short-cut of time-intensive or memory-intensive analysis for complex WHERE clauses.
SELECT JSON_DETAILED(JSON_EXTRACT(trace, '$**.setup_range_conditions')) FROM information_schema.OPTIMIZER_TRACE; [ [ { "sel_arg_alloc_limit_hit": { "alloced_sel_args": 16001 } } ] ]
ANALYZE FORMAT=JSON
output includes InnoDB statistics.
For example:
"table": { "table_name": "t1", ... "r_engine_stats": { "pages_accessed": integer, "pages_updated" : integer, "pages_read_count" : integer, "pages_read_time_ms" : double_val, "old_rows_read" : integer, },
- Slow query log output includes InnoDB engine information.
- InnoDB engine information output is enabled with
--log-slow-verbosity=innodb
Sample output:
- InnoDB engine information output is enabled with
# Pages_accessed: 184 Pages_read: 95 Pages_updated: 0 Undo_rows_read: 1 # Pages_read_tim e: 17.0204 Engine_time: 248.1297
-
- Engine_time is the time in milliseconds spent inside engine calls.
- Page_* variables are supported for the InnoDB storage engine.
- For the Spider storage engine, the default values and behavior of some system variables has changed:
- Prior to this release:
- These variables used a value of -1 (the default) to indicate that Spider would use the default table value, and this value was not user visible.
- Spider table parameters could set values, but these values would be overridden with the system variable value if the system variable was set to a value other than -1.
- Starting with this release:
- The default value for these system variables has been updated to reflect the actual default table value, rather than -1.
- Where a value is set by a table parameter, this value overrides the system default and the value set by Spider system variable.
- If a table parameter is not set, the Spider system variable’s value is used. This behavior is unchanged.
- See “Interface Changes” for a full list of updated default values.
- Prior to this release:
MARIADB ENTERPRISE SERVER 10.4.31-21
Detailed MariaDB Enterprise Server 10.4.31-21 Release Notes
- The package for the cracklib_password_check plugin includes an SELinux policy, allowing the plugin to work with SELinux.
- With Optimizer Trace, a
sel_arg_alloc_limit_hit
record is written when MAX_SEL_ARGS is reached.- MAX_SEL_ARGS is one of the limits in the optimizer that triggers short-cut of time-intensive or memory-intensive analysis for complex WHERE clauses.
For example:
- MAX_SEL_ARGS is one of the limits in the optimizer that triggers short-cut of time-intensive or memory-intensive analysis for complex WHERE clauses.
SELECT JSON_DETAILED(JSON_EXTRACT(trace, '$**.setup_range_conditions')) FROM information_schema.OPTIMIZER_TRACE; [ [ { "sel_arg_alloc_limit_hit": { "alloced_sel_args": 16001 } } ] ]
ANALYZE FORMAT=JSON
output includes InnoDB statistics.
For example:
"table": { "table_name": "t1", ... "r_engine_stats": { "pages_accessed": integer, "pages_updated" : integer, "pages_read_count" : integer, "pages_read_time_ms" : double_val, "old_rows_read" : integer, },
- Slow query log output includes InnoDB engine information.
- InnoDB engine information output is enabled with
--log-slow-verbosity=innodb
Sample output:
- InnoDB engine information output is enabled with
# Pages_accessed: 184 Pages_read: 95 Pages_updated: 0 Undo_rows_read: 1 # Pages_read_tim e: 17.0204 Engine_time: 248.1297
-
- Engine_time is the time in milliseconds spent inside engine calls.
- Page_* variables are supported for the InnoDB storage engine.
- For the Spider storage engine, the default values and behavior of some system variables has changed:
- Prior to this release:
- These variables used a value of -1 (the default) to indicate that Spider would use the default table value, and this value was not user visible.
- Spider table parameters could set values, but these values would be overridden with the system variable value if the system variable was set to a value other than -1.
- Starting with this release:
- The default value for these system variables has been updated to reflect the actual default table value, rather than -1.
- Where a value is set by a table parameter, this value overrides the system default and the value set by Spider system variable.
- If a table parameter is not set, the Spider system variable’s value is used. This behavior is unchanged.
- See “Interface Changes” for a full list of updated default values.
- Prior to this release:
Why MariaDB Enterprise Server
MariaDB Enterprise Server is an enhanced, hardened and secured version of MariaDB Community Server that delivers enterprise reliability, stability and long-term support as well as greater operational efficiency when it comes to managing large database deployments for business and mission critical applications. MariaDB Enterprise Server offers additional features needed for production workloads that are not available in the community edition, such as enterprise audit and enterprise backup, and also backports certain enterprise features to older versions so customers can take advantage of critical fixes and features immediately instead of having to upgrade to the newest version.
Being able to backport features from newer release series to older versions is a key advantage of MariaDB Enterprise Server. Quality assurance and internal processes do not always allow customers to upgrade production environments to the newest and greatest release series, although some of the new features would be of value. MariaDB Enterprise Server can help in this case, as we can backport highly requested features to existing versions in cases where we can assure that a backported feature does not decrease the stability of that release series of MariaDB Enterprise Server.
Download MariaDB Enterprise Server
MariaDB customers can download MariaDB Enterprise Server versions at mariadb.com/downloads/enterprise or try it in the cloud using MariaDB SkySQL – the only DBaaS that leverages the entire suite of MariaDB enterprise database products.