Skip to content

Commit b7f4772

Browse files
jayzhan211alamb
andauthored
Port ArrayHas family to functions-array (#9496)
* array has rewrite Signed-off-by: jayzhan211 <[email protected]> * first draft Signed-off-by: jayzhan211 <[email protected]> * rm dims Signed-off-by: jayzhan211 <[email protected]> * replace optimizer Signed-off-by: jayzhan211 <[email protected]> * remove proto and import udf Signed-off-by: jayzhan211 <[email protected]> * Remove unecessary dependency * Add doc Co-authored-by: Andrew Lamb <[email protected]> * fmt Signed-off-by: jayzhan211 <[email protected]> --------- Signed-off-by: jayzhan211 <[email protected]> Co-authored-by: Andrew Lamb <[email protected]>
1 parent e3e64fe commit b7f4772

File tree

18 files changed

+444
-248
lines changed

18 files changed

+444
-248
lines changed

datafusion-cli/Cargo.lock

Lines changed: 21 additions & 19 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

datafusion/expr/src/built_in_function.rs

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -118,12 +118,6 @@ pub enum BuiltinScalarFunction {
118118
ArraySort,
119119
/// array_concat
120120
ArrayConcat,
121-
/// array_has
122-
ArrayHas,
123-
/// array_has_all
124-
ArrayHasAll,
125-
/// array_has_any
126-
ArrayHasAny,
127121
/// array_pop_front
128122
ArrayPopFront,
129123
/// array_pop_back
@@ -367,9 +361,6 @@ impl BuiltinScalarFunction {
367361
BuiltinScalarFunction::ArraySort => Volatility::Immutable,
368362
BuiltinScalarFunction::ArrayConcat => Volatility::Immutable,
369363
BuiltinScalarFunction::ArrayEmpty => Volatility::Immutable,
370-
BuiltinScalarFunction::ArrayHasAll => Volatility::Immutable,
371-
BuiltinScalarFunction::ArrayHasAny => Volatility::Immutable,
372-
BuiltinScalarFunction::ArrayHas => Volatility::Immutable,
373364
BuiltinScalarFunction::ArrayDistinct => Volatility::Immutable,
374365
BuiltinScalarFunction::ArrayElement => Volatility::Immutable,
375366
BuiltinScalarFunction::ArrayExcept => Volatility::Immutable,
@@ -536,10 +527,7 @@ impl BuiltinScalarFunction {
536527

537528
Ok(expr_type)
538529
}
539-
BuiltinScalarFunction::ArrayHasAll
540-
| BuiltinScalarFunction::ArrayHasAny
541-
| BuiltinScalarFunction::ArrayHas
542-
| BuiltinScalarFunction::ArrayEmpty => Ok(Boolean),
530+
BuiltinScalarFunction::ArrayEmpty => Ok(Boolean),
543531
BuiltinScalarFunction::ArrayDistinct => Ok(input_expr_types[0].clone()),
544532
BuiltinScalarFunction::ArrayElement => match &input_expr_types[0] {
545533
List(field)
@@ -849,12 +837,6 @@ impl BuiltinScalarFunction {
849837
}
850838
BuiltinScalarFunction::ArrayExcept => Signature::any(2, self.volatility()),
851839
BuiltinScalarFunction::Flatten => Signature::array(self.volatility()),
852-
BuiltinScalarFunction::ArrayHasAll | BuiltinScalarFunction::ArrayHasAny => {
853-
Signature::any(2, self.volatility())
854-
}
855-
BuiltinScalarFunction::ArrayHas => {
856-
Signature::array_and_element(self.volatility())
857-
}
858840
BuiltinScalarFunction::ArrayLength => {
859841
Signature::variadic_any(self.volatility())
860842
}
@@ -1423,11 +1405,6 @@ impl BuiltinScalarFunction {
14231405
],
14241406
BuiltinScalarFunction::ArrayExcept => &["array_except", "list_except"],
14251407
BuiltinScalarFunction::Flatten => &["flatten"],
1426-
BuiltinScalarFunction::ArrayHasAll => &["array_has_all", "list_has_all"],
1427-
BuiltinScalarFunction::ArrayHasAny => &["array_has_any", "list_has_any"],
1428-
BuiltinScalarFunction::ArrayHas => {
1429-
&["array_has", "list_has", "array_contains", "list_contains"]
1430-
}
14311408
BuiltinScalarFunction::ArrayLength => &["array_length", "list_length"],
14321409
BuiltinScalarFunction::ArrayPopFront => {
14331410
&["array_pop_front", "list_pop_front"]

datafusion/expr/src/expr_fn.rs

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -611,30 +611,12 @@ scalar_expr!(
611611
);
612612

613613
nary_scalar_expr!(ArrayConcat, array_concat, "concatenates arrays.");
614-
scalar_expr!(
615-
ArrayHas,
616-
array_has,
617-
first_array second_array,
618-
"returns true, if the element appears in the first array, otherwise false."
619-
);
620614
scalar_expr!(
621615
ArrayEmpty,
622616
array_empty,
623617
array,
624618
"returns true for an empty array or false for a non-empty array."
625619
);
626-
scalar_expr!(
627-
ArrayHasAll,
628-
array_has_all,
629-
first_array second_array,
630-
"returns true if each element of the second array appears in the first array; otherwise, it returns false."
631-
);
632-
scalar_expr!(
633-
ArrayHasAny,
634-
array_has_any,
635-
first_array second_array,
636-
"returns true if at least one element of the second array appears in the first array; otherwise, it returns false."
637-
);
638620
scalar_expr!(
639621
Flatten,
640622
flatten,

datafusion/functions-array/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,5 +41,6 @@ arrow = { workspace = true }
4141
datafusion-common = { workspace = true }
4242
datafusion-execution = { workspace = true }
4343
datafusion-expr = { workspace = true }
44+
itertools = { version = "0.12", features = ["use_std"] }
4445
log = { workspace = true }
4546
paste = "1.0.14"

0 commit comments

Comments
 (0)