From b28040e8e8b4de584b94b04754e447c8c38b5761 Mon Sep 17 00:00:00 2001 From: Nick Lanham Date: Thu, 18 Sep 2025 15:20:31 -0700 Subject: [PATCH 1/2] don't need a whole engine --- ffi/src/engine_data.rs | 5 +++-- ffi/src/transaction/mod.rs | 6 +++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/ffi/src/engine_data.rs b/ffi/src/engine_data.rs index dc616d310..184729b40 100644 --- a/ffi/src/engine_data.rs +++ b/ffi/src/engine_data.rs @@ -14,6 +14,7 @@ use delta_kernel::DeltaResult; use delta_kernel::EngineData; use std::ffi::c_void; +use crate::error::AllocateErrorFn; use crate::ExclusiveEngineData; #[cfg(feature = "default-engine-base")] use crate::{ExternResult, IntoExternResult, SharedExternEngine}; @@ -113,9 +114,9 @@ fn get_raw_arrow_data_impl(data: Box) -> DeltaResult<*mut ArrowF pub unsafe extern "C" fn get_engine_data( array: FFI_ArrowArray, schema: &FFI_ArrowSchema, - engine: Handle, + allocate_error: AllocateErrorFn, ) -> ExternResult> { - get_engine_data_impl(array, schema).into_extern_result(&engine.as_ref()) + get_engine_data_impl(array, schema).into_extern_result(&allocate_error) } #[cfg(feature = "default-engine-base")] diff --git a/ffi/src/transaction/mod.rs b/ffi/src/transaction/mod.rs index bb6b2e17b..8bb3681b0 100644 --- a/ffi/src/transaction/mod.rs +++ b/ffi/src/transaction/mod.rs @@ -314,7 +314,11 @@ mod tests { let file_info = write_parquet_file(table_path_str, "my_file.parquet", &batch)?; let file_info_engine_data = ok_or_panic(unsafe { - get_engine_data(file_info.array, &file_info.schema, engine.shallow_copy()) + get_engine_data( + file_info.array, + &file_info.schema, + crate::ffi_test_utils::allocate_err, + ) }); unsafe { add_files(txn_with_engine_info.shallow_copy(), file_info_engine_data) }; From 7767ef3544950171ab7b7b859e0836bcc9fc906f Mon Sep 17 00:00:00 2001 From: Nick Lanham Date: Thu, 18 Sep 2025 15:25:58 -0700 Subject: [PATCH 2/2] feature flag import --- ffi/src/engine_data.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/ffi/src/engine_data.rs b/ffi/src/engine_data.rs index 184729b40..0010bf7de 100644 --- a/ffi/src/engine_data.rs +++ b/ffi/src/engine_data.rs @@ -14,6 +14,7 @@ use delta_kernel::DeltaResult; use delta_kernel::EngineData; use std::ffi::c_void; +#[cfg(feature = "default-engine-base")] use crate::error::AllocateErrorFn; use crate::ExclusiveEngineData; #[cfg(feature = "default-engine-base")]