@@ -19,10 +19,7 @@ use crate::dataframe::PyDataFrame;
1919use crate :: dataset:: Dataset ;
2020use crate :: errors:: { py_datafusion_err, to_datafusion_err, PyDataFusionError , PyDataFusionResult } ;
2121use crate :: table:: PyTableProvider ;
22- use crate :: utils:: {
23- table_provider_from_pycapsule, table_provider_send_to_table_provider, table_provider_to_send,
24- validate_pycapsule, wait_for_future,
25- } ;
22+ use crate :: utils:: { table_provider_from_pycapsule, validate_pycapsule, wait_for_future} ;
2623use async_trait:: async_trait;
2724use datafusion:: catalog:: { MemoryCatalogProvider , MemorySchemaProvider } ;
2825use datafusion:: common:: DataFusionError ;
@@ -55,7 +52,7 @@ pub struct PySchema {
5552#[ pyclass( name = "RawTable" , module = "datafusion.catalog" , subclass) ]
5653#[ derive( Clone ) ]
5754pub struct PyTable {
58- pub table : Arc < dyn TableProvider + Send > ,
55+ pub table : Arc < dyn TableProvider > ,
5956}
6057
6158impl From < Arc < dyn CatalogProvider > > for PyCatalog {
@@ -71,11 +68,11 @@ impl From<Arc<dyn SchemaProvider>> for PySchema {
7168}
7269
7370impl PyTable {
74- pub fn new ( table : Arc < dyn TableProvider + Send > ) -> Self {
71+ pub fn new ( table : Arc < dyn TableProvider > ) -> Self {
7572 Self { table }
7673 }
7774
78- pub fn table ( & self ) -> Arc < dyn TableProvider + Send > {
75+ pub fn table ( & self ) -> Arc < dyn TableProvider > {
7976 self . table . clone ( )
8077 }
8178}
@@ -215,7 +212,7 @@ impl PySchema {
215212 } else {
216213 let py = table_provider. py ( ) ;
217214 let provider = Dataset :: new ( & table_provider, py) ?;
218- Arc :: new ( provider) as Arc < dyn TableProvider + Send >
215+ Arc :: new ( provider) as Arc < dyn TableProvider >
219216 } ;
220217
221218 let _ = self
@@ -295,7 +292,7 @@ impl RustWrappedPySchemaProvider {
295292 }
296293 }
297294
298- fn table_inner ( & self , name : & str ) -> PyResult < Option < Arc < dyn TableProvider + Send > > > {
295+ fn table_inner ( & self , name : & str ) -> PyResult < Option < Arc < dyn TableProvider > > > {
299296 Python :: with_gil ( |py| {
300297 let provider = self . schema_provider . bind ( py) ;
301298 let py_table_method = provider. getattr ( "table" ) ?;
@@ -322,7 +319,7 @@ impl RustWrappedPySchemaProvider {
322319 Ok ( py_table) => Ok ( Some ( py_table. table ) ) ,
323320 Err ( _) => {
324321 let ds = Dataset :: new ( & py_table, py) . map_err ( py_datafusion_err) ?;
325- Ok ( Some ( Arc :: new ( ds) as Arc < dyn TableProvider + Send > ) )
322+ Ok ( Some ( Arc :: new ( ds) as Arc < dyn TableProvider > ) )
326323 }
327324 }
328325 }
@@ -358,22 +355,15 @@ impl SchemaProvider for RustWrappedPySchemaProvider {
358355 & self ,
359356 name : & str ,
360357 ) -> datafusion:: common:: Result < Option < Arc < dyn TableProvider > > , DataFusionError > {
361- // Convert from our internal Send type to the trait expected type
362- match self . table_inner ( name) . map_err ( to_datafusion_err) ? {
363- Some ( table) => Ok ( Some ( table_provider_send_to_table_provider ( table) ) ) ,
364- None => Ok ( None ) ,
365- }
358+ self . table_inner ( name) . map_err ( to_datafusion_err)
366359 }
367360
368361 fn register_table (
369362 & self ,
370363 name : String ,
371364 table : Arc < dyn TableProvider > ,
372365 ) -> datafusion:: common:: Result < Option < Arc < dyn TableProvider > > > {
373- // Convert from trait type to our internal Send type
374- let send_table = table_provider_to_send ( table) ;
375-
376- let py_table = PyTable :: new ( send_table) ;
366+ let py_table = PyTable :: new ( table) ;
377367 Python :: with_gil ( |py| {
378368 let provider = self . schema_provider . bind ( py) ;
379369 let _ = provider
@@ -402,10 +392,7 @@ impl SchemaProvider for RustWrappedPySchemaProvider {
402392 // If we can turn this table provider into a `Dataset`, return it.
403393 // Otherwise, return None.
404394 let dataset = match Dataset :: new ( & table, py) {
405- Ok ( dataset) => {
406- let send_table = Arc :: new ( dataset) as Arc < dyn TableProvider + Send > ;
407- Some ( table_provider_send_to_table_provider ( send_table) )
408- }
395+ Ok ( dataset) => Some ( Arc :: new ( dataset) as Arc < dyn TableProvider > ) ,
409396 Err ( _) => None ,
410397 } ;
411398
0 commit comments