@@ -86,6 +86,60 @@ AS VALUES
86
86
(NULL, NULL, NULL, NULL)
87
87
;
88
88
89
+ statement ok
90
+ CREATE TABLE array_has_table_1D
91
+ AS VALUES
92
+ (make_array(1, 2), 1, make_array(1,2,3), make_array(1,3), make_array(1,3,5), make_array(2,4,6,8,1,3,5)),
93
+ (make_array(3, 4, 5), 2, make_array(1,2,3,4), make_array(2,5), make_array(2,4,6), make_array(1,3,5))
94
+ ;
95
+
96
+ statement ok
97
+ CREATE TABLE array_has_table_1D_Float
98
+ AS VALUES
99
+ (make_array(1.0, 2.0), 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)),
100
+ (make_array(3.0, 4.0, 5.0), 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))
101
+ ;
102
+
103
+ statement ok
104
+ CREATE TABLE array_has_table_1D_Boolean
105
+ AS VALUES
106
+ (make_array(true, true, true), false, make_array(true, true, false, true, false), make_array(true, false, true), make_array(false), make_array(true, false)),
107
+ (make_array(false, false, false), false, make_array(true, false, true), make_array(true, true), make_array(true, true), make_array(false,false,true))
108
+ ;
109
+
110
+ statement ok
111
+ CREATE TABLE array_has_table_1D_UTF8
112
+ AS VALUES
113
+ (make_array('a', 'bc', 'def'), 'bc', make_array('datafusion', 'rust', 'arrow'), make_array('rust', 'arrow'), make_array('rust', 'arrow', 'python'), make_array('data')),
114
+ (make_array('a', 'bc', 'def'), 'defg', make_array('datafusion', 'rust', 'arrow'), make_array('datafusion', 'rust', 'arrow', 'python'), make_array('rust', 'arrow'), make_array('datafusion', 'rust', 'arrow'))
115
+ ;
116
+
117
+ statement ok
118
+ CREATE TABLE array_has_table_2D
119
+ AS VALUES
120
+ (make_array([1,2]), make_array(1,3), make_array([1,2,3], [4,5], [6,7]), make_array([4,5], [6,7])),
121
+ (make_array([3,4], [5]), make_array(5), make_array([1,2,3,4], [5,6,7], [8,9,10]), make_array([1,2,3], [5,6,7], [8,9,10]))
122
+ ;
123
+
124
+ statement ok
125
+ CREATE TABLE array_has_table_2D_float
126
+ AS VALUES
127
+ (make_array([1.0, 2.0, 3.0], [1.1, 2.2], [3.3]), make_array([1.1, 2.2], [3.3])),
128
+ (make_array([1.0, 2.0, 3.0], [1.1, 2.2], [3.3]), make_array([1.0], [1.1, 2.2], [3.3]))
129
+ ;
130
+
131
+ statement ok
132
+ CREATE TABLE array_has_table_3D
133
+ AS VALUES
134
+ (make_array([[1,2]]), make_array([1])),
135
+ (make_array([[1,2]]), make_array([1,2])),
136
+ (make_array([[1,2]]), make_array([1,2,3])),
137
+ (make_array([[1], [2]]), make_array([2])),
138
+ (make_array([[1], [2]]), make_array([1], [2])),
139
+ (make_array([[1], [2]], [[2], [3]]), make_array([1], [2], [3])),
140
+ (make_array([[1], [2]], [[2], [3]]), make_array([1], [2]))
141
+ ;
142
+
89
143
statement ok
90
144
CREATE TABLE arrays_values_without_nulls
91
145
AS VALUES
@@ -1164,48 +1218,129 @@ NULL 1 1
1164
1218
2 NULL 1
1165
1219
2 1 NULL
1166
1220
1167
- ## array_contains
1221
+ ## array_has/array_has_all/array_has_any
1222
+
1223
+ query BBBBBBBBBBBB
1224
+ select array_has(make_array(1,2), 1),
1225
+ array_has(make_array(1,2,NULL), 1),
1226
+ array_has(make_array([2,3], [3,4]), make_array(2,3)),
1227
+ array_has(make_array([[1], [2,3]], [[4,5], [6]]), make_array([1], [2,3])),
1228
+ array_has(make_array([[1], [2,3]], [[4,5], [6]]), make_array([4,5], [6])),
1229
+ array_has(make_array([[1], [2,3]], [[4,5], [6]]), make_array([1])),
1230
+ array_has(make_array([[[1]]]), make_array([[1]])),
1231
+ array_has(make_array([[[1]]], [[[1], [2]]]), make_array([[2]])),
1232
+ array_has(make_array([[[1]]], [[[1], [2]]]), make_array([[1], [2]])),
1233
+ list_has(make_array(1,2,3), 4),
1234
+ array_contains(make_array(1,2,3), 3),
1235
+ list_contains(make_array(1,2,3), 0)
1236
+ ;
1237
+ ----
1238
+ true true true true true false true false true false true false
1168
1239
1169
- # array_contains scalar function #1
1170
1240
query BBB
1171
- 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]);
1241
+ select array_has(column1, column2),
1242
+ array_has_all(column3, column4),
1243
+ array_has_any(column5, column6)
1244
+ from array_has_table_1D;
1172
1245
----
1173
1246
true true true
1247
+ false false false
1174
1248
1175
- # array_contains scalar function #2
1176
- query BB
1177
- select array_contains([[1, 2], [3, 4]], [[1, 2], [3, 4], [1, 3]]), array_contains([[[1], [2]], [[3], [4]]], [1, 2, 2, 3, 4]);
1249
+ query BBB
1250
+ select array_has(column1, column2),
1251
+ array_has_all(column3, column4),
1252
+ array_has_any(column5, column6)
1253
+ from array_has_table_1D_Float;
1178
1254
----
1179
- true true
1255
+ true true false
1256
+ false false true
1180
1257
1181
- # array_contains scalar function #3
1182
1258
query BBB
1183
- select array_contains(make_array(1, 2, 3), make_array(1, 2, 3, 4)), array_contains([1, 2, 3], [1, 1, 4]), array_contains([1, 2, 3], [2, 1, 3, 4]);
1259
+ select array_has(column1, column2),
1260
+ array_has_all(column3, column4),
1261
+ array_has_any(column5, column6)
1262
+ from array_has_table_1D_Boolean;
1184
1263
----
1185
- false false false
1264
+ false true true
1265
+ true true true
1186
1266
1187
- # array_contains scalar function #4
1188
- query BB
1189
- select array_contains([[1, 2], [3, 4]], [[1, 2], [3, 4], [1, 5]]), array_contains([[[1], [2]], [[3], [4]]], [1, 2, 2, 3, 5]);
1267
+ query BBB
1268
+ select array_has(column1, column2),
1269
+ array_has_all(column3, column4),
1270
+ array_has_any(column5, column6)
1271
+ from array_has_table_1D_UTF8;
1190
1272
----
1191
- false false
1273
+ true true false
1274
+ false false true
1192
1275
1193
- # array_contains scalar function #5
1194
1276
query BB
1195
- select array_contains([true, true, false, true, false], [true, false, false]), array_contains([true, false, true], [true, true]);
1277
+ select array_has(column1, column2),
1278
+ array_has_all(column3, column4)
1279
+ from array_has_table_2D;
1280
+ ----
1281
+ false true
1282
+ true false
1283
+
1284
+ query B
1285
+ select array_has_all(column1, column2)
1286
+ from array_has_table_2D_float;
1287
+ ----
1288
+ true
1289
+ false
1290
+
1291
+ query B
1292
+ select array_has(column1, column2) from array_has_table_3D;
1293
+ ----
1294
+ false
1295
+ true
1296
+ false
1297
+ false
1298
+ true
1299
+ false
1300
+ true
1301
+
1302
+ query BBBB
1303
+ select array_has(column1, make_array(5, 6)),
1304
+ array_has(column1, make_array(7, NULL)),
1305
+ array_has(column2, 5.5),
1306
+ array_has(column3, 'o')
1307
+ from arrays;
1308
+ ----
1309
+ false false false true
1310
+ true false true false
1311
+ true false false true
1312
+ false true false false
1313
+ false false false false
1314
+ false false false false
1315
+
1316
+ query BBBBBBBBBBBBB
1317
+ select array_has_all(make_array(1,2,3), make_array(1,3)),
1318
+ array_has_all(make_array(1,2,3), make_array(1,4)),
1319
+ array_has_all(make_array([1,2], [3,4]), make_array([1,2])),
1320
+ array_has_all(make_array([1,2], [3,4]), make_array([1,3])),
1321
+ array_has_all(make_array([1,2], [3,4]), make_array([1,2], [3,4], [5,6])),
1322
+ array_has_all(make_array([[1,2,3]]), make_array([[1]])),
1323
+ array_has_all(make_array([[1,2,3]]), make_array([[1,2,3]])),
1324
+ array_has_any(make_array(1,2,3), make_array(1,10,100)),
1325
+ array_has_any(make_array(1,2,3), make_array(10,100)),
1326
+ array_has_any(make_array([1,2], [3,4]), make_array([1,10], [10,4])),
1327
+ array_has_any(make_array([1,2], [3,4]), make_array([10,20], [3,4])),
1328
+ array_has_any(make_array([[1,2,3]]), make_array([[1,2,3], [4,5,6]])),
1329
+ array_has_any(make_array([[1,2,3]]), make_array([[1,2,3]], [[4,5,6]]))
1330
+ ;
1196
1331
----
1197
- true true
1332
+ true false true false false false true true false false true false true
1198
1333
1199
- # array_contains scalar function #6
1200
- query BB
1201
- select array_contains(make_array(true, true, true), make_array(false, false)), array_contains([false, false, false], [true, true]);
1334
+ query BBBB
1335
+ select list_has_all(make_array(1,2,3), make_array(4,5,6)),
1336
+ list_has_all(make_array(1,2,3), make_array(1,2)),
1337
+ list_has_any(make_array(1,2,3), make_array(4,5,6)),
1338
+ list_has_any(make_array(1,2,3), make_array(1,2,4))
1339
+ ;
1202
1340
----
1203
- false false
1204
-
1341
+ false true false true
1205
1342
1206
1343
### Array operators tests
1207
-
1208
-
1209
1344
## array concatenate operator
1210
1345
1211
1346
# array concatenate operator with scalars #1 (like array_concat scalar function)
@@ -1296,7 +1431,6 @@ select make_array(f0) from fixed_size_list_array
1296
1431
[[1, 2], [3, 4]]
1297
1432
1298
1433
1299
-
1300
1434
### Delete tables
1301
1435
1302
1436
@@ -1312,5 +1446,29 @@ drop table arrays;
1312
1446
statement ok
1313
1447
drop table arrays_values;
1314
1448
1449
+ statement ok
1450
+ drop table arrays_values_v2;
1451
+
1452
+ statement ok
1453
+ drop table array_has_table_1D;
1454
+
1455
+ statement ok
1456
+ drop table array_has_table_1D_Float;
1457
+
1458
+ statement ok
1459
+ drop table array_has_table_1D_Boolean;
1460
+
1461
+ statement ok
1462
+ drop table array_has_table_1D_UTF8;
1463
+
1464
+ statement ok
1465
+ drop table array_has_table_2D;
1466
+
1467
+ statement ok
1468
+ drop table array_has_table_2D_float;
1469
+
1470
+ statement ok
1471
+ drop table array_has_table_3D;
1472
+
1315
1473
statement ok
1316
1474
drop table arrays_values_without_nulls;
0 commit comments