Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
b9ef5ba
Merge pull request #1 from apache/main
gbrgr Oct 14, 2025
09c1844
Merge branch 'apache:main' into main
gbrgr Oct 23, 2025
b65ae44
Merge branch 'apache:main' into main
gbrgr Oct 24, 2025
c8b380d
Merge branch 'apache:main' into main
gbrgr Oct 25, 2025
a555ca6
Merge branch 'apache:main' into main
gbrgr Oct 29, 2025
bc2ea1b
Merge branch 'apache:main' into main
gbrgr Oct 30, 2025
2a5a365
feat(core): Add incremental scan for appends and positional deletes (#3)
gbrgr Oct 30, 2025
ccb1e0c
Merge branch 'apache:main' into main
gbrgr Oct 30, 2025
c9501db
feat(core): Add incremental scan for appends and positional deletes (#3)
gbrgr Oct 30, 2025
25045a4
Merge upstream (#6)
gbrgr Nov 3, 2025
ef34973
Merge branch 'main' of github.com:RelationalAI/iceberg-rust
gbrgr Nov 3, 2025
12d9260
Merge branch 'apache:main' into main
gbrgr Nov 4, 2025
8f6fe40
Merge branch 'apache:main' into main
gbrgr Nov 4, 2025
589b57c
feat(core): Support file deletion in incremental scan (#4)
gbrgr Nov 4, 2025
a6a2930
Merge branch 'apache:main' into main
gbrgr Nov 7, 2025
b32df23
Merge branch 'apache:main' into main
gbrgr Nov 10, 2025
37e79b8
feat(core): Add support for replace in incremental scan (#8)
gbrgr Nov 10, 2025
31ea7d0
Merge branch 'apache:main' into main
gbrgr Nov 13, 2025
0d04a8e
Merge branch 'apache:main' into main
gbrgr Nov 14, 2025
0de5b03
feat(incremental): Make from and to in incremental scan optional (#9)
gbrgr Nov 14, 2025
29a088d
Merge branch 'apache:main' into main
gbrgr Nov 17, 2025
21244af
Merge branch 'apache:main' into main
gbrgr Nov 18, 2025
4979a20
True parallelism across full and incremental scan
vustef Nov 18, 2025
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
35 changes: 34 additions & 1 deletion crates/iceberg/src/arrow/delete_filter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,22 @@ enum EqDelState {
}

#[derive(Debug, Default)]
struct DeleteFileFilterState {
pub(crate) struct DeleteFileFilterState {
delete_vectors: HashMap<String, Arc<Mutex<DeleteVector>>>,
equality_deletes: HashMap<String, EqDelState>,
}

impl DeleteFileFilterState {
pub fn delete_vectors(&self) -> &HashMap<String, Arc<Mutex<DeleteVector>>> {
&self.delete_vectors
}

/// Remove and return the delete vector for the given data file path.
pub fn remove_delete_vector(&mut self, path: &str) -> Option<Arc<Mutex<DeleteVector>>> {
self.delete_vectors.remove(path)
}
}

#[derive(Clone, Debug, Default)]
pub(crate) struct DeleteFilter {
state: Arc<RwLock<DeleteFileFilterState>>,
Expand All @@ -65,6 +76,28 @@ impl DeleteFilter {
.and_then(|st| st.delete_vectors.get(delete_file_path).cloned())
}

pub(crate) fn with_read<F, G>(&self, f: F) -> Result<G>
where F: FnOnce(&DeleteFileFilterState) -> Result<G> {
let state = self.state.read().map_err(|e| {
Error::new(
ErrorKind::Unexpected,
format!("Failed to acquire read lock: {}", e),
)
})?;
f(&state)
}

pub(crate) fn with_write<F, G>(&self, f: F) -> Result<G>
where F: FnOnce(&mut DeleteFileFilterState) -> Result<G> {
let mut state = self.state.write().map_err(|e| {
Error::new(
ErrorKind::Unexpected,
format!("Failed to acquire write lock: {}", e),
)
})?;
f(&mut state)
}

pub(crate) fn try_start_eq_del_load(&self, file_path: &str) -> Option<Arc<Notify>> {
let mut state = self.state.write().unwrap();

Expand Down
375 changes: 375 additions & 0 deletions crates/iceberg/src/arrow/incremental.rs

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions crates/iceberg/src/arrow/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ pub mod record_batch_projector;
pub(crate) mod record_batch_transformer;
mod value;

mod incremental;
pub use incremental::*;
pub use reader::*;
pub use value::*;
/// Partition value calculator for computing partition values
Expand Down
Loading
Loading