1- DROP TABLE IF EXISTS array_symmetric_difference;
2-
3- CREATE TABLE IF NOT EXISTS array_symmetric_difference (
4- id UInt8,
5- arr_tpl_1 Array( Tuple(Nullable(Int32),Array(String)) ),
6- arr_tpl_2 Array( Tuple(Nullable(Int32),Array(String)) ),
7- arr_lc_str_1 Array( LowCardinality(String) ),
8- arr_lc_str_2 Array( LowCardinality(String) )
9- ) ENGINE = MergeTree ORDER BY id;
10-
11- INSERT INTO array_symmetric_difference VALUES (1 , [(1 , [' a' , ' b' ]), (Null , [' c' ])], [(2 , [' c' , Null ]), (1 , [' a' , ' b' ])], [' a' , ' b' , ' c' ], [' c' , ' a' , ' b' ]);
12- INSERT INTO array_symmetric_difference VALUES (2 , [(2 , [' d' , ' e' ]), (Null , [' f' ])], [(3 , [' g' , Null ]), (2 , [' d' , ' e' ])], [' d' , ' e' , ' f' ], [' f' , ' d' , ' e' ]);
13- INSERT INTO array_symmetric_difference VALUES (3 , [(3 , [' g' , ' h' ]), (Null , [' i' ])], [(4 , [' j' , Null ]), (3 , [' g' , ' h' ])], [' g' , ' h' , ' i' ], [' i' , ' g' , ' h' ]);
14- INSERT INTO array_symmetric_difference VALUES (4 , [(4 , [' j' , ' k' ]), (Null , [' l' ])], [(5 , [' m' , Null ]), (4 , [' j' , ' k' ])], [' j' , ' k' , ' l' ], [' l' , ' j' , ' k' ]);
15-
16- -- negative tests
1+ SELECT ' Negative tests' ;
172SELECT arraySymmetricDifference(); -- { serverError NUMBER_OF_ARGUMENTS_DOESNT_MATCH }
183SELECT arraySymmetricDifference(1 ); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
194SELECT arraySymmetricDifference(1 , 2 ); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
205SELECT arraySymmetricDifference(1 , [1 , 2 ]); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
216SELECT arraySymmetricDifference([1 , 2 ], 1 ); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
227
8+ SELECT ' Const arguments' ;
239SELECT arraySort(arraySymmetricDifference([]));
2410SELECT arraySort(arraySymmetricDifference([1 , 2 ]));
2511SELECT arraySort(arraySymmetricDifference([1 , 2 ], [1 , 3 ]));
2612SELECT arraySort(arraySymmetricDifference([' a' , ' b' ], [' a' , ' c' ]));
2713SELECT arraySort(arraySymmetricDifference([1 , NULL ], [1 , 3 ]));
2814SELECT arraySort(arraySymmetricDifference([1 , NULL ], [NULL , 3 ]));
29- SELECT arraySort(arraySymmetricDifference([1 , 2 ], [1 , 3 ]));
15+ SELECT arraySort(arraySymmetricDifference([1 , 1 ], [1 , 1 ]));
16+ SELECT arraySort(arraySymmetricDifference([1 , 2 ], [1 , 2 ]));
3017SELECT arraySort(arraySymmetricDifference([1 , 2 ], [1 , 2 ], [1 , 2 ]));
3118SELECT arraySort(arraySymmetricDifference([1 , 2 ], [1 , 2 ], [1 , 3 ]));
19+
3220SELECT toTypeName(arraySymmetricDifference([(1 , [' a' , ' b' ]), (Null , [' c' ])], [(2 , [' c' , Null ]), (1 , [' a' , ' b' ])]));
21+
22+ SELECT ' Non-const arguments' ;
23+
24+ DROP TABLE IF EXISTS tab;
25+
26+ CREATE TABLE tab (
27+ id UInt8,
28+ array_tuple1 Array( Tuple(Nullable(Int32),Array(String)) ),
29+ array_tuple2 Array( Tuple(Nullable(Int32),Array(String)) ),
30+ array_lowcardinality_string1 Array( LowCardinality(String) ),
31+ array_lowcardinality_string2 Array( LowCardinality(String) )
32+ ) ENGINE = MergeTree ORDER BY id;
33+
34+ INSERT INTO tab VALUES (1 , [(1 , [' a' , ' b' ]), (Null , [' c' ])], [(2 , [' c' , Null ]), (1 , [' a' , ' b' ])], [' a' , ' b' , ' c' ], [' c' , ' a' , ' b' ]);
35+ INSERT INTO tab VALUES (2 , [(2 , [' d' , ' e' ]), (Null , [' f' ])], [(3 , [' g' , Null ]), (2 , [' d' , ' e' ])], [' d' , ' e' , ' f' ], [' f' , ' d' , ' e' ]);
36+ INSERT INTO tab VALUES (3 , [(3 , [' g' , ' h' ]), (Null , [' i' ])], [(4 , [' j' , Null ]), (3 , [' g' , ' h' ])], [' g' , ' h' , ' i' ], [' i' , ' g' , ' h' ]);
37+ INSERT INTO tab VALUES (4 , [(4 , [' j' , ' k' ]), (Null , [' l' ])], [(5 , [' m' , Null ]), (4 , [' j' , ' k' ])], [' j' , ' k' , ' l' ], [' l' , ' j' , ' k' ]);
38+
3339--
34- SELECT arraySort(arraySymmetricDifference(arr_tpl_1, arr_tpl_2 )) FROM array_symmetric_difference ORDER BY id;
35- SELECT arraySort(arraySymmetricDifference(arr_lc_str_1, arr_lc_str_2 )) FROM array_symmetric_difference ORDER BY id;
40+ SELECT arraySort(arraySymmetricDifference(array_tuple1, array_tuple2 )) FROM tab ORDER BY id;
41+ SELECT arraySort(arraySymmetricDifference(array_lowcardinality_string1, array_lowcardinality_string2 )) FROM tab ORDER BY id;
3642
37- DROP TABLE array_symmetric_difference ;
43+ DROP TABLE tab ;
0 commit comments