@@ -36,26 +36,32 @@ def test_unnest(self):
36
36
"SELECT student, score, t.unnest FROM tests CROSS JOIN LATERAL UNNEST(scores) AS t(unnest)" ,
37
37
)
38
38
self .validate_identity (
39
- "SELECT student, score, unnest.unnest FROM tests CROSS JOIN LATERAL UNNEST(scores)" ,
40
- "SELECT student, score, unnest.unnest FROM tests CROSS JOIN LATERAL UNNEST(scores) AS unnest(unnest)" ,
39
+ "SELECT student, score, unnest FROM tests CROSS JOIN LATERAL UNNEST(scores)" ,
40
+ "SELECT student, score, unnest FROM tests CROSS JOIN LATERAL UNNEST(scores) AS unnest(unnest)" ,
41
41
)
42
42
self .validate_all (
43
43
r"""SELECT * FROM UNNEST(array['John','Jane','Jim','Jamie'], array[24,25,26,27]) AS t(name, age)""" ,
44
44
write = {
45
45
"postgres" : "SELECT * FROM UNNEST(ARRAY['John', 'Jane', 'Jim', 'Jamie'], ARRAY[24, 25, 26, 27]) AS t(name, age)" ,
46
- "spark" : "SELECT * FROM EXPLODE(ARRAY('John', 'Jane', 'Jim', 'Jamie'), ARRAY(24, 25, 26, 27)) AS "
47
- "t(name, age)" ,
46
+ "spark" : "SELECT * FROM EXPLODE(ARRAY('John', 'Jane', 'Jim', 'Jamie'), ARRAY(24, 25, 26, 27)) AS t(name, age)" ,
48
47
},
49
48
)
50
49
# Use UNNEST to convert into multiple columns
51
50
# see: https://docs.starrocks.io/docs/sql-reference/sql-functions/array-functions/unnest/
52
51
self .validate_all (
53
52
r"""SELECT id, t.type, t.scores FROM example_table, unnest(split(type, ";"), scores) AS t(type,scores)""" ,
54
53
write = {
55
- "postgres" : "SELECT id, t.type, t.scores FROM example_table, UNNEST(SPLIT(type, ';'), scores) AS "
56
- "t( type, scores)" ,
57
- "spark " : "SELECT id, t.type, t.scores FROM example_table LATERAL VIEW EXPLODE(SPLIT(type, CONCAT"
54
+ "postgres" : "SELECT id, t.type, t.scores FROM example_table, UNNEST(SPLIT(type, ';'), scores) AS t(type, scores)" ,
55
+ "spark" : r"""SELECT id, t.type, t.scores FROM example_table LATERAL VIEW INLINE(ARRAYS_ZIP(SPLIT( type, CONCAT('\\Q', ';')), scores)) t AS type, scores"" " ,
56
+ "hive " : "SELECT id, t.type, t.scores FROM example_table LATERAL VIEW EXPLODE(SPLIT(type, CONCAT"
58
57
r"""('\\Q', ';'))) t AS type LATERAL VIEW EXPLODE(scores) t AS scores""" ,
58
+ "databricks" : r"""SELECT id, t.type, t.scores FROM example_table LATERAL VIEW INLINE(ARRAYS_ZIP(SPLIT(type, CONCAT('\\Q', ';')), scores)) t AS type, scores""" ,
59
+ },
60
+ )
61
+ self .validate_all (
62
+ r"""SELECT id, t.type, t.scores FROM example_table CROSS JOIN LATERAL unnest(split(type, ";"), scores) AS t(type,scores)""" ,
63
+ write = {
64
+ "spark" : r"""SELECT id, t.type, t.scores FROM example_table LATERAL VIEW INLINE(ARRAYS_ZIP(SPLIT(type, CONCAT('\\Q', ';')), scores)) t AS type, scores""" ,
59
65
},
60
66
)
61
67
0 commit comments