forked from sqlfluff/sqlfluff
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAM08.yml
More file actions
167 lines (138 loc) · 4.32 KB
/
Copy pathAM08.yml
File metadata and controls
167 lines (138 loc) · 4.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
rule: AM08
test_pass_select_comma:
# this syntax is currently not covered by AM08
pass_str: |
SELECT a.*, b.* FROM a, b
test_fail_missing_clause:
fail_str: |
SELECT foo.a, bar.b FROM foo INNER JOIN bar
test_fail_missing_clause_lowercase_default:
fail_str: |
SELECT foo.a, bar.b FROM foo left join bar
test_fail_missing_multiple_joins:
fail_str: |
SELECT foo.a, bar.b FROM foo left join bar on 1=2 left join baz;
test_fail_missing_multiple_joins_mixed_types:
fail_str: |
SELECT foo.a, bar.b FROM foo left join bar on foo.x = bar.y left join baz;
test_fail_missing_multiple_joins_not_last:
fail_str: |
SELECT foo.a, bar.b FROM foo left join bar left join baz on foo.x = bar.y;
test_noop_join_where:
pass_str: |
SELECT foo.a, bar.b FROM foo left join bar where foo.x = bar.y;
test_pass_cross_join_with_complex_where_clause_not_simplifiable:
pass_str: |
SELECT foo.a, bar.b FROM foo JOIN bar WHERE foo.a = bar.a OR foo.x = 3;
test_pass_cross_join_with_complex_where_clause_and_subqueries:
pass_str: |
SELECT foo.a, bar.b FROM (SELECT * FROM abc) foo JOIN (SELECT * FROM def WHERE x = 3) bar WHERE foo.a = bar.a;
test_pass_inner_join_default:
pass_str: |
SELECT foo.a, bar.b FROM foo INNER JOIN bar ON 1=1;
test_pass_left_join_default:
pass_str: |
SELECT foo.a, bar.b FROM foo LEFT JOIN bar ON 1=1;
test_pass_right_join_default:
pass_str: |
SELECT foo.a, bar.b FROM foo RIGHT JOIN bar ON 1=1;
test_pass_full_join_default:
pass_str: |
SELECT foo.a, bar.b FROM foo FULL JOIN bar ON 1=1;
test_pass_left_outer_join_default:
pass_str: |
SELECT foo.a, bar.b FROM foo LEFT OUTER JOIN bar ON 1=1;
test_pass_right_outer_join_default:
pass_str: |
SELECT foo.a, bar.b FROM foo RIGHT OUTER JOIN bar ON 1=1;
test_pass_full_outer_join_default:
pass_str: |
SELECT foo.a, bar.b FROM foo FULL OUTER JOIN bar ON 1=1;
test_pass_using:
pass_str: |
SELECT foo.id, bar.id FROM foo LEFT JOIN bar USING (id)
configs:
core:
dialect: snowflake
test_pass_cross_join_default:
pass_str: |
SELECT foo.a, bar.b FROM foo CROSS JOIN bar;
test_pass_global_cross_join_clickhouse:
pass_str: |
SELECT foo.a, bar.b FROM foo GLOBAL CROSS JOIN bar;
configs:
core:
dialect: clickhouse
test_pass_positional_join_duckdb:
pass_str: |
SELECT foo.a, bar.b FROM foo POSITIONAL JOIN bar;
configs:
core:
dialect: duckdb
test_pass_cross_join_where_clickhouse:
pass_str: |
SELECT m.name AS name, g.genre AS genre FROM movies AS m CROSS JOIN genres AS g WHERE m.id = g.movie_id;
configs:
core:
dialect: clickhouse
test_pass_asof_join_clickhouse:
pass_str: |
SELECT t.*, q.* FROM trades t ASOF LEFT JOIN quotes q ON t.symbol = q.symbol AND t.time >= q.time;
configs:
core:
dialect: clickhouse
test_noop_delete:
pass_str: |
DELETE t1, t2 FROM t1 JOIN t2 JOIN t3
WHERE t1.id=t2.id AND t2.id=t3.id;
configs:
core:
dialect: mysql
test_noop_cross_apply:
pass_str: |
SELECT DeptID, DeptName, DeptMgrID, EmpID, EmpLastName, EmpSalary
FROM Departments d
CROSS APPLY dbo.GetReports(d.DeptMgrID);
configs:
core:
dialect: tsql
test_noop_outer_apply:
pass_str: |
SELECT * FROM Department D
OUTER APPLY dbo.fn_GetAllEmployeeOfADepartment(D.DepartmentID);
configs:
core:
dialect: tsql
test_pass_unnest:
pass_str: |
WITH
Races AS (
SELECT
"800M" AS Race,
[
STRUCT("Rudisha" AS `Name`, [23.4, 26.3, 26.4, 26.1] AS Laps),
STRUCT("Makhloufi" AS `Name`, [24.5, 25.4, 26.6, 26.1] AS Laps),
STRUCT("Murphy" AS `Name`, [23.9, 26.0, 27.0, 26.0] AS Laps),
STRUCT("Bosse" AS `Name`, [23.6, 26.2, 26.5, 27.1] AS Laps),
STRUCT("Rotich" AS `Name`, [24.7, 25.6, 26.9, 26.4] AS Laps),
STRUCT("Lewandowski" AS `Name`, [25.0, 25.7, 26.3, 27.2] AS Laps),
STRUCT("Kipketer" AS `Name`, [23.2, 26.1, 27.3, 29.4] AS Laps),
STRUCT("Berian" AS `Name`, [23.7, 26.1, 27.0, 29.3] AS Laps)
] AS Participants,
)
SELECT
Race,
Participant,
FROM Races AS R
INNER JOIN UNNEST(R.Participants) AS Participant;
configs:
core:
dialect: bigquery
test_pass_natural_join:
pass_str: |
select foo.x
from foo
natural join bar
configs:
core:
dialect: redshift