You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by al...@apache.org on 2023/06/28 21:10:13 UTC
[arrow-datafusion] branch main updated: Minor: Add array / array sqllogic tests for `array_contains` (#6771)
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/arrow-datafusion.git
The following commit(s) were added to refs/heads/main by this push:
new 6c8df1a1d5 Minor: Add array / array sqllogic tests for `array_contains` (#6771)
6c8df1a1d5 is described below
commit 6c8df1a1d56702e21c4f9b92f32a8921a10bdcdb
Author: Andrew Lamb <an...@nerdnetworks.org>
AuthorDate: Wed Jun 28 17:10:08 2023 -0400
Minor: Add array / array sqllogic tests for `array_contains` (#6771)
* Minor: Add array / array sqllogic tests
* Add additional nested cases
---
.../core/tests/sqllogictests/test_files/array.slt | 109 +++++++++++++++++++++
1 file changed, 109 insertions(+)
diff --git a/datafusion/core/tests/sqllogictests/test_files/array.slt b/datafusion/core/tests/sqllogictests/test_files/array.slt
index 3c94b5bf41..a19a369b07 100644
--- a/datafusion/core/tests/sqllogictests/test_files/array.slt
+++ b/datafusion/core/tests/sqllogictests/test_files/array.slt
@@ -19,6 +19,8 @@
## Array expressions Tests
#############
+## make_array
+
# array scalar function #1
query ??? rowsort
select make_array(1, 2, 3), make_array(1.0, 2.0, 3.0), make_array('h', 'e', 'l', 'l', 'o');
@@ -61,6 +63,8 @@ select make_array(make_array()), make_array(make_array(make_array()))
----
[[]] [[[]]]
+## array_append
+
# TODO issue: https://github.com/apache/arrow-datafusion/issues/6596
# array_append scalar function #1
query error DataFusion error: SQL error: ParserError\("Expected an SQL statement, found: caused"\)
@@ -80,6 +84,8 @@ select array_append(make_array(1, 2, 3), 4), array_append(make_array(1.0, 2.0, 3
----
[1, 2, 3, 4] [1.0, 2.0, 3.0, 4.0] [h, e, l, l, o]
+## array_prepend
+
# array_prepend scalar function #1
query error DataFusion error: SQL error: ParserError\("Expected an SQL statement, found: caused"\)
caused by
@@ -98,6 +104,8 @@ select array_prepend(1, make_array(2, 3, 4)), array_prepend(1.0, make_array(2.0,
----
[1, 2, 3, 4] [1.0, 2.0, 3.0, 4.0] [h, e, l, l, o]
+## array_fill
+
# array_fill scalar function #1
query error DataFusion error: SQL error: ParserError\("Expected an SQL statement, found: caused"\)
caused by
@@ -116,6 +124,8 @@ caused by
Internal error: Optimizer rule 'simplify_expressions' failed, due to generate a different schema, original schema: DFSchema \{ fields: \[DFField \{ qualifier: None, field: Field \{ name: "array_fill\(Int64\(1\),make_array\(\)\)", data_type: List\(Field \{ name: "item", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: \{\} \}\), nullable: true, dict_id: 0, dict_is_ordered: false, metadata: \{\} \} \}\], metadata: \{\} \}, new schema: DFSchema \{ fields: \[DF [...]
select array_fill(1, make_array())
+## array_concat
+
# array_concat scalar function #1
query ?? rowsort
select array_concat(make_array(1, 2, 3), make_array(4, 5, 6), make_array(7, 8, 9)), array_concat(make_array([1], [2]), make_array([3], [4]));
@@ -152,6 +162,8 @@ caused by
Error during planning: Cannot automatically convert List\(Field \{ name: "item", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: \{\} \}\) to List\(Field \{ name: "item", data_type: Null, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: \{\} \}\)
select array_concat(make_array(), make_array(2, 3));
+## array_position
+
# array_position scalar function #1
query III
select array_position(['h', 'e', 'l', 'l', 'o'], 'l'), array_position([1, 2, 3, 4, 5], 5), array_position([1, 1, 1], 1);
@@ -170,12 +182,16 @@ caused by
Error during planning: Cannot automatically convert List\(Field \{ name: "item", data_type: UInt8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: \{\} \}\) to UInt8
select array_positions(['h', 'e', 'l', 'l', 'o'], 'l'), array_positions([1, 2, 3, 4, 5], 5), array_positions([1, 1, 1], 1);
+## array_replace
+
# array_replace scalar function
query ???
select array_replace(make_array(1, 2, 3, 4), 2, 3), array_replace(make_array(1, 4, 4, 5, 4, 6, 7), 4, 0), array_replace(make_array(1, 2, 3), 4, 0);
----
[1, 3, 3, 4] [1, 0, 0, 5, 0, 6, 7] [1, 2, 3]
+## array_to_string
+
# array_to_string scalar function
query error DataFusion error: SQL error: ParserError\("Expected an SQL statement, found: caused"\)
caused by
@@ -194,6 +210,8 @@ caused by
Error during planning: Cannot automatically convert Utf8 to List\(Field \{ name: "item", data_type: Null, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: \{\} \}\)
select array_to_string(make_array(), ',')
+## cardinality
+
# cardinality scalar function
query III
select cardinality(make_array(1, 2, 3, 4, 5)), cardinality([1, 3, 5]), cardinality(make_array('h', 'e', 'l', 'l', 'o'));
@@ -212,6 +230,8 @@ select cardinality(make_array()), cardinality(make_array(make_array()))
----
0 0
+## trim_array
+
# trim_array scalar function #1
query ???
select trim_array(make_array(1, 2, 3, 4, 5), 2), trim_array(['h', 'e', 'l', 'l', 'o'], 3), trim_array([1.0, 2.0, 3.0], 2);
@@ -236,6 +256,8 @@ select trim_array(make_array(), 0), trim_array(make_array(), 1)
----
[] []
+## array_length
+
# array_length scalar function
query III rowsort
select array_length(make_array(1, 2, 3, 4, 5)), array_length(make_array(1, 2, 3)), array_length(make_array([1, 2], [3, 4], [5, 6]));
@@ -266,6 +288,8 @@ select array_length(make_array()), array_length(make_array(), 1), array_length(m
----
0 0 NULL
+## array_dims
+
# array_dims scalar function
query error DataFusion error: SQL error: ParserError\("Expected an SQL statement, found: caused"\)
caused by
@@ -290,6 +314,8 @@ select array_ndims(make_array(1, 2, 3)), array_ndims(make_array([1, 2], [3, 4]))
----
1 2 5
+## array_ndims
+
# array_ndims scalar function #2
query error DataFusion error: SQL error: ParserError\("Expected an SQL statement, found: caused"\)
caused by
@@ -302,6 +328,8 @@ select array_ndims(make_array()), array_ndims(make_array(make_array()))
----
1 2
+## array concatenate opeartor
+
# array concatenate operator #1 (like array_concat scalar function)
query ?? rowsort
select make_array(1, 2, 3) || make_array(4, 5, 6) || make_array(7, 8, 9), make_array([1], [2]) || make_array([3], [4]);
@@ -358,6 +386,10 @@ select make_array(x, y) from foo2;
----
[1.0, 1]
+# array_contains
+
+
+
# array_contains scalar function #1
query BBB rowsort
select array_contains(make_array(1, 2, 3), make_array(1, 1, 2, 3)), array_contains([1, 2, 3], [1, 1, 2]), array_contains([1, 2, 3], [2, 1, 3, 1]);
@@ -393,3 +425,80 @@ query BB rowsort
select array_contains(make_array(true, true, true), make_array(false, false)), array_contains([false, false, false], [true, true]);
----
false false
+
+## array_contains array
+
+
+statement ok
+CREATE TABLE t
+AS VALUES
+(make_array(1,2,3), make_array(1,2,3)),
+(make_array(1,2,3), make_array(2,3)),
+(make_array(2,3), make_array(1,2,3)),
+(null, make_array(1,2,3)),
+(make_array(2,3), null)
+;
+
+
+query ??
+SELECT
+ column1,
+ column2
+FROM t
+----
+[1, 2, 3] [1, 2, 3]
+[1, 2, 3] [2, 3]
+[2, 3] [1, 2, 3]
+NULL [1, 2, 3]
+[2, 3] NULL
+
+
+# incorrect answer (one row) to https://github.com/apache/arrow-datafusion/issues/6709
+
+query BB
+SELECT
+ array_contains(column1, column2) as c12,
+ array_contains(column1, column2) as c21
+FROM t
+----
+true true
+
+
+statement ok
+drop table t
+
+
+## array_contains array (nested)
+
+
+statement ok
+CREATE TABLE t
+AS VALUES
+(make_array(make_array(2),make_array(3,4)), make_array(3,4)),
+(make_array(make_array(2),make_array(3,4)), make_array(4,3)),
+(make_array(make_array(2),make_array(3,4)), make_array(3)),
+(make_array(make_array(2),make_array(3,4)), make_array(2))
+;
+
+
+query ??
+SELECT
+ column1,
+ column2
+FROM t
+----
+[[2], [3, 4]] [3, 4]
+[[2], [3, 4]] [4, 3]
+[[2], [3, 4]] [3]
+[[2], [3, 4]] [2]
+
+
+# incorrect answer (one row) to https://github.com/apache/arrow-datafusion/issues/6709
+
+query BB
+SELECT
+ array_contains(column1, column2) as c12,
+ array_contains(column1, column2) as c21
+FROM t
+----
+true true