From 57f3c96ba53b2f964dc571410a353c004caa3aaf Mon Sep 17 00:00:00 2001 From: Nick Lanham Date: Thu, 12 Sep 2024 16:14:54 -0700 Subject: [PATCH] only apply if needed --- kernel/src/engine/arrow_expression.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kernel/src/engine/arrow_expression.rs b/kernel/src/engine/arrow_expression.rs index b42c2081..5995eb72 100644 --- a/kernel/src/engine/arrow_expression.rs +++ b/kernel/src/engine/arrow_expression.rs @@ -560,7 +560,10 @@ impl ExpressionEvaluator for DefaultExpressionEvaluator { let sa: &StructArray = array_ref .as_struct_opt() .ok_or(Error::unexpected_column_type("Expected a struct array"))?; - apply_schema(sa, &self.output_type)? + match ensure_data_types(&self.output_type, sa.data_type()) { + Ok(_) => sa.into(), + Err(_) => apply_schema(sa, &self.output_type)? + } } else { let schema = ArrowSchema::new(vec![ArrowField::new("output", arrow_type, true)]); RecordBatch::try_new(Arc::new(schema), vec![array_ref])?