{
  "schema_version": 1,
  "writer_cases": [
    {
      "case": "stream-replacement",
      "format": "stream",
      "api": "batch",
      "transition": "replace",
      "unify_dictionaries": false,
      "emit_dictionary_deltas": false,
      "write_completed": true,
      "write_error": null,
      "close_error": null,
      "expected_values": [
        "pass",
        "fail",
        "pass",
        "fail",
        "pass",
        "fail"
      ],
      "writer_stats": {
        "num_record_batches": 2,
        "num_dictionary_batches": 2,
        "num_dictionary_deltas": 0,
        "num_replaced_dictionaries": 1
      },
      "bytes": 880,
      "sha256": "07448e31e700f95520a2e3fe0afbf2dc7fa3f7ea564eb66d4f5ebd8a911a3ff4",
      "read": {
        "read_completed": true,
        "full_validation": true,
        "rows": 6,
        "values": [
          "pass",
          "fail",
          "pass",
          "fail",
          "pass",
          "fail"
        ],
        "batches": [
          {
            "indices": [
              0,
              1,
              0
            ],
            "dictionary": [
              "pass",
              "fail"
            ],
            "index_buffer_sha256": "31190090408f837aa1dc44bf75404af354a0e5d5c965f1d407a97dd627554da5"
          },
          {
            "indices": [
              0,
              1,
              0
            ],
            "dictionary": [
              "fail",
              "pass"
            ],
            "index_buffer_sha256": "31190090408f837aa1dc44bf75404af354a0e5d5c965f1d407a97dd627554da5"
          }
        ],
        "error": null,
        "stage": "complete",
        "source_position_after_read": 880
      }
    },
    {
      "case": "file-replacement",
      "format": "file",
      "api": "batch",
      "transition": "replace",
      "unify_dictionaries": false,
      "emit_dictionary_deltas": false,
      "write_completed": false,
      "write_error": {
        "type": "ArrowInvalid",
        "message": "Dictionary replacement detected when writing IPC file format. Arrow IPC files only support a single non-delta dictionary for a given field across all batches."
      },
      "close_error": null,
      "expected_values": [
        "pass",
        "fail",
        "pass",
        "fail",
        "pass",
        "fail"
      ],
      "writer_stats": {
        "num_record_batches": 1,
        "num_dictionary_batches": 1,
        "num_dictionary_deltas": 0,
        "num_replaced_dictionaries": 0
      },
      "bytes": 754,
      "sha256": "ed8fd85fb4a3e43be3a047736fc03bba06cfc76947d4c32b09a2cf244ffad822",
      "read": null
    },
    {
      "case": "file-batch-unify",
      "format": "file",
      "api": "batch",
      "transition": "replace",
      "unify_dictionaries": true,
      "emit_dictionary_deltas": false,
      "write_completed": false,
      "write_error": {
        "type": "ArrowInvalid",
        "message": "Dictionary replacement detected when writing IPC file format. Arrow IPC files only support a single non-delta dictionary for a given field across all batches."
      },
      "close_error": null,
      "expected_values": [
        "pass",
        "fail",
        "pass",
        "fail",
        "pass",
        "fail"
      ],
      "writer_stats": {
        "num_record_batches": 1,
        "num_dictionary_batches": 1,
        "num_dictionary_deltas": 0,
        "num_replaced_dictionaries": 0
      },
      "bytes": 754,
      "sha256": "ed8fd85fb4a3e43be3a047736fc03bba06cfc76947d4c32b09a2cf244ffad822",
      "read": null
    },
    {
      "case": "file-one-table-unify",
      "format": "file",
      "api": "one-table",
      "transition": "replace",
      "unify_dictionaries": true,
      "emit_dictionary_deltas": false,
      "write_completed": true,
      "write_error": null,
      "close_error": null,
      "expected_values": [
        "pass",
        "fail",
        "pass",
        "fail",
        "pass",
        "fail"
      ],
      "writer_stats": {
        "num_record_batches": 2,
        "num_dictionary_batches": 1,
        "num_dictionary_deltas": 0,
        "num_replaced_dictionaries": 0
      },
      "bytes": 938,
      "sha256": "850b3ff08c6662db70ef1e0407a891f3bc145669a74aa00b9d28884093c51dce",
      "read": {
        "read_completed": true,
        "full_validation": true,
        "rows": 6,
        "values": [
          "pass",
          "fail",
          "pass",
          "fail",
          "pass",
          "fail"
        ],
        "batches": [
          {
            "indices": [
              0,
              1,
              0
            ],
            "dictionary": [
              "pass",
              "fail"
            ],
            "index_buffer_sha256": "31190090408f837aa1dc44bf75404af354a0e5d5c965f1d407a97dd627554da5"
          },
          {
            "indices": [
              1,
              0,
              1
            ],
            "dictionary": [
              "pass",
              "fail"
            ],
            "index_buffer_sha256": "d05796eb3a889d209cc6e6e6a1429bbd9d218df2b58146a51be1fcafc3164042"
          }
        ],
        "error": null,
        "stage": "complete",
        "source_position_after_read": 0
      }
    },
    {
      "case": "file-two-table-unify",
      "format": "file",
      "api": "two-table",
      "transition": "replace",
      "unify_dictionaries": true,
      "emit_dictionary_deltas": false,
      "write_completed": false,
      "write_error": {
        "type": "ArrowInvalid",
        "message": "Dictionary replacement detected when writing IPC file format. Arrow IPC files only support a single non-delta dictionary for a given field across all batches."
      },
      "close_error": null,
      "expected_values": [
        "pass",
        "fail",
        "pass",
        "fail",
        "pass",
        "fail"
      ],
      "writer_stats": {
        "num_record_batches": 1,
        "num_dictionary_batches": 1,
        "num_dictionary_deltas": 0,
        "num_replaced_dictionaries": 0
      },
      "bytes": 754,
      "sha256": "ed8fd85fb4a3e43be3a047736fc03bba06cfc76947d4c32b09a2cf244ffad822",
      "read": null
    },
    {
      "case": "file-prefix-delta",
      "format": "file",
      "api": "batch",
      "transition": "extend",
      "unify_dictionaries": false,
      "emit_dictionary_deltas": true,
      "write_completed": true,
      "write_error": null,
      "close_error": null,
      "expected_values": [
        "pass",
        "fail",
        "pass",
        "new",
        "pass",
        "fail"
      ],
      "writer_stats": {
        "num_record_batches": 2,
        "num_dictionary_batches": 2,
        "num_dictionary_deltas": 1,
        "num_replaced_dictionaries": 0
      },
      "bytes": 1162,
      "sha256": "3bab01daae8924a7183770fd3a5f4fb6ef965ccc25bd9ac5250b924082c6e4db",
      "read": {
        "read_completed": true,
        "full_validation": true,
        "rows": 6,
        "values": [
          "pass",
          "fail",
          "pass",
          "new",
          "pass",
          "fail"
        ],
        "batches": [
          {
            "indices": [
              0,
              1,
              0
            ],
            "dictionary": [
              "pass",
              "fail",
              "new"
            ],
            "index_buffer_sha256": "31190090408f837aa1dc44bf75404af354a0e5d5c965f1d407a97dd627554da5"
          },
          {
            "indices": [
              2,
              0,
              1
            ],
            "dictionary": [
              "pass",
              "fail",
              "new"
            ],
            "index_buffer_sha256": "0db201e8371010e5cd3b719cf6c131cea86e18ef7c5bdd394e23b352b8e54f9e"
          }
        ],
        "error": null,
        "stage": "complete",
        "source_position_after_read": 0
      }
    },
    {
      "case": "file-prefix-no-delta",
      "format": "file",
      "api": "batch",
      "transition": "extend",
      "unify_dictionaries": false,
      "emit_dictionary_deltas": false,
      "write_completed": false,
      "write_error": {
        "type": "ArrowInvalid",
        "message": "Dictionary replacement detected when writing IPC file format. Arrow IPC files only support a single non-delta dictionary for a given field across all batches."
      },
      "close_error": null,
      "expected_values": [
        "pass",
        "fail",
        "pass",
        "new",
        "pass",
        "fail"
      ],
      "writer_stats": {
        "num_record_batches": 1,
        "num_dictionary_batches": 1,
        "num_dictionary_deltas": 0,
        "num_replaced_dictionaries": 0
      },
      "bytes": 754,
      "sha256": "ed8fd85fb4a3e43be3a047736fc03bba06cfc76947d4c32b09a2cf244ffad822",
      "read": null
    },
    {
      "case": "file-reorder-delta",
      "format": "file",
      "api": "batch",
      "transition": "replace",
      "unify_dictionaries": false,
      "emit_dictionary_deltas": true,
      "write_completed": false,
      "write_error": {
        "type": "ArrowInvalid",
        "message": "Dictionary replacement detected when writing IPC file format. Arrow IPC files only support a single non-delta dictionary for a given field across all batches."
      },
      "close_error": null,
      "expected_values": [
        "pass",
        "fail",
        "pass",
        "fail",
        "pass",
        "fail"
      ],
      "writer_stats": {
        "num_record_batches": 1,
        "num_dictionary_batches": 1,
        "num_dictionary_deltas": 0,
        "num_replaced_dictionaries": 0
      },
      "bytes": 754,
      "sha256": "ed8fd85fb4a3e43be3a047736fc03bba06cfc76947d4c32b09a2cf244ffad822",
      "read": null
    },
    {
      "case": "stream-prefix-delta",
      "format": "stream",
      "api": "batch",
      "transition": "extend",
      "unify_dictionaries": false,
      "emit_dictionary_deltas": true,
      "write_completed": true,
      "write_error": null,
      "close_error": null,
      "expected_values": [
        "pass",
        "fail",
        "pass",
        "new",
        "pass",
        "fail"
      ],
      "writer_stats": {
        "num_record_batches": 2,
        "num_dictionary_batches": 2,
        "num_dictionary_deltas": 1,
        "num_replaced_dictionaries": 0
      },
      "bytes": 880,
      "sha256": "3e5ddbdcb20a724cdd4cbfe2b369f89592cf0e60f2db8014122338d4bfe171e0",
      "read": {
        "read_completed": true,
        "full_validation": true,
        "rows": 6,
        "values": [
          "pass",
          "fail",
          "pass",
          "new",
          "pass",
          "fail"
        ],
        "batches": [
          {
            "indices": [
              0,
              1,
              0
            ],
            "dictionary": [
              "pass",
              "fail"
            ],
            "index_buffer_sha256": "31190090408f837aa1dc44bf75404af354a0e5d5c965f1d407a97dd627554da5"
          },
          {
            "indices": [
              2,
              0,
              1
            ],
            "dictionary": [
              "pass",
              "fail",
              "new"
            ],
            "index_buffer_sha256": "0db201e8371010e5cd3b719cf6c131cea86e18ef7c5bdd394e23b352b8e54f9e"
          }
        ],
        "error": null,
        "stage": "complete",
        "source_position_after_read": 880
      }
    }
  ],
  "mutations": [
    {
      "case": "replacement-omitted",
      "source": "stream-replacement",
      "selected_message_indices": [
        0,
        1,
        2,
        4
      ],
      "bytes": 680,
      "sha256": "994277bfdfd8f11e755cb1a8a8f0650ba5b34a51302d7aaf69bc41058d0b59f8",
      "same_length_as_source": false,
      "expected_values": [
        "pass",
        "fail",
        "pass",
        "fail",
        "pass",
        "fail"
      ],
      "matches_expected_values": false,
      "record_batch_messages_unchanged": true,
      "read": {
        "read_completed": true,
        "full_validation": true,
        "rows": 6,
        "values": [
          "pass",
          "fail",
          "pass",
          "pass",
          "fail",
          "pass"
        ],
        "batches": [
          {
            "indices": [
              0,
              1,
              0
            ],
            "dictionary": [
              "pass",
              "fail"
            ],
            "index_buffer_sha256": "31190090408f837aa1dc44bf75404af354a0e5d5c965f1d407a97dd627554da5"
          },
          {
            "indices": [
              0,
              1,
              0
            ],
            "dictionary": [
              "pass",
              "fail"
            ],
            "index_buffer_sha256": "31190090408f837aa1dc44bf75404af354a0e5d5c965f1d407a97dd627554da5"
          }
        ],
        "error": null,
        "stage": "complete",
        "source_position_after_read": 680
      }
    },
    {
      "case": "replacement-stale-same-length",
      "source": "stream-replacement",
      "selected_message_indices": [
        0,
        1,
        2,
        1,
        4
      ],
      "bytes": 880,
      "sha256": "6b60e5dca76adb399dbbf82ea6641800b7c27fcdb005d76b4f509ddc34c440ad",
      "same_length_as_source": true,
      "expected_values": [
        "pass",
        "fail",
        "pass",
        "fail",
        "pass",
        "fail"
      ],
      "matches_expected_values": false,
      "record_batch_messages_unchanged": true,
      "read": {
        "read_completed": true,
        "full_validation": true,
        "rows": 6,
        "values": [
          "pass",
          "fail",
          "pass",
          "pass",
          "fail",
          "pass"
        ],
        "batches": [
          {
            "indices": [
              0,
              1,
              0
            ],
            "dictionary": [
              "pass",
              "fail"
            ],
            "index_buffer_sha256": "31190090408f837aa1dc44bf75404af354a0e5d5c965f1d407a97dd627554da5"
          },
          {
            "indices": [
              0,
              1,
              0
            ],
            "dictionary": [
              "pass",
              "fail"
            ],
            "index_buffer_sha256": "31190090408f837aa1dc44bf75404af354a0e5d5c965f1d407a97dd627554da5"
          }
        ],
        "error": null,
        "stage": "complete",
        "source_position_after_read": 880
      }
    },
    {
      "case": "initial-dictionary-omitted",
      "source": "stream-replacement",
      "selected_message_indices": [
        0,
        2,
        3,
        4
      ],
      "bytes": 680,
      "sha256": "094954a413ed0b9c73dded78a5ddf0d95cb30e3e85299f8308824d6b4db29b25",
      "same_length_as_source": false,
      "expected_values": [
        "pass",
        "fail",
        "pass",
        "fail",
        "pass",
        "fail"
      ],
      "matches_expected_values": false,
      "record_batch_messages_unchanged": true,
      "read": {
        "read_completed": false,
        "full_validation": false,
        "rows": null,
        "values": null,
        "batches": null,
        "error": {
          "type": "ArrowInvalid",
          "message": "IPC stream did not have the expected number (1) of dictionaries at the start of the stream"
        },
        "stage": "read_all",
        "source_position_after_read": 312
      }
    },
    {
      "case": "delta-omitted",
      "source": "stream-prefix-delta",
      "selected_message_indices": [
        0,
        1,
        2,
        4
      ],
      "bytes": 680,
      "sha256": "a287c793625c68a33cfa77b0bf72a85ebe90fe6013c2e01a6176be0bf2dea1cd",
      "same_length_as_source": false,
      "expected_values": [
        "pass",
        "fail",
        "pass",
        "new",
        "pass",
        "fail"
      ],
      "matches_expected_values": false,
      "record_batch_messages_unchanged": true,
      "read": {
        "read_completed": true,
        "full_validation": false,
        "rows": 6,
        "values": null,
        "batches": null,
        "error": {
          "type": "ArrowInvalid",
          "message": "Column 0: In chunk 1: Invalid: Dictionary indices invalid: Invalid: Value at position 0 out of bounds: 2 (should be in [0, 1])"
        },
        "stage": "validate",
        "source_position_after_read": 680
      }
    }
  ],
  "source_messages": {
    "replacement": [
      {
        "type": "schema",
        "start": 0,
        "stop": 152,
        "sha256": "d6a73a06e95169e6e4e38160da48e96dc77394e7e043311e7598015fda7401ad",
        "body_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
      },
      {
        "type": "dictionary",
        "start": 152,
        "stop": 352,
        "sha256": "d66ff3e521ef5eaa4c47ba54c85102def02e146899c32d66ee71a9c4198ba1bb",
        "body_sha256": "33dc9763b6b1546c9b1e65da7448e85273d56629ce08a4884731d2268554c486"
      },
      {
        "type": "record batch",
        "start": 352,
        "stop": 512,
        "sha256": "338a8917970c59dc625500e2c690ecdf6aeabf4eef990a11b3e7f6930dcd1143",
        "body_sha256": "c363a7bc246a6180ed9330821f26c31b9a43d94a8462e5d95d8d6face2253822"
      },
      {
        "type": "dictionary",
        "start": 512,
        "stop": 712,
        "sha256": "d0dfef84549f7afd0637f324ead33b4d86ce410483d1255db5b832bcc52d9573",
        "body_sha256": "180b396867bb06f026fdbd4e003da5569b71f5a193ba364c0c0eaf6cb727d893"
      },
      {
        "type": "record batch",
        "start": 712,
        "stop": 872,
        "sha256": "338a8917970c59dc625500e2c690ecdf6aeabf4eef990a11b3e7f6930dcd1143",
        "body_sha256": "c363a7bc246a6180ed9330821f26c31b9a43d94a8462e5d95d8d6face2253822"
      }
    ],
    "delta": [
      {
        "type": "schema",
        "start": 0,
        "stop": 152,
        "sha256": "d6a73a06e95169e6e4e38160da48e96dc77394e7e043311e7598015fda7401ad",
        "body_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
      },
      {
        "type": "dictionary",
        "start": 152,
        "stop": 352,
        "sha256": "d66ff3e521ef5eaa4c47ba54c85102def02e146899c32d66ee71a9c4198ba1bb",
        "body_sha256": "33dc9763b6b1546c9b1e65da7448e85273d56629ce08a4884731d2268554c486"
      },
      {
        "type": "record batch",
        "start": 352,
        "stop": 512,
        "sha256": "338a8917970c59dc625500e2c690ecdf6aeabf4eef990a11b3e7f6930dcd1143",
        "body_sha256": "c363a7bc246a6180ed9330821f26c31b9a43d94a8462e5d95d8d6face2253822"
      },
      {
        "type": "dictionary",
        "start": 512,
        "stop": 712,
        "sha256": "d05324d6bde1b207bfaaa76e54fa86573b26d910224013cbc83d1b859bbcc512",
        "body_sha256": "1bc5e2e60e85fdd436b221ee0c4bf8ab67f6ede411f658cf5019da788ef63bc4"
      },
      {
        "type": "record batch",
        "start": 712,
        "stop": 872,
        "sha256": "28ff037d77b5555b122dd4e0572d923a220a58411e9a8bcb7253d0fa3aceff0c",
        "body_sha256": "66c313335fc249aefd7420b063da1bbd123fa61351b9517955aa2623eba94038"
      }
    ]
  },
  "captured_at_utc": "2026-11-03T23:25:04.516280+00:00",
  "environment": {
    "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]",
    "pyarrow": "21.0.0",
    "arrow_cpp": "21.0.0",
    "platform": "Linux-6.8.0-146-generic-x86_64-with-glibc2.39",
    "machine": "x86_64",
    "byteorder": "little",
    "optimized": false,
    "native_libraries": [
      {
        "name": "lib.cpython-312-x86_64-linux-gnu.so",
        "bytes": 4902376,
        "sha256": "2ea78c8f476f80b9b733ff9cc03939feadae3fa8a7cec0cfaac8a51ff50c702b"
      },
      {
        "name": "libarrow.so.2100",
        "bytes": 48850848,
        "sha256": "0b7d183760da6102349da714d4878d24b7f7029d8f3199b4fbf159075e013eb1"
      }
    ]
  }
}
