Skip to content

Commit e58d4e2

Browse files
committed
chore: use more accurate error types
Signed-off-by: StandingMan <[email protected]>
1 parent cfb25e0 commit e58d4e2

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

crates/iceberg/src/spec/snapshot.rs

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -410,14 +410,14 @@ pub(super) mod _serde {
410410
(Some(file), None) => file,
411411
(Some(_), Some(_)) => {
412412
return Err(Error::new(
413-
ErrorKind::Unexpected,
414-
"v1 snapshot invariant violated: manifest_list and manifests are both set",
413+
ErrorKind::DataInvalid,
414+
"Invalid v1 snapshot, when manifest list provided, manifest files should be omitted",
415415
));
416416
}
417417
(None, _) => {
418418
return Err(Error::new(
419-
ErrorKind::FeatureUnsupported,
420-
"v1 snapshot invariant violated: manifest_list is missing",
419+
ErrorKind::DataInvalid,
420+
"Unsupported v1 snapshot, only manifest list is supported",
421421
));
422422
}
423423
},
@@ -648,6 +648,10 @@ mod tests {
648648

649649
let result = serde_json::from_str::<TableMetadata>(metadata);
650650
assert!(result.is_err());
651+
assert_eq!(
652+
result.unwrap_err().to_string(),
653+
"DataInvalid => Invalid v1 snapshot, when manifest list provided, manifest files should be omitted"
654+
)
651655
}
652656

653657
{
@@ -679,6 +683,10 @@ mod tests {
679683
"#;
680684
let result = serde_json::from_str::<TableMetadata>(metadata);
681685
assert!(result.is_err());
686+
assert_eq!(
687+
result.unwrap_err().to_string(),
688+
"DataInvalid => Unsupported v1 snapshot, only manifest list is supported"
689+
)
682690
}
683691
}
684692

0 commit comments

Comments
 (0)