{
  "$schema": "https://myflames.dev/schemas/sidecar-v1.json",
  "schema_version": "1.3",
  "generated_at": "2026-04-25T12:51:23Z",
  "myflames_version": "1.5.0",
  "source": {
    "type": "file",
    "engine": "mariadb",
    "fixture_path": "/Users/viniciusgrippa/Downloads/git/myflames/test/mariadb-explain-index-merge.json"
  },
  "plan_summary": {
    "total_time_ms": 0.049,
    "rows_sent": 45,
    "rows_examined_estimate": 45,
    "operator_count": 1,
    "max_depth": 1
  },
  "optimizer_switches": [
    {
      "name": "index_merge",
      "value": "on",
      "explanation": "Uses two or more index range scans on the same table and combines row IDs (union/intersection/sort_union) instead of falling back to a full scan. A composite index is usually faster.",
      "node_labels": [
        "Deduplicate rows sorted by row ID on t1"
      ]
    },
    {
      "name": "index_merge_union",
      "value": "on",
      "explanation": "Union variant of index_merge: OR'ed predicates are satisfied by scanning each index separately, then UNION'ing their row IDs.",
      "node_labels": [
        "Deduplicate rows sorted by row ID on t1"
      ]
    }
  ],
  "warnings": [],
  "suggestions": [],
  "executive_summary": "Query runs 1 operator; returns 45 rows in 0.05 ms. No warnings.",
  "plan_tree": {
    "node_id": "n:67a526a822ff",
    "short_label": "Deduplicate rows sorted by row ID on t1",
    "folded_label": "Deduplicate rows sorted by row ID on t1 starts=1 rows=45",
    "children": []
  },
  "teach_hooks": [
    {
      "lesson": "index_merge",
      "match": {
        "folded_label": "Deduplicate rows sorted by row ID on t1 starts=1 rows=45",
        "short_label": "Deduplicate rows sorted by row ID on t1"
      },
      "controls": {
        "a_rows": 27,
        "b_rows": 18,
        "overlap": 30,
        "variant": "union"
      },
      "note": "Deduplicate rows sorted by row ID on t1 (t1)"
    }
  ],
  "operator_complexities": [
    {
      "node_id": "n:67a526a822ff",
      "folded_label": "Deduplicate rows sorted by row ID on t1 starts=1 rows=45",
      "short_label": "Deduplicate rows sorted by row ID on t1",
      "complexity": {
        "big_o": "O(Σ kᵢ)",
        "short": "Σ kᵢ",
        "severity": "medium",
        "rationale": "Index merge (union): each index scan returns kᵢ row IDs; merging them through a sorted-list union costs a pass over the total.",
        "confidence": "typical",
        "learn_more": "index_merge"
      }
    }
  ]
}
