@Test
  public void testIsQualifiedDeleteDeltaForSplit() {
    // Original file
    checkPath("00000_0", "delete_delta_000012_000012_0000", true);
    checkPath("00000_0", "delete_delta_000001_000001", true);

    // Original copy
    checkPath("00000_0_copy", "delete_delta_0000012_0000012_0000", true);
    checkPath("00000_0_copy", "delete_delta_0000001_0000001", true);

    // Base file
    checkPath("base_00000002/bucket_0000001", "delete_delta_0000012_0000012_0000", true);

    // Compacted base file
    checkPath("base_0000002_v123/bucket_00000_0", "delete_delta_0000012_0000012_0000", true);

    // Delta file
    checkPath("delta_00000002_0000002/bucket_00001_1", "delete_delta_0000012_0000012_0000", true);
    checkPath("delta_00000002_0000002/bucket_00001_1", "delete_delta_0000002_0000002", false);
    checkPath("delta_00000002_0000002/bucket_00001_1", "delete_delta_0000001_0000001_0001", false);

    // Delta with statement id
    checkPath("delta_0000002_0000002_124/bucket_00001", "delete_delta_000012_000012_0000", true);
    checkPath("delta_0000002_0000002_124/bucket_00001", "delete_delta_000002_000002", false);
    checkPath("delta_0000002_0000002_124/bucket_00001", "delete_delta_000001_000001_0001", false);

    // Delta file with data loaded by LOAD DATA command
    checkPath("delta_0000002_0000002_0000/000000_0", "delete_delta_0000012_0000012_0000", true);
    checkPath("delta_0000002_0000002_0000/000000_0", "delete_delta_0000002_0000002", false);
    checkPath("delta_0000002_0000002_0000/000000_0", "delete_delta_0000001_0000001_0001", false);

    // Compacted delta
    checkPath("delta_0000002_0000005_124/bucket_00001", "delete_delta_0000012_0000012_0000", true);
    checkPath("delta_0000002_0000005_124/bucket_00001", "delete_delta_0000003_0000003", true);
    checkPath("delta_0000002_0000005_124/bucket_00001", "delete_delta_0000002_0000005", true);
    checkPath("delta_0000002_0000005_124/bucket_00001", "delete_delta_0000002_0000002", false);
    checkPath("delta_0000002_0000005_124/bucket_00001", "delete_delta_0000001_0000001_0001", false);

    // Multi statement transaction check
    checkPath("delta_0000002_0000002_0000/bucket_00001", "delete_delta_0000002_0000002_0000", false);
    checkPath("delta_0000002_0000002_0001/bucket_00001", "delete_delta_0000002_0000002_0000", false);
    checkPath("delta_0000002_0000002_0001/bucket_00001", "delete_delta_0000002_0000002_0002", true);
    checkPath("delta_0000002_0000002_0001/bucket_00001", "delete_delta_0000002_0000002", false);
    checkPath("delta_0000002_0000002/bucket_00001", "delete_delta_0000002_0000002", false);
    checkPath("delta_0000002_0000002/bucket_00001", "delete_delta_0000002_0000002_0001", true);
  }
Tests that we can figure out min/max ROW__ID for each split and then use
that to only load delete events between min/max.
This test doesn't actually check what is read - that is done more E2E
unit tests.
@throws Exception
ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestVectorizedOrcAcidRowBatchReader.java