@@ -140,6 +140,55 @@ AS VALUES
140
140
(make_array([[1], [2]], [[2], [3]]), make_array([1], [2]))
141
141
;
142
142
143
+ statement ok
144
+ CREATE TABLE array_intersect_table_1D
145
+ AS VALUES
146
+ (make_array(1, 2), make_array(1), make_array(1,2,3), make_array(1,3), make_array(1,3,5), make_array(2,4,6,8,1,3)),
147
+ (make_array(11, 22), make_array(11), make_array(11,22,33), make_array(11,33), make_array(11,33,55), make_array(22,44,66,88,11,33))
148
+ ;
149
+
150
+ statement ok
151
+ CREATE TABLE array_intersect_table_1D_Float
152
+ AS VALUES
153
+ (make_array(1.0, 2.0), make_array(1.0), make_array(1.0,2.0,3.0), make_array(1.0,3.0), make_array(1.11), make_array(2.22, 3.33)),
154
+ (make_array(3.0, 4.0, 5.0), make_array(2.0), make_array(1.0,2.0,3.0,4.0), make_array(2.0,5.0), make_array(2.22, 1.11), make_array(1.11, 3.33))
155
+ ;
156
+
157
+ statement ok
158
+ CREATE TABLE array_intersect_table_1D_Boolean
159
+ AS VALUES
160
+ (make_array(true, true, true), make_array(false), make_array(true, true, false, true, false), make_array(true, false, true), make_array(false), make_array(true, false)),
161
+ (make_array(false, false, false), make_array(false), make_array(true, false, true), make_array(true, true), make_array(true, true), make_array(false,false,true))
162
+ ;
163
+
164
+ statement ok
165
+ CREATE TABLE array_intersect_table_1D_UTF8
166
+ AS VALUES
167
+ (make_array('a', 'bc', 'def'), make_array('bc'), make_array('datafusion', 'rust', 'arrow'), make_array('rust', 'arrow'), make_array('rust', 'arrow', 'python'), make_array('data')),
168
+ (make_array('a', 'bc', 'def'), make_array('defg'), make_array('datafusion', 'rust', 'arrow'), make_array('datafusion', 'rust', 'arrow', 'python'), make_array('rust', 'arrow'), make_array('datafusion', 'rust', 'arrow'))
169
+ ;
170
+
171
+ statement ok
172
+ CREATE TABLE array_intersect_table_2D
173
+ AS VALUES
174
+ (make_array([1,2]), make_array([1,3]), make_array([1,2,3], [4,5], [6,7]), make_array([4,5], [6,7])),
175
+ (make_array([3,4], [5]), make_array([3,4]), make_array([1,2,3,4], [5,6,7], [8,9,10]), make_array([1,2,3], [5,6,7], [8,9,10]))
176
+ ;
177
+
178
+ statement ok
179
+ CREATE TABLE array_intersect_table_2D_float
180
+ AS VALUES
181
+ (make_array([1.0, 2.0, 3.0], [1.1, 2.2], [3.3]), make_array([1.1, 2.2], [3.3])),
182
+ (make_array([1.0, 2.0, 3.0], [1.1, 2.2], [3.3]), make_array([1.0], [1.1, 2.2], [3.3]))
183
+ ;
184
+
185
+ statement ok
186
+ CREATE TABLE array_intersect_table_3D
187
+ AS VALUES
188
+ (make_array([[1,2]]), make_array([[1]])),
189
+ (make_array([[1,2]]), make_array([[1,2]]))
190
+ ;
191
+
143
192
statement ok
144
193
CREATE TABLE arrays_values_without_nulls
145
194
AS VALUES
@@ -1695,14 +1744,74 @@ select array_has_all(make_array(1,2,3), make_array(1,3)),
1695
1744
----
1696
1745
true false true false false false true true false false true false true
1697
1746
1698
- query ????
1747
+ query ???
1748
+ select array_intersect(column1, column2),
1749
+ array_intersect(column3, column4),
1750
+ array_intersect(column5, column6)
1751
+ from array_intersect_table_1D;
1752
+ ----
1753
+ [1] [1, 3] [1, 3]
1754
+ [11] [11, 33] [11, 33]
1755
+
1756
+ query ???
1757
+ select array_intersect(column1, column2),
1758
+ array_intersect(column3, column4),
1759
+ array_intersect(column5, column6)
1760
+ from array_intersect_table_1D_Float;
1761
+ ----
1762
+ [1.0] [1.0, 3.0] []
1763
+ [] [2.0] [1.11]
1764
+
1765
+ query ???
1766
+ select array_intersect(column1, column2),
1767
+ array_intersect(column3, column4),
1768
+ array_intersect(column5, column6)
1769
+ from array_intersect_table_1D_Boolean;
1770
+ ----
1771
+ [] [false, true] [false]
1772
+ [false] [true] [true]
1773
+
1774
+ query ???
1775
+ select array_intersect(column1, column2),
1776
+ array_intersect(column3, column4),
1777
+ array_intersect(column5, column6)
1778
+ from array_intersect_table_1D_UTF8;
1779
+ ----
1780
+ [bc] [arrow, rust] []
1781
+ [] [arrow, datafusion, rust] [arrow, rust]
1782
+
1783
+ query ??
1784
+ select array_intersect(column1, column2),
1785
+ array_intersect(column3, column4)
1786
+ from array_intersect_table_2D;
1787
+ ----
1788
+ [] [[4, 5], [6, 7]]
1789
+ [[3, 4]] [[5, 6, 7], [8, 9, 10]]
1790
+
1791
+ query ?
1792
+ select array_intersect(column1, column2)
1793
+ from array_intersect_table_2D_float;
1794
+ ----
1795
+ [[1.1, 2.2], [3.3]]
1796
+ [[1.1, 2.2], [3.3]]
1797
+
1798
+ query ?
1799
+ select array_intersect(column1, column2)
1800
+ from array_intersect_table_3D;
1801
+ ----
1802
+ []
1803
+ [[[1, 2]]]
1804
+
1805
+ query ??????
1699
1806
SELECT array_intersect(make_array(1,2,3), make_array(2,3,4)),
1700
1807
array_intersect(make_array(1,3,5), make_array(2,4,6)),
1701
1808
array_intersect(make_array('aa','bb','cc'), make_array('cc','aa','dd')),
1702
- array_intersect(make_array(true, false), make_array(true))
1809
+ array_intersect(make_array(true, false), make_array(true)),
1810
+ array_intersect(make_array(1.1, 2.2, 3.3), make_array(2.2, 3.3, 4.4)),
1811
+ array_intersect(make_array([1, 1], [2, 2], [3, 3]), make_array([2, 2], [3, 3], [4, 4]))
1703
1812
;
1704
1813
----
1705
- [2, 3] [] [cc, aa ] [true]
1814
+ [2, 3] [] [aa, cc ] [true] [2.2, 3.3] [[2, 2], [3, 3] ]
1706
1815
1707
1816
query BBBB
1708
1817
select list_has_all(make_array(1,2,3), make_array(4,5,6)),
@@ -1843,6 +1952,27 @@ drop table array_has_table_2D_float;
1843
1952
statement ok
1844
1953
drop table array_has_table_3D;
1845
1954
1955
+ statement ok
1956
+ drop table array_intersect_table_1D;
1957
+
1958
+ statement ok
1959
+ drop table array_intersect_table_1D_Float;
1960
+
1961
+ statement ok
1962
+ drop table array_intersect_table_1D_Boolean;
1963
+
1964
+ statement ok
1965
+ drop table array_intersect_table_1D_UTF8;
1966
+
1967
+ statement ok
1968
+ drop table array_intersect_table_2D;
1969
+
1970
+ statement ok
1971
+ drop table array_intersect_table_2D_float;
1972
+
1973
+ statement ok
1974
+ drop table array_intersect_table_3D;
1975
+
1846
1976
statement ok
1847
1977
drop table arrays_values_without_nulls;
1848
1978
0 commit comments