From 2d6b467c15cae85525abd2374fe42baec478b2f0 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Fri, 28 Oct 2022 10:01:46 -0400 Subject: [PATCH] Minor: use DataType::is_nested --- .../physical_plan/file_format/row_filter.rs | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/datafusion/core/src/physical_plan/file_format/row_filter.rs b/datafusion/core/src/physical_plan/file_format/row_filter.rs index dd9c8fb650fd..8dbfbd2ce9fe 100644 --- a/datafusion/core/src/physical_plan/file_format/row_filter.rs +++ b/datafusion/core/src/physical_plan/file_format/row_filter.rs @@ -16,7 +16,7 @@ // under the License. use arrow::array::{Array, BooleanArray}; -use arrow::datatypes::{DataType, Field, Schema}; +use arrow::datatypes::{DataType, Schema}; use arrow::error::{ArrowError, Result as ArrowResult}; use arrow::record_batch::RecordBatch; use datafusion_common::{Column, DataFusionError, Result, ScalarValue, ToDFSchema}; @@ -188,7 +188,7 @@ impl<'a> ExprRewriter for FilterCandidateBuilder<'a> { if let Ok(idx) = self.file_schema.index_of(&column.name) { self.required_column_indices.push(idx); - if !is_primitive_field(self.file_schema.field(idx)) { + if DataType::is_nested(self.file_schema.field(idx).data_type()) { self.non_primitive_columns = true; } } else if self.table_schema.index_of(&column.name).is_err() { @@ -307,20 +307,6 @@ pub fn build_row_filter( } } -/// return true if this is a non nested type. -// TODO remove after https://github.com/apache/arrow-rs/issues/2704 is done -fn is_primitive_field(field: &Field) -> bool { - !matches!( - field.data_type(), - DataType::List(_) - | DataType::FixedSizeList(_, _) - | DataType::LargeList(_) - | DataType::Struct(_) - | DataType::Union(_, _, _) - | DataType::Map(_, _) - ) -} - #[cfg(test)] mod test { use crate::physical_plan::file_format::row_filter::FilterCandidateBuilder;