50 static Result<std::unique_ptr<RowDelta>> Make(std::string table_name,
51 std::shared_ptr<TransactionContext> ctx);
57 RowDelta& AddRows(
const std::shared_ptr<DataFile>& inserts);
63 RowDelta& AddDeletes(
const std::shared_ptr<DataFile>& deletes);
69 RowDelta& RemoveRows(
const std::shared_ptr<DataFile>& file);
75 RowDelta& RemoveDeletes(
const std::shared_ptr<DataFile>& deletes);
85 RowDelta& ValidateFromSnapshot(int64_t snapshot_id);
91 RowDelta& CaseSensitive(
bool case_sensitive);
104 RowDelta& ValidateDataFilesExist(std::span<const std::string> referenced_files);
124 RowDelta& ConflictDetectionFilter(std::shared_ptr<Expression> filter);
142 RowDelta& ValidateNoConflictingDataFiles();
155 RowDelta& ValidateNoConflictingDeleteFiles();
157 std::string operation()
override;
161 const std::shared_ptr<Snapshot>& snapshot)
override;
164 explicit RowDelta(std::string table_name, std::shared_ptr<TransactionContext> ctx);
166 Status ValidateNoConflictingFileAndPositionDeletes()
const;
168 std::optional<int64_t> starting_snapshot_id_;
169 std::unordered_set<std::string> referenced_data_files_;
171 bool validate_deletes_ =
false;
172 std::shared_ptr<Expression> conflict_detection_filter_;
173 bool validate_new_data_files_ =
false;
174 bool validate_new_delete_files_ =
false;