Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.4(EOL)
Description
JSON_DETAILED function (https://mariadb.com/kb/en/library/json_detailed/ ) is described as
Represents JSON in the most understandable way emphasizing nested structures.
|
We now got a use case for it: Optimizer Trace output. Optimizer trace is too large to be copied in full, instead we use expressions like
select
|
JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
|
from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
Our experience is that JSON_DETAILED has some room for improvement when it comes to the quality of automatic JSON formatting.
Example:
source mdev19160-data.sql
|
mysql> select JSON_DETAILED(JSON_EXTRACT(a, '$**.analyzing_range_alternatives')) from t200\G
|
*************************** 1. row ***************************
|
JSON_DETAILED(JSON_EXTRACT(a, '$**.analyzing_range_alternatives')): [
|
|
{
|
"range_scan_alternatives":
|
[
|
|
{
|
"index": "a_b",
|
"ranges":
|
[
|
"2 <= a <= 2 AND 4 <= b <= 4"
|
],
|
"rowid_ordered": true,
|
"using_mrr": false,
|
"index_only": true,
|
"rows": 1,
|
"cost": 1.1752,
|
"chosen": true
|
}
|
],
|
"analyzing_roworder_intersect":
|
{
|
"cause": "too few roworder scans"
|
},
|
"analyzing_index_merge_union":
|
[
|
]
|
}
|
]
|
Things to note:
- empty lines at the start (right before/after the "range_scan_alternatives")
- "analyzing_index_merge_union":[] occupies 3 lines where one would be sufficient.
- the same goes for "ranges"
One can look at the JSON pretty-printer that is used by EXPLAIN FORMAT=JSON and optimizer trace. It produces a better result (but it has room for improvement, too.)
Extra: in MySQL, the function is called JSON_PRETTY. We should add ability to use this name as an alias.
Attachments
Issue Links
- is part of
-
MDEV-28906 MySQL 8.0 desired compatibility
-
- Open
-
- relates to
-
MDEV-6111 optimizer trace
-
- Closed
-
Hey Nimit2801!
1. Have you seen this https://mariadb.com/kb/en/Building_MariaDB_on_Windows/? I can't help you too much on setting up the windows environment for MariaDB, If you get stuck, please ask on MariaDB Zulip channel, people using windows might be able to help.
2. If the bug is tagged 10.4, this means that the earliest version of MariaDB where the bug could be reproduced is 10.4. Basically you create a patch for 10.4 and once it is merged in 10.4, it will be propagated upwards by someone to 10.5, 10.6
Let me know if you have more questions. Also I encourage you to ask this type of questions in Zulip because there you have more visibility, this means faster and better answers most probably