{
  "schemaVersion": 1,
  "generatedAt": "2026-10-18T03:06:49.250545+00:00",
  "evidenceType": "Controlled software experiment with constructed data",
  "environment": {
    "python": "3.12.3",
    "sqlite": "3.45.1",
    "sqliteSourceId": "2024-01-30 16:01:20 e876e51a0ed5c5b3126f52e532044363a014bc594cfefa87ffb5b82257ccalt1",
    "compileOptions": [
      "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"
    ],
    "os": "Linux",
    "kernel": "6.8.0-146-generic",
    "machine": "x86_64"
  },
  "harnessSha256": "991f607363e109a56f4df5f96ecd2ad79fe847fda324a400084144963e82fffe",
  "method": {
    "primaryScenarios": 8,
    "rowsPerPrimaryFixture": 3,
    "additionalUniqueCollisionFixtures": 1,
    "rowsPerUniqueFixture": 2,
    "journalMode": "DELETE",
    "concurrentWriters": false,
    "functionVersions": {
      "original": "score(x)=x",
      "changed": "score(x)=x+100"
    },
    "collationVersions": {
      "original": "ASCII ascending",
      "changed": "ASCII descending"
    },
    "querySelection": "Force INDEXED BY idx and NOT INDEXED; order result rows by id",
    "copyMethod": "Byte copy of closed fixtures; original/missing/changed share identical SHA-256"
  },
  "sources": [
    "https://sqlite.org/c3ref/create_collation.html",
    "https://sqlite.org/deterministic.html",
    "https://sqlite.org/expridx.html",
    "https://sqlite.org/staleexpridx.html",
    "https://www.sqlite.org/pragma.html#pragma_quick_check",
    "https://www.sqlite.org/lang_reindex.html"
  ],
  "cases": [
    {
      "kind": "expression",
      "runtime": "original",
      "sha256Before": "9d09745120805a80c261801542381b53d43e16468d4e1a666152299f7c352de3",
      "baseRows": [
        [
          1,
          1
        ],
        [
          2,
          2
        ],
        [
          3,
          3
        ]
      ],
      "indexedSql": "SELECT id, value FROM sample INDEXED BY idx WHERE score(value)=? ORDER BY id",
      "scanSql": "SELECT id, value FROM sample NOT INDEXED WHERE score(value)=? ORDER BY id",
      "parameter": 2,
      "indexed": {
        "rows": [
          [
            2,
            2
          ]
        ]
      },
      "scan": {
        "rows": [
          [
            2,
            2
          ]
        ]
      },
      "indexedPlan": {
        "rows": [
          [
            4,
            0,
            0,
            "SEARCH sample USING INDEX idx (<expr>=?)"
          ]
        ]
      },
      "scanPlan": {
        "rows": [
          [
            3,
            0,
            0,
            "SCAN sample"
          ]
        ]
      },
      "quickCheck": {
        "rows": [
          [
            "ok"
          ]
        ]
      },
      "integrityCheck": {
        "rows": [
          [
            "ok"
          ]
        ]
      },
      "resultsAgree": true,
      "sha256After": "9d09745120805a80c261801542381b53d43e16468d4e1a666152299f7c352de3",
      "sameBytesAsSource": true
    },
    {
      "kind": "expression",
      "runtime": "missing",
      "sha256Before": "9d09745120805a80c261801542381b53d43e16468d4e1a666152299f7c352de3",
      "baseRows": [
        [
          1,
          1
        ],
        [
          2,
          2
        ],
        [
          3,
          3
        ]
      ],
      "indexedSql": "SELECT id, value FROM sample INDEXED BY idx WHERE score(value)=? ORDER BY id",
      "scanSql": "SELECT id, value FROM sample NOT INDEXED WHERE score(value)=? ORDER BY id",
      "parameter": 102,
      "indexed": {
        "error": "no such function: score",
        "errorCode": 1,
        "errorName": "SQLITE_ERROR"
      },
      "scan": {
        "error": "no such function: score",
        "errorCode": 1,
        "errorName": "SQLITE_ERROR"
      },
      "indexedPlan": {
        "error": "no such function: score",
        "errorCode": 1,
        "errorName": "SQLITE_ERROR"
      },
      "scanPlan": {
        "error": "no such function: score",
        "errorCode": 1,
        "errorName": "SQLITE_ERROR"
      },
      "quickCheck": {
        "rows": [
          [
            "ok"
          ]
        ]
      },
      "integrityCheck": {
        "error": "unknown function: score()",
        "errorCode": 1,
        "errorName": "SQLITE_ERROR"
      },
      "resultsAgree": null,
      "sha256After": "9d09745120805a80c261801542381b53d43e16468d4e1a666152299f7c352de3",
      "sameBytesAsSource": true
    },
    {
      "kind": "expression",
      "runtime": "changed",
      "sha256Before": "9d09745120805a80c261801542381b53d43e16468d4e1a666152299f7c352de3",
      "baseRows": [
        [
          1,
          1
        ],
        [
          2,
          2
        ],
        [
          3,
          3
        ]
      ],
      "indexedSql": "SELECT id, value FROM sample INDEXED BY idx WHERE score(value)=? ORDER BY id",
      "scanSql": "SELECT id, value FROM sample NOT INDEXED WHERE score(value)=? ORDER BY id",
      "parameter": 102,
      "indexed": {
        "rows": []
      },
      "scan": {
        "rows": [
          [
            2,
            2
          ]
        ]
      },
      "indexedPlan": {
        "rows": [
          [
            4,
            0,
            0,
            "SEARCH sample USING INDEX idx (<expr>=?)"
          ]
        ]
      },
      "scanPlan": {
        "rows": [
          [
            3,
            0,
            0,
            "SCAN sample"
          ]
        ]
      },
      "quickCheck": {
        "rows": [
          [
            "ok"
          ]
        ]
      },
      "integrityCheck": {
        "rows": [
          [
            "row 1 missing from index idx"
          ],
          [
            "row 2 missing from index idx"
          ],
          [
            "row 3 missing from index idx"
          ]
        ]
      },
      "resultsAgree": false,
      "sha256After": "9d09745120805a80c261801542381b53d43e16468d4e1a666152299f7c352de3",
      "sameBytesAsSource": true
    },
    {
      "kind": "expression",
      "runtime": "reindexed",
      "sha256Before": "6b44bd6ec1001ec8df69fe324c7df3ecbdb6fbeb4f1c9542351556f3a90009eb",
      "baseRows": [
        [
          1,
          1
        ],
        [
          2,
          2
        ],
        [
          3,
          3
        ]
      ],
      "indexedSql": "SELECT id, value FROM sample INDEXED BY idx WHERE score(value)=? ORDER BY id",
      "scanSql": "SELECT id, value FROM sample NOT INDEXED WHERE score(value)=? ORDER BY id",
      "parameter": 102,
      "indexed": {
        "rows": [
          [
            2,
            2
          ]
        ]
      },
      "scan": {
        "rows": [
          [
            2,
            2
          ]
        ]
      },
      "indexedPlan": {
        "rows": [
          [
            4,
            0,
            0,
            "SEARCH sample USING INDEX idx (<expr>=?)"
          ]
        ]
      },
      "scanPlan": {
        "rows": [
          [
            3,
            0,
            0,
            "SCAN sample"
          ]
        ]
      },
      "quickCheck": {
        "rows": [
          [
            "ok"
          ]
        ]
      },
      "integrityCheck": {
        "rows": [
          [
            "ok"
          ]
        ]
      },
      "resultsAgree": true,
      "sha256After": "6b44bd6ec1001ec8df69fe324c7df3ecbdb6fbeb4f1c9542351556f3a90009eb",
      "sameBytesAsSource": false
    },
    {
      "kind": "collation",
      "runtime": "original",
      "sha256Before": "a20257df2570514dc0b780ac80b0604c98262d7ad6863523133da334b8a33dc8",
      "baseRows": [
        [
          1,
          "ant"
        ],
        [
          2,
          "bee"
        ],
        [
          3,
          "cat"
        ]
      ],
      "indexedSql": "SELECT id, value FROM sample INDEXED BY idx WHERE value COLLATE APP_ORDER >= ? ORDER BY id",
      "scanSql": "SELECT id, value FROM sample NOT INDEXED WHERE value COLLATE APP_ORDER >= ? ORDER BY id",
      "parameter": "bee",
      "indexed": {
        "rows": [
          [
            2,
            "bee"
          ],
          [
            3,
            "cat"
          ]
        ]
      },
      "scan": {
        "rows": [
          [
            2,
            "bee"
          ],
          [
            3,
            "cat"
          ]
        ]
      },
      "indexedPlan": {
        "rows": [
          [
            3,
            0,
            0,
            "SEARCH sample USING COVERING INDEX idx (value>?)"
          ],
          [
            12,
            0,
            0,
            "USE TEMP B-TREE FOR ORDER BY"
          ]
        ]
      },
      "scanPlan": {
        "rows": [
          [
            3,
            0,
            0,
            "SCAN sample"
          ]
        ]
      },
      "quickCheck": {
        "rows": [
          [
            "ok"
          ]
        ]
      },
      "integrityCheck": {
        "rows": [
          [
            "ok"
          ]
        ]
      },
      "resultsAgree": true,
      "sha256After": "a20257df2570514dc0b780ac80b0604c98262d7ad6863523133da334b8a33dc8",
      "sameBytesAsSource": true
    },
    {
      "kind": "collation",
      "runtime": "missing",
      "sha256Before": "a20257df2570514dc0b780ac80b0604c98262d7ad6863523133da334b8a33dc8",
      "baseRows": [
        [
          1,
          "ant"
        ],
        [
          2,
          "bee"
        ],
        [
          3,
          "cat"
        ]
      ],
      "indexedSql": "SELECT id, value FROM sample INDEXED BY idx WHERE value COLLATE APP_ORDER >= ? ORDER BY id",
      "scanSql": "SELECT id, value FROM sample NOT INDEXED WHERE value COLLATE APP_ORDER >= ? ORDER BY id",
      "parameter": "bee",
      "indexed": {
        "error": "no such collation sequence: APP_ORDER",
        "errorCode": 257,
        "errorName": "SQLITE_ERROR_MISSING_COLLSEQ"
      },
      "scan": {
        "error": "no such collation sequence: APP_ORDER",
        "errorCode": 257,
        "errorName": "SQLITE_ERROR_MISSING_COLLSEQ"
      },
      "indexedPlan": {
        "error": "no such collation sequence: APP_ORDER",
        "errorCode": 257,
        "errorName": "SQLITE_ERROR_MISSING_COLLSEQ"
      },
      "scanPlan": {
        "error": "no such collation sequence: APP_ORDER",
        "errorCode": 257,
        "errorName": "SQLITE_ERROR_MISSING_COLLSEQ"
      },
      "quickCheck": {
        "error": "no such collation sequence: APP_ORDER",
        "errorCode": 257,
        "errorName": "SQLITE_ERROR_MISSING_COLLSEQ"
      },
      "integrityCheck": {
        "error": "no such collation sequence: APP_ORDER",
        "errorCode": 257,
        "errorName": "SQLITE_ERROR_MISSING_COLLSEQ"
      },
      "resultsAgree": null,
      "sha256After": "a20257df2570514dc0b780ac80b0604c98262d7ad6863523133da334b8a33dc8",
      "sameBytesAsSource": true
    },
    {
      "kind": "collation",
      "runtime": "changed",
      "sha256Before": "a20257df2570514dc0b780ac80b0604c98262d7ad6863523133da334b8a33dc8",
      "baseRows": [
        [
          1,
          "ant"
        ],
        [
          2,
          "bee"
        ],
        [
          3,
          "cat"
        ]
      ],
      "indexedSql": "SELECT id, value FROM sample INDEXED BY idx WHERE value COLLATE APP_ORDER >= ? ORDER BY id",
      "scanSql": "SELECT id, value FROM sample NOT INDEXED WHERE value COLLATE APP_ORDER >= ? ORDER BY id",
      "parameter": "bee",
      "indexed": {
        "rows": [
          [
            1,
            "ant"
          ],
          [
            2,
            "bee"
          ],
          [
            3,
            "cat"
          ]
        ]
      },
      "scan": {
        "rows": [
          [
            1,
            "ant"
          ],
          [
            2,
            "bee"
          ]
        ]
      },
      "indexedPlan": {
        "rows": [
          [
            3,
            0,
            0,
            "SEARCH sample USING COVERING INDEX idx (value>?)"
          ],
          [
            12,
            0,
            0,
            "USE TEMP B-TREE FOR ORDER BY"
          ]
        ]
      },
      "scanPlan": {
        "rows": [
          [
            3,
            0,
            0,
            "SCAN sample"
          ]
        ]
      },
      "quickCheck": {
        "rows": [
          [
            "ok"
          ]
        ]
      },
      "integrityCheck": {
        "rows": [
          [
            "row 1 missing from index idx"
          ],
          [
            "row 2 missing from index idx"
          ]
        ]
      },
      "resultsAgree": false,
      "sha256After": "a20257df2570514dc0b780ac80b0604c98262d7ad6863523133da334b8a33dc8",
      "sameBytesAsSource": true
    },
    {
      "kind": "collation",
      "runtime": "reindexed",
      "sha256Before": "4f98e85bfe6f17b2e8c20212ec7ec4245361997a90e0e09340cb47e7403e4c18",
      "baseRows": [
        [
          1,
          "ant"
        ],
        [
          2,
          "bee"
        ],
        [
          3,
          "cat"
        ]
      ],
      "indexedSql": "SELECT id, value FROM sample INDEXED BY idx WHERE value COLLATE APP_ORDER >= ? ORDER BY id",
      "scanSql": "SELECT id, value FROM sample NOT INDEXED WHERE value COLLATE APP_ORDER >= ? ORDER BY id",
      "parameter": "bee",
      "indexed": {
        "rows": [
          [
            1,
            "ant"
          ],
          [
            2,
            "bee"
          ]
        ]
      },
      "scan": {
        "rows": [
          [
            1,
            "ant"
          ],
          [
            2,
            "bee"
          ]
        ]
      },
      "indexedPlan": {
        "rows": [
          [
            3,
            0,
            0,
            "SEARCH sample USING COVERING INDEX idx (value>?)"
          ],
          [
            12,
            0,
            0,
            "USE TEMP B-TREE FOR ORDER BY"
          ]
        ]
      },
      "scanPlan": {
        "rows": [
          [
            3,
            0,
            0,
            "SCAN sample"
          ]
        ]
      },
      "quickCheck": {
        "rows": [
          [
            "ok"
          ]
        ]
      },
      "integrityCheck": {
        "rows": [
          [
            "ok"
          ]
        ]
      },
      "resultsAgree": true,
      "sha256After": "4f98e85bfe6f17b2e8c20212ec7ec4245361997a90e0e09340cb47e7403e4c18",
      "sameBytesAsSource": false
    }
  ],
  "uniqueCollision": {
    "baseRows": [
      [
        1,
        "A"
      ],
      [
        2,
        "a"
      ]
    ],
    "originalSemantics": "ASCII case-sensitive order",
    "changedSemantics": "ASCII lower-case comparison: A and a compare equal",
    "quickCheck": {
      "rows": [
        [
          "ok"
        ]
      ]
    },
    "integrityCheck": {
      "rows": [
        [
          "non-unique entry in index idx"
        ]
      ]
    },
    "reindex": {
      "error": "UNIQUE constraint failed: sample.value",
      "errorCode": 2067,
      "errorName": "SQLITE_CONSTRAINT_UNIQUE"
    },
    "sha256Before": "4e563f009279a8a2a5540a782b49203ab89e2558dc3436f20ead6feb1140d025",
    "sha256AfterRollback": "4e563f009279a8a2a5540a782b49203ab89e2558dc3436f20ead6feb1140d025"
  },
  "limits": [
    "Changed callback semantics deliberately violate existing index assumptions; no SQLite defect claimed.",
    "One SQLite build, tiny designed fixtures; not an incident rate or performance measurement.",
    "No backup API, live-file copy, WAL, crash, power loss, ICU upgrade or floating-point drift tested.",
    "Forced access paths isolate the mechanism, not production planner choices.",
    "Targeted REINDEX does not validate application meaning or repair arbitrary storage corruption."
  ]
}
