@@ -21,12 +21,11 @@ use std::sync::Arc;
2121use crate :: errors:: { py_datafusion_err, to_datafusion_err} ;
2222use crate :: expr:: PyExpr ;
2323use crate :: table:: PyTable ;
24- use crate :: utils:: { table_provider_from_pycapsule , validate_pycapsule} ;
24+ use crate :: utils:: validate_pycapsule;
2525use datafusion:: catalog:: { TableFunctionImpl , TableProvider } ;
2626use datafusion:: error:: Result as DataFusionResult ;
2727use datafusion:: logical_expr:: Expr ;
2828use datafusion_ffi:: udtf:: { FFI_TableFunction , ForeignTableFunction } ;
29- use pyo3:: exceptions:: PyNotImplementedError ;
3029use pyo3:: types:: { PyCapsule , PyTuple } ;
3130
3231/// Represents a user defined table function
@@ -98,11 +97,7 @@ fn call_python_table_function(
9897 let provider_obj = func. call1 ( py, py_args) ?;
9998 let provider = provider_obj. bind ( py) ;
10099
101- table_provider_from_pycapsule ( provider) ?. ok_or_else ( || {
102- PyNotImplementedError :: new_err (
103- "__datafusion_table_provider__ does not exist on Table Provider object." ,
104- )
105- } )
100+ Ok :: < Arc < dyn TableProvider > , PyErr > ( PyTable :: new ( provider) ?. table )
106101 } )
107102 . map_err ( to_datafusion_err)
108103}
0 commit comments