diff --git a/be/src/vec/exec/format/parquet/vparquet_group_reader.cpp b/be/src/vec/exec/format/parquet/vparquet_group_reader.cpp index 4f06f0e1fe6141..70ac862ba58183 100644 --- a/be/src/vec/exec/format/parquet/vparquet_group_reader.cpp +++ b/be/src/vec/exec/format/parquet/vparquet_group_reader.cpp @@ -779,8 +779,10 @@ Status RowGroupReader::_get_current_batch_row_id(size_t read_rows) { break; } if (read_range_rows + (range.last_row - range.first_row) > _total_read_rows) { - auto fi = std::max(_total_read_rows - read_range_rows, 0L) + range.first_row; - auto len = std::min(read_rows, (size_t)std::max(range.last_row - fi, 0L)); + int64_t fi = + std::max(_total_read_rows, read_range_rows) - read_range_rows + range.first_row; + size_t len = std::min(read_rows, (size_t)(std::max(range.last_row, fi) - fi)); + read_rows -= len; for (auto i = 0; i < len; i++) {