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 releasesMARIADB 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_hitrecord 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:
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=JSONoutput 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=innodbSample 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_hitrecord 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:
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=JSONoutput 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=innodbSample 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_hitrecord 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:
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=JSONoutput 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=innodbSample 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: