{
  "engine": "SQLite",
  "sqlite_version": "3.53.1",
  "passed": true,
  "fixture_rows": 5000,
  "invalid_fixture": null,
  "stages": [
    {
      "stage": "fixture",
      "seconds": 0.010633,
      "result": null
    },
    {
      "stage": "expand",
      "seconds": 0.001784,
      "result": null
    },
    {
      "stage": "overlap_contracts",
      "seconds": 0.008497,
      "result": {
        "stage": "expanded",
        "old_required": true,
        "old_rows": 5000,
        "new_rows": 5000,
        "consistent": true
      }
    },
    {
      "stage": "resume_backfill",
      "seconds": 0.015048,
      "result": {
        "updated_rows": 4250,
        "committed_batches": 17,
        "checkpoint": 5000
      }
    },
    {
      "stage": "backfilled_contracts",
      "seconds": 0.006898,
      "result": {
        "stage": "backfilled",
        "old_required": true,
        "old_rows": 5000,
        "new_rows": 5000,
        "consistent": true
      }
    },
    {
      "stage": "lock_probe",
      "seconds": 0.076125,
      "result": {
        "observed": "database is locked",
        "wait_seconds": 0.075711,
        "configured_timeout_seconds": 0.075
      }
    },
    {
      "stage": "cutover",
      "seconds": 0.000575,
      "result": null
    },
    {
      "stage": "contract",
      "seconds": 0.012104,
      "result": null
    },
    {
      "stage": "new_contract",
      "seconds": 0.002358,
      "result": {
        "stage": "contracted",
        "old_required": false,
        "new_rows": 5000,
        "consistent": true
      }
    }
  ],
  "limits": [
    "SQLite lock behavior only; not PostgreSQL lock or concurrent-index behavior.",
    "Synthetic fixture timing is not a production rollout estimate."
  ],
  "schema_before": [
    {
      "type": "table",
      "name": "assets",
      "sql": "CREATE TABLE assets(id INTEGER PRIMARY KEY,tag TEXT,description TEXT NOT NULL)"
    },
    {
      "type": "table",
      "name": "rollout",
      "sql": "CREATE TABLE rollout(key TEXT PRIMARY KEY,value TEXT NOT NULL)"
    }
  ],
  "profile_before": {
    "rows": 5000,
    "null_or_empty_keys": 0,
    "duplicate_keys": [],
    "checkpoint": 0,
    "stage": "legacy"
  },
  "interruption": {
    "message": "Interrupted after 3 committed batches",
    "committed_rows": 750,
    "checkpoint": 750
  },
  "profile_after": {
    "rows": 5000,
    "null_or_empty_keys": 0,
    "duplicate_keys": [],
    "checkpoint": 5000,
    "stage": "contracted"
  },
  "schema_after": [
    {
      "type": "table",
      "name": "assets",
      "sql": "CREATE TABLE \"assets\"(id INTEGER PRIMARY KEY,asset_key TEXT NOT NULL UNIQUE CHECK(length(asset_key)>0),description TEXT NOT NULL)"
    },
    {
      "type": "table",
      "name": "rollout",
      "sql": "CREATE TABLE rollout(key TEXT PRIMARY KEY,value TEXT NOT NULL)"
    }
  ],
  "content_preserved": true,
  "temporary_directory_removed_after_run": true,
  "total_seconds": 0.153344
}
