@Override
    public RowData nextRecord(RowData reuse) {
        // return the next row
        row.setRowId(this.nextRow++);
        return row;
    }
@Test
    void testReadFileWithPartitionValues() throws IOException {
        FileInputSplit[] splits = createSplits(testFileFlat, 4);

        long cnt = 0;
        long totalF0 = 0;
        // read all splits
        for (FileInputSplit split : splits) {

            try (OrcColumnarRowSplitReader reader =
                    createReader(new int[] {2, 0, 1}, testSchemaFlat, new HashMap<>(), split)) {
                // read and count all rows
                while (!reader.reachedEnd()) {
                    RowData row = reader.nextRecord(null);
                    assertThat(row.isNullAt(0)).isFalse();
                    assertThat(row.isNullAt(1)).isFalse();
                    assertThat(row.isNullAt(2)).isFalse();
                    assertThat(row.getString(0).toString()).isNotNull();
                    totalF0 += row.getInt(1);
                    assertThat(row.getString(2).toString()).isNotNull();
                    cnt++;
                }
            }
        }
        // check that all rows have been read
        assertThat(cnt).isEqualTo(1920800);
        assertThat(totalF0).isEqualTo(1844737280400L);
    }