Bug #121565 Severe JSON_SCHEMA_VALID regression on acyclic schemas with shared $ref references
Submitted: 21 Oct 4:28
Reporter: C D Email Updates:
Status: Open Impact on me:
None 
Category:MySQL Server: JSON Severity:S3 (Non-critical)
Version:9.7.2 OS:Oracle Linux (Oracle Linux 9.8, Docker (Windows 11/WSL2))
Assigned to: CPU Architecture:x86 (AMD Ryzen 7 5800H, 4 vCPU, 3 GiB RAM)
Tags: json, performance, schema

File: Maximum allowed size is 50MB.
Description:
Privacy:

If the data you need to attach is more than 50MB, you should create a compressed archive of the data, split it to 50MB chunks, and upload each of them as a separate attachment.

To split a large file:

[21 Oct 4:39] C D
Minimal SQL reproduction with shared-reference and control cases

Attachment: repro.sql (application/octet-stream, text), 3.78 KiB.

[21 Oct 4:39] C D
Standalone Python benchmark script for reproducing the regression

Attachment: benchmark.py (text/x-python), 13.50 KiB.

[21 Oct 4:40] C D
Raw timing data for L20 shared references (severe regression)

Attachment: schema_diamond_20_shared.json (application/json, text), 7.39 KiB.

[21 Oct 4:40] C D
Raw timing data for L20 chain control (no regression)

Attachment: schema_diamond_20_chain_control.json (application/json, text), 7.35 KiB.

[21 Oct 4:41] C D
Raw timing data for L16 shared references

Attachment: schema_diamond_16_shared.json (application/json, text), 7.04 KiB.

[21 Oct 4:41] C D
Raw timing data for L16 chain control

Attachment: schema_diamond_16_chain_control.json (application/json, text), 7.10 KiB.

[21 Oct 4:41] C D
Raw timing data for L12 shared references

Attachment: schema_diamond_12_shared.json (application/json, text), 6.60 KiB.

[21 Oct 4:41] C D
Source-level analysis of redundant JSON Schema traversal and diagnostic evidence

Attachment: source_analysis.md (text/markdown), 6.75 KiB.