15
15
// specific language governing permissions and limitations
16
16
// under the License.
17
17
18
+ use std:: any:: Any ;
18
19
use std:: sync:: Arc ;
19
20
20
21
use arrow:: array:: { record_batch, RecordBatch , RecordBatchOptions } ;
@@ -24,13 +25,18 @@ use bytes::{BufMut, BytesMut};
24
25
use datafusion:: assert_batches_eq;
25
26
use datafusion:: common:: Result ;
26
27
use datafusion:: datasource:: listing:: { ListingTable , ListingTableConfig } ;
28
+ use datafusion:: datasource:: physical_plan:: { ArrowSource , CsvSource , FileSource , JsonSource , ParquetSource } ;
29
+ use datafusion_physical_plan:: ExecutionPlan ;
27
30
use datafusion:: prelude:: { SessionConfig , SessionContext } ;
28
31
use datafusion_common:: tree_node:: { Transformed , TransformedResult , TreeNode } ;
29
32
use datafusion_common:: DataFusionError ;
30
33
use datafusion_common:: { ColumnStatistics , ScalarValue } ;
34
+ use datafusion_datasource:: file_scan_config:: FileScanConfigBuilder ;
35
+ use datafusion:: datasource:: listing:: PartitionedFile ;
31
36
use datafusion_datasource:: schema_adapter:: {
32
37
DefaultSchemaAdapterFactory , SchemaAdapter , SchemaAdapterFactory , SchemaMapper ,
33
38
} ;
39
+ use datafusion_datasource:: source:: DataSourceExec ;
34
40
use datafusion_datasource:: ListingTableUrl ;
35
41
use datafusion_execution:: object_store:: ObjectStoreUrl ;
36
42
use datafusion_physical_expr:: expressions:: { self , Column } ;
@@ -380,6 +386,7 @@ async fn test_custom_schema_adapter_and_custom_expression_adapter() {
380
386
#[ derive( Debug , PartialEq ) ]
381
387
struct UppercaseAdapterFactory { }
382
388
389
+
383
390
impl SchemaAdapterFactory for UppercaseAdapterFactory {
384
391
fn create (
385
392
& self ,
@@ -391,11 +398,9 @@ impl SchemaAdapterFactory for UppercaseAdapterFactory {
391
398
} )
392
399
}
393
400
394
- fn as_any ( & self ) -> & dyn Any {
395
- self
396
- }
397
401
}
398
402
403
+
399
404
/// Schema adapter that transforms column names to uppercase
400
405
#[ derive( Debug ) ]
401
406
struct UppercaseAdapter {
@@ -627,12 +632,7 @@ async fn test_multi_source_schema_adapter_reuse() -> Result<()> {
627
632
assert ! ( source_with_adapter. schema_adapter_factory( ) . is_some( ) ) ;
628
633
629
634
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( ) ) ;
636
636
}
637
637
638
638
// Test ParquetSource
@@ -649,12 +649,7 @@ async fn test_multi_source_schema_adapter_reuse() -> Result<()> {
649
649
assert ! ( source_with_adapter. schema_adapter_factory( ) . is_some( ) ) ;
650
650
651
651
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( ) ) ;
658
653
}
659
654
660
655
// Test CsvSource
@@ -670,12 +665,7 @@ async fn test_multi_source_schema_adapter_reuse() -> Result<()> {
670
665
assert ! ( source_with_adapter. schema_adapter_factory( ) . is_some( ) ) ;
671
666
672
667
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( ) ) ;
679
669
}
680
670
681
671
// Test JsonSource
@@ -691,12 +681,7 @@ async fn test_multi_source_schema_adapter_reuse() -> Result<()> {
691
681
assert ! ( source_with_adapter. schema_adapter_factory( ) . is_some( ) ) ;
692
682
693
683
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( ) ) ;
700
685
}
701
686
702
687
Ok ( ( ) )
0 commit comments