diff --git a/ffi/examples/read-table/arrow.c b/ffi/examples/read-table/arrow.c index 37e47fd5f..8e58b3f9e 100644 --- a/ffi/examples/read-table/arrow.c +++ b/ffi/examples/read-table/arrow.c @@ -113,26 +113,25 @@ static ExclusiveEngineData* apply_transform( if (!context->arrow_context->cur_transform) { print_diag(" No transform needed"); return data; - } else { - print_diag(" Applying transform\n"); - SharedExpressionEvaluator* evaluator = get_evaluator( - context->engine, - context->read_schema, // input schema - context->arrow_context->cur_transform, - context->logical_schema); // output schema - ExternResultHandleExclusiveEngineData transformed_res = evaluate( - context->engine, - &data, - evaluator); - free_engine_data(data); - free_evaluator(evaluator); - if (transformed_res.tag != OkHandleExclusiveEngineData) { - print_error("Failed to transform read data.", (Error*)transformed_res.err); - free_error((Error*)transformed_res.err); - return NULL; - } - return transformed_res.ok; } + print_diag(" Applying transform\n"); + SharedExpressionEvaluator* evaluator = get_evaluator( + context->engine, + context->read_schema, // input schema + context->arrow_context->cur_transform, + context->logical_schema); // output schema + ExternResultHandleExclusiveEngineData transformed_res = evaluate( + context->engine, + &data, + evaluator); + free_engine_data(data); + free_evaluator(evaluator); + if (transformed_res.tag != OkHandleExclusiveEngineData) { + print_error("Failed to transform read data.", (Error*)transformed_res.err); + free_error((Error*)transformed_res.err); + return NULL; + } + return transformed_res.ok; } // This is the callback that will be called for each chunk of data read from the parquet file @@ -142,7 +141,6 @@ static void visit_read_data(void* vcontext, ExclusiveEngineData* data) struct EngineContext* context = vcontext; ExclusiveEngineData* transformed = apply_transform(context, data); if (!transformed) { - // TODO: What? exit(-1); } ExternResultArrowFFIData arrow_res = get_raw_arrow_data(transformed, context->engine); diff --git a/ffi/src/engine_funcs.rs b/ffi/src/engine_funcs.rs index 47e1f1a15..7c12bcf51 100644 --- a/ffi/src/engine_funcs.rs +++ b/ffi/src/engine_funcs.rs @@ -203,8 +203,7 @@ fn evaluate_impl( batch: &dyn EngineData, evaluator: &dyn ExpressionEvaluator, ) -> DeltaResult> { - let res = evaluator.evaluate(batch); - res.map(|d| d.into()) + evaluator.evaluate(batch).map(Into::into) } #[cfg(test)] diff --git a/ffi/src/scan.rs b/ffi/src/scan.rs index adf34a7f0..a457b7b9d 100644 --- a/ffi/src/scan.rs +++ b/ffi/src/scan.rs @@ -359,7 +359,7 @@ pub unsafe extern "C" fn get_transform_for_row( .get(row) .cloned() .flatten() - .map(|transform| transform.into()) + .map(Into::into) } /// Get a selection vector out of a [`DvInfo`] struct