Skip to content

Commit 736b4cb

Browse files
committed
Fix stats to always show error numbers
1 parent f0dc6ee commit 736b4cb

File tree

1 file changed

+15
-16
lines changed

1 file changed

+15
-16
lines changed

src/execution/stats.rs

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -81,34 +81,33 @@ impl UpdateStats {
8181

8282
impl std::fmt::Display for UpdateStats {
8383
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
84+
let mut messages = Vec::new();
85+
let num_errors = self.num_errors.get();
86+
if num_errors > 0 {
87+
messages.push(format!("{num_errors} source rows FAILED"));
88+
}
89+
8490
let num_skipped = self.num_skipped.get();
8591
if num_skipped > 0 {
86-
write!(f, "{} rows skipped", num_skipped)?;
92+
messages.push(format!("{} source rows SKIPPED", num_skipped));
8793
}
8894

8995
let num_insertions = self.num_insertions.get();
9096
let num_deletions = self.num_deletions.get();
9197
let num_reprocesses = self.num_repreocesses.get();
9298
let num_source_rows = num_insertions + num_deletions + num_reprocesses;
9399
if num_source_rows > 0 {
94-
if num_skipped > 0 {
95-
write!(f, "; ")?;
96-
}
97-
write!(f, "{num_source_rows} source rows processed",)?;
98-
99-
let num_errors = self.num_errors.get();
100-
if num_errors > 0 {
101-
write!(f, " with {num_errors} ERRORS",)?;
102-
}
103-
write!(
104-
f,
105-
": {num_insertions} added, {num_deletions} removed, {num_reprocesses} repocessed",
106-
)?;
100+
messages.push(format!(
101+
"{num_source_rows} source rows processed: {num_insertions} ADDED, {num_deletions} REMOVED, {num_reprocesses} REPROCESSED",
102+
));
107103
}
108104

109-
if num_skipped == 0 && num_source_rows == 0 {
110-
write!(f, "no changes")?;
105+
if !messages.is_empty() {
106+
write!(f, "{}", messages.join("; "))?;
107+
} else {
108+
write!(f, "No changes")?;
111109
}
110+
112111
Ok(())
113112
}
114113
}

0 commit comments

Comments
 (0)