diff --git a/cpp/array_record_reader.cc b/cpp/array_record_reader.cc index 8592112..bc7675e 100644 --- a/cpp/array_record_reader.cc +++ b/cpp/array_record_reader.cc @@ -313,6 +313,14 @@ void ArrayRecordReaderBase::Initialize() { } } +uint64_t ArrayRecordReaderBase::ChunkStartOffset(uint64_t chunk_idx) const { + return state_->chunk_offsets[chunk_idx]; +} + +uint64_t ArrayRecordReaderBase::ChunkEndOffset(uint64_t chunk_idx) const { + return state_->ChunkEndOffset(chunk_idx); +} + absl::Status ArrayRecordReaderBase::ParallelReadRecords( absl::FunctionRef callback) const { @@ -591,7 +599,7 @@ uint64_t ArrayRecordReaderBase::NumRecords() const { return state_->num_records; } -uint64_t ArrayRecordReaderBase::RecordGroupSize() { +uint64_t ArrayRecordReaderBase::RecordGroupSize() const { if (!ok()) { return 0; } diff --git a/cpp/array_record_reader.h b/cpp/array_record_reader.h index d573e2f..3a9d011 100644 --- a/cpp/array_record_reader.h +++ b/cpp/array_record_reader.h @@ -244,7 +244,7 @@ class ArrayRecordReaderBase : public riegeli::Object { // Number of records in each compressed chunk configured at the file writing // stage by `ArrayRecordWriterBase::Options::set_group_size`. The acutal // number of records per group could be smaller equals to this number. - uint64_t RecordGroupSize(); + uint64_t RecordGroupSize() const; // Index of the record to be read. uint64_t RecordIndex() const; @@ -287,6 +287,8 @@ class ArrayRecordReaderBase : public riegeli::Object { ArrayRecordReaderBase& operator=(ArrayRecordReaderBase&& other) noexcept; void Initialize(); + uint64_t ChunkStartOffset(uint64_t chunk_idx) const; + uint64_t ChunkEndOffset(uint64_t chunk_idx) const; virtual ThreadCompatibleSharedPtr get_backing_reader() const = 0; diff --git a/python/testdata/digits.array_record-00000-of-00002 b/python/testdata/digits.array_record-00000-of-00002 index ca4fd6f..c52a248 100644 Binary files a/python/testdata/digits.array_record-00000-of-00002 and b/python/testdata/digits.array_record-00000-of-00002 differ diff --git a/python/testdata/digits.array_record-00001-of-00002 b/python/testdata/digits.array_record-00001-of-00002 index 37223e5..d96ffbe 100644 Binary files a/python/testdata/digits.array_record-00001-of-00002 and b/python/testdata/digits.array_record-00001-of-00002 differ