MCPcopy Create free account
hub / github.com/apache/paimon-rust / generate_overwrite_entries

Method generate_overwrite_entries

crates/paimon/src/table/table_commit.rs:639–665  ·  view source on GitHub ↗

Generate overwrite entries: DELETE existing + ADD new.

(
        &self,
        latest_snapshot: &Option<Snapshot>,
        partition_filter: Option<&PartitionFilter>,
        new_entries: &[ManifestEntry],
    )

Source from the content-addressed store, hash-verified

637
638 /// Generate overwrite entries: DELETE existing + ADD new.
639 async fn generate_overwrite_entries(
640 &self,
641 latest_snapshot: &Option<Snapshot>,
642 partition_filter: Option<&PartitionFilter>,
643 new_entries: &[ManifestEntry],
644 ) -> Result<Vec<ManifestEntry>> {
645 let mut entries = Vec::new();
646
647 if let Some(snap) = latest_snapshot {
648 let scan = TableScan::new(
649 &self.table,
650 partition_filter.cloned(),
651 vec![],
652 None,
653 None,
654 None,
655 )
656 .with_scan_all_files();
657 let current_entries = scan.plan_manifest_entries(snap).await?;
658 for entry in current_entries {
659 entries.push(entry.with_kind(FileKind::Delete));
660 }
661 }
662
663 entries.extend(new_entries.iter().cloned());
664 Ok(entries)
665 }
666
667 /// Assign row tracking metadata: snapshot ID as sequence number, and
668 /// first_row_id for new APPEND files that don't already have one.

Callers 1

resolve_commitMethod · 0.80

Calls 4

with_scan_all_filesMethod · 0.80
plan_manifest_entriesMethod · 0.80
with_kindMethod · 0.80
iterMethod · 0.45

Tested by

no test coverage detected