diff --git a/datafusion/common/src/config.rs b/datafusion/common/src/config.rs index e6d5fbfc50a21..2039f97a2d8d7 100644 --- a/datafusion/common/src/config.rs +++ b/datafusion/common/src/config.rs @@ -34,8 +34,7 @@ use std::collections::{BTreeMap, HashMap}; use std::error::Error; use std::fmt::{self, Display}; use std::str::FromStr; -#[cfg(feature = "parquet_encryption")] -use std::sync::Arc; +use std::sync::{Arc, LazyLock}; /// A macro that wraps a configuration struct and automatically derives /// [`Default`] and [`ConfigField`] for it, allowing it to be used @@ -1382,12 +1381,21 @@ impl ConfigField for ConfigOptions { /// (FFI) based configuration extensions. pub const DATAFUSION_FFI_CONFIG_NAMESPACE: &str = "datafusion_ffi"; +/// Global default configuration options +static DEFAULT_CONFIG: LazyLock> = + LazyLock::new(|| Arc::new(ConfigOptions::new())); + impl ConfigOptions { /// Creates a new [`ConfigOptions`] with default values pub fn new() -> Self { Self::default() } + /// Return a reference to the default configuration options + pub fn default_arc() -> Arc { + Arc::clone(&DEFAULT_CONFIG) + } + /// Set extensions to provided value pub fn with_extensions(mut self, extensions: Extensions) -> Self { self.extensions = extensions; diff --git a/datafusion/core/tests/fuzz_cases/equivalence/ordering.rs b/datafusion/core/tests/fuzz_cases/equivalence/ordering.rs index a57095066ee12..5cbb5afcf925c 100644 --- a/datafusion/core/tests/fuzz_cases/equivalence/ordering.rs +++ b/datafusion/core/tests/fuzz_cases/equivalence/ordering.rs @@ -111,7 +111,7 @@ fn test_ordering_satisfy_with_equivalence_complex_random() -> Result<()> { Arc::clone(&test_fun), vec![col_a], &test_schema, - Arc::new(ConfigOptions::default()), + ConfigOptions::default_arc(), )?); let a_plus_b = Arc::new(BinaryExpr::new( col("a", &test_schema)?, diff --git a/datafusion/core/tests/fuzz_cases/equivalence/projection.rs b/datafusion/core/tests/fuzz_cases/equivalence/projection.rs index 2f67e211ce915..cbe2ff2aed702 100644 --- a/datafusion/core/tests/fuzz_cases/equivalence/projection.rs +++ b/datafusion/core/tests/fuzz_cases/equivalence/projection.rs @@ -50,7 +50,7 @@ fn project_orderings_random() -> Result<()> { Arc::clone(&test_fun), vec![col_a], &test_schema, - Arc::new(ConfigOptions::default()), + ConfigOptions::default_arc(), )?); // a + b let a_plus_b = Arc::new(BinaryExpr::new( @@ -124,7 +124,7 @@ fn ordering_satisfy_after_projection_random() -> Result<()> { Arc::clone(&test_fun), vec![col_a], &test_schema, - Arc::new(ConfigOptions::default()), + ConfigOptions::default_arc(), )?) as PhysicalExprRef; // a + b let a_plus_b = Arc::new(BinaryExpr::new( diff --git a/datafusion/core/tests/fuzz_cases/equivalence/properties.rs b/datafusion/core/tests/fuzz_cases/equivalence/properties.rs index 1490eb08a0291..111d671940192 100644 --- a/datafusion/core/tests/fuzz_cases/equivalence/properties.rs +++ b/datafusion/core/tests/fuzz_cases/equivalence/properties.rs @@ -50,7 +50,7 @@ fn test_find_longest_permutation_random() -> Result<()> { Arc::clone(&test_fun), vec![col_a], &test_schema, - Arc::new(ConfigOptions::default()), + ConfigOptions::default_arc(), )?) as _; let a_plus_b = Arc::new(BinaryExpr::new( diff --git a/datafusion/core/tests/physical_optimizer/filter_pushdown.rs b/datafusion/core/tests/physical_optimizer/filter_pushdown.rs index 9f3dffd23004d..664a6913fdbef 100644 --- a/datafusion/core/tests/physical_optimizer/filter_pushdown.rs +++ b/datafusion/core/tests/physical_optimizer/filter_pushdown.rs @@ -98,7 +98,7 @@ fn test_pushdown_volatile_functions_not_allowed() { // Test that we do not push down filters with volatile functions // Use random() as an example of a volatile function let scan = TestScanBuilder::new(schema()).with_support(true).build(); - let cfg = Arc::new(ConfigOptions::default()); + let cfg = ConfigOptions::default_arc(); let predicate = Arc::new(BinaryExpr::new( Arc::new(Column::new_with_schema("a", &schema()).unwrap()), Operator::Eq, @@ -695,7 +695,7 @@ fn test_filter_with_fetch_partially_pushed_to_scan() { let scan = TestScanBuilder::new(schema()).with_support(true).build(); let pushed_predicate = col_lit_predicate("a", "foo", &schema()); let volatile_predicate = { - let cfg = Arc::new(ConfigOptions::default()); + let cfg = ConfigOptions::default_arc(); Arc::new(BinaryExpr::new( Arc::new(Column::new_with_schema("a", &schema()).unwrap()), Operator::Eq, diff --git a/datafusion/core/tests/physical_optimizer/projection_pushdown.rs b/datafusion/core/tests/physical_optimizer/projection_pushdown.rs index 00e016ae02cad..26eb57279f1ab 100644 --- a/datafusion/core/tests/physical_optimizer/projection_pushdown.rs +++ b/datafusion/core/tests/physical_optimizer/projection_pushdown.rs @@ -130,7 +130,7 @@ fn test_update_matching_exprs() -> Result<()> { )), ], Field::new("f", DataType::Int32, true).into(), - Arc::new(ConfigOptions::default()), + ConfigOptions::default_arc(), )), Arc::new(CaseExpr::try_new( Some(Arc::new(Column::new("d", 2))), @@ -196,7 +196,7 @@ fn test_update_matching_exprs() -> Result<()> { )), ], Field::new("f", DataType::Int32, true).into(), - Arc::new(ConfigOptions::default()), + ConfigOptions::default_arc(), )), Arc::new(CaseExpr::try_new( Some(Arc::new(Column::new("d", 3))), @@ -271,7 +271,7 @@ fn test_update_projected_exprs() -> Result<()> { )), ], Field::new("f", DataType::Int32, true).into(), - Arc::new(ConfigOptions::default()), + ConfigOptions::default_arc(), )), Arc::new(CaseExpr::try_new( Some(Arc::new(Column::new("d", 2))), @@ -337,7 +337,7 @@ fn test_update_projected_exprs() -> Result<()> { )), ], Field::new("f", DataType::Int32, true).into(), - Arc::new(ConfigOptions::default()), + ConfigOptions::default_arc(), )), Arc::new(CaseExpr::try_new( Some(Arc::new(Column::new("d_new", 3))), diff --git a/datafusion/execution/src/config.rs b/datafusion/execution/src/config.rs index 854d239236766..bbf767b96b2d7 100644 --- a/datafusion/execution/src/config.rs +++ b/datafusion/execution/src/config.rs @@ -106,7 +106,7 @@ pub struct SessionConfig { impl Default for SessionConfig { fn default() -> Self { Self { - options: Arc::new(ConfigOptions::new()), + options: ConfigOptions::default_arc(), // Assume no extensions by default. extensions: HashMap::with_capacity_and_hasher( 0, diff --git a/datafusion/expr/src/execution_props.rs b/datafusion/expr/src/execution_props.rs index 3bf6978eb60ee..5ae7d92432be0 100644 --- a/datafusion/expr/src/execution_props.rs +++ b/datafusion/expr/src/execution_props.rs @@ -72,7 +72,7 @@ impl ExecutionProps { #[deprecated(since = "50.0.0", note = "Use mark_start_execution instead")] pub fn start_execution(&mut self) -> &Self { - let default_config = Arc::new(ConfigOptions::default()); + let default_config = ConfigOptions::default_arc(); self.mark_start_execution(default_config) } diff --git a/datafusion/expr/src/simplify.rs b/datafusion/expr/src/simplify.rs index 522cf122a273c..691506c82c553 100644 --- a/datafusion/expr/src/simplify.rs +++ b/datafusion/expr/src/simplify.rs @@ -53,7 +53,7 @@ impl Default for SimplifyContext { Self { schema: Arc::new(DFSchema::empty()), query_execution_start_time: None, - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), } } } diff --git a/datafusion/functions-nested/benches/array_has.rs b/datafusion/functions-nested/benches/array_has.rs index f5e66d56c0efe..0881a2c2759f3 100644 --- a/datafusion/functions-nested/benches/array_has.rs +++ b/datafusion/functions-nested/benches/array_has.rs @@ -59,7 +59,7 @@ fn criterion_benchmark(c: &mut Criterion) { fn bench_array_has(c: &mut Criterion, array_size: usize) { let mut group = c.benchmark_group("array_has_i64"); let list_array = create_int64_list_array(NUM_ROWS, array_size, NULL_DENSITY); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); let return_field: Arc = Field::new("result", DataType::Boolean, true).into(); let arg_fields: Vec> = vec![ Field::new("arr", list_array.data_type().clone(), false).into(), @@ -123,7 +123,7 @@ fn bench_array_has_all(c: &mut Criterion, array_size: usize) { let mut group = c.benchmark_group("array_has_all"); let haystack = create_int64_list_array(NUM_ROWS, array_size, NULL_DENSITY); let list_type = haystack.data_type().clone(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); let return_field: Arc = Field::new("result", DataType::Boolean, true).into(); let arg_fields: Vec> = vec![ Field::new("haystack", list_type.clone(), false).into(), @@ -192,7 +192,7 @@ fn bench_array_has_any(c: &mut Criterion, array_size: usize) { let mut group = c.benchmark_group("array_has_any"); let first_arr = create_int64_list_array(NUM_ROWS, array_size, NULL_DENSITY); let list_type = first_arr.data_type().clone(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); let return_field: Arc = Field::new("result", DataType::Boolean, true).into(); let arg_fields: Vec> = vec![ Field::new("first", list_type.clone(), false).into(), @@ -313,7 +313,7 @@ fn bench_array_has_any(c: &mut Criterion, array_size: usize) { fn bench_array_has_strings(c: &mut Criterion) { let mut group = c.benchmark_group("array_has_strings"); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); let return_field: Arc = Field::new("result", DataType::Boolean, true).into(); let sizes = vec![10, 100, 500]; @@ -371,7 +371,7 @@ fn bench_array_has_strings(c: &mut Criterion) { fn bench_array_has_all_strings(c: &mut Criterion) { let mut group = c.benchmark_group("array_has_all_strings"); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); let return_field: Arc = Field::new("result", DataType::Boolean, true).into(); let sizes = vec![10, 100, 500]; @@ -433,7 +433,7 @@ fn bench_array_has_all_strings(c: &mut Criterion) { fn bench_array_has_any_strings(c: &mut Criterion) { let mut group = c.benchmark_group("array_has_any_strings"); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); let return_field: Arc = Field::new("result", DataType::Boolean, true).into(); let sizes = vec![10, 100, 500]; @@ -550,7 +550,7 @@ fn bench_array_has_any_strings(c: &mut Criterion) { /// size while keeping the columnar array small (3 elements per row). fn bench_array_has_any_scalar(c: &mut Criterion) { let mut group = c.benchmark_group("array_has_any_scalar"); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); let return_field: Arc = Field::new("result", DataType::Boolean, true).into(); let array_size = 3; diff --git a/datafusion/functions-nested/benches/array_position.rs b/datafusion/functions-nested/benches/array_position.rs index c718b2b725640..02688b6caf90e 100644 --- a/datafusion/functions-nested/benches/array_position.rs +++ b/datafusion/functions-nested/benches/array_position.rs @@ -66,7 +66,7 @@ fn bench_array_position(c: &mut Criterion, array_size: usize) { Field::new("needle", DataType::Int64, false).into(), ]; let return_field: Arc = Field::new("result", DataType::UInt64, true).into(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); let needle = ScalarValue::Int64(Some(SENTINEL_NEEDLE)); // Benchmark: one match per row. @@ -175,7 +175,7 @@ fn bench_array_positions(c: &mut Criterion, array_size: usize) { true, ) .into(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); let needle = ScalarValue::Int64(Some(SENTINEL_NEEDLE)); let args_found_once = vec![ diff --git a/datafusion/functions-nested/benches/array_remove.rs b/datafusion/functions-nested/benches/array_remove.rs index a494d322392a8..dd0a6af9fd598 100644 --- a/datafusion/functions-nested/benches/array_remove.rs +++ b/datafusion/functions-nested/benches/array_remove.rs @@ -80,7 +80,7 @@ fn bench_array_remove_int64(c: &mut Criterion) { false, ) .into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) .unwrap(), ) @@ -121,7 +121,7 @@ fn bench_array_remove_f64(c: &mut Criterion) { false, ) .into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) .unwrap(), ) @@ -162,7 +162,7 @@ fn bench_array_remove_strings(c: &mut Criterion) { false, ) .into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) .unwrap(), ) @@ -203,7 +203,7 @@ fn bench_array_remove_binary(c: &mut Criterion) { false, ) .into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) .unwrap(), ) @@ -244,7 +244,7 @@ fn bench_array_remove_boolean(c: &mut Criterion) { false, ) .into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) .unwrap(), ) @@ -286,7 +286,7 @@ fn bench_array_remove_decimal64(c: &mut Criterion) { false, ) .into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) .unwrap(), ) @@ -329,7 +329,7 @@ fn bench_array_remove_fixed_size_binary(c: &mut Criterion) { false, ) .into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) .unwrap(), ) diff --git a/datafusion/functions-nested/benches/array_repeat.rs b/datafusion/functions-nested/benches/array_repeat.rs index 0ce8db00ceb8f..7c02cf09870ec 100644 --- a/datafusion/functions-nested/benches/array_repeat.rs +++ b/datafusion/functions-nested/benches/array_repeat.rs @@ -83,7 +83,7 @@ fn bench_array_repeat_int64(c: &mut Criterion) { false, ) .into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) .unwrap(), ) @@ -131,7 +131,7 @@ fn bench_array_repeat_string(c: &mut Criterion) { false, ) .into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) .unwrap(), ) @@ -184,7 +184,7 @@ fn bench_array_repeat_nested_int64_list(c: &mut Criterion) { false, ) .into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) .unwrap(), ) @@ -233,7 +233,7 @@ fn bench_array_repeat_float64(c: &mut Criterion) { false, ) .into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) .unwrap(), ) @@ -282,7 +282,7 @@ fn bench_array_repeat_boolean(c: &mut Criterion) { false, ) .into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) .unwrap(), ) @@ -335,7 +335,7 @@ fn bench_array_repeat_nested_string_list(c: &mut Criterion) { false, ) .into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) .unwrap(), ) diff --git a/datafusion/functions-nested/benches/array_set_ops.rs b/datafusion/functions-nested/benches/array_set_ops.rs index d43bbdb577d06..505103d26d43c 100644 --- a/datafusion/functions-nested/benches/array_set_ops.rs +++ b/datafusion/functions-nested/benches/array_set_ops.rs @@ -63,7 +63,7 @@ fn invoke_udf(udf: &impl ScalarUDFImpl, array1: &ArrayRef, array2: &ArrayRef) { ], number_rows: NUM_ROWS, return_field: Field::new("result", array1.data_type().clone(), false).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) .unwrap(), ); @@ -155,7 +155,7 @@ fn bench_array_distinct(c: &mut Criterion) { false, ) .into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) .unwrap(), ) @@ -374,7 +374,7 @@ fn bench_array_distinct_sliced(c: &mut Criterion) { false, ) .into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) .unwrap(), ) diff --git a/datafusion/functions-nested/benches/array_slice.rs b/datafusion/functions-nested/benches/array_slice.rs index b95fe47575e53..828be272a0c99 100644 --- a/datafusion/functions-nested/benches/array_slice.rs +++ b/datafusion/functions-nested/benches/array_slice.rs @@ -135,7 +135,7 @@ fn array_slice_benchmark( number_rows: size, return_field: Field::new_list_field(args[0].data_type(), true) .into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) .unwrap(), ) diff --git a/datafusion/functions-nested/benches/array_to_string.rs b/datafusion/functions-nested/benches/array_to_string.rs index 286ed4eeb0003..658107c1eb776 100644 --- a/datafusion/functions-nested/benches/array_to_string.rs +++ b/datafusion/functions-nested/benches/array_to_string.rs @@ -76,7 +76,7 @@ fn bench_array_to_string( number_rows: NUM_ROWS, return_field: Field::new("result", DataType::Utf8, true) .into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) .unwrap(), ) diff --git a/datafusion/functions-nested/benches/map.rs b/datafusion/functions-nested/benches/map.rs index e50c4659b17cd..c021cc8284085 100644 --- a/datafusion/functions-nested/benches/map.rs +++ b/datafusion/functions-nested/benches/map.rs @@ -104,7 +104,7 @@ fn criterion_benchmark(c: &mut Criterion) { Field::new("a", values.data_type(), true).into(), ]; let return_field = Field::new("f", return_type, true).into(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); b.iter(|| { black_box( diff --git a/datafusion/functions-nested/src/array_has.rs b/datafusion/functions-nested/src/array_has.rs index 872cdc7300cbd..e8285944e4117 100644 --- a/datafusion/functions-nested/src/array_has.rs +++ b/datafusion/functions-nested/src/array_has.rs @@ -1131,7 +1131,7 @@ mod tests { arg_fields: vec![haystack_field, needle_field], number_rows: 1, return_field, - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), })?; let output = result.into_array(1)?; @@ -1172,7 +1172,7 @@ mod tests { ], number_rows: 2, return_field: Arc::clone(&return_field), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), })? .into_array(2) }; @@ -1205,7 +1205,7 @@ mod tests { arg_fields: vec![haystack_field, needle_field], number_rows: 1, return_field, - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), })?; let output = result.into_array(1)?; @@ -1240,7 +1240,7 @@ mod tests { ], number_rows: num_rows, return_field: Arc::new(Field::new("return", DataType::Boolean, true)), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) .unwrap(); let output = result.into_array(num_rows).unwrap(); diff --git a/datafusion/functions-nested/src/except.rs b/datafusion/functions-nested/src/except.rs index 7fe2b3e754364..f95643d4a38c4 100644 --- a/datafusion/functions-nested/src/except.rs +++ b/datafusion/functions-nested/src/except.rs @@ -283,7 +283,7 @@ mod tests { arg_fields: vec![Arc::clone(&list_field), Arc::clone(&list_field)], number_rows: 2, return_field, - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), })?; let output = result.into_array(2)?; diff --git a/datafusion/functions-nested/src/position.rs b/datafusion/functions-nested/src/position.rs index acdeb202f90bc..6030ffd95e2bc 100644 --- a/datafusion/functions-nested/src/position.rs +++ b/datafusion/functions-nested/src/position.rs @@ -632,7 +632,7 @@ mod tests { ], number_rows: 2, return_field: Arc::clone(&return_field), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), })? .into_array(2) }; @@ -683,7 +683,7 @@ mod tests { ], number_rows: 2, return_field: Arc::clone(&return_field), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), })? .into_array(2) }; @@ -742,7 +742,7 @@ mod tests { arg_fields: vec![Arc::clone(&haystack_field), Arc::clone(&needle_field)], number_rows: 2, return_field: Arc::clone(&return_field), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), })? .into_array(2)?; diff --git a/datafusion/functions-nested/src/set_ops.rs b/datafusion/functions-nested/src/set_ops.rs index 4958a1ee7fe1a..b484a0cbe0571 100644 --- a/datafusion/functions-nested/src/set_ops.rs +++ b/datafusion/functions-nested/src/set_ops.rs @@ -691,7 +691,7 @@ mod tests { arg_fields: vec![Arc::clone(&field), Arc::clone(&field)], number_rows: 2, return_field: Arc::clone(&field), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), })?; let output = result.into_array(2)?; @@ -717,7 +717,7 @@ mod tests { arg_fields: vec![Arc::clone(&field), Arc::clone(&field)], number_rows: 2, return_field: Arc::clone(&field), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), })?; let output = result.into_array(2)?; @@ -748,7 +748,7 @@ mod tests { arg_fields: vec![Arc::clone(&field)], number_rows: 2, return_field: field, - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), })?; let output = result.into_array(2)?; @@ -787,7 +787,7 @@ mod tests { arg_fields: vec![input_field.clone().into()], number_rows: 1, return_field: input_field.clone().into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), })?; assert_eq!( diff --git a/datafusion/functions/benches/ascii.rs b/datafusion/functions/benches/ascii.rs index a2424ed352afc..d507c4c4fdeb7 100644 --- a/datafusion/functions/benches/ascii.rs +++ b/datafusion/functions/benches/ascii.rs @@ -28,7 +28,7 @@ use std::sync::Arc; fn criterion_benchmark(c: &mut Criterion) { let ascii = datafusion_functions::string::ascii(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); // Scalar benchmarks (outside loop) c.bench_function("ascii/scalar_utf8", |b| { @@ -76,7 +76,7 @@ fn criterion_benchmark(c: &mut Criterion) { let arg_fields = vec![Field::new("a", args_string_ascii[0].data_type(), true).into()]; let return_field = Field::new("f", DataType::Utf8, true).into(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); c.bench_function( format!("ascii/string_ascii_only (null_density={null_density})").as_str(), diff --git a/datafusion/functions/benches/atan2.rs b/datafusion/functions/benches/atan2.rs index f1c9756a0cc08..f0764eae72920 100644 --- a/datafusion/functions/benches/atan2.rs +++ b/datafusion/functions/benches/atan2.rs @@ -29,7 +29,7 @@ use std::sync::Arc; fn criterion_benchmark(c: &mut Criterion) { let atan2_fn = atan2(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); for size in [1024, 4096, 8192] { let y_f32 = Arc::new(create_primitive_array::(size, 0.2)); diff --git a/datafusion/functions/benches/character_length.rs b/datafusion/functions/benches/character_length.rs index 4927627ec2f05..454fa2ee9e232 100644 --- a/datafusion/functions/benches/character_length.rs +++ b/datafusion/functions/benches/character_length.rs @@ -30,7 +30,7 @@ fn criterion_benchmark(c: &mut Criterion) { let character_length = datafusion_functions::unicode::character_length(); let return_field = Arc::new(Field::new("f", DataType::Utf8, true)); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); let n_rows = 8192; for str_len in [8, 32, 128, 4096] { diff --git a/datafusion/functions/benches/chr.rs b/datafusion/functions/benches/chr.rs index a702dc161ae06..db2a1ec15d2fb 100644 --- a/datafusion/functions/benches/chr.rs +++ b/datafusion/functions/benches/chr.rs @@ -35,7 +35,7 @@ pub fn seedable_rng() -> StdRng { fn criterion_benchmark(c: &mut Criterion) { let chr_fn = chr(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); // Scalar benchmarks c.bench_function("chr/scalar", |b| { diff --git a/datafusion/functions/benches/concat.rs b/datafusion/functions/benches/concat.rs index 0fb910800e3bc..9c14ff567fee2 100644 --- a/datafusion/functions/benches/concat.rs +++ b/datafusion/functions/benches/concat.rs @@ -76,7 +76,7 @@ fn criterion_benchmark(c: &mut Criterion) { Field::new(format!("arg_{idx}"), arg.data_type(), true).into() }) .collect::>(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); let mut group = c.benchmark_group("concat function"); group.bench_function(BenchmarkId::new("concat", size), |b| { @@ -114,7 +114,7 @@ fn criterion_benchmark(c: &mut Criterion) { Field::new(format!("arg_{idx}"), dt, true).into() }) .collect::>(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); let mut group = c.benchmark_group("concat function"); group.bench_function(BenchmarkId::new("concat_view", size), |b| { @@ -155,7 +155,7 @@ fn criterion_benchmark(c: &mut Criterion) { arg_fields: scalar_arg_fields.clone(), number_rows: 1, return_field: Field::new("f", DataType::Utf8, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) .unwrap(), ) diff --git a/datafusion/functions/benches/concat_ws.rs b/datafusion/functions/benches/concat_ws.rs index 97d6d96411d73..044339b6152e4 100644 --- a/datafusion/functions/benches/concat_ws.rs +++ b/datafusion/functions/benches/concat_ws.rs @@ -71,7 +71,7 @@ fn criterion_benchmark(c: &mut Criterion) { Field::new(format!("arg_{idx}"), arg.data_type(), true).into() }) .collect::>(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); let mut group = c.benchmark_group("concat_ws function"); group.bench_function(BenchmarkId::new("concat_ws", size), |b| { @@ -111,7 +111,7 @@ fn criterion_benchmark(c: &mut Criterion) { arg_fields: scalar_arg_fields.clone(), number_rows: 1, return_field: Field::new("f", DataType::Utf8, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) .unwrap(), ) diff --git a/datafusion/functions/benches/contains.rs b/datafusion/functions/benches/contains.rs index 6c39f45e14fa6..858849faef76c 100644 --- a/datafusion/functions/benches/contains.rs +++ b/datafusion/functions/benches/contains.rs @@ -91,7 +91,7 @@ fn criterion_benchmark(c: &mut Criterion) { Field::new("b", DataType::Utf8, true).into(), ]; let return_field = Field::new("f", DataType::Boolean, true).into(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); c.bench_function("contains_StringArray_scalar_search", |b| { b.iter(|| { diff --git a/datafusion/functions/benches/cot.rs b/datafusion/functions/benches/cot.rs index 16c3fba2175fe..e71fd63155bcd 100644 --- a/datafusion/functions/benches/cot.rs +++ b/datafusion/functions/benches/cot.rs @@ -31,7 +31,7 @@ use std::sync::Arc; fn criterion_benchmark(c: &mut Criterion) { let cot_fn = cot(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); // Array benchmarks - run for different sizes for size in [1024, 4096, 8192] { diff --git a/datafusion/functions/benches/crypto.rs b/datafusion/functions/benches/crypto.rs index 9a86efbff9ed8..c683d787d8d4f 100644 --- a/datafusion/functions/benches/crypto.rs +++ b/datafusion/functions/benches/crypto.rs @@ -33,7 +33,7 @@ fn criterion_benchmark(c: &mut Criterion) { crypto::sha384(), crypto::sha512(), ]; - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); for func in crypto { let size = 1024; diff --git a/datafusion/functions/benches/date_bin.rs b/datafusion/functions/benches/date_bin.rs index 28dee96987261..bdd0fde8bccf4 100644 --- a/datafusion/functions/benches/date_bin.rs +++ b/datafusion/functions/benches/date_bin.rs @@ -54,7 +54,7 @@ fn criterion_benchmark(c: &mut Criterion) { Field::new("a", interval.data_type(), true).into(), Field::new("b", timestamps.data_type(), true).into(), ]; - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); b.iter(|| { black_box( diff --git a/datafusion/functions/benches/date_trunc.rs b/datafusion/functions/benches/date_trunc.rs index 0668a1cc5085c..1158abc04942c 100644 --- a/datafusion/functions/benches/date_trunc.rs +++ b/datafusion/functions/benches/date_trunc.rs @@ -62,7 +62,7 @@ fn criterion_benchmark(c: &mut Criterion) { scalar_arguments: &scalar_arguments, }) .unwrap(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); b.iter(|| { black_box( diff --git a/datafusion/functions/benches/encoding.rs b/datafusion/functions/benches/encoding.rs index 0b8f0c5c51a58..0d44f12a6a42c 100644 --- a/datafusion/functions/benches/encoding.rs +++ b/datafusion/functions/benches/encoding.rs @@ -27,7 +27,7 @@ use std::sync::Arc; fn criterion_benchmark(c: &mut Criterion) { let decode = encoding::decode(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); for size in [1024, 4096, 8192] { let bin_array = Arc::new(create_binary_array::(size, 0.2)); diff --git a/datafusion/functions/benches/ends_with.rs b/datafusion/functions/benches/ends_with.rs index 474e8a1555cf2..a220b8ee8f9f0 100644 --- a/datafusion/functions/benches/ends_with.rs +++ b/datafusion/functions/benches/ends_with.rs @@ -91,7 +91,7 @@ fn criterion_benchmark(c: &mut Criterion) { Field::new("b", DataType::Utf8, true).into(), ]; let return_field = Field::new("f", DataType::Boolean, true).into(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); c.bench_function("ends_with_StringArray_scalar_suffix", |b| { b.iter(|| { diff --git a/datafusion/functions/benches/factorial.rs b/datafusion/functions/benches/factorial.rs index c441b50c288c3..770bce718a4c0 100644 --- a/datafusion/functions/benches/factorial.rs +++ b/datafusion/functions/benches/factorial.rs @@ -28,7 +28,7 @@ use std::sync::Arc; fn criterion_benchmark(c: &mut Criterion) { let factorial = factorial(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); let arr_args = vec![ColumnarValue::Array(Arc::new(Int64Array::from_iter( (0..1024).map(|i| Some(i % 21)), diff --git a/datafusion/functions/benches/find_in_set.rs b/datafusion/functions/benches/find_in_set.rs index 9ee20ecd14fdf..2426f7d740995 100644 --- a/datafusion/functions/benches/find_in_set.rs +++ b/datafusion/functions/benches/find_in_set.rs @@ -165,7 +165,7 @@ fn criterion_benchmark(c: &mut Criterion) { arg_fields: arg_fields.clone(), number_rows: n_rows, return_field: Arc::clone(&return_field), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), })) }) }); @@ -183,7 +183,7 @@ fn criterion_benchmark(c: &mut Criterion) { arg_fields: arg_fields.clone(), number_rows: n_rows, return_field: Arc::clone(&return_field), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), })) }) }); @@ -205,7 +205,7 @@ fn criterion_benchmark(c: &mut Criterion) { arg_fields: arg_fields.clone(), number_rows: n_rows, return_field: Arc::clone(&return_field), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), })) }) }); @@ -216,7 +216,7 @@ fn criterion_benchmark(c: &mut Criterion) { .map(|arg| Field::new("a", arg.data_type().clone(), true).into()) .collect::>(); let return_field = Arc::new(Field::new("f", DataType::Int32, true)); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); group.bench_function(format!("string_view_len_{str_len}"), |b| { b.iter(|| { diff --git a/datafusion/functions/benches/floor_ceil.rs b/datafusion/functions/benches/floor_ceil.rs index dc095e0152c4d..5a65e2d12dbe9 100644 --- a/datafusion/functions/benches/floor_ceil.rs +++ b/datafusion/functions/benches/floor_ceil.rs @@ -29,7 +29,7 @@ use std::time::Duration; fn criterion_benchmark(c: &mut Criterion) { let floor_fn = floor(); let ceil_fn = ceil(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); for size in [1024, 4096, 8192] { let mut group = c.benchmark_group(format!("floor_ceil size={size}")); diff --git a/datafusion/functions/benches/gcd.rs b/datafusion/functions/benches/gcd.rs index 3c72a46e6643d..3afc37bedf8e2 100644 --- a/datafusion/functions/benches/gcd.rs +++ b/datafusion/functions/benches/gcd.rs @@ -42,7 +42,7 @@ fn criterion_benchmark(c: &mut Criterion) { let array_a = ColumnarValue::Array(generate_i64_array(n_rows)); let array_b = ColumnarValue::Array(generate_i64_array(n_rows)); let udf = gcd(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); c.bench_function("gcd both array", |b| { b.iter(|| { diff --git a/datafusion/functions/benches/initcap.rs b/datafusion/functions/benches/initcap.rs index b5e653e4136a3..7874efacd6ba4 100644 --- a/datafusion/functions/benches/initcap.rs +++ b/datafusion/functions/benches/initcap.rs @@ -68,7 +68,7 @@ fn create_unicode_utf8view_args(size: usize) -> Vec { fn criterion_benchmark(c: &mut Criterion) { let initcap = unicode::initcap(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); // Array benchmarks: vary both row count and string length for size in [1024, 4096, 8192] { diff --git a/datafusion/functions/benches/isnan.rs b/datafusion/functions/benches/isnan.rs index e353b9d27a0a1..b028ed8d2771b 100644 --- a/datafusion/functions/benches/isnan.rs +++ b/datafusion/functions/benches/isnan.rs @@ -39,7 +39,7 @@ fn criterion_benchmark(c: &mut Criterion) { Field::new(format!("arg_{idx}"), arg.data_type(), true).into() }) .collect::>(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); c.bench_function(&format!("isnan f32 array: {size}"), |b| { b.iter(|| { diff --git a/datafusion/functions/benches/iszero.rs b/datafusion/functions/benches/iszero.rs index c6d0aed4c615c..2eee3615d2a10 100644 --- a/datafusion/functions/benches/iszero.rs +++ b/datafusion/functions/benches/iszero.rs @@ -30,7 +30,7 @@ use std::sync::Arc; fn criterion_benchmark(c: &mut Criterion) { let iszero = iszero(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); for size in [1024, 4096, 8192] { let f32_array = Arc::new(create_primitive_array::(size, 0.2)); diff --git a/datafusion/functions/benches/left_right.rs b/datafusion/functions/benches/left_right.rs index 59f8d8a75f74c..2ae6abc1b0b31 100644 --- a/datafusion/functions/benches/left_right.rs +++ b/datafusion/functions/benches/left_right.rs @@ -95,7 +95,7 @@ fn criterion_benchmark(c: &mut Criterion) { .into() }) .collect::>(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); b.iter(|| { black_box( diff --git a/datafusion/functions/benches/levenshtein.rs b/datafusion/functions/benches/levenshtein.rs index 08733b245ffb4..bb7a1f8c4ec5b 100644 --- a/datafusion/functions/benches/levenshtein.rs +++ b/datafusion/functions/benches/levenshtein.rs @@ -46,7 +46,7 @@ fn invoke_levenshtein_with_args( .enumerate() .map(|(idx, arg)| Field::new(format!("arg_{idx}"), arg.data_type(), true).into()) .collect::>(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); string::levenshtein().invoke_with_args(ScalarFunctionArgs { args, diff --git a/datafusion/functions/benches/lower.rs b/datafusion/functions/benches/lower.rs index 6dbc8dcb7d148..9814780c02f7b 100644 --- a/datafusion/functions/benches/lower.rs +++ b/datafusion/functions/benches/lower.rs @@ -122,7 +122,7 @@ fn create_args5( fn criterion_benchmark(c: &mut Criterion) { let lower = string::lower(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); for size in [1024, 4096, 8192] { let args = create_args1(size, 32); diff --git a/datafusion/functions/benches/make_date.rs b/datafusion/functions/benches/make_date.rs index 42b5b1019538d..d6deef41de43e 100644 --- a/datafusion/functions/benches/make_date.rs +++ b/datafusion/functions/benches/make_date.rs @@ -68,7 +68,7 @@ fn criterion_benchmark(c: &mut Criterion) { Field::new("a", days.data_type(), true).into(), ]; let return_field = Field::new("f", DataType::Date32, true).into(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); b.iter(|| { black_box( @@ -98,7 +98,7 @@ fn criterion_benchmark(c: &mut Criterion) { Field::new("a", days.data_type(), true).into(), ]; let return_field = Field::new("f", DataType::Date32, true).into(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); b.iter(|| { black_box( @@ -128,7 +128,7 @@ fn criterion_benchmark(c: &mut Criterion) { Field::new("a", days.data_type(), true).into(), ]; let return_field = Field::new("f", DataType::Date32, true).into(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); b.iter(|| { black_box( @@ -155,7 +155,7 @@ fn criterion_benchmark(c: &mut Criterion) { Field::new("a", day.data_type(), true).into(), ]; let return_field = Field::new("f", DataType::Date32, true).into(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); b.iter(|| { black_box( diff --git a/datafusion/functions/benches/nanvl.rs b/datafusion/functions/benches/nanvl.rs index 206eebd81eb81..9b93ae623c8c0 100644 --- a/datafusion/functions/benches/nanvl.rs +++ b/datafusion/functions/benches/nanvl.rs @@ -29,7 +29,7 @@ use std::sync::Arc; fn criterion_benchmark(c: &mut Criterion) { let nanvl_fn = nanvl(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); // Scalar benchmarks c.bench_function("nanvl/scalar_f64", |b| { diff --git a/datafusion/functions/benches/nullif.rs b/datafusion/functions/benches/nullif.rs index f9f063c52d0d4..e66910bd7b080 100644 --- a/datafusion/functions/benches/nullif.rs +++ b/datafusion/functions/benches/nullif.rs @@ -40,7 +40,7 @@ fn criterion_benchmark(c: &mut Criterion) { Field::new(format!("arg_{idx}"), arg.data_type(), true).into() }) .collect::>(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); c.bench_function(&format!("nullif scalar array: {size}"), |b| { b.iter(|| { diff --git a/datafusion/functions/benches/pad.rs b/datafusion/functions/benches/pad.rs index c71d5a7161a66..b742d34de457b 100644 --- a/datafusion/functions/benches/pad.rs +++ b/datafusion/functions/benches/pad.rs @@ -215,7 +215,7 @@ fn criterion_benchmark(c: &mut Criterion) { Field::new(format!("arg_{idx}"), arg.data_type(), true).into() }) .collect::>(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); group.bench_function( format!("lpad utf8 [size={size}, str_len=5, target=20]"), @@ -493,7 +493,7 @@ fn criterion_benchmark(c: &mut Criterion) { Field::new(format!("arg_{idx}"), arg.data_type(), true).into() }) .collect::>(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); group.bench_function( format!("rpad utf8 [size={size}, str_len=5, target=20]"), diff --git a/datafusion/functions/benches/random.rs b/datafusion/functions/benches/random.rs index 71ded120eb515..76894087ae6c8 100644 --- a/datafusion/functions/benches/random.rs +++ b/datafusion/functions/benches/random.rs @@ -26,7 +26,7 @@ use std::sync::Arc; fn criterion_benchmark(c: &mut Criterion) { let random_func = RandomFunc::new(); let return_field = Field::new("f", DataType::Float64, true).into(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); // Benchmark to evaluate 1M rows in batch size 8192 let iterations = 1_000_000 / 8192; // Calculate how many iterations are needed to reach approximately 1M rows diff --git a/datafusion/functions/benches/regexp_count.rs b/datafusion/functions/benches/regexp_count.rs index bce76c05585b9..761e3d95d9341 100644 --- a/datafusion/functions/benches/regexp_count.rs +++ b/datafusion/functions/benches/regexp_count.rs @@ -62,7 +62,7 @@ fn invoke_regexp_count_with_args( .enumerate() .map(|(idx, arg)| Field::new(format!("arg_{idx}"), arg.data_type(), true).into()) .collect::>(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); regex::regexp_count().invoke_with_args(ScalarFunctionArgs { args, diff --git a/datafusion/functions/benches/regx.rs b/datafusion/functions/benches/regx.rs index a46b548236d08..f9552e112fcd8 100644 --- a/datafusion/functions/benches/regx.rs +++ b/datafusion/functions/benches/regx.rs @@ -110,7 +110,7 @@ fn subexp(rng: &mut ThreadRng) -> Int64Array { fn criterion_benchmark(c: &mut Criterion) { let regexp_like_func = RegexpLikeFunc::new(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); c.bench_function("regexp_count_1000 string", |b| { let mut rng = rand::rng(); let data = Arc::new(data(&mut rng)) as ArrayRef; diff --git a/datafusion/functions/benches/repeat.rs b/datafusion/functions/benches/repeat.rs index 354812c0d2ea2..688bfc02ffcc6 100644 --- a/datafusion/functions/benches/repeat.rs +++ b/datafusion/functions/benches/repeat.rs @@ -67,7 +67,7 @@ fn invoke_repeat_with_args( .enumerate() .map(|(idx, arg)| Field::new(format!("arg_{idx}"), arg.data_type(), true).into()) .collect::>(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); string::repeat().invoke_with_args(ScalarFunctionArgs { args, @@ -80,7 +80,7 @@ fn invoke_repeat_with_args( fn criterion_benchmark(c: &mut Criterion) { let repeat_fn = string::repeat(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); // Scalar benchmarks (outside loop) c.bench_function("repeat/scalar_utf8", |b| { diff --git a/datafusion/functions/benches/replace.rs b/datafusion/functions/benches/replace.rs index 55fbd6ae57af2..a4b0735c2d5b3 100644 --- a/datafusion/functions/benches/replace.rs +++ b/datafusion/functions/benches/replace.rs @@ -72,7 +72,7 @@ fn invoke_replace_with_args( .enumerate() .map(|(idx, arg)| Field::new(format!("arg_{idx}"), arg.data_type(), true).into()) .collect::>(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); string::replace().invoke_with_args(ScalarFunctionArgs { args, diff --git a/datafusion/functions/benches/reverse.rs b/datafusion/functions/benches/reverse.rs index f2e2898bbfe43..4441eb80eb961 100644 --- a/datafusion/functions/benches/reverse.rs +++ b/datafusion/functions/benches/reverse.rs @@ -28,7 +28,7 @@ use std::sync::Arc; fn criterion_benchmark(c: &mut Criterion) { // All benches are single batch run with 8192 rows let reverse = datafusion_functions::unicode::reverse(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); const N_ROWS: usize = 8192; const NULL_DENSITY: f32 = 0.1; diff --git a/datafusion/functions/benches/round.rs b/datafusion/functions/benches/round.rs index 7010aa3507dbc..34c284b3a9489 100644 --- a/datafusion/functions/benches/round.rs +++ b/datafusion/functions/benches/round.rs @@ -28,7 +28,7 @@ use std::time::Duration; fn criterion_benchmark(c: &mut Criterion) { let round_fn = round(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); for size in [1024, 4096, 8192] { let mut group = c.benchmark_group(format!("round size={size}")); diff --git a/datafusion/functions/benches/signum.rs b/datafusion/functions/benches/signum.rs index e98d1b2c22ea2..c2d8a26e95cc5 100644 --- a/datafusion/functions/benches/signum.rs +++ b/datafusion/functions/benches/signum.rs @@ -42,7 +42,7 @@ fn criterion_benchmark(c: &mut Criterion) { }) .collect::>(); let return_field = Field::new("f", DataType::Float32, true).into(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); c.bench_function(&format!("signum f32 array: {size}"), |b| { b.iter(|| { diff --git a/datafusion/functions/benches/split_part.rs b/datafusion/functions/benches/split_part.rs index 7ef84a058920e..3e7ba4f943658 100644 --- a/datafusion/functions/benches/split_part.rs +++ b/datafusion/functions/benches/split_part.rs @@ -80,7 +80,7 @@ fn gen_positions(n_rows: usize, position: i64) -> ColumnarValue { fn criterion_benchmark(c: &mut Criterion) { let split_part_func = split_part(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); let mut group = c.benchmark_group("split_part"); diff --git a/datafusion/functions/benches/starts_with.rs b/datafusion/functions/benches/starts_with.rs index 17483f0da7a07..87ba1163e7b14 100644 --- a/datafusion/functions/benches/starts_with.rs +++ b/datafusion/functions/benches/starts_with.rs @@ -91,7 +91,7 @@ fn criterion_benchmark(c: &mut Criterion) { Field::new("b", DataType::Utf8, true).into(), ]; let return_field = Field::new("f", DataType::Boolean, true).into(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); c.bench_function("starts_with_StringArray_scalar_prefix", |b| { b.iter(|| { diff --git a/datafusion/functions/benches/strpos.rs b/datafusion/functions/benches/strpos.rs index 549186dbab14d..c3521cd682e00 100644 --- a/datafusion/functions/benches/strpos.rs +++ b/datafusion/functions/benches/strpos.rs @@ -168,7 +168,7 @@ fn bench_strpos( ) { let arg_fields = vec![Field::new("a", args[0].data_type(), true).into()]; let return_field: Arc = Field::new("f", DataType::Int32, true).into(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); c.bench_function(name, |b| { b.iter(|| { diff --git a/datafusion/functions/benches/substr.rs b/datafusion/functions/benches/substr.rs index 4ea90c3708ca8..f498a29ba4b63 100644 --- a/datafusion/functions/benches/substr.rs +++ b/datafusion/functions/benches/substr.rs @@ -89,7 +89,7 @@ fn invoke_substr_with_args( .enumerate() .map(|(idx, arg)| Field::new(format!("arg_{idx}"), arg.data_type(), true).into()) .collect::>(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); unicode::substr().invoke_with_args(ScalarFunctionArgs { args: args.clone(), diff --git a/datafusion/functions/benches/substr_index.rs b/datafusion/functions/benches/substr_index.rs index 663e7928bfd95..799bcb736a8e1 100644 --- a/datafusion/functions/benches/substr_index.rs +++ b/datafusion/functions/benches/substr_index.rs @@ -123,7 +123,7 @@ fn run_benchmark( Field::new(format!("arg_{idx}"), arg.data_type().clone(), true).into() }) .collect::>(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); b.iter(|| { black_box( diff --git a/datafusion/functions/benches/to_char.rs b/datafusion/functions/benches/to_char.rs index 4d866570b7dd1..8d27a172e62c8 100644 --- a/datafusion/functions/benches/to_char.rs +++ b/datafusion/functions/benches/to_char.rs @@ -143,7 +143,7 @@ fn generate_mixed_pattern_array(rng: &mut ThreadRng) -> StringArray { } fn criterion_benchmark(c: &mut Criterion) { - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); c.bench_function("to_char_array_date_only_patterns_1000", |b| { let mut rng = rand::rng(); diff --git a/datafusion/functions/benches/to_hex.rs b/datafusion/functions/benches/to_hex.rs index 33f8d9c49e8eb..a6603bc6ce0aa 100644 --- a/datafusion/functions/benches/to_hex.rs +++ b/datafusion/functions/benches/to_hex.rs @@ -29,7 +29,7 @@ use std::time::Duration; fn criterion_benchmark(c: &mut Criterion) { let hex = string::to_hex(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); c.bench_function("to_hex/scalar_i32", |b| { let args = vec![ColumnarValue::Scalar(ScalarValue::Int32(Some(2147483647)))]; diff --git a/datafusion/functions/benches/translate.rs b/datafusion/functions/benches/translate.rs index d0568ba0f5355..4242e8cfd81ca 100644 --- a/datafusion/functions/benches/translate.rs +++ b/datafusion/functions/benches/translate.rs @@ -64,7 +64,7 @@ fn invoke_translate_with_args( .enumerate() .map(|(idx, arg)| Field::new(format!("arg_{idx}"), arg.data_type(), true).into()) .collect::>(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); unicode::translate().invoke_with_args(ScalarFunctionArgs { args, diff --git a/datafusion/functions/benches/trim.rs b/datafusion/functions/benches/trim.rs index 21d99592d1820..bc32c2318793c 100644 --- a/datafusion/functions/benches/trim.rs +++ b/datafusion/functions/benches/trim.rs @@ -205,7 +205,7 @@ fn run_with_string_type( .enumerate() .map(|(idx, arg)| Field::new(format!("arg_{idx}"), arg.data_type(), true).into()) .collect::>(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); group.bench_function( format!( @@ -290,7 +290,7 @@ fn run_space_trim_benchmark( Field::new(format!("arg_{idx}"), arg.data_type(), true).into() }) .collect::>(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); group.bench_function( format!( diff --git a/datafusion/functions/benches/trunc.rs b/datafusion/functions/benches/trunc.rs index ffbedcb142c71..efddc5220c2e5 100644 --- a/datafusion/functions/benches/trunc.rs +++ b/datafusion/functions/benches/trunc.rs @@ -30,7 +30,7 @@ use std::sync::Arc; fn criterion_benchmark(c: &mut Criterion) { let trunc = trunc(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); for size in [1024, 4096, 8192] { let f32_array = Arc::new(create_primitive_array::(size, 0.2)); diff --git a/datafusion/functions/benches/upper.rs b/datafusion/functions/benches/upper.rs index 3f6fa36b18c13..f3d171163f754 100644 --- a/datafusion/functions/benches/upper.rs +++ b/datafusion/functions/benches/upper.rs @@ -35,7 +35,7 @@ fn create_args(size: usize, str_len: usize) -> Vec { fn criterion_benchmark(c: &mut Criterion) { let upper = string::upper(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); for size in [1024, 4096, 8192] { let args = create_args(size, 32); diff --git a/datafusion/functions/benches/uuid.rs b/datafusion/functions/benches/uuid.rs index 629fb950dd9ff..235a990e39feb 100644 --- a/datafusion/functions/benches/uuid.rs +++ b/datafusion/functions/benches/uuid.rs @@ -25,7 +25,7 @@ use std::sync::Arc; fn criterion_benchmark(c: &mut Criterion) { let uuid = string::uuid(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); c.bench_function("uuid", |b| { b.iter(|| { diff --git a/datafusion/functions/src/core/union_extract.rs b/datafusion/functions/src/core/union_extract.rs index 8d915fb2e2c07..5d638597a7a7a 100644 --- a/datafusion/functions/src/core/union_extract.rs +++ b/datafusion/functions/src/core/union_extract.rs @@ -180,7 +180,6 @@ mod tests { use datafusion_common::config::ConfigOptions; use datafusion_common::{Result, ScalarValue}; use datafusion_expr::{ColumnarValue, ScalarFunctionArgs, ScalarUDFImpl}; - use std::sync::Arc; use super::UnionExtractFun; @@ -216,7 +215,7 @@ mod tests { arg_fields, number_rows: 1, return_field: Field::new("f", DataType::Utf8, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), })?; assert_scalar(result, ScalarValue::Utf8(None)); @@ -239,7 +238,7 @@ mod tests { arg_fields, number_rows: 1, return_field: Field::new("f", DataType::Utf8, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), })?; assert_scalar(result, ScalarValue::Utf8(None)); @@ -261,7 +260,7 @@ mod tests { arg_fields, number_rows: 1, return_field: Field::new("f", DataType::Utf8, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), })?; assert_scalar(result, ScalarValue::new_utf8("42")); diff --git a/datafusion/functions/src/core/union_tag.rs b/datafusion/functions/src/core/union_tag.rs index fac5c82691adc..1f5032516a682 100644 --- a/datafusion/functions/src/core/union_tag.rs +++ b/datafusion/functions/src/core/union_tag.rs @@ -183,7 +183,7 @@ mod tests { number_rows: 1, return_field: Field::new("res", return_type, true).into(), arg_fields: vec![], - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) .unwrap(); @@ -206,7 +206,7 @@ mod tests { number_rows: 1, return_field: Field::new("res", return_type, true).into(), arg_fields: vec![], - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) .unwrap(); diff --git a/datafusion/functions/src/core/version.rs b/datafusion/functions/src/core/version.rs index 9c658d5918a5a..0179ca69e1f3f 100644 --- a/datafusion/functions/src/core/version.rs +++ b/datafusion/functions/src/core/version.rs @@ -101,7 +101,6 @@ mod test { use datafusion_common::config::ConfigOptions; use datafusion_expr::ScalarFunctionArgs; use datafusion_expr::ScalarUDF; - use std::sync::Arc; #[tokio::test] async fn test_version_udf() { @@ -112,7 +111,7 @@ mod test { arg_fields: vec![], number_rows: 0, return_field: Field::new("f", DataType::Utf8, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) .unwrap(); diff --git a/datafusion/functions/src/datetime/date_bin.rs b/datafusion/functions/src/datetime/date_bin.rs index 0dca23f46b9d2..0573c5498321a 100644 --- a/datafusion/functions/src/datetime/date_bin.rs +++ b/datafusion/functions/src/datetime/date_bin.rs @@ -857,7 +857,7 @@ mod tests { arg_fields, number_rows, return_field: Arc::clone(return_field), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; DateBinFunc::new().invoke_with_args(args) } diff --git a/datafusion/functions/src/datetime/date_trunc.rs b/datafusion/functions/src/datetime/date_trunc.rs index ef9896cead5a0..bc420916f45b9 100644 --- a/datafusion/functions/src/datetime/date_trunc.rs +++ b/datafusion/functions/src/datetime/date_trunc.rs @@ -1021,7 +1021,7 @@ mod tests { true, ) .into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = DateTruncFunc::new().invoke_with_args(args).unwrap(); if let ColumnarValue::Array(result) = result { @@ -1209,7 +1209,7 @@ mod tests { true, ) .into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = DateTruncFunc::new().invoke_with_args(args).unwrap(); if let ColumnarValue::Array(result) = result { @@ -1377,7 +1377,7 @@ mod tests { true, ) .into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = DateTruncFunc::new().invoke_with_args(args).unwrap(); if let ColumnarValue::Array(result) = result { diff --git a/datafusion/functions/src/datetime/from_unixtime.rs b/datafusion/functions/src/datetime/from_unixtime.rs index 05007ad1138f3..dd7949fbe1729 100644 --- a/datafusion/functions/src/datetime/from_unixtime.rs +++ b/datafusion/functions/src/datetime/from_unixtime.rs @@ -176,7 +176,7 @@ mod test { arg_fields: vec![arg_field], number_rows: 1, return_field: Field::new("f", DataType::Timestamp(Second, None), true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = FromUnixtimeFunc::new().invoke_with_args(args).unwrap(); @@ -209,7 +209,7 @@ mod test { true, ) .into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = FromUnixtimeFunc::new().invoke_with_args(args).unwrap(); diff --git a/datafusion/functions/src/datetime/make_time.rs b/datafusion/functions/src/datetime/make_time.rs index 72cca1e0fff57..13fd5dae6ec1e 100644 --- a/datafusion/functions/src/datetime/make_time.rs +++ b/datafusion/functions/src/datetime/make_time.rs @@ -227,7 +227,7 @@ mod tests { arg_fields, number_rows, return_field: Field::new("f", DataType::Time32(Second), true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; MakeTimeFunc::new().invoke_with_args(args) diff --git a/datafusion/functions/src/datetime/to_char.rs b/datafusion/functions/src/datetime/to_char.rs index 6caff4f7c7463..4012543c335c8 100644 --- a/datafusion/functions/src/datetime/to_char.rs +++ b/datafusion/functions/src/datetime/to_char.rs @@ -334,7 +334,7 @@ mod tests { ], number_rows: batch_len, return_field: Field::new("f", DataType::Utf8, true).into(), - config_options: Arc::clone(&Arc::new(ConfigOptions::default())), + config_options: Arc::clone(&ConfigOptions::default_arc()), }; let result = ToCharFunc::new() .invoke_with_args(args) @@ -439,7 +439,7 @@ mod tests { arg_fields, number_rows: 1, return_field: Field::new("f", DataType::Utf8, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = ToCharFunc::new() .invoke_with_args(args) @@ -533,7 +533,7 @@ mod tests { arg_fields, number_rows: batch_len, return_field: Field::new("f", DataType::Utf8, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = ToCharFunc::new() .invoke_with_args(args) @@ -697,7 +697,7 @@ mod tests { arg_fields, number_rows: batch_len, return_field: Field::new("f", DataType::Utf8, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = ToCharFunc::new() .invoke_with_args(args) @@ -725,7 +725,7 @@ mod tests { arg_fields, number_rows: batch_len, return_field: Field::new("f", DataType::Utf8, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = ToCharFunc::new() .invoke_with_args(args) @@ -750,7 +750,7 @@ mod tests { arg_fields: vec![arg_field], number_rows: 1, return_field: Field::new("f", DataType::Utf8, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = ToCharFunc::new().invoke_with_args(args); assert_eq!( @@ -771,7 +771,7 @@ mod tests { arg_fields, number_rows: 1, return_field: Field::new("f", DataType::Utf8, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = ToCharFunc::new().invoke_with_args(args); assert_eq!( diff --git a/datafusion/functions/src/datetime/to_date.rs b/datafusion/functions/src/datetime/to_date.rs index 55801b5db4d54..e88b025829428 100644 --- a/datafusion/functions/src/datetime/to_date.rs +++ b/datafusion/functions/src/datetime/to_date.rs @@ -219,7 +219,7 @@ mod tests { arg_fields, number_rows, return_field: Field::new("f", DataType::Date32, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; ToDateFunc::new().invoke_with_args(args) } diff --git a/datafusion/functions/src/datetime/to_local_time.rs b/datafusion/functions/src/datetime/to_local_time.rs index 335250b377c74..d81f2851073f7 100644 --- a/datafusion/functions/src/datetime/to_local_time.rs +++ b/datafusion/functions/src/datetime/to_local_time.rs @@ -514,7 +514,7 @@ mod tests { arg_fields: vec![arg_field], number_rows: 1, return_field: Field::new("f", expected.data_type(), true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) .unwrap(); match res { @@ -585,7 +585,7 @@ mod tests { true, ) .into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = ToLocalTimeFunc::new().invoke_with_args(args).unwrap(); if let ColumnarValue::Array(result) = result { diff --git a/datafusion/functions/src/datetime/to_timestamp.rs b/datafusion/functions/src/datetime/to_timestamp.rs index e88eecb6decbc..2f6b7b704198c 100644 --- a/datafusion/functions/src/datetime/to_timestamp.rs +++ b/datafusion/functions/src/datetime/to_timestamp.rs @@ -1665,7 +1665,7 @@ mod tests { arg_fields: vec![arg_field], number_rows: 4, return_field: Field::new("f", rt, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let res = udf .invoke_with_args(args) @@ -1715,7 +1715,7 @@ mod tests { arg_fields: vec![arg_field], number_rows: 5, return_field: Field::new("f", rt, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let res = udf .invoke_with_args(args) diff --git a/datafusion/functions/src/math/cot.rs b/datafusion/functions/src/math/cot.rs index 1f67ef713833f..682489c9df6c8 100644 --- a/datafusion/functions/src/math/cot.rs +++ b/datafusion/functions/src/math/cot.rs @@ -172,7 +172,7 @@ mod test { arg_fields, number_rows: array.len(), return_field: Field::new("f", DataType::Float32, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = CotFunc::new() .invoke_with_args(args) @@ -212,7 +212,7 @@ mod test { arg_fields, number_rows: array.len(), return_field: Field::new("f", DataType::Float64, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = CotFunc::new() .invoke_with_args(args) @@ -251,7 +251,7 @@ mod test { arg_fields, number_rows: 1, return_field: Field::new("f", DataType::Float64, false).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = CotFunc::new() .invoke_with_args(args) @@ -275,7 +275,7 @@ mod test { arg_fields, number_rows: 1, return_field: Field::new("f", DataType::Float32, false).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = CotFunc::new() .invoke_with_args(args) @@ -298,7 +298,7 @@ mod test { arg_fields, number_rows: 1, return_field: Field::new("f", DataType::Float64, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = CotFunc::new() .invoke_with_args(args) @@ -320,7 +320,7 @@ mod test { arg_fields, number_rows: 1, return_field: Field::new("f", DataType::Float64, false).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = CotFunc::new() .invoke_with_args(args) @@ -345,7 +345,7 @@ mod test { arg_fields, number_rows: 1, return_field: Field::new("f", DataType::Float64, false).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = CotFunc::new() .invoke_with_args(args) diff --git a/datafusion/functions/src/math/log.rs b/datafusion/functions/src/math/log.rs index 07c3c2cad2ec0..6bc293c00b01a 100644 --- a/datafusion/functions/src/math/log.rs +++ b/datafusion/functions/src/math/log.rs @@ -443,7 +443,7 @@ mod tests { arg_fields, number_rows: 4, return_field: Field::new("f", DataType::Float64, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = LogFunc::new().invoke_with_args(args); assert!(result.is_err()); @@ -463,7 +463,7 @@ mod tests { arg_fields: vec![arg_field], number_rows: 1, return_field: Field::new("f", DataType::Float64, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = LogFunc::new().invoke_with_args(args); @@ -480,7 +480,7 @@ mod tests { arg_fields: vec![arg_field], number_rows: 1, return_field: Field::new("f", DataType::Float32, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = LogFunc::new() .invoke_with_args(args) @@ -510,7 +510,7 @@ mod tests { arg_fields: vec![arg_field], number_rows: 1, return_field: Field::new("f", DataType::Float64, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = LogFunc::new() .invoke_with_args(args) @@ -544,7 +544,7 @@ mod tests { arg_fields, number_rows: 1, return_field: Field::new("f", DataType::Float32, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = LogFunc::new() .invoke_with_args(args) @@ -578,7 +578,7 @@ mod tests { arg_fields, number_rows: 1, return_field: Field::new("f", DataType::Float64, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = LogFunc::new() .invoke_with_args(args) @@ -610,7 +610,7 @@ mod tests { arg_fields: vec![arg_field], number_rows: 4, return_field: Field::new("f", DataType::Float64, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = LogFunc::new() .invoke_with_args(args) @@ -645,7 +645,7 @@ mod tests { arg_fields: vec![arg_field], number_rows: 4, return_field: Field::new("f", DataType::Float32, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = LogFunc::new() .invoke_with_args(args) @@ -686,7 +686,7 @@ mod tests { arg_fields, number_rows: 5, return_field: Field::new("f", DataType::Float64, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = LogFunc::new() .invoke_with_args(args) @@ -728,7 +728,7 @@ mod tests { arg_fields, number_rows: 4, return_field: Field::new("f", DataType::Float32, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = LogFunc::new() .invoke_with_args(args) @@ -903,7 +903,7 @@ mod tests { arg_fields: vec![arg_field], number_rows: 1, return_field: Field::new("f", DataType::Decimal128(38, 0), true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = LogFunc::new() .invoke_with_args(args) @@ -936,7 +936,7 @@ mod tests { arg_fields, number_rows: 1, return_field: Field::new("f", DataType::Float64, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = LogFunc::new() .invoke_with_args(args) @@ -970,7 +970,7 @@ mod tests { arg_fields: vec![arg_field], number_rows: 6, return_field: Field::new("f", DataType::Float64, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = LogFunc::new() .invoke_with_args(args) @@ -1015,7 +1015,7 @@ mod tests { arg_fields, number_rows: 1, return_field: Field::new("f", DataType::Float64, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = LogFunc::new() .invoke_with_args(args) @@ -1055,7 +1055,7 @@ mod tests { arg_fields, number_rows: 1, return_field: Field::new("f", DataType::Float64, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = LogFunc::new() .invoke_with_args(args) @@ -1105,7 +1105,7 @@ mod tests { arg_fields: vec![arg_field], number_rows: 7, return_field: Field::new("f", DataType::Float64, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = LogFunc::new() .invoke_with_args(args) @@ -1148,7 +1148,7 @@ mod tests { arg_fields, number_rows: 1, return_field: Field::new("f", DataType::Float64, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = LogFunc::new() .invoke_with_args(args) @@ -1181,7 +1181,7 @@ mod tests { arg_fields: vec![arg_field], number_rows: 1, return_field: Field::new("f", DataType::Float64, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = LogFunc::new() .invoke_with_args(args) diff --git a/datafusion/functions/src/math/signum.rs b/datafusion/functions/src/math/signum.rs index 8a3769a12f294..8a013da43b584 100644 --- a/datafusion/functions/src/math/signum.rs +++ b/datafusion/functions/src/math/signum.rs @@ -182,7 +182,7 @@ mod test { arg_fields, number_rows: array.len(), return_field: Field::new("f", DataType::Float32, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = SignumFunc::new() .invoke_with_args(args) @@ -229,7 +229,7 @@ mod test { arg_fields, number_rows: array.len(), return_field: Field::new("f", DataType::Float64, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = SignumFunc::new() .invoke_with_args(args) diff --git a/datafusion/functions/src/regex/regexpcount.rs b/datafusion/functions/src/regex/regexpcount.rs index 30257e62cc68f..26b33c1bfde2e 100644 --- a/datafusion/functions/src/regex/regexpcount.rs +++ b/datafusion/functions/src/regex/regexpcount.rs @@ -633,7 +633,7 @@ mod tests { arg_fields, number_rows: args.len(), return_field: Field::new("f", Int64, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) } diff --git a/datafusion/functions/src/regex/regexpinstr.rs b/datafusion/functions/src/regex/regexpinstr.rs index 4cade72bc2527..95749f1ba9579 100644 --- a/datafusion/functions/src/regex/regexpinstr.rs +++ b/datafusion/functions/src/regex/regexpinstr.rs @@ -489,7 +489,7 @@ mod tests { arg_fields, number_rows: args.len(), return_field: Arc::new(Field::new("f", Int64, true)), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) } diff --git a/datafusion/functions/src/regex/regexplike.rs b/datafusion/functions/src/regex/regexplike.rs index 68c81eaa57e2b..11c4c9eb5ad85 100644 --- a/datafusion/functions/src/regex/regexplike.rs +++ b/datafusion/functions/src/regex/regexplike.rs @@ -522,7 +522,7 @@ mod tests { arg_fields, number_rows, return_field: Arc::new(Field::new("f", DataType::Boolean, true)), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) } diff --git a/datafusion/functions/src/string/chr.rs b/datafusion/functions/src/string/chr.rs index fc661d837f6f3..51aba3d99bc51 100644 --- a/datafusion/functions/src/string/chr.rs +++ b/datafusion/functions/src/string/chr.rs @@ -160,7 +160,7 @@ mod tests { arg_fields: vec![Field::new("a", Int64, true).into()], number_rows, return_field: Field::new("f", Utf8, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) } diff --git a/datafusion/functions/src/string/concat.rs b/datafusion/functions/src/string/concat.rs index 00d7ab1b6b31a..f460abdbd41c0 100644 --- a/datafusion/functions/src/string/concat.rs +++ b/datafusion/functions/src/string/concat.rs @@ -487,7 +487,7 @@ mod tests { arg_fields, number_rows: 3, return_field: Field::new("f", Utf8, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = ConcatFunc::new().invoke_with_args(args)?; diff --git a/datafusion/functions/src/string/concat_ws.rs b/datafusion/functions/src/string/concat_ws.rs index 80e11d286ed87..98d050e720611 100644 --- a/datafusion/functions/src/string/concat_ws.rs +++ b/datafusion/functions/src/string/concat_ws.rs @@ -624,7 +624,7 @@ mod tests { arg_fields, number_rows: 3, return_field: Field::new("f", Utf8, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = ConcatWsFunc::new().invoke_with_args(args)?; @@ -661,7 +661,7 @@ mod tests { arg_fields, number_rows: 3, return_field: Field::new("f", Utf8, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = ConcatWsFunc::new().invoke_with_args(args)?; @@ -699,7 +699,7 @@ mod tests { arg_fields, number_rows: 3, return_field: Field::new("f", Utf8View, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = ConcatWsFunc::new().invoke_with_args(args)?; @@ -736,7 +736,7 @@ mod tests { arg_fields, number_rows: 3, return_field: Field::new("f", LargeUtf8, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = ConcatWsFunc::new().invoke_with_args(args)?; @@ -778,7 +778,7 @@ mod tests { arg_fields, number_rows: 3, return_field: Field::new("f", Utf8View, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = ConcatWsFunc::new().invoke_with_args(args)?; @@ -819,7 +819,7 @@ mod tests { arg_fields, number_rows: 3, return_field: Field::new("f", LargeUtf8, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = ConcatWsFunc::new().invoke_with_args(args)?; @@ -852,7 +852,7 @@ mod tests { arg_fields, number_rows: 1, return_field: Field::new("f", Utf8View, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = ConcatWsFunc::new().invoke_with_args(args)?; @@ -875,7 +875,7 @@ mod tests { arg_fields, number_rows: 2, return_field: Field::new("f", Utf8View, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = ConcatWsFunc::new().invoke_with_args(args)?; @@ -904,7 +904,7 @@ mod tests { arg_fields, number_rows: 1, return_field: Field::new("f", LargeUtf8, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = ConcatWsFunc::new().invoke_with_args(args)?; @@ -927,7 +927,7 @@ mod tests { arg_fields, number_rows: 2, return_field: Field::new("f", LargeUtf8, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = ConcatWsFunc::new().invoke_with_args(args)?; diff --git a/datafusion/functions/src/string/contains.rs b/datafusion/functions/src/string/contains.rs index b7ec95be444cc..5925775006e42 100644 --- a/datafusion/functions/src/string/contains.rs +++ b/datafusion/functions/src/string/contains.rs @@ -203,7 +203,7 @@ mod test { arg_fields, number_rows: 2, return_field: Field::new("f", DataType::Boolean, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let actual = udf.invoke_with_args(args).unwrap(); diff --git a/datafusion/functions/src/string/ends_with.rs b/datafusion/functions/src/string/ends_with.rs index f65349a83799d..8aab17cb6ec16 100644 --- a/datafusion/functions/src/string/ends_with.rs +++ b/datafusion/functions/src/string/ends_with.rs @@ -313,7 +313,7 @@ mod tests { ], number_rows: 4, return_field: Field::new("f", Boolean, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) .unwrap(); @@ -353,7 +353,7 @@ mod tests { ], number_rows: 4, return_field: Field::new("f", Boolean, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) .unwrap(); @@ -399,7 +399,7 @@ mod tests { ], number_rows: 4, return_field: Field::new("f", Boolean, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) .unwrap(); diff --git a/datafusion/functions/src/string/lower.rs b/datafusion/functions/src/string/lower.rs index d91e4595c58ac..97cf2fdd48972 100644 --- a/datafusion/functions/src/string/lower.rs +++ b/datafusion/functions/src/string/lower.rs @@ -110,7 +110,7 @@ mod tests { args: vec![ColumnarValue::Array(input)], arg_fields, return_field: Field::new("f", expected.data_type().clone(), true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = match func.invoke_with_args(args)? { diff --git a/datafusion/functions/src/string/starts_with.rs b/datafusion/functions/src/string/starts_with.rs index 61fa7d11e6e7b..b9fb82133d460 100644 --- a/datafusion/functions/src/string/starts_with.rs +++ b/datafusion/functions/src/string/starts_with.rs @@ -328,7 +328,7 @@ mod tests { ], number_rows: 4, return_field: Field::new("f", Boolean, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) .unwrap(); @@ -368,7 +368,7 @@ mod tests { ], number_rows: 4, return_field: Field::new("f", Boolean, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) .unwrap(); @@ -414,7 +414,7 @@ mod tests { ], number_rows: 4, return_field: Field::new("f", Boolean, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }) .unwrap(); diff --git a/datafusion/functions/src/string/upper.rs b/datafusion/functions/src/string/upper.rs index 80375f58c87be..42a791a8ce1cf 100644 --- a/datafusion/functions/src/string/upper.rs +++ b/datafusion/functions/src/string/upper.rs @@ -109,7 +109,7 @@ mod tests { args: vec![ColumnarValue::Array(input)], arg_fields: vec![arg_field], return_field: Field::new("f", expected.data_type().clone(), true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }; let result = match func.invoke_with_args(args)? { diff --git a/datafusion/functions/src/unicode/find_in_set.rs b/datafusion/functions/src/unicode/find_in_set.rs index 0cf20584a6bcc..f3f8a9218959e 100644 --- a/datafusion/functions/src/unicode/find_in_set.rs +++ b/datafusion/functions/src/unicode/find_in_set.rs @@ -487,7 +487,7 @@ mod tests { arg_fields, number_rows: cardinality, return_field: Field::new("f", return_type, true).into(), - config_options: Arc::new(ConfigOptions::default()), + config_options: ConfigOptions::default_arc(), }); assert!(result.is_ok()); diff --git a/datafusion/physical-expr/src/equivalence/ordering.rs b/datafusion/physical-expr/src/equivalence/ordering.rs index 2ce8a8d246fe7..ef0aef9103cc5 100644 --- a/datafusion/physical-expr/src/equivalence/ordering.rs +++ b/datafusion/physical-expr/src/equivalence/ordering.rs @@ -391,19 +391,19 @@ mod tests { Arc::clone(&test_fun), vec![Arc::clone(col_a)], &test_schema, - Arc::new(ConfigOptions::default()), + ConfigOptions::default_arc(), )?) as PhysicalExprRef; let floor_f = Arc::new(ScalarFunctionExpr::try_new( Arc::clone(&test_fun), vec![Arc::clone(col_f)], &test_schema, - Arc::new(ConfigOptions::default()), + ConfigOptions::default_arc(), )?) as PhysicalExprRef; let exp_a = Arc::new(ScalarFunctionExpr::try_new( Arc::clone(&test_fun), vec![Arc::clone(col_a)], &test_schema, - Arc::new(ConfigOptions::default()), + ConfigOptions::default_arc(), )?) as PhysicalExprRef; let a_plus_b = Arc::new(BinaryExpr::new( diff --git a/datafusion/physical-expr/src/equivalence/properties/dependency.rs b/datafusion/physical-expr/src/equivalence/properties/dependency.rs index 57804d3950852..13409968fbf00 100644 --- a/datafusion/physical-expr/src/equivalence/properties/dependency.rs +++ b/datafusion/physical-expr/src/equivalence/properties/dependency.rs @@ -1072,7 +1072,7 @@ mod tests { concat(), vec![Arc::clone(&col_a), Arc::clone(&col_b)], Field::new("f", DataType::Utf8, true).into(), - Arc::new(ConfigOptions::default()), + ConfigOptions::default_arc(), )); // Assume existing ordering is [c ASC, a ASC, b ASC] @@ -1163,7 +1163,7 @@ mod tests { concat(), vec![Arc::clone(&col_a), Arc::clone(&col_b)], Field::new("f", DataType::Utf8, true).into(), - Arc::new(ConfigOptions::default()), + ConfigOptions::default_arc(), )) as _; // Assume existing ordering is [concat(a, b) ASC, a ASC, b ASC] diff --git a/datafusion/physical-expr/src/planner.rs b/datafusion/physical-expr/src/planner.rs index fd2de812e4664..ca9071c4aca95 100644 --- a/datafusion/physical-expr/src/planner.rs +++ b/datafusion/physical-expr/src/planner.rs @@ -348,7 +348,7 @@ pub fn create_physical_expr( create_physical_exprs(args, input_dfschema, execution_props)?; let config_options = match execution_props.config_options.as_ref() { Some(config_options) => Arc::clone(config_options), - None => Arc::new(ConfigOptions::default()), + None => ConfigOptions::default_arc(), }; Ok(Arc::new(ScalarFunctionExpr::try_new( diff --git a/datafusion/physical-expr/src/projection.rs b/datafusion/physical-expr/src/projection.rs index b9f98c03da195..09d66e5666d58 100644 --- a/datafusion/physical-expr/src/projection.rs +++ b/datafusion/physical-expr/src/projection.rs @@ -1751,7 +1751,7 @@ pub(crate) mod tests { test_fun, vec![Arc::clone(col_c)], &schema, - Arc::new(ConfigOptions::default()), + ConfigOptions::default_arc(), )?) as PhysicalExprRef; let option_asc = SortOptions { diff --git a/datafusion/physical-expr/src/scalar_function.rs b/datafusion/physical-expr/src/scalar_function.rs index bb87849dbe2a2..a59b106c63859 100644 --- a/datafusion/physical-expr/src/scalar_function.rs +++ b/datafusion/physical-expr/src/scalar_function.rs @@ -424,7 +424,7 @@ mod tests { let schema = Schema::new(vec![Field::new("a", DataType::Float32, false)]); let args = vec![Arc::new(Column::new("a", 0)) as Arc]; - let config_options = Arc::new(ConfigOptions::new()); + let config_options = ConfigOptions::default_arc(); // Test volatile function let volatile_expr = ScalarFunctionExpr::try_new( diff --git a/datafusion/physical-optimizer/src/projection_pushdown.rs b/datafusion/physical-optimizer/src/projection_pushdown.rs index 44d0926a8b250..6d88ea7037f49 100644 --- a/datafusion/physical-optimizer/src/projection_pushdown.rs +++ b/datafusion/physical-optimizer/src/projection_pushdown.rs @@ -749,7 +749,7 @@ mod test { random(), vec![], FieldRef::new(Field::new("out", DataType::Float64, false)), - Arc::new(ConfigOptions::default()), + ConfigOptions::default_arc(), )), join_schema, )?; diff --git a/datafusion/physical-plan/src/joins/hash_join/shared_bounds.rs b/datafusion/physical-plan/src/joins/hash_join/shared_bounds.rs index f32dc7fa80268..5575e6b60650e 100644 --- a/datafusion/physical-plan/src/joins/hash_join/shared_bounds.rs +++ b/datafusion/physical-plan/src/joins/hash_join/shared_bounds.rs @@ -116,7 +116,7 @@ fn create_membership_predicate( struct_func(), on_right.to_vec(), return_field, - Arc::new(ConfigOptions::default()), + ConfigOptions::default_arc(), )) as Arc }; diff --git a/datafusion/proto/tests/cases/roundtrip_physical_plan.rs b/datafusion/proto/tests/cases/roundtrip_physical_plan.rs index 0a5ed766e6cc1..1697e6345fc33 100644 --- a/datafusion/proto/tests/cases/roundtrip_physical_plan.rs +++ b/datafusion/proto/tests/cases/roundtrip_physical_plan.rs @@ -1227,7 +1227,7 @@ fn roundtrip_scalar_udf() -> Result<()> { fun_def, vec![col("a", &schema)?], Field::new("f", DataType::Int64, true).into(), - Arc::new(ConfigOptions::default()), + ConfigOptions::default_arc(), ); let project = ProjectionExec::try_new( @@ -1359,7 +1359,7 @@ fn roundtrip_scalar_udf_extension_codec() -> Result<()> { Arc::new(ScalarUDF::from(MyRegexUdf::new(".*".to_string()))), vec![col("text", &schema)?], Field::new("f", DataType::Int64, true).into(), - Arc::new(ConfigOptions::default()), + ConfigOptions::default_arc(), )); let filter = Arc::new(FilterExec::try_new( @@ -1465,7 +1465,7 @@ fn roundtrip_aggregate_udf_extension_codec() -> Result<()> { Arc::new(ScalarUDF::from(MyRegexUdf::new(".*".to_string()))), vec![col("text", &schema)?], Field::new("f", DataType::Int64, true).into(), - Arc::new(ConfigOptions::default()), + ConfigOptions::default_arc(), )); let udaf = Arc::new(AggregateUDF::from(MyAggregateUDF::new( diff --git a/datafusion/spark/benches/char.rs b/datafusion/spark/benches/char.rs index 38d9ebdeb4f5f..7af2e65c1f431 100644 --- a/datafusion/spark/benches/char.rs +++ b/datafusion/spark/benches/char.rs @@ -54,7 +54,7 @@ fn criterion_benchmark(c: &mut Criterion) { .enumerate() .map(|(idx, arg)| Field::new(format!("arg_{idx}"), arg.data_type(), true).into()) .collect::>(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); c.bench_function("char", |b| { b.iter(|| { diff --git a/datafusion/spark/benches/hex.rs b/datafusion/spark/benches/hex.rs index 9785371cc5827..7e24091f3b2d0 100644 --- a/datafusion/spark/benches/hex.rs +++ b/datafusion/spark/benches/hex.rs @@ -102,7 +102,7 @@ fn run_benchmark(c: &mut Criterion, name: &str, size: usize, array: Arc>(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); c.bench_function("space", |b| { b.iter(|| { black_box( diff --git a/datafusion/spark/benches/substring.rs b/datafusion/spark/benches/substring.rs index d6eac817c322f..22ebaf3ff914b 100644 --- a/datafusion/spark/benches/substring.rs +++ b/datafusion/spark/benches/substring.rs @@ -107,7 +107,7 @@ fn invoke_substr_with_args( .enumerate() .map(|(idx, arg)| Field::new(format!("arg_{idx}"), arg.data_type(), true).into()) .collect::>(); - let config_options = Arc::new(ConfigOptions::default()); + let config_options = ConfigOptions::default_arc(); substring().invoke_with_args(ScalarFunctionArgs { args: args.clone(), diff --git a/datafusion/spark/benches/unhex.rs b/datafusion/spark/benches/unhex.rs index 7dce683485bc7..c530d5c433b95 100644 --- a/datafusion/spark/benches/unhex.rs +++ b/datafusion/spark/benches/unhex.rs @@ -100,7 +100,7 @@ fn run_benchmark(c: &mut Criterion, name: &str, size: usize, array: Arc