Skip to content

Commit 287ef29

Browse files
committed
rebase_main
1 parent 494dc35 commit 287ef29

10 files changed

Lines changed: 26 additions & 121 deletions

File tree

datafusion/ffi/src/udtf.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ unsafe extern "C" fn call_fn_wrapper(
107107
codec.as_ref()
108108
));
109109

110+
#[expect(deprecated)]
110111
let table_provider = sresult_return!(udtf_inner.call(&args));
111112
FFIResult::Ok(FFI_TableProvider::new_with_ffi_codec(
112113
table_provider,

datafusion/ffi/tests/ffi_catalog.rs

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,7 @@ mod tests {
3232
let module = get_module()?;
3333
let (ctx, codec) = super::utils::ctx_and_codec();
3434

35-
let ffi_catalog =
36-
module
37-
.create_catalog()
38-
.ok_or(DataFusionError::NotImplemented(
39-
"External catalog provider failed to implement create_catalog"
40-
.to_string(),
41-
))?(codec);
35+
let ffi_catalog = (module.create_catalog)(codec);
4236
let foreign_catalog: Arc<dyn CatalogProvider> = (&ffi_catalog).into();
4337

4438
let _ = ctx.register_catalog("fruit", foreign_catalog);
@@ -59,13 +53,7 @@ mod tests {
5953
let module = get_module()?;
6054
let (ctx, codec) = super::utils::ctx_and_codec();
6155

62-
let ffi_catalog_list =
63-
module
64-
.create_catalog_list()
65-
.ok_or(DataFusionError::NotImplemented(
66-
"External catalog provider failed to implement create_catalog_list"
67-
.to_string(),
68-
))?(codec);
56+
let ffi_catalog_list = (module.create_catalog_list)(codec);
6957
let foreign_catalog_list: Arc<dyn CatalogProviderList> =
7058
(&ffi_catalog_list).into();
7159

datafusion/ffi/tests/ffi_config.rs

Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
/// when the feature integration-tests is built
2020
#[cfg(feature = "integration-tests")]
2121
mod tests {
22-
use datafusion::error::{DataFusionError, Result};
22+
use datafusion::error::Result;
2323
use datafusion_common::ScalarValue;
2424
use datafusion_common::config::{ConfigOptions, TableOptions};
2525
use datafusion_execution::config::SessionConfig;
@@ -31,13 +31,7 @@ mod tests {
3131
fn test_ffi_config_options_extension() -> Result<()> {
3232
let module = get_module()?;
3333

34-
let extension_options =
35-
module
36-
.create_extension_options()
37-
.ok_or(DataFusionError::NotImplemented(
38-
"External test library failed to implement create_extension_options"
39-
.to_string(),
40-
))?();
34+
let extension_options = (module.create_extension_options)();
4135

4236
let mut config = ConfigOptions::new();
4337
config.extensions.insert(extension_options);
@@ -61,13 +55,7 @@ mod tests {
6155
fn test_ffi_table_options_extension() -> Result<()> {
6256
let module = get_module()?;
6357

64-
let extension_options =
65-
module
66-
.create_extension_options()
67-
.ok_or(DataFusionError::NotImplemented(
68-
"External test library failed to implement create_extension_options"
69-
.to_string(),
70-
))?();
58+
let extension_options = (module.create_extension_options)();
7159

7260
let mut table_options = TableOptions::new();
7361
table_options.extensions.insert(extension_options);
@@ -92,13 +80,7 @@ mod tests {
9280
fn test_ffi_session_config_options_extension() -> Result<()> {
9381
let module = get_module()?;
9482

95-
let extension_options =
96-
module
97-
.create_extension_options()
98-
.ok_or(DataFusionError::NotImplemented(
99-
"External test library failed to implement create_extension_options"
100-
.to_string(),
101-
))?();
83+
let extension_options = (module.create_extension_options)();
10284

10385
let mut config = SessionConfig::new().with_option_extension(extension_options);
10486

datafusion/ffi/tests/ffi_execution_plan.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,7 @@ mod tests {
4949
Arc::new(EmptyExec::new(schema))
5050
}
5151

52-
let child_plan =
53-
module
54-
.create_empty_exec()
55-
.ok_or(DataFusionError::NotImplemented(
56-
"External module failed to implement create_empty_exec".to_string(),
57-
))?();
52+
let child_plan = (module.create_empty_exec)();
5853
let child_plan: Arc<dyn ExecutionPlan> = (&child_plan)
5954
.try_into()
6055
.expect("should be able create plan");

datafusion/ffi/tests/ffi_integration.rs

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ mod tests {
2626

2727
use arrow::datatypes::Schema;
2828
use datafusion::catalog::{TableProvider, TableProviderFactory};
29-
use datafusion::error::{DataFusionError, Result};
29+
use datafusion::error::Result;
3030
use datafusion_common::TableReference;
3131
use datafusion_common::ToDFSchema;
3232
use datafusion_expr::CreateExternalTable;
@@ -42,11 +42,7 @@ mod tests {
4242

4343
// By calling the code below, the table provided will be created within
4444
// the module's code.
45-
let ffi_table_provider = table_provider_module.create_table().ok_or(
46-
DataFusionError::NotImplemented(
47-
"External table provider failed to implement create_table".to_string(),
48-
),
49-
)?(synchronous, codec);
45+
let ffi_table_provider = (table_provider_module.create_table)(synchronous, codec);
5046

5147
// In order to access the table provider within this executable, we need to
5248
// turn it into a `TableProvider`.
@@ -80,11 +76,8 @@ mod tests {
8076
let table_provider_module = get_module()?;
8177
let (ctx, codec) = super::utils::ctx_and_codec();
8278

83-
let ffi_table_provider_factory = table_provider_module
84-
.create_table_factory()
85-
.ok_or(DataFusionError::NotImplemented(
86-
"External table provider factory failed to implement create".to_string(),
87-
))?(codec);
79+
let ffi_table_provider_factory =
80+
(table_provider_module.create_table_factory)(codec);
8881

8982
let foreign_table_provider_factory: Arc<dyn TableProviderFactory> =
9083
(&ffi_table_provider_factory).into();

datafusion/ffi/tests/ffi_physical_optimizer.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,7 @@ mod tests {
3838
fn test_ffi_physical_optimizer_rule() -> Result<(), DataFusionError> {
3939
let module = get_module()?;
4040

41-
let ffi_rule = module.create_physical_optimizer_rule().ok_or(
42-
DataFusionError::NotImplemented(
43-
"External module failed to implement create_physical_optimizer_rule"
44-
.to_string(),
45-
),
46-
)?();
41+
let ffi_rule = (module.create_physical_optimizer_rule)();
4742

4843
let foreign_rule: Arc<dyn PhysicalOptimizerRule + Send + Sync> =
4944
(&ffi_rule).into();

datafusion/ffi/tests/ffi_udaf.rs

Lines changed: 5 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ mod tests {
2323

2424
use arrow::array::Float64Array;
2525
use datafusion::common::record_batch;
26-
use datafusion::error::{DataFusionError, Result};
26+
use datafusion::error::Result;
2727
use datafusion::logical_expr::{AggregateUDF, AggregateUDFImpl};
2828
use datafusion::prelude::{SessionContext, col};
2929
use datafusion_catalog::MemTable;
@@ -34,12 +34,7 @@ mod tests {
3434
async fn test_ffi_udaf() -> Result<()> {
3535
let module = get_module()?;
3636

37-
let ffi_sum_func =
38-
module
39-
.create_sum_udaf()
40-
.ok_or(DataFusionError::NotImplemented(
41-
"External table provider failed to implement create_udaf".to_string(),
42-
))?();
37+
let ffi_sum_func = (module.create_sum_udaf)();
4338
let foreign_sum_func: Arc<dyn AggregateUDFImpl> = (&ffi_sum_func).into();
4439

4540
let udaf = AggregateUDF::new_from_shared_impl(foreign_sum_func);
@@ -76,12 +71,7 @@ mod tests {
7671
async fn test_ffi_grouping_udaf() -> Result<()> {
7772
let module = get_module()?;
7873

79-
let ffi_stddev_func =
80-
module
81-
.create_stddev_udaf()
82-
.ok_or(DataFusionError::NotImplemented(
83-
"External table provider failed to implement create_udaf".to_string(),
84-
))?();
74+
let ffi_stddev_func = (module.create_stddev_udaf)();
8575
let foreign_stddev_func: Arc<dyn AggregateUDFImpl> = (&ffi_stddev_func).into();
8676

8777
let udaf = AggregateUDF::new_from_shared_impl(foreign_stddev_func);
@@ -137,25 +127,14 @@ mod tests {
137127
async fn udf_as_input_to_udf() -> Result<()> {
138128
let module = get_module()?;
139129

140-
let ffi_abs_func =
141-
module
142-
.create_scalar_udf()
143-
.ok_or(DataFusionError::NotImplemented(
144-
"External table provider failed to implement create_scalar_udf"
145-
.to_string(),
146-
))?();
130+
let ffi_abs_func = (module.create_scalar_udf)();
147131
let foreign_abs_func: Arc<dyn ScalarUDFImpl> = (&ffi_abs_func).into();
148132
let abs_udf = ScalarUDF::new_from_shared_impl(foreign_abs_func);
149133

150134
let ctx = SessionContext::new();
151135
ctx.deregister_udf("abs");
152136

153-
let ffi_sum_func =
154-
module
155-
.create_sum_udaf()
156-
.ok_or(DataFusionError::NotImplemented(
157-
"External table provider failed to implement create_udaf".to_string(),
158-
))?();
137+
let ffi_sum_func = (module.create_sum_udaf)();
159138
let foreign_sum_func: Arc<dyn AggregateUDFImpl> = (&ffi_sum_func).into();
160139

161140
let udaf = AggregateUDF::new_from_shared_impl(foreign_sum_func);

datafusion/ffi/tests/ffi_udf.rs

Lines changed: 4 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ mod tests {
2222
use arrow::array::{Array, AsArray};
2323
use arrow::datatypes::DataType;
2424
use datafusion::common::record_batch;
25-
use datafusion::error::{DataFusionError, Result};
25+
use datafusion::error::Result;
2626
use datafusion::logical_expr::{ScalarUDF, ScalarUDFImpl};
2727
use datafusion::prelude::{SessionContext, col};
2828
use datafusion_execution::config::SessionConfig;
@@ -38,13 +38,7 @@ mod tests {
3838
async fn test_scalar_udf() -> Result<()> {
3939
let module = get_module()?;
4040

41-
let ffi_abs_func =
42-
module
43-
.create_scalar_udf()
44-
.ok_or(DataFusionError::NotImplemented(
45-
"External table provider failed to implement create_scalar_udf"
46-
.to_string(),
47-
))?();
41+
let ffi_abs_func = (module.create_scalar_udf)();
4842
let foreign_abs_func: Arc<dyn ScalarUDFImpl> = (&ffi_abs_func).into();
4943

5044
let udf = ScalarUDF::new_from_shared_impl(foreign_abs_func);
@@ -76,13 +70,7 @@ mod tests {
7670
async fn test_nullary_scalar_udf() -> Result<()> {
7771
let module = get_module()?;
7872

79-
let ffi_abs_func =
80-
module
81-
.create_nullary_udf()
82-
.ok_or(DataFusionError::NotImplemented(
83-
"External table provider failed to implement create_scalar_udf"
84-
.to_string(),
85-
))?();
73+
let ffi_abs_func = (module.create_nullary_udf)();
8674
let foreign_abs_func: Arc<dyn ScalarUDFImpl> = (&ffi_abs_func).into();
8775

8876
let udf = ScalarUDF::new_from_shared_impl(foreign_abs_func);
@@ -107,12 +95,7 @@ mod tests {
10795
async fn test_config_on_scalar_udf() -> Result<()> {
10896
let module = get_module()?;
10997

110-
let ffi_udf =
111-
module
112-
.create_timezone_udf()
113-
.ok_or(DataFusionError::NotImplemented(
114-
"External module failed to implement create_timezone_udf".to_string(),
115-
))?();
98+
let ffi_udf = (module.create_timezone_udf)();
11699
let foreign_udf: Arc<dyn ScalarUDFImpl> = (&ffi_udf).into();
117100

118101
let udf = ScalarUDF::new_from_shared_impl(foreign_udf);

datafusion/ffi/tests/ffi_udtf.rs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ mod tests {
2626

2727
use arrow::array::{ArrayRef, create_array};
2828
use datafusion::catalog::TableFunctionImpl;
29-
use datafusion::error::{DataFusionError, Result};
29+
use datafusion::error::Result;
3030
use datafusion_ffi::tests::utils::get_module;
3131

3232
/// This test validates that we can load an external module and use a scalar
@@ -37,12 +37,7 @@ mod tests {
3737
let module = get_module()?;
3838
let (ctx, codec) = super::utils::ctx_and_codec();
3939

40-
let ffi_table_func = module
41-
.create_table_function()
42-
.ok_or(DataFusionError::NotImplemented(
43-
"External table function provider failed to implement create_table_function"
44-
.to_string(),
45-
))?(codec);
40+
let ffi_table_func = (module.create_table_function)(codec);
4641
let foreign_table_func: Arc<dyn TableFunctionImpl> = ffi_table_func.into();
4742

4843
ctx.register_udtf("my_range", foreign_table_func);

datafusion/ffi/tests/ffi_udwf.rs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ mod tests {
2222
use std::sync::Arc;
2323

2424
use arrow::array::{ArrayRef, create_array};
25-
use datafusion::error::{DataFusionError, Result};
25+
use datafusion::error::Result;
2626
use datafusion::logical_expr::expr::Sort;
2727
use datafusion::logical_expr::{ExprFunctionExt, WindowUDF, WindowUDFImpl, col};
2828
use datafusion::prelude::SessionContext;
@@ -33,13 +33,7 @@ mod tests {
3333
async fn test_rank_udwf() -> Result<()> {
3434
let module = get_module()?;
3535

36-
let ffi_rank_func =
37-
module
38-
.create_rank_udwf()
39-
.ok_or(DataFusionError::NotImplemented(
40-
"External table provider failed to implement create_scalar_udf"
41-
.to_string(),
42-
))?();
36+
let ffi_rank_func = (module.create_rank_udwf)();
4337
let foreign_rank_func: Arc<dyn WindowUDFImpl> = (&ffi_rank_func).into();
4438

4539
let udwf = WindowUDF::new_from_shared_impl(foreign_rank_func);

0 commit comments

Comments
 (0)