fix: forward commit outcome capabilities

This commit is contained in:
Gatefixer
2026-08-13 16:52:23 +00:00
parent b4053059bf
commit 9ba03810e7
2 changed files with 38 additions and 0 deletions
+22
View File
@@ -89,6 +89,14 @@ struct CloneCommitHandler {
#[async_trait::async_trait]
impl CommitHandler for CloneCommitHandler {
fn is_version_not_found_definitive(&self) -> bool {
self.target.is_version_not_found_definitive()
}
fn propagate_commit_error_after_success(&self) -> bool {
self.target.propagate_commit_error_after_success()
}
async fn resolve_latest_location(
&self,
base_path: &ObjectPath,
@@ -1554,6 +1562,20 @@ mod tests {
}
}
#[test]
fn commit_handler_forwards_commit_outcome_capabilities() {
let target: Arc<dyn CommitHandler> =
Arc::new(lance_table::io::commit::ConditionalPutCommitHandler);
let handler = CloneCommitHandler {
source_base: ObjectPath::from("source"),
source: target.clone(),
target,
};
assert!(handler.is_version_not_found_definitive());
assert!(!handler.propagate_commit_error_after_success());
}
async fn setup_database() -> (tempfile::TempDir, ListingDatabase) {
let tempdir = tempdir().unwrap();
let uri = tempdir.path().to_str().unwrap();
+16
View File
@@ -54,6 +54,14 @@ struct RootedFileCommitHandler;
#[cfg(any(windows, test))]
#[async_trait]
impl CommitHandler for RootedFileCommitHandler {
fn is_version_not_found_definitive(&self) -> bool {
RenameCommitHandler.is_version_not_found_definitive()
}
fn propagate_commit_error_after_success(&self) -> bool {
RenameCommitHandler.propagate_commit_error_after_success()
}
async fn resolve_latest_location(
&self,
base_path: &Path,
@@ -443,6 +451,14 @@ mod prefixed_file_store_test {
}
}
#[test]
fn commit_handler_forwards_commit_outcome_capabilities() {
let handler = RootedFileCommitHandler;
assert!(handler.is_version_not_found_definitive());
assert!(!handler.propagate_commit_error_after_success());
}
#[tokio::test]
async fn anchors_new_and_existing_directories_at_a_filesystem_prefix() {
let tempdir = tempfile::tempdir().unwrap();