{
  "schema_version": 1,
  "environment": {
    "python": "3.12.3",
    "sqlite": "3.45.1",
    "sqlite_source_id": "2024-01-30 16:01:20 e876e51a0ed5c5b3126f52e532044363a014bc594cfefa87ffb5b82257ccalt1",
    "compile_options": [
      "ATOMIC_INTRINSICS=1",
      "COMPILER=gcc-13.3.0",
      "DEFAULT_AUTOVACUUM",
      "DEFAULT_CACHE_SIZE=-2000",
      "DEFAULT_FILE_FORMAT=4",
      "DEFAULT_JOURNAL_SIZE_LIMIT=-1",
      "DEFAULT_MMAP_SIZE=0",
      "DEFAULT_PAGE_SIZE=4096",
      "DEFAULT_PCACHE_INITSZ=20",
      "DEFAULT_RECURSIVE_TRIGGERS",
      "DEFAULT_SECTOR_SIZE=4096",
      "DEFAULT_SYNCHRONOUS=2",
      "DEFAULT_WAL_AUTOCHECKPOINT=1000",
      "DEFAULT_WAL_SYNCHRONOUS=2",
      "DEFAULT_WORKER_THREADS=0",
      "DIRECT_OVERFLOW_READ",
      "ENABLE_COLUMN_METADATA",
      "ENABLE_DBSTAT_VTAB",
      "ENABLE_FTS3",
      "ENABLE_FTS3_PARENTHESIS",
      "ENABLE_FTS3_TOKENIZER",
      "ENABLE_FTS4",
      "ENABLE_FTS5",
      "ENABLE_LOAD_EXTENSION",
      "ENABLE_MATH_FUNCTIONS",
      "ENABLE_PREUPDATE_HOOK",
      "ENABLE_RTREE",
      "ENABLE_SESSION",
      "ENABLE_STMTVTAB",
      "ENABLE_UNLOCK_NOTIFY",
      "ENABLE_UPDATE_DELETE_LIMIT",
      "HAVE_ISNAN",
      "LIKE_DOESNT_MATCH_BLOBS",
      "MALLOC_SOFT_LIMIT=1024",
      "MAX_ATTACHED=10",
      "MAX_COLUMN=2000",
      "MAX_COMPOUND_SELECT=500",
      "MAX_DEFAULT_PAGE_SIZE=32768",
      "MAX_EXPR_DEPTH=1000",
      "MAX_FUNCTION_ARG=127",
      "MAX_LENGTH=1000000000",
      "MAX_LIKE_PATTERN_LENGTH=50000",
      "MAX_MMAP_SIZE=0x7fff0000",
      "MAX_PAGE_COUNT=0xfffffffe",
      "MAX_PAGE_SIZE=65536",
      "MAX_SCHEMA_RETRY=25",
      "MAX_SQL_LENGTH=1000000000",
      "MAX_TRIGGER_DEPTH=1000",
      "MAX_VARIABLE_NUMBER=250000",
      "MAX_VDBE_OP=250000000",
      "MAX_WORKER_THREADS=8",
      "MUTEX_PTHREADS",
      "SECURE_DELETE",
      "SOUNDEX",
      "SYSTEM_MALLOC",
      "TEMP_STORE=1",
      "THREADSAFE=1",
      "USE_URI"
    ]
  },
  "cases": [
    {
      "reader_selected_before_release": true,
      "journal_mode": "wal",
      "synchronous": 2,
      "steps": [
        {
          "actor": "reader",
          "sql": "BEGIN",
          "rows": null,
          "writer_transaction_open": false,
          "reader_transaction_open": true
        },
        {
          "actor": "reader",
          "sql": "SELECT value FROM t ORDER BY value",
          "rows": [],
          "writer_transaction_open": false,
          "reader_transaction_open": true
        },
        {
          "actor": "writer",
          "sql": "SAVEPOINT unit",
          "rows": null,
          "writer_transaction_open": true,
          "reader_transaction_open": true
        },
        {
          "actor": "writer",
          "sql": "INSERT INTO t VALUES (1)",
          "rows": null,
          "writer_transaction_open": true,
          "reader_transaction_open": true
        },
        {
          "actor": "writer",
          "sql": "RELEASE unit",
          "rows": null,
          "writer_transaction_open": false,
          "reader_transaction_open": true
        },
        {
          "actor": "fresh",
          "sql": "SELECT value FROM t ORDER BY value",
          "rows": [
            1
          ],
          "writer_transaction_open": false,
          "reader_transaction_open": true
        },
        {
          "actor": "reader",
          "sql": "SELECT value FROM t ORDER BY value",
          "rows": [],
          "writer_transaction_open": false,
          "reader_transaction_open": true
        },
        {
          "actor": "reader",
          "sql": "COMMIT",
          "rows": null,
          "writer_transaction_open": false,
          "reader_transaction_open": false
        },
        {
          "actor": "reader",
          "sql": "SELECT value FROM t ORDER BY value",
          "rows": [
            1
          ],
          "writer_transaction_open": false,
          "reader_transaction_open": false
        }
      ]
    },
    {
      "reader_selected_before_release": false,
      "journal_mode": "wal",
      "synchronous": 2,
      "steps": [
        {
          "actor": "reader",
          "sql": "BEGIN",
          "rows": null,
          "writer_transaction_open": false,
          "reader_transaction_open": true
        },
        {
          "actor": "writer",
          "sql": "SAVEPOINT unit",
          "rows": null,
          "writer_transaction_open": true,
          "reader_transaction_open": true
        },
        {
          "actor": "writer",
          "sql": "INSERT INTO t VALUES (1)",
          "rows": null,
          "writer_transaction_open": true,
          "reader_transaction_open": true
        },
        {
          "actor": "writer",
          "sql": "RELEASE unit",
          "rows": null,
          "writer_transaction_open": false,
          "reader_transaction_open": true
        },
        {
          "actor": "fresh",
          "sql": "SELECT value FROM t ORDER BY value",
          "rows": [
            1
          ],
          "writer_transaction_open": false,
          "reader_transaction_open": true
        },
        {
          "actor": "reader",
          "sql": "SELECT value FROM t ORDER BY value",
          "rows": [
            1
          ],
          "writer_transaction_open": false,
          "reader_transaction_open": true
        },
        {
          "actor": "reader",
          "sql": "COMMIT",
          "rows": null,
          "writer_transaction_open": false,
          "reader_transaction_open": false
        },
        {
          "actor": "reader",
          "sql": "SELECT value FROM t ORDER BY value",
          "rows": [
            1
          ],
          "writer_transaction_open": false,
          "reader_transaction_open": false
        }
      ]
    }
  ],
  "method": "Two fresh WAL databases and three separate connections per case. Explicit SQL control with isolation_level=None; fully drained SELECTs only at recorded steps. The control issues BEGIN without a read before writer RELEASE. Calls are sequential with overlapping transaction lifetimes.",
  "limits": "Constructed semantic demonstration on one recorded build, not a benchmark, power-loss test, native C-API observer or version-wide guarantee."
}
