Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
1b94e18
Merge branch 'main' into feat/rewrite-files-action
hotcache Aug 25, 2026
7fdc8fd
fix(transaction): address review feedback from #3046
hotcache Aug 25, 2026
83ac7a5
Preserve survivor entries as Existing when filtering manifests
jopdorp Sep 18, 2026
6fc7bf1
Allow a rewrite to set the data sequence number of added files
jopdorp Sep 18, 2026
9d40b4c
Run the producer validations before committing a rewrite
jopdorp Sep 18, 2026
d466a48
Keep manifest names unique across commit attempts
jopdorp Sep 18, 2026
ee3fbdd
Drop manifests an earlier snapshot left all-deleted
jopdorp Sep 18, 2026
4f26afc
Refuse a rewrite when deletes landed after its starting snapshot
jopdorp Sep 18, 2026
6fcdb66
Run the compaction and partial rewrites against a V2 table
jopdorp Sep 18, 2026
8d461af
Format the new code and record the rewrite action in the public API
jopdorp Sep 18, 2026
721773c
Merge apache/main into feat/rewrite-files-action
abelNiels2023 Sep 28, 2026
69aa1b3
test(transaction): run the rewrite tests against a V1 table
abelNiels2023 Sep 28, 2026
b8c4c70
fix(transaction): name the file in the added-file content type error
abelNiels2023 Sep 28, 2026
d22436b
fix(transaction): fail a rewrite whose starting snapshot is gone
abelNiels2023 Sep 28, 2026
f5818cc
fix(transaction): fail a rewrite planned before the table had a snapshot
abelNiels2023 Sep 28, 2026
d4dbf46
docs(transaction): describe when a rewrite refuses to commit
abelNiels2023 Sep 28, 2026
e7db3c8
refactor(transaction): build the rewrite errors with invalid_data!
abelNiels2023 Sep 28, 2026
e147c40
test(transaction): cover rewrites on a spec-evolved table
rexminnis Sep 28, 2026
4bc7e4f
fix(transaction): keep partition metrics in the rewrite summary
rexminnis Sep 28, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions crates/iceberg/public-api.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3257,13 +3257,19 @@ pub fn iceberg::transaction::ReplaceSortOrderAction::asc(self, name: &str, null_
pub fn iceberg::transaction::ReplaceSortOrderAction::asc_with_transform(self, name: &str, transform: iceberg::spec::Transform, null_order: iceberg::spec::NullOrder) -> Self
pub fn iceberg::transaction::ReplaceSortOrderAction::desc(self, name: &str, null_order: iceberg::spec::NullOrder) -> Self
pub fn iceberg::transaction::ReplaceSortOrderAction::desc_with_transform(self, name: &str, transform: iceberg::spec::Transform, null_order: iceberg::spec::NullOrder) -> Self
pub struct iceberg::transaction::RewriteFilesAction
impl iceberg::transaction::RewriteFilesAction
pub fn iceberg::transaction::RewriteFilesAction::add_file(self, file: iceberg::spec::DataFile) -> Self
pub fn iceberg::transaction::RewriteFilesAction::data_sequence_number(self, sequence_number: i64) -> Self
pub fn iceberg::transaction::RewriteFilesAction::delete_file(self, file: iceberg::spec::DataFile) -> Self
pub struct iceberg::transaction::Transaction
impl iceberg::transaction::Transaction
pub async fn iceberg::transaction::Transaction::commit(self, catalog: &dyn iceberg::Catalog) -> iceberg::Result<iceberg::table::Table>
pub fn iceberg::transaction::Transaction::expire_snapshots(&self) -> iceberg::transaction::ExpireSnapshotsAction
pub fn iceberg::transaction::Transaction::fast_append(&self) -> iceberg::transaction::FastAppendAction
pub fn iceberg::transaction::Transaction::new(table: &iceberg::table::Table) -> Self
pub fn iceberg::transaction::Transaction::replace_sort_order(&self) -> iceberg::transaction::ReplaceSortOrderAction
pub fn iceberg::transaction::Transaction::rewrite_files(&self) -> iceberg::transaction::RewriteFilesAction
pub fn iceberg::transaction::Transaction::update_location(&self) -> iceberg::transaction::UpdateLocationAction
pub fn iceberg::transaction::Transaction::update_schema(&self) -> iceberg::transaction::UpdateSchemaAction
pub fn iceberg::transaction::Transaction::update_statistics(&self) -> iceberg::transaction::UpdateStatisticsAction
Expand Down
4 changes: 0 additions & 4 deletions crates/iceberg/src/spec/manifest/writer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -350,10 +350,6 @@ impl ManifestWriter {

/// Add an existing manifest entry. This method will update following status of the entry:
/// - Update the entry status to `Existing`
///
/// # TODO
/// Remove this allow later
#[allow(dead_code)]
pub(crate) fn add_existing_entry(&mut self, mut entry: ManifestEntry) -> Result<()> {
self.check_data_file(&entry.data_file)?;
entry.status = ManifestStatus::Existing;
Expand Down
1 change: 1 addition & 0 deletions crates/iceberg/src/spec/snapshot_summary.rs
Original file line number Diff line number Diff line change
Expand Up @@ -339,6 +339,7 @@ pub(crate) fn update_snapshot_summaries(
if summary.operation != Operation::Append
&& summary.operation != Operation::Overwrite
&& summary.operation != Operation::Delete
&& summary.operation != Operation::Replace
{
return Err(invalid_data!("Operation is not supported."));
}
Expand Down
Loading