Generate overwrite entries: DELETE existing + ADD new.
(
&self,
latest_snapshot: &Option<Snapshot>,
partition_filter: Option<&PartitionFilter>,
new_entries: &[ManifestEntry],
)
| 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. |
no test coverage detected