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

        try (OrcColumnarRowSplitReader reader =
                createReader(new int[] {0}, testSchemaDecimal, new HashMap<>(), splits[0])) {
            assertThat(reader.reachedEnd()).isFalse();
            RowData row = reader.nextRecord(null);

            // validate first row
            assertThat(row).isNotNull();
            assertThat(row.getArity()).isEqualTo(1);
            assertThat(row.getDecimal(0, 10, 5))
                    .isEqualTo(DecimalDataUtils.castFrom(-1000.5d, 10, 5));

            // check correct number of rows
            long cnt = 1;
            long nullCount = 0;
            while (!reader.reachedEnd()) {
                row = reader.nextRecord(null);
                if (!row.isNullAt(0)) {
                    assertThat(row.getDecimal(0, 10, 5)).isNotNull();
                } else {
                    nullCount++;
                }
                cnt++;
            }
            assertThat(cnt).isEqualTo(6000);
            assertThat(nullCount).isEqualTo(2000);
        }
    }