discard broken sqlite rows

I did some database surgery on my SQLite DB which somehow caused some
rows to be messed up. This change just discords broken rows instead of
panicking, allowing the migration to finish.
This commit is contained in:
Charles Hall 2023-07-25 16:05:32 -07:00
parent 805baa0705
commit 31ce64ea72
No known key found for this signature in database
GPG key ID: 7B8E0645816E07CF

View file

@ -106,9 +106,22 @@ impl SegmentIter for SqliteSegmentIter<'_> {
fn iter<'f>(&'f mut self) -> KVIter<'f> {
Box::new(
self.0
.query_map([], |row| Ok((row.get_unwrap(0), row.get_unwrap(1))))
.query_map([], |row| Ok((row.get(0), row.get(1))))
.unwrap()
.map(|r| r.unwrap()),
.map(|x| x.unwrap())
.filter_map(|(k, v)| {
let Ok(k) = k else {
println!("ignored a row because its key is malformed");
return None;
};
let Ok(v) = v else {
println!("ignored a row because its value is malformed");
return None;
};
Some((k, v))
}),
)
}
}