Skip to content

Commit 3e79905

Browse files
committed
Add array_except scalar function
1 parent fd3f692 commit 3e79905

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

datafusion/tests/test_functions.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,14 @@ def py_flatten(arr):
439439
f.list_union(col, literal([12.0, 999.0])),
440440
lambda: [np.union1d(arr, [12.0, 999.0]) for arr in data],
441441
],
442+
[
443+
f.array_except(col, literal([3.0])),
444+
lambda: [np.setdiff1d(arr, [3.0]) for arr in data],
445+
],
446+
[
447+
f.list_except(col, literal([3.0])),
448+
lambda: [np.setdiff1d(arr, [3.0]) for arr in data],
449+
],
442450
[f.flatten(literal(data)), lambda: [py_flatten(data)]],
443451
[
444452
f.range(literal(1), literal(5), literal(2)),

src/functions.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -451,6 +451,8 @@ scalar_function!(array_intersect, ArrayIntersect);
451451
scalar_function!(list_intersect, ArrayIntersect);
452452
scalar_function!(array_union, ArrayUnion);
453453
scalar_function!(list_union, ArrayUnion);
454+
scalar_function!(array_except, ArrayExcept);
455+
scalar_function!(list_except, ArrayExcept);
454456
scalar_function!(flatten, Flatten);
455457

456458
aggregate_function!(approx_distinct, ApproxDistinct);
@@ -675,6 +677,8 @@ pub(crate) fn init_module(m: &PyModule) -> PyResult<()> {
675677
m.add_wrapped(wrap_pyfunction!(list_intersect))?;
676678
m.add_wrapped(wrap_pyfunction!(array_union))?;
677679
m.add_wrapped(wrap_pyfunction!(list_union))?;
680+
m.add_wrapped(wrap_pyfunction!(array_except))?;
681+
m.add_wrapped(wrap_pyfunction!(list_except))?;
678682
m.add_wrapped(wrap_pyfunction!(array_join))?;
679683
m.add_wrapped(wrap_pyfunction!(list_to_string))?;
680684
m.add_wrapped(wrap_pyfunction!(list_join))?;

0 commit comments

Comments
 (0)