mirror of
https://github.com/lancedb/lancedb.git
synced 2026-08-18 03:58:26 +00:00
fix: forward commit outcome capabilities
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user