This is an automated email from the ASF dual-hosted git repository.
alamb pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datafusion.git
The following commit(s) were added to refs/heads/main by this push:
new 1e06b91d59 Rename `functions-array` to `functions-nested` (#11602)
1e06b91d59 is described below
commit 1e06b91d598782f8f732b104fe4c46468c4e3136
Author: Jax Liu <[email protected]>
AuthorDate: Wed Jul 24 21:09:33 2024 +0800
Rename `functions-array` to `functions-nested` (#11602)
* rename create to function-nested
* rename array_expressions to nested_expression
* rename doc and workflow
* cargo fmt
* update lock
* Update readme
* rename the missing parts
* rename the planner
* add backward compatibility
---
.github/workflows/rust.yml | 4 ++--
Cargo.toml | 4 ++--
README.md | 2 +-
datafusion-cli/Cargo.lock | 4 ++--
datafusion/core/Cargo.toml | 10 ++++++----
datafusion/core/benches/map_query_sql.rs | 2 +-
.../core/src/execution/session_state_defaults.rs | 23 +++++++++++-----------
datafusion/core/src/lib.rs | 15 ++++++++++----
datafusion/core/src/prelude.rs | 4 ++--
.../core/tests/dataframe/dataframe_functions.rs | 2 +-
datafusion/core/tests/expr_api/mod.rs | 2 +-
.../user_defined/user_defined_scalar_functions.rs | 2 +-
datafusion/expr/src/expr_rewriter/mod.rs | 2 +-
.../Cargo.toml | 6 +++---
.../README.md | 4 ++--
.../benches/array_expression.rs | 2 +-
.../benches/map.rs | 6 +++---
.../src/array_has.rs | 0
.../src/cardinality.rs | 0
.../src/concat.rs | 0
.../src/dimension.rs | 0
.../src/empty.rs | 0
.../src/except.rs | 0
.../src/expr_ext.rs | 4 ++--
.../src/extract.rs | 0
.../src/flatten.rs | 0
.../src/length.rs | 0
.../src/lib.rs | 14 ++++++-------
.../src/macros.rs | 0
.../src/make_array.rs | 0
.../src/map.rs | 0
.../src/planner.rs | 6 +++---
.../src/position.rs | 0
.../src/range.rs | 0
.../src/remove.rs | 0
.../src/repeat.rs | 0
.../src/replace.rs | 0
.../src/resize.rs | 0
.../src/reverse.rs | 0
.../src/set_ops.rs | 0
.../src/sort.rs | 0
.../src/string.rs | 0
.../src/utils.rs | 0
.../proto/tests/cases/roundtrip_logical_plan.rs | 2 +-
dev/release/README.md | 2 +-
dev/release/crate-deps.dot | 10 +++++-----
dev/release/crate-deps.svg | 22 ++++++++++-----------
dev/update_datafusion_versions.py | 2 +-
48 files changed, 83 insertions(+), 73 deletions(-)
diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml
index 2ddeebbc55..4a41fd542e 100644
--- a/.github/workflows/rust.yml
+++ b/.github/workflows/rust.yml
@@ -90,8 +90,8 @@ jobs:
# Ensure that the datafusion crate can be built with only a subset of
the function
# packages enabled.
- - name: Check datafusion (array_expressions)
- run: cargo check --no-default-features --features=array_expressions -p
datafusion
+ - name: Check datafusion (nested_expressions)
+ run: cargo check --no-default-features --features=nested_expressions
-p datafusion
- name: Check datafusion (crypto)
run: cargo check --no-default-features --features=crypto_expressions
-p datafusion
diff --git a/Cargo.toml b/Cargo.toml
index 24bde78b30..cb27a8761a 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -25,7 +25,7 @@ members = [
"datafusion/execution",
"datafusion/functions-aggregate",
"datafusion/functions",
- "datafusion/functions-array",
+ "datafusion/functions-nested",
"datafusion/optimizer",
"datafusion/physical-expr-common",
"datafusion/physical-expr",
@@ -94,7 +94,7 @@ datafusion-execution = { path = "datafusion/execution",
version = "40.0.0" }
datafusion-expr = { path = "datafusion/expr", version = "40.0.0" }
datafusion-functions = { path = "datafusion/functions", version = "40.0.0" }
datafusion-functions-aggregate = { path = "datafusion/functions-aggregate",
version = "40.0.0" }
-datafusion-functions-array = { path = "datafusion/functions-array", version =
"40.0.0" }
+datafusion-functions-nested = { path = "datafusion/functions-nested", version
= "40.0.0" }
datafusion-optimizer = { path = "datafusion/optimizer", version = "40.0.0",
default-features = false }
datafusion-physical-expr = { path = "datafusion/physical-expr", version =
"40.0.0", default-features = false }
datafusion-physical-expr-common = { path = "datafusion/physical-expr-common",
version = "40.0.0", default-features = false }
diff --git a/README.md b/README.md
index 197e5d2b3f..b1d38b6110 100644
--- a/README.md
+++ b/README.md
@@ -75,7 +75,7 @@ This crate has several [features] which can be specified in
your `Cargo.toml`.
Default features:
-- `array_expressions`: functions for working with arrays such as
`array_to_string`
+- `nested_expressions`: functions for working with nested type function such
as `array_to_string`
- `compression`: reading files compressed with `xz2`, `bzip2`, `flate2`, and
`zstd`
- `crypto_expressions`: cryptographic functions such as `md5` and `sha256`
- `datetime_expressions`: date and time functions such as `to_timestamp`
diff --git a/datafusion-cli/Cargo.lock b/datafusion-cli/Cargo.lock
index 84bff8c871..a4e87f99b5 100644
--- a/datafusion-cli/Cargo.lock
+++ b/datafusion-cli/Cargo.lock
@@ -1149,7 +1149,7 @@ dependencies = [
"datafusion-expr",
"datafusion-functions",
"datafusion-functions-aggregate",
- "datafusion-functions-array",
+ "datafusion-functions-nested",
"datafusion-optimizer",
"datafusion-physical-expr",
"datafusion-physical-expr-common",
@@ -1315,7 +1315,7 @@ dependencies = [
]
[[package]]
-name = "datafusion-functions-array"
+name = "datafusion-functions-nested"
version = "40.0.0"
dependencies = [
"arrow",
diff --git a/datafusion/core/Cargo.toml b/datafusion/core/Cargo.toml
index 4301396b23..bed9265ff0 100644
--- a/datafusion/core/Cargo.toml
+++ b/datafusion/core/Cargo.toml
@@ -40,15 +40,17 @@ name = "datafusion"
path = "src/lib.rs"
[features]
+nested_expressions = ["datafusion-functions-nested"]
+# This feature is deprecated. Use the `nested_expressions` feature instead.
+array_expressions = ["nested_expressions"]
# Used to enable the avro format
-array_expressions = ["datafusion-functions-array"]
avro = ["apache-avro", "num-traits", "datafusion-common/avro"]
backtrace = ["datafusion-common/backtrace"]
compression = ["xz2", "bzip2", "flate2", "zstd", "async-compression",
"tokio-util"]
crypto_expressions = ["datafusion-functions/crypto_expressions"]
datetime_expressions = ["datafusion-functions/datetime_expressions"]
default = [
- "array_expressions",
+ "nested_expressions",
"crypto_expressions",
"datetime_expressions",
"encoding_expressions",
@@ -102,7 +104,7 @@ datafusion-execution = { workspace = true }
datafusion-expr = { workspace = true }
datafusion-functions = { workspace = true }
datafusion-functions-aggregate = { workspace = true }
-datafusion-functions-array = { workspace = true, optional = true }
+datafusion-functions-nested = { workspace = true, optional = true }
datafusion-optimizer = { workspace = true }
datafusion-physical-expr = { workspace = true }
datafusion-physical-expr-common = { workspace = true }
@@ -221,4 +223,4 @@ name = "parquet_statistic"
[[bench]]
harness = false
name = "map_query_sql"
-required-features = ["array_expressions"]
+required-features = ["nested_expressions"]
diff --git a/datafusion/core/benches/map_query_sql.rs
b/datafusion/core/benches/map_query_sql.rs
index b6ac8b6b64..e4c5f7c5de 100644
--- a/datafusion/core/benches/map_query_sql.rs
+++ b/datafusion/core/benches/map_query_sql.rs
@@ -27,7 +27,7 @@ use tokio::runtime::Runtime;
use datafusion::prelude::SessionContext;
use datafusion_common::ScalarValue;
use datafusion_expr::Expr;
-use datafusion_functions_array::map::map;
+use datafusion_functions_nested::map::map;
mod data_utils;
diff --git a/datafusion/core/src/execution/session_state_defaults.rs
b/datafusion/core/src/execution/session_state_defaults.rs
index 0b0465e446..b7e7b5f095 100644
--- a/datafusion/core/src/execution/session_state_defaults.rs
+++ b/datafusion/core/src/execution/session_state_defaults.rs
@@ -26,8 +26,8 @@ use
crate::datasource::file_format::parquet::ParquetFormatFactory;
use crate::datasource::file_format::FileFormatFactory;
use crate::datasource::provider::{DefaultTableFactory, TableProviderFactory};
use crate::execution::context::SessionState;
-#[cfg(feature = "array_expressions")]
-use crate::functions_array;
+#[cfg(feature = "nested_expressions")]
+use crate::functions_nested;
use crate::{functions, functions_aggregate};
use datafusion_execution::config::SessionConfig;
use datafusion_execution::object_store::ObjectStoreUrl;
@@ -82,11 +82,11 @@ impl SessionStateDefaults {
pub fn default_expr_planners() -> Vec<Arc<dyn ExprPlanner>> {
let expr_planners: Vec<Arc<dyn ExprPlanner>> = vec![
Arc::new(functions::core::planner::CoreFunctionPlanner::default()),
- // register crate of array expressions (if enabled)
- #[cfg(feature = "array_expressions")]
- Arc::new(functions_array::planner::ArrayFunctionPlanner),
- #[cfg(feature = "array_expressions")]
- Arc::new(functions_array::planner::FieldAccessPlanner),
+ // register crate of nested expressions (if enabled)
+ #[cfg(feature = "nested_expressions")]
+ Arc::new(functions_nested::planner::NestedFunctionPlanner),
+ #[cfg(feature = "nested_expressions")]
+ Arc::new(functions_nested::planner::FieldAccessPlanner),
#[cfg(any(
feature = "datetime_expressions",
feature = "unicode_expressions"
@@ -100,8 +100,8 @@ impl SessionStateDefaults {
/// returns the list of default [`ScalarUDF']'s
pub fn default_scalar_functions() -> Vec<Arc<ScalarUDF>> {
let mut functions: Vec<Arc<ScalarUDF>> =
functions::all_default_functions();
- #[cfg(feature = "array_expressions")]
- functions.append(&mut functions_array::all_default_array_functions());
+ #[cfg(feature = "nested_expressions")]
+ functions.append(&mut
functions_nested::all_default_nested_functions());
functions
}
@@ -140,8 +140,9 @@ impl SessionStateDefaults {
/// registers all the builtin array functions
pub fn register_array_functions(state: &mut SessionState) {
// register crate of array expressions (if enabled)
- #[cfg(feature = "array_expressions")]
- functions_array::register_all(state).expect("can not register array
expressions");
+ #[cfg(feature = "nested_expressions")]
+ functions_nested::register_all(state)
+ .expect("can not register nested expressions");
}
/// registers all the builtin aggregate functions
diff --git a/datafusion/core/src/lib.rs b/datafusion/core/src/lib.rs
index 9b9b1db8ff..9ab6ed527d 100644
--- a/datafusion/core/src/lib.rs
+++ b/datafusion/core/src/lib.rs
@@ -458,7 +458,7 @@
//! * [datafusion_execution]: State and structures needed for execution
//! * [datafusion_expr]: [`LogicalPlan`], [`Expr`] and related logical
planning structure
//! * [datafusion_functions]: Scalar function packages
-//! * [datafusion_functions_array]: Scalar function packages for `ARRAY`s
+//! * [datafusion_functions_nested]: Scalar function packages for `ARRAY`s,
`MAP`s and `STRUCT`s
//! * [datafusion_optimizer]: [`OptimizerRule`]s and [`AnalyzerRule`]s
//! * [datafusion_physical_expr]: [`PhysicalExpr`] and related expressions
//! * [datafusion_physical_plan]: [`ExecutionPlan`] and related expressions
@@ -569,10 +569,17 @@ pub mod functions {
pub use datafusion_functions::*;
}
-/// re-export of [`datafusion_functions_array`] crate, if "array_expressions"
feature is enabled
+/// re-export of [`datafusion_functions_nested`] crate, if
"nested_expressions" feature is enabled
+pub mod functions_nested {
+ #[cfg(feature = "nested_expressions")]
+ pub use datafusion_functions_nested::*;
+}
+
+/// re-export of [`datafusion_functions_nested`] crate as [`functions_array`]
for backward compatibility, if "nested_expressions" feature is enabled
+#[deprecated(since = "41.0.0", note = "use datafusion-functions-nested
instead")]
pub mod functions_array {
- #[cfg(feature = "array_expressions")]
- pub use datafusion_functions_array::*;
+ #[cfg(feature = "nested_expressions")]
+ pub use datafusion_functions_nested::*;
}
/// re-export of [`datafusion_functions_aggregate`] crate
diff --git a/datafusion/core/src/prelude.rs b/datafusion/core/src/prelude.rs
index d82a5a2cc1..9c9fcd04bf 100644
--- a/datafusion/core/src/prelude.rs
+++ b/datafusion/core/src/prelude.rs
@@ -39,8 +39,8 @@ pub use datafusion_expr::{
Expr,
};
pub use datafusion_functions::expr_fn::*;
-#[cfg(feature = "array_expressions")]
-pub use datafusion_functions_array::expr_fn::*;
+#[cfg(feature = "nested_expressions")]
+pub use datafusion_functions_nested::expr_fn::*;
pub use std::ops::Not;
pub use std::ops::{Add, Div, Mul, Neg, Rem, Sub};
diff --git a/datafusion/core/tests/dataframe/dataframe_functions.rs
b/datafusion/core/tests/dataframe/dataframe_functions.rs
index f7b02196d8..7a0e9888a6 100644
--- a/datafusion/core/tests/dataframe/dataframe_functions.rs
+++ b/datafusion/core/tests/dataframe/dataframe_functions.rs
@@ -34,7 +34,7 @@ use datafusion_common::{DFSchema, ScalarValue};
use datafusion_expr::expr::Alias;
use datafusion_expr::ExprSchemable;
use datafusion_functions_aggregate::expr_fn::{approx_median,
approx_percentile_cont};
-use datafusion_functions_array::map::map;
+use datafusion_functions_nested::map::map;
fn test_schema() -> SchemaRef {
Arc::new(Schema::new(vec![
diff --git a/datafusion/core/tests/expr_api/mod.rs
b/datafusion/core/tests/expr_api/mod.rs
index f36f2d5398..37d06355d2 100644
--- a/datafusion/core/tests/expr_api/mod.rs
+++ b/datafusion/core/tests/expr_api/mod.rs
@@ -25,7 +25,7 @@ use datafusion_expr::AggregateExt;
use datafusion_functions::core::expr_ext::FieldAccessor;
use datafusion_functions_aggregate::first_last::first_value_udaf;
use datafusion_functions_aggregate::sum::sum_udaf;
-use datafusion_functions_array::expr_ext::{IndexAccessor, SliceAccessor};
+use datafusion_functions_nested::expr_ext::{IndexAccessor, SliceAccessor};
use sqlparser::ast::NullTreatment;
/// Tests of using and evaluating `Expr`s outside the context of a LogicalPlan
use std::sync::{Arc, OnceLock};
diff --git
a/datafusion/core/tests/user_defined/user_defined_scalar_functions.rs
b/datafusion/core/tests/user_defined/user_defined_scalar_functions.rs
index 219f6c26cf..9164e89de8 100644
--- a/datafusion/core/tests/user_defined/user_defined_scalar_functions.rs
+++ b/datafusion/core/tests/user_defined/user_defined_scalar_functions.rs
@@ -45,7 +45,7 @@ use datafusion_expr::{
LogicalPlanBuilder, OperateFunctionArg, ScalarUDF, ScalarUDFImpl,
Signature,
Volatility,
};
-use datafusion_functions_array::range::range_udf;
+use datafusion_functions_nested::range::range_udf;
/// test that casting happens on udfs.
/// c11 is f32, but `custom_sqrt` requires f64. Casting happens but the
logical plan and
diff --git a/datafusion/expr/src/expr_rewriter/mod.rs
b/datafusion/expr/src/expr_rewriter/mod.rs
index 8d460bdc8e..bf2bfe2c39 100644
--- a/datafusion/expr/src/expr_rewriter/mod.rs
+++ b/datafusion/expr/src/expr_rewriter/mod.rs
@@ -42,7 +42,7 @@ pub use order_by::rewrite_sort_cols_by_aggs;
///
/// For example, concatenating arrays `a || b` is represented as
/// `Operator::ArrowAt`, but can be implemented by calling a function
-/// `array_concat` from the `functions-array` crate.
+/// `array_concat` from the `functions-nested` crate.
// This is not used in datafusion internally, but it is still helpful for
downstream project so don't remove it.
pub trait FunctionRewrite {
/// Return a human readable name for this rewrite
diff --git a/datafusion/functions-array/Cargo.toml
b/datafusion/functions-nested/Cargo.toml
similarity index 92%
rename from datafusion/functions-array/Cargo.toml
rename to datafusion/functions-nested/Cargo.toml
index de424b2596..6a1973ecfe 100644
--- a/datafusion/functions-array/Cargo.toml
+++ b/datafusion/functions-nested/Cargo.toml
@@ -16,8 +16,8 @@
# under the License.
[package]
-name = "datafusion-functions-array"
-description = "Array Function packages for the DataFusion query engine"
+name = "datafusion-functions-nested"
+description = "Nested Type Function packages for the DataFusion query engine"
keywords = ["datafusion", "logical", "plan", "expressions"]
readme = "README.md"
version = { workspace = true }
@@ -34,7 +34,7 @@ workspace = true
[features]
[lib]
-name = "datafusion_functions_array"
+name = "datafusion_functions_nested"
path = "src/lib.rs"
# See more keys and their definitions at
https://doc.rust-lang.org/cargo/reference/manifest.html
diff --git a/datafusion/functions-array/README.md
b/datafusion/functions-nested/README.md
similarity index 87%
rename from datafusion/functions-array/README.md
rename to datafusion/functions-nested/README.md
index 25deca8e1c..8a5047c838 100644
--- a/datafusion/functions-array/README.md
+++ b/datafusion/functions-nested/README.md
@@ -17,11 +17,11 @@
under the License.
-->
-# DataFusion Array Function Library
+# DataFusion Nested Type Function Library
[DataFusion][df] is an extensible query execution framework, written in Rust,
that uses Apache Arrow as its in-memory format.
-This crate contains functions for working with arrays, such as `array_append`
that work with
+This crate contains functions for working with arrays, maps and structs, such
as `array_append` that work with
`ListArray`, `LargeListArray` and `FixedListArray` types from the `arrow`
crate.
[df]: https://crates.io/crates/datafusion
diff --git a/datafusion/functions-array/benches/array_expression.rs
b/datafusion/functions-nested/benches/array_expression.rs
similarity index 95%
rename from datafusion/functions-array/benches/array_expression.rs
rename to datafusion/functions-nested/benches/array_expression.rs
index 48b829793c..0e3ecbc726 100644
--- a/datafusion/functions-array/benches/array_expression.rs
+++ b/datafusion/functions-nested/benches/array_expression.rs
@@ -21,7 +21,7 @@ extern crate arrow;
use crate::criterion::Criterion;
use datafusion_expr::lit;
-use datafusion_functions_array::expr_fn::{array_replace_all, make_array};
+use datafusion_functions_nested::expr_fn::{array_replace_all, make_array};
fn criterion_benchmark(c: &mut Criterion) {
// Construct large arrays for benchmarking
diff --git a/datafusion/functions-array/benches/map.rs
b/datafusion/functions-nested/benches/map.rs
similarity index 95%
rename from datafusion/functions-array/benches/map.rs
rename to datafusion/functions-nested/benches/map.rs
index c2e0e641e8..c9a12eefa4 100644
--- a/datafusion/functions-array/benches/map.rs
+++ b/datafusion/functions-nested/benches/map.rs
@@ -28,8 +28,8 @@ use std::sync::Arc;
use datafusion_common::ScalarValue;
use datafusion_expr::planner::ExprPlanner;
use datafusion_expr::{ColumnarValue, Expr};
-use datafusion_functions_array::map::map_udf;
-use datafusion_functions_array::planner::ArrayFunctionPlanner;
+use datafusion_functions_nested::map::map_udf;
+use datafusion_functions_nested::planner::NestedFunctionPlanner;
fn keys(rng: &mut ThreadRng) -> Vec<String> {
let mut keys = vec![];
@@ -58,7 +58,7 @@ fn criterion_benchmark(c: &mut Criterion) {
buffer.push(Expr::Literal(ScalarValue::Int32(Some(values[i]))));
}
- let planner = ArrayFunctionPlanner {};
+ let planner = NestedFunctionPlanner {};
b.iter(|| {
black_box(
diff --git a/datafusion/functions-array/src/array_has.rs
b/datafusion/functions-nested/src/array_has.rs
similarity index 100%
rename from datafusion/functions-array/src/array_has.rs
rename to datafusion/functions-nested/src/array_has.rs
diff --git a/datafusion/functions-array/src/cardinality.rs
b/datafusion/functions-nested/src/cardinality.rs
similarity index 100%
rename from datafusion/functions-array/src/cardinality.rs
rename to datafusion/functions-nested/src/cardinality.rs
diff --git a/datafusion/functions-array/src/concat.rs
b/datafusion/functions-nested/src/concat.rs
similarity index 100%
rename from datafusion/functions-array/src/concat.rs
rename to datafusion/functions-nested/src/concat.rs
diff --git a/datafusion/functions-array/src/dimension.rs
b/datafusion/functions-nested/src/dimension.rs
similarity index 100%
rename from datafusion/functions-array/src/dimension.rs
rename to datafusion/functions-nested/src/dimension.rs
diff --git a/datafusion/functions-array/src/empty.rs
b/datafusion/functions-nested/src/empty.rs
similarity index 100%
rename from datafusion/functions-array/src/empty.rs
rename to datafusion/functions-nested/src/empty.rs
diff --git a/datafusion/functions-array/src/except.rs
b/datafusion/functions-nested/src/except.rs
similarity index 100%
rename from datafusion/functions-array/src/except.rs
rename to datafusion/functions-nested/src/except.rs
diff --git a/datafusion/functions-array/src/expr_ext.rs
b/datafusion/functions-nested/src/expr_ext.rs
similarity index 95%
rename from datafusion/functions-array/src/expr_ext.rs
rename to datafusion/functions-nested/src/expr_ext.rs
index 5505ef7468..3524d62d0b 100644
--- a/datafusion/functions-array/src/expr_ext.rs
+++ b/datafusion/functions-nested/src/expr_ext.rs
@@ -35,7 +35,7 @@ use crate::extract::{array_element, array_slice};
///
/// ```
/// # use datafusion_expr::{lit, col, Expr};
-/// # use datafusion_functions_array::expr_ext::IndexAccessor;
+/// # use datafusion_functions_nested::expr_ext::IndexAccessor;
/// let expr = col("c1")
/// .index(lit(3));
/// assert_eq!(expr.display_name().unwrap(), "c1[Int32(3)]");
@@ -65,7 +65,7 @@ impl IndexAccessor for Expr {
///
/// ```
/// # use datafusion_expr::{lit, col};
-/// # use datafusion_functions_array::expr_ext::SliceAccessor;
+/// # use datafusion_functions_nested::expr_ext::SliceAccessor;
/// let expr = col("c1")
/// .range(lit(2), lit(4));
/// assert_eq!(expr.display_name().unwrap(), "c1[Int32(2):Int32(4)]");
diff --git a/datafusion/functions-array/src/extract.rs
b/datafusion/functions-nested/src/extract.rs
similarity index 100%
rename from datafusion/functions-array/src/extract.rs
rename to datafusion/functions-nested/src/extract.rs
diff --git a/datafusion/functions-array/src/flatten.rs
b/datafusion/functions-nested/src/flatten.rs
similarity index 100%
rename from datafusion/functions-array/src/flatten.rs
rename to datafusion/functions-nested/src/flatten.rs
diff --git a/datafusion/functions-array/src/length.rs
b/datafusion/functions-nested/src/length.rs
similarity index 100%
rename from datafusion/functions-array/src/length.rs
rename to datafusion/functions-nested/src/length.rs
diff --git a/datafusion/functions-array/src/lib.rs
b/datafusion/functions-nested/src/lib.rs
similarity index 93%
rename from datafusion/functions-array/src/lib.rs
rename to datafusion/functions-nested/src/lib.rs
index f68f59dcd6..ef2c5e709b 100644
--- a/datafusion/functions-array/src/lib.rs
+++ b/datafusion/functions-nested/src/lib.rs
@@ -17,9 +17,9 @@
// Make cheap clones clear: https://github.com/apache/datafusion/issues/11143
#![deny(clippy::clone_on_ref_ptr)]
-//! Array Functions for [DataFusion].
+//! Nested type Functions for [DataFusion].
//!
-//! This crate contains a collection of array functions implemented using the
+//! This crate contains a collection of nested type functions implemented
using the
//! extension API.
//!
//! [DataFusion]: https://crates.io/crates/datafusion
@@ -102,8 +102,8 @@ pub mod expr_fn {
pub use super::string::string_to_array;
}
-/// Return all default array functions
-pub fn all_default_array_functions() -> Vec<Arc<ScalarUDF>> {
+/// Return all default nested type functions
+pub fn all_default_nested_functions() -> Vec<Arc<ScalarUDF>> {
vec![
string::array_to_string_udf(),
string::string_to_array_udf(),
@@ -148,7 +148,7 @@ pub fn all_default_array_functions() -> Vec<Arc<ScalarUDF>>
{
/// Registers all enabled packages with a [`FunctionRegistry`]
pub fn register_all(registry: &mut dyn FunctionRegistry) -> Result<()> {
- let functions: Vec<Arc<ScalarUDF>> = all_default_array_functions();
+ let functions: Vec<Arc<ScalarUDF>> = all_default_nested_functions();
functions.into_iter().try_for_each(|udf| {
let existing_udf = registry.register_udf(udf)?;
if let Some(existing_udf) = existing_udf {
@@ -162,14 +162,14 @@ pub fn register_all(registry: &mut dyn FunctionRegistry)
-> Result<()> {
#[cfg(test)]
mod tests {
- use crate::all_default_array_functions;
+ use crate::all_default_nested_functions;
use datafusion_common::Result;
use std::collections::HashSet;
#[test]
fn test_no_duplicate_name() -> Result<()> {
let mut names = HashSet::new();
- for func in all_default_array_functions() {
+ for func in all_default_nested_functions() {
assert!(
names.insert(func.name().to_string().to_lowercase()),
"duplicate function name: {}",
diff --git a/datafusion/functions-array/src/macros.rs
b/datafusion/functions-nested/src/macros.rs
similarity index 100%
rename from datafusion/functions-array/src/macros.rs
rename to datafusion/functions-nested/src/macros.rs
diff --git a/datafusion/functions-array/src/make_array.rs
b/datafusion/functions-nested/src/make_array.rs
similarity index 100%
rename from datafusion/functions-array/src/make_array.rs
rename to datafusion/functions-nested/src/make_array.rs
diff --git a/datafusion/functions-array/src/map.rs
b/datafusion/functions-nested/src/map.rs
similarity index 100%
rename from datafusion/functions-array/src/map.rs
rename to datafusion/functions-nested/src/map.rs
diff --git a/datafusion/functions-array/src/planner.rs
b/datafusion/functions-nested/src/planner.rs
similarity index 97%
rename from datafusion/functions-array/src/planner.rs
rename to datafusion/functions-nested/src/planner.rs
index 3f779c9f11..97c54cc77b 100644
--- a/datafusion/functions-array/src/planner.rs
+++ b/datafusion/functions-nested/src/planner.rs
@@ -15,7 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-//! SQL planning extensions like [`ArrayFunctionPlanner`] and
[`FieldAccessPlanner`]
+//! SQL planning extensions like [`NestedFunctionPlanner`] and
[`FieldAccessPlanner`]
use datafusion_common::{exec_err, utils::list_ndims, DFSchema, Result};
use datafusion_expr::expr::ScalarFunction;
@@ -35,9 +35,9 @@ use crate::{
make_array::make_array,
};
-pub struct ArrayFunctionPlanner;
+pub struct NestedFunctionPlanner;
-impl ExprPlanner for ArrayFunctionPlanner {
+impl ExprPlanner for NestedFunctionPlanner {
fn plan_binary_op(
&self,
expr: RawBinaryExpr,
diff --git a/datafusion/functions-array/src/position.rs
b/datafusion/functions-nested/src/position.rs
similarity index 100%
rename from datafusion/functions-array/src/position.rs
rename to datafusion/functions-nested/src/position.rs
diff --git a/datafusion/functions-array/src/range.rs
b/datafusion/functions-nested/src/range.rs
similarity index 100%
rename from datafusion/functions-array/src/range.rs
rename to datafusion/functions-nested/src/range.rs
diff --git a/datafusion/functions-array/src/remove.rs
b/datafusion/functions-nested/src/remove.rs
similarity index 100%
rename from datafusion/functions-array/src/remove.rs
rename to datafusion/functions-nested/src/remove.rs
diff --git a/datafusion/functions-array/src/repeat.rs
b/datafusion/functions-nested/src/repeat.rs
similarity index 100%
rename from datafusion/functions-array/src/repeat.rs
rename to datafusion/functions-nested/src/repeat.rs
diff --git a/datafusion/functions-array/src/replace.rs
b/datafusion/functions-nested/src/replace.rs
similarity index 100%
rename from datafusion/functions-array/src/replace.rs
rename to datafusion/functions-nested/src/replace.rs
diff --git a/datafusion/functions-array/src/resize.rs
b/datafusion/functions-nested/src/resize.rs
similarity index 100%
rename from datafusion/functions-array/src/resize.rs
rename to datafusion/functions-nested/src/resize.rs
diff --git a/datafusion/functions-array/src/reverse.rs
b/datafusion/functions-nested/src/reverse.rs
similarity index 100%
rename from datafusion/functions-array/src/reverse.rs
rename to datafusion/functions-nested/src/reverse.rs
diff --git a/datafusion/functions-array/src/set_ops.rs
b/datafusion/functions-nested/src/set_ops.rs
similarity index 100%
rename from datafusion/functions-array/src/set_ops.rs
rename to datafusion/functions-nested/src/set_ops.rs
diff --git a/datafusion/functions-array/src/sort.rs
b/datafusion/functions-nested/src/sort.rs
similarity index 100%
rename from datafusion/functions-array/src/sort.rs
rename to datafusion/functions-nested/src/sort.rs
diff --git a/datafusion/functions-array/src/string.rs
b/datafusion/functions-nested/src/string.rs
similarity index 100%
rename from datafusion/functions-array/src/string.rs
rename to datafusion/functions-nested/src/string.rs
diff --git a/datafusion/functions-array/src/utils.rs
b/datafusion/functions-nested/src/utils.rs
similarity index 100%
rename from datafusion/functions-array/src/utils.rs
rename to datafusion/functions-nested/src/utils.rs
diff --git a/datafusion/proto/tests/cases/roundtrip_logical_plan.rs
b/datafusion/proto/tests/cases/roundtrip_logical_plan.rs
index e17515086e..25223c3731 100644
--- a/datafusion/proto/tests/cases/roundtrip_logical_plan.rs
+++ b/datafusion/proto/tests/cases/roundtrip_logical_plan.rs
@@ -44,7 +44,7 @@ use datafusion::functions_aggregate::expr_fn::{
count_distinct, covar_pop, covar_samp, first_value, grouping, median,
stddev,
stddev_pop, sum, var_pop, var_sample,
};
-use datafusion::functions_array::map::map;
+use datafusion::functions_nested::map::map;
use datafusion::prelude::*;
use datafusion::test_util::{TestTableFactory, TestTableProvider};
use datafusion_common::config::TableOptions;
diff --git a/dev/release/README.md b/dev/release/README.md
index 9486222c51..c6bc9be2b0 100644
--- a/dev/release/README.md
+++ b/dev/release/README.md
@@ -268,7 +268,7 @@ dot -Tsvg dev/release/crate-deps.dot >
dev/release/crate-deps.svg
(cd datafusion/functions-aggregate && cargo publish)
(cd datafusion/physical-expr && cargo publish)
(cd datafusion/functions && cargo publish)
-(cd datafusion/functions-array && cargo publish)
+(cd datafusion/functions-nested && cargo publish)
(cd datafusion/sql && cargo publish)
(cd datafusion/optimizer && cargo publish)
(cd datafusion/common-runtime && cargo publish)
diff --git a/dev/release/crate-deps.dot b/dev/release/crate-deps.dot
index 69811c7d61..1d903a5602 100644
--- a/dev/release/crate-deps.dot
+++ b/dev/release/crate-deps.dot
@@ -74,15 +74,15 @@ digraph G {
datafusion -> datafusion_execution
datafusion -> datafusion_expr
datafusion -> datafusion_functions
- datafusion -> datafusion_functions_array
+ datafusion -> datafusion_functions_nested
datafusion -> datafusion_optimizer
datafusion -> datafusion_physical_expr
datafusion -> datafusion_physical_plan
datafusion -> datafusion_sql
- datafusion_functions_array
- datafusion_functions_array -> datafusion_common
- datafusion_functions_array -> datafusion_execution
- datafusion_functions_array -> datafusion_expr
+ datafusion_functions_nested
+ datafusion_functions_nested -> datafusion_common
+ datafusion_functions_nested -> datafusion_execution
+ datafusion_functions_nested -> datafusion_expr
datafusion_execution
datafusion_execution -> datafusion_common
datafusion_execution -> datafusion_expr
diff --git a/dev/release/crate-deps.svg b/dev/release/crate-deps.svg
index cf60bf7526..c76fe3abb4 100644
--- a/dev/release/crate-deps.svg
+++ b/dev/release/crate-deps.svg
@@ -153,15 +153,15 @@
<path fill="none" stroke="black" d="M932.78,-364.97C895.04,-354.05
838.86,-337.8 795.58,-325.28"/>
<polygon fill="black" stroke="black" points="796.29,-321.84 785.71,-322.43
794.34,-328.57 796.29,-321.84"/>
</g>
-<!-- datafusion_functions_array -->
+<!-- datafusion_functions_nested -->
<g id="node16" class="node">
-<title>datafusion_functions_array</title>
+<title>datafusion_functions_nested</title>
<ellipse fill="none" stroke="black" cx="1279.38" cy="-234" rx="135.68"
ry="18"/>
-<text text-anchor="middle" x="1279.38" y="-230.3" font-family="Times,serif"
font-size="14.00">datafusion_functions_array</text>
+<text text-anchor="middle" x="1279.38" y="-230.3" font-family="Times,serif"
font-size="14.00">datafusion_functions_nested</text>
</g>
-<!-- datafusion->datafusion_functions_array -->
+<!-- datafusion->datafusion_functions_nested -->
<g id="edge45" class="edge">
-<title>datafusion->datafusion_functions_array</title>
+<title>datafusion->datafusion_functions_nested</title>
<path fill="none" stroke="black" d="M1005.59,-362.47C1059.89,-337.19
1171.92,-285.03 1234.54,-255.88"/>
<polygon fill="black" stroke="black" points="1236.19,-258.97 1243.78,-251.58
1233.23,-252.63 1236.19,-258.97"/>
</g>
@@ -411,21 +411,21 @@
<path fill="none" stroke="black" d="M1574.65,-431.7C1582.24,-405.14
1595.38,-352.61 1595.38,-307 1595.38,-307 1595.38,-307 1595.38,-161
1595.38,-108.7 1565.1,-95.53 1518.38,-72 1467.03,-46.14 1111.46,-29.63
927.36,-22.72"/>
<polygon fill="black" stroke="black" points="927.23,-19.22 917.1,-22.34
926.97,-26.21 927.23,-19.22"/>
</g>
-<!-- datafusion_functions_array->datafusion_common -->
+<!-- datafusion_functions_nested->datafusion_common -->
<g id="edge50" class="edge">
-<title>datafusion_functions_array->datafusion_common</title>
+<title>datafusion_functions_nested->datafusion_common</title>
<path fill="none" stroke="black" d="M1253.53,-216.22C1203.95,-184.59
1091.36,-115.46 989.38,-72 955.26,-57.46 915.79,-45 883.28,-35.83"/>
<polygon fill="black" stroke="black" points="884,-32.4 873.43,-33.09
882.12,-39.14 884,-32.4"/>
</g>
-<!-- datafusion_functions_array->datafusion_expr -->
+<!-- datafusion_functions_nested->datafusion_expr -->
<g id="edge52" class="edge">
-<title>datafusion_functions_array->datafusion_expr</title>
+<title>datafusion_functions_nested->datafusion_expr</title>
<path fill="none" stroke="black" d="M1240.69,-216.61C1191.68,-196.5
1104.24,-162.78 1026.38,-144 924.46,-119.42 804.61,-105.26 724.94,-97.87"/>
<polygon fill="black" stroke="black" points="725.22,-94.38 714.94,-96.96
724.59,-101.35 725.22,-94.38"/>
</g>
-<!-- datafusion_functions_array->datafusion_execution -->
+<!-- datafusion_functions_nested->datafusion_execution -->
<g id="edge51" class="edge">
-<title>datafusion_functions_array->datafusion_execution</title>
+<title>datafusion_functions_nested->datafusion_execution</title>
<path fill="none" stroke="black" d="M1201.74,-219.17C1134.05,-207.11
1036.21,-189.69 967.5,-177.45"/>
<polygon fill="black" stroke="black" points="968.05,-173.99 957.59,-175.68
966.82,-180.88 968.05,-173.99"/>
</g>
diff --git a/dev/update_datafusion_versions.py
b/dev/update_datafusion_versions.py
index 74a8a2ebd5..2e3374cd92 100755
--- a/dev/update_datafusion_versions.py
+++ b/dev/update_datafusion_versions.py
@@ -35,7 +35,7 @@ crates = {
'datafusion-expr': 'datafusion/expr/Cargo.toml',
'datafusion-functions': 'datafusion/functions/Cargo.toml',
'datafusion-functions-aggregate':
'datafusion/functions-aggregate/Cargo.toml',
- 'datafusion-functions-array': 'datafusion/functions-array/Cargo.toml',
+ 'datafusion-functions-nested': 'datafusion/functions-nested/Cargo.toml',
'datafusion-optimizer': 'datafusion/optimizer/Cargo.toml',
'datafusion-physical-expr': 'datafusion/physical-expr/Cargo.toml',
'datafusion-physical-expr-common':
'datafusion/physical-expr-common/Cargo.toml',
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]