{
  "engine": "SQLite",
  "sqlite_version": "3.53.1",
  "passed": false,
  "fixture_rows": 5000,
  "invalid_fixture": "duplicate",
  "stages": [
    {
      "stage": "fixture",
      "seconds": 0.010812,
      "result": null
    },
    {
      "stage": "expand",
      "seconds": 0.001369,
      "result": null
    },
    {
      "stage": "overlap_contracts",
      "seconds": 0.008385,
      "result": {
        "stage": "expanded",
        "old_required": true,
        "old_rows": 5000,
        "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": [
      {
        "value": "ahu-000001",
        "count": 2
      }
    ],
    "checkpoint": 0,
    "stage": "legacy"
  },
  "interruption": {
    "message": "Interrupted after 3 committed batches",
    "committed_rows": 750,
    "checkpoint": 750
  },
  "error": "IntegrityError: UNIQUE constraint failed: assets.asset_key",
  "failure_profile": {
    "rows": 5000,
    "null_or_empty_keys": 0,
    "duplicate_keys": [
      {
        "value": "ahu-000001",
        "count": 2
      }
    ],
    "checkpoint": 5000,
    "stage": "expanded"
  },
  "schema_at_failure": [
    {
      "type": "table",
      "name": "assets",
      "sql": "CREATE TABLE assets(id INTEGER PRIMARY KEY,tag TEXT,description TEXT NOT NULL, asset_key TEXT)"
    },
    {
      "type": "table",
      "name": "rollout",
      "sql": "CREATE TABLE rollout(key TEXT PRIMARY KEY,value TEXT NOT NULL)"
    },
    {
      "type": "trigger",
      "name": "assets_legacy_insert",
      "sql": "CREATE TRIGGER assets_legacy_insert AFTER INSERT ON assets BEGIN UPDATE assets SET asset_key=lower(trim(NEW.tag)) WHERE id=NEW.id; END"
    },
    {
      "type": "trigger",
      "name": "assets_legacy_update",
      "sql": "CREATE TRIGGER assets_legacy_update AFTER UPDATE OF tag ON assets BEGIN UPDATE assets SET asset_key=lower(trim(NEW.tag)) WHERE id=NEW.id; END"
    }
  ],
  "temporary_directory_removed_after_run": true,
  "total_seconds": 0.048063
}
