diff --git a/src/execution/row_indexer.rs b/src/execution/row_indexer.rs index 1fa451462..eeb7edf75 100644 --- a/src/execution/row_indexer.rs +++ b/src/execution/row_indexer.rs @@ -369,12 +369,10 @@ impl<'a> RowIndexer<'a> { if let Some(existing_version) = existing_version { if output.is_some() { - if !source_version.ordinal.is_available() - || source_version.ordinal != existing_version.ordinal - { - self.update_stats.num_updates.inc(1); - } else { + if existing_version.kind == SourceVersionKind::DifferentLogic { self.update_stats.num_reprocesses.inc(1); + } else { + self.update_stats.num_updates.inc(1); } } else { self.update_stats.num_deletions.inc(1); diff --git a/src/execution/stats.rs b/src/execution/stats.rs index 07e253189..98ce3a17f 100644 --- a/src/execution/stats.rs +++ b/src/execution/stats.rs @@ -115,8 +115,24 @@ impl std::fmt::Display for UpdateStats { let num_reprocesses = self.num_reprocesses.get(); let num_source_rows = num_insertions + num_deletions + num_updates + num_reprocesses; if num_source_rows > 0 { + let mut sub_messages = Vec::new(); + if num_insertions > 0 { + sub_messages.push(format!("{num_insertions} ADDED")); + } + if num_deletions > 0 { + sub_messages.push(format!("{num_deletions} REMOVED")); + } + if num_reprocesses > 0 { + sub_messages.push(format!( + "{num_reprocesses} REPROCESSED due to flow or logic changes" + )); + } + if num_updates > 0 { + sub_messages.push(format!("{num_updates} UPDATED in source content")); + } messages.push(format!( - "{num_source_rows} source rows processed ({num_insertions} ADDED, {num_deletions} REMOVED, {num_updates} UPDATED, {num_reprocesses} REPROCESSED on flow or logic changes)", + "{num_source_rows} source rows processed ({})", + sub_messages.join(", "), )); }