Skip to content

Commit a3068ff

Browse files
committed
refactor: add HasDataSequenceNumber() accessor to MergingSnapshotUpdate
1 parent 5a53a43 commit a3068ff

3 files changed

Lines changed: 6 additions & 12 deletions

File tree

src/iceberg/update/merging_snapshot_update.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,11 @@ class ICEBERG_EXPORT MergingSnapshotUpdate : public SnapshotUpdate {
141141
/// \brief Override the data sequence number assigned to all newly-added data files.
142142
void SetNewDataFilesDataSequenceNumber(int64_t sequence_number);
143143

144+
/// \brief Returns true if SetNewDataFilesDataSequenceNumber was called.
145+
bool HasDataSequenceNumber() const {
146+
return new_data_files_data_seq_number_.has_value();
147+
}
148+
144149
/// \brief Set case sensitivity for row filter and expression evaluation.
145150
void CaseSensitive(bool case_sensitive);
146151

src/iceberg/update/rewrite_files.cc

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,15 +79,13 @@ RewriteFiles& RewriteFiles::AddDeleteFile(const std::shared_ptr<DataFile>& delet
7979

8080
RewriteFiles& RewriteFiles::SetDataSequenceNumber(int64_t sequence_number) {
8181
SetNewDataFilesDataSequenceNumber(sequence_number);
82-
data_sequence_number_set_ = true;
8382
return *this;
8483
}
8584

8685
RewriteFiles& RewriteFiles::RewriteDataFiles(
8786
const std::vector<std::shared_ptr<DataFile>>& files_to_delete,
8887
const std::vector<std::shared_ptr<DataFile>>& files_to_add, int64_t sequence_number) {
8988
SetNewDataFilesDataSequenceNumber(sequence_number);
90-
data_sequence_number_set_ = true;
9189
Rewrite(files_to_delete, {}, files_to_add, {});
9290
return *this;
9391
}
@@ -169,7 +167,7 @@ Status RewriteFiles::Validate(const TableMetadata& current_metadata,
169167
auto io = ctx_->table->io();
170168
ICEBERG_RETURN_UNEXPECTED(MergingSnapshotUpdate::ValidateNoNewDeletesForDataFiles(
171169
current_metadata, starting_snapshot_id_, replaced_data_files_, snapshot,
172-
std::move(io), data_sequence_number_set_));
170+
std::move(io), HasDataSequenceNumber()));
173171
}
174172

175173
return {};

src/iceberg/update/rewrite_files.h

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -180,15 +180,6 @@ class ICEBERG_EXPORT RewriteFiles : public MergingSnapshotUpdate {
180180

181181
/// \brief Optional snapshot ID boundary for validation scope.
182182
std::optional<int64_t> starting_snapshot_id_;
183-
184-
/// \brief Whether a data sequence number has been set for this operation.
185-
///
186-
/// Mirrors MergingSnapshotUpdate::new_data_files_data_seq_number_ which is private.
187-
/// Needed because calling the instance overload of ValidateNoNewDeletesForDataFiles
188-
/// is ambiguous with the static overload (which has a default bool argument). The
189-
/// instance overload derives ignore_equality_deletes from the base class private
190-
/// field, so we track it here to pass explicitly to the static overload.
191-
bool data_sequence_number_set_ = false;
192183
};
193184

194185
} // namespace iceberg

0 commit comments

Comments
 (0)