This is an automated email from the ASF dual-hosted git repository.

jayzhan pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-datafusion.git


The following commit(s) were added to refs/heads/main by this push:
     new e337832946 Issue-New - Add array_empty and list_empty functions 
support as alias for empty function (#9807)
e337832946 is described below

commit e337832946fc69f6ceccd14b96a071cc2cd4693d
Author: Eren Avsarogullari <[email protected]>
AuthorDate: Tue Mar 26 16:37:51 2024 -0700

    Issue-New - Add array_empty and list_empty functions support as alias for 
empty function (#9807)
---
 datafusion/functions-array/src/empty.rs        |  6 ++-
 datafusion/sqllogictest/test_files/array.slt   | 71 +++++++++++++++++++++++++-
 docs/source/user-guide/expressions.md          |  1 +
 docs/source/user-guide/sql/scalar_functions.md | 24 +++++++--
 4 files changed, 95 insertions(+), 7 deletions(-)

diff --git a/datafusion/functions-array/src/empty.rs 
b/datafusion/functions-array/src/empty.rs
index f11a6f07cf..d5fa174eee 100644
--- a/datafusion/functions-array/src/empty.rs
+++ b/datafusion/functions-array/src/empty.rs
@@ -45,7 +45,11 @@ impl ArrayEmpty {
     pub fn new() -> Self {
         Self {
             signature: Signature::array(Volatility::Immutable),
-            aliases: vec![String::from("empty")],
+            aliases: vec![
+                "empty".to_string(),
+                "array_empty".to_string(),
+                "list_empty".to_string(),
+            ],
         }
     }
 }
diff --git a/datafusion/sqllogictest/test_files/array.slt 
b/datafusion/sqllogictest/test_files/array.slt
index ad979a3167..3456963aac 100644
--- a/datafusion/sqllogictest/test_files/array.slt
+++ b/datafusion/sqllogictest/test_files/array.slt
@@ -6116,7 +6116,7 @@ from fixed_size_flatten_table;
 [1, 2, 3] [1, 2, 3, 4, 5, 6] [1, 2, 3] [1.0, 2.1, 2.2, 3.2, 3.3, 3.4]
 [1, 2, 3, 4, 5, 6] [8, 9, 10, 11, 12, 13] [1, 2, 3] [1.0, 2.0, 3.0, 4.0, 5.0, 
6.0]
 
-## empty
+## empty (aliases: `array_empty`, `list_empty`)
 # empty scalar function #1
 query B
 select empty(make_array(1));
@@ -6207,6 +6207,75 @@ NULL
 false
 false
 
+## array_empty (aliases: `empty`, `list_empty`)
+# array_empty scalar function #1
+query B
+select array_empty(make_array(1));
+----
+false
+
+query B
+select array_empty(arrow_cast(make_array(1), 'LargeList(Int64)'));
+----
+false
+
+# array_empty scalar function #2
+query B
+select array_empty(make_array());
+----
+true
+
+query B
+select array_empty(arrow_cast(make_array(), 'LargeList(Null)'));
+----
+true
+
+# array_empty scalar function #3
+query B
+select array_empty(make_array(NULL));
+----
+false
+
+query B
+select array_empty(arrow_cast(make_array(NULL), 'LargeList(Null)'));
+----
+false
+
+## list_empty (aliases: `empty`, `array_empty`)
+# list_empty scalar function #1
+query B
+select list_empty(make_array(1));
+----
+false
+
+query B
+select list_empty(arrow_cast(make_array(1), 'LargeList(Int64)'));
+----
+false
+
+# list_empty scalar function #2
+query B
+select list_empty(make_array());
+----
+true
+
+query B
+select list_empty(arrow_cast(make_array(), 'LargeList(Null)'));
+----
+true
+
+# list_empty scalar function #3
+query B
+select list_empty(make_array(NULL));
+----
+false
+
+query B
+select list_empty(arrow_cast(make_array(NULL), 'LargeList(Null)'));
+----
+false
+
+# string_to_array scalar function
 query ?
 SELECT string_to_array('abcxxxdef', 'xxx')
 ----
diff --git a/docs/source/user-guide/expressions.md 
b/docs/source/user-guide/expressions.md
index 005d2ec942..a5fc134916 100644
--- a/docs/source/user-guide/expressions.md
+++ b/docs/source/user-guide/expressions.md
@@ -217,6 +217,7 @@ select log(-1), log(0), sqrt(-1);
 | array_dims(array)                              | Returns an array of the 
array's dimensions. `array_dims([[1, 2, 3], [4, 5, 6]]) -> [2, 3]`              
                                                                                
                                |
 | array_distinct(array)                          | Returns distinct values 
from the array after removing duplicates. `array_distinct([1, 3, 2, 3, 1, 2, 
4]) -> [1, 2, 3, 4]`                                                            
                                   |
 | array_element(array, index)                    | Extracts the element with 
the index n from the array `array_element([1, 2, 3, 4], 3) -> 3`                
                                                                                
                              |
+| empty(array)                                   | Returns true for an empty 
array or false for a non-empty array. `empty([1]) -> false`                     
                                                                                
                              |
 | flatten(array)                                 | Converts an array of arrays 
to a flat array `flatten([[1], [2, 3], [4, 5, 6]]) -> [1, 2, 3, 4, 5, 6]`       
                                                                                
                            |
 | array_length(array, dimension)                 | Returns the length of the 
array dimension. `array_length([1, 2, 3, 4, 5]) -> 5`                           
                                                                                
                              |
 | array_ndims(array)                             | Returns the number of 
dimensions of the array. `array_ndims([[1, 2, 3], [4, 5, 6]]) -> 2`             
                                                                                
                                  |
diff --git a/docs/source/user-guide/sql/scalar_functions.md 
b/docs/source/user-guide/sql/scalar_functions.md
index 5eb3436b42..52edf4bb72 100644
--- a/docs/source/user-guide/sql/scalar_functions.md
+++ b/docs/source/user-guide/sql/scalar_functions.md
@@ -1931,6 +1931,7 @@ from_unixtime(expression)
 - [array_has_all](#array_has_all)
 - [array_has_any](#array_has_any)
 - [array_element](#array_element)
+- [array_empty](#array_empty)
 - [array_except](#array_except)
 - [array_extract](#array_extract)
 - [array_fill](#array_fill)
@@ -3009,6 +3010,11 @@ empty(array)
 +------------------+
 ```
 
+#### Aliases
+
+- array_empty,
+- list_empty
+
 ### `generate_series`
 
 Similar to the range function, but it includes the upper bound.
@@ -3038,10 +3044,6 @@ generate_series(start, stop, step)
 
 _Alias of [array_append](#array_append)._
 
-### `list_sort`
-
-_Alias of [array_sort](#array_sort)._
-
 ### `list_cat`
 
 _Alias of [array_concat](#array_concat)._
@@ -3062,6 +3064,10 @@ _Alias of [array_dims](#array_distinct)._
 
 _Alias of [array_element](#array_element)._
 
+### `list_empty`
+
+_Alias of [empty](#empty)._
+
 ### `list_except`
 
 _Alias of [array_element](#array_except)._
@@ -3170,13 +3176,17 @@ _Alias of [array_reverse](#array_reverse)._
 
 _Alias of [array_slice](#array_slice)._
 
+### `list_sort`
+
+_Alias of [array_sort](#array_sort)._
+
 ### `list_to_string`
 
 _Alias of [array_to_string](#array_to_string)._
 
 ### `list_union`
 
-_Alias of [array_to_string](#array_union)._
+_Alias of [array_union](#array_union)._
 
 ### `make_array`
 
@@ -3186,6 +3196,10 @@ Returns an Arrow array using the specified input 
expressions.
 make_array(expression1[, ..., expression_n])
 ```
 
+### `array_empty`
+
+_Alias of [empty](#empty)._
+
 #### Arguments
 
 - **expression_n**: Expression to include in the output array.

Reply via email to