Skip to content

Commit 98435c6

Browse files
committed
refactor(core): simplify merged key-value reader state
1 parent 202348d commit 98435c6

2 files changed

Lines changed: 4 additions & 3 deletions

File tree

src/paimon/core/io/merged_key_value_record_reader.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ Result<bool> MergedKeyValueRecordReader::Iterator::MergeNextKey() const {
9292
}
9393

9494
Status MergedKeyValueRecordReader::Iterator::LoadNextRawKeyValue() const {
95-
if (next_raw_key_value_.has_value() || eof_) {
95+
if (next_raw_key_value_.has_value()) {
9696
return Status::OK();
9797
}
9898

@@ -109,7 +109,6 @@ Status MergedKeyValueRecordReader::Iterator::LoadNextRawKeyValue() const {
109109
current_iterator_.reset();
110110
PAIMON_ASSIGN_OR_RAISE(current_iterator_, reader_->reader_->NextBatch());
111111
if (current_iterator_ == nullptr) {
112-
eof_ = true;
113112
return Status::OK();
114113
}
115114
}

src/paimon/core/io/merged_key_value_record_reader.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@
2525
namespace paimon {
2626
class FieldsComparator;
2727

28+
/// Merges consecutive key-value records with the same primary key from the wrapped reader.
29+
/// The wrapped reader must return records ordered by primary key, so all records for the same
30+
/// primary key are contiguous.
2831
class MergedKeyValueRecordReader : public KeyValueRecordReader {
2932
public:
3033
MergedKeyValueRecordReader(
@@ -52,7 +55,6 @@ class MergedKeyValueRecordReader : public KeyValueRecordReader {
5255
mutable std::optional<KeyValue> next_raw_key_value_;
5356
// Merged kv prepared by HasNext() and consumed by Next().
5457
mutable std::optional<KeyValue> merged_key_value_;
55-
mutable bool eof_ = false;
5658
};
5759

5860
Result<std::unique_ptr<KeyValueRecordReader::Iterator>> NextBatch() override;

0 commit comments

Comments
 (0)