Skip to content

Commit 224f031

Browse files
committed
Refactor schema adapter tests to remove unused as_any method and improve type checking
1 parent 494de16 commit 224f031

File tree

1 file changed

+12
-27
lines changed

1 file changed

+12
-27
lines changed

datafusion/core/tests/parquet/schema_adapter.rs

Lines changed: 12 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
// specific language governing permissions and limitations
1616
// under the License.
1717

18+
use std::any::Any;
1819
use std::sync::Arc;
1920

2021
use arrow::array::{record_batch, RecordBatch, RecordBatchOptions};
@@ -24,13 +25,18 @@ use bytes::{BufMut, BytesMut};
2425
use datafusion::assert_batches_eq;
2526
use datafusion::common::Result;
2627
use datafusion::datasource::listing::{ListingTable, ListingTableConfig};
28+
use datafusion::datasource::physical_plan::{ArrowSource, CsvSource, FileSource, JsonSource, ParquetSource};
29+
use datafusion_physical_plan::ExecutionPlan;
2730
use datafusion::prelude::{SessionConfig, SessionContext};
2831
use datafusion_common::tree_node::{Transformed, TransformedResult, TreeNode};
2932
use datafusion_common::DataFusionError;
3033
use datafusion_common::{ColumnStatistics, ScalarValue};
34+
use datafusion_datasource::file_scan_config::FileScanConfigBuilder;
35+
use datafusion::datasource::listing::PartitionedFile;
3136
use datafusion_datasource::schema_adapter::{
3237
DefaultSchemaAdapterFactory, SchemaAdapter, SchemaAdapterFactory, SchemaMapper,
3338
};
39+
use datafusion_datasource::source::DataSourceExec;
3440
use datafusion_datasource::ListingTableUrl;
3541
use datafusion_execution::object_store::ObjectStoreUrl;
3642
use datafusion_physical_expr::expressions::{self, Column};
@@ -380,6 +386,7 @@ async fn test_custom_schema_adapter_and_custom_expression_adapter() {
380386
#[derive(Debug, PartialEq)]
381387
struct UppercaseAdapterFactory {}
382388

389+
383390
impl SchemaAdapterFactory for UppercaseAdapterFactory {
384391
fn create(
385392
&self,
@@ -391,11 +398,9 @@ impl SchemaAdapterFactory for UppercaseAdapterFactory {
391398
})
392399
}
393400

394-
fn as_any(&self) -> &dyn Any {
395-
self
396-
}
397401
}
398402

403+
399404
/// Schema adapter that transforms column names to uppercase
400405
#[derive(Debug)]
401406
struct UppercaseAdapter {
@@ -627,12 +632,7 @@ async fn test_multi_source_schema_adapter_reuse() -> Result<()> {
627632
assert!(source_with_adapter.schema_adapter_factory().is_some());
628633

629634
let retrieved_factory = source_with_adapter.schema_adapter_factory().unwrap();
630-
assert_eq!(
631-
retrieved_factory
632-
.as_any()
633-
.downcast_ref::<UppercaseAdapterFactory>(),
634-
Some(factory.as_ref())
635-
);
635+
assert!(retrieved_factory.as_ref().type_id() == factory.as_ref().type_id());
636636
}
637637

638638
// Test ParquetSource
@@ -649,12 +649,7 @@ async fn test_multi_source_schema_adapter_reuse() -> Result<()> {
649649
assert!(source_with_adapter.schema_adapter_factory().is_some());
650650

651651
let retrieved_factory = source_with_adapter.schema_adapter_factory().unwrap();
652-
assert_eq!(
653-
retrieved_factory
654-
.as_any()
655-
.downcast_ref::<UppercaseAdapterFactory>(),
656-
Some(factory.as_ref())
657-
);
652+
assert!(retrieved_factory.as_ref().type_id() == factory.as_ref().type_id());
658653
}
659654

660655
// Test CsvSource
@@ -670,12 +665,7 @@ async fn test_multi_source_schema_adapter_reuse() -> Result<()> {
670665
assert!(source_with_adapter.schema_adapter_factory().is_some());
671666

672667
let retrieved_factory = source_with_adapter.schema_adapter_factory().unwrap();
673-
assert_eq!(
674-
retrieved_factory
675-
.as_any()
676-
.downcast_ref::<UppercaseAdapterFactory>(),
677-
Some(factory.as_ref())
678-
);
668+
assert!(retrieved_factory.as_ref().type_id() == factory.as_ref().type_id());
679669
}
680670

681671
// Test JsonSource
@@ -691,12 +681,7 @@ async fn test_multi_source_schema_adapter_reuse() -> Result<()> {
691681
assert!(source_with_adapter.schema_adapter_factory().is_some());
692682

693683
let retrieved_factory = source_with_adapter.schema_adapter_factory().unwrap();
694-
assert_eq!(
695-
retrieved_factory
696-
.as_any()
697-
.downcast_ref::<UppercaseAdapterFactory>(),
698-
Some(factory.as_ref())
699-
);
684+
assert!(retrieved_factory.as_ref().type_id() == factory.as_ref().type_id());
700685
}
701686

702687
Ok(())

0 commit comments

Comments
 (0)