Skip to content

Commit 95e3d88

Browse files
authored
linter: support table in possibly_slow_stmt (#688)
also fix some cursor refs to be name_refs instead of names
1 parent 993b37b commit 95e3d88

File tree

8 files changed

+168
-55
lines changed

8 files changed

+168
-55
lines changed

crates/squawk_linter/src/analyze.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,7 @@ pub fn possibly_slow_stmt(stmt: &ast::Stmt) -> bool {
207207
| ast::Stmt::SetSessionAuth(_)
208208
| ast::Stmt::SetTransaction(_)
209209
| ast::Stmt::Show(_)
210+
| ast::Stmt::Table(_)
210211
| ast::Stmt::Unlisten(_)
211212
| ast::Stmt::Update(_)
212213
| ast::Stmt::Values(_) => false,

crates/squawk_parser/src/grammar.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11361,7 +11361,7 @@ fn move_(p: &mut Parser<'_>) -> CompletedMarker {
1136111361
opt_direction(p);
1136211362
let _ = p.eat(FROM_KW) || p.eat(IN_KW);
1136311363
// cursor_name
11364-
name(p);
11364+
name_ref(p);
1136511365
m.complete(p, MOVE)
1136611366
}
1136711367

@@ -11388,7 +11388,7 @@ fn fetch(p: &mut Parser<'_>) -> CompletedMarker {
1138811388
opt_direction(p);
1138911389
let _ = p.eat(FROM_KW) || p.eat(IN_KW);
1139011390
// cursor_name
11391-
name(p);
11391+
name_ref(p);
1139211392
m.complete(p, FETCH)
1139311393
}
1139411394

@@ -12272,7 +12272,7 @@ fn opt_where_current_of(p: &mut Parser<'_>) {
1227212272
if p.eat(WHERE_KW) {
1227312273
if p.eat(CURRENT_KW) {
1227412274
p.expect(OF_KW);
12275-
ident(p);
12275+
name_ref(p);
1227612276
}
1227712277
}
1227812278
}

crates/squawk_parser/tests/snapshots/tests__delete_ok.snap

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -481,7 +481,8 @@ SOURCE_FILE
481481
WHITESPACE " "
482482
OF_KW "of"
483483
WHITESPACE " "
484-
IDENT "invoice_cursor"
484+
NAME_REF
485+
IDENT "invoice_cursor"
485486
SEMICOLON ";"
486487
WHITESPACE "\n\n"
487488
COMMENT "-- returning"
@@ -934,7 +935,8 @@ SOURCE_FILE
934935
WHITESPACE " "
935936
OF_KW "OF"
936937
WHITESPACE " "
937-
IDENT "c_tasks"
938+
NAME_REF
939+
IDENT "c_tasks"
938940
SEMICOLON ";"
939941
WHITESPACE "\n\n"
940942
DELETE

crates/squawk_parser/tests/snapshots/tests__fetch_ok.snap

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ SOURCE_FILE
1212
WHITESPACE " "
1313
FROM_KW "from"
1414
WHITESPACE " "
15-
NAME
15+
NAME_REF
1616
IDENT "cursor_name"
1717
SEMICOLON ";"
1818
WHITESPACE "\n"
@@ -23,7 +23,7 @@ SOURCE_FILE
2323
WHITESPACE " "
2424
FROM_KW "from"
2525
WHITESPACE " "
26-
NAME
26+
NAME_REF
2727
IDENT "cursor_name"
2828
SEMICOLON ";"
2929
WHITESPACE "\n"
@@ -34,7 +34,7 @@ SOURCE_FILE
3434
WHITESPACE " "
3535
IN_KW "in"
3636
WHITESPACE " "
37-
NAME
37+
NAME_REF
3838
IDENT "cursor_name"
3939
SEMICOLON ";"
4040
WHITESPACE "\n"
@@ -43,7 +43,7 @@ SOURCE_FILE
4343
WHITESPACE " "
4444
PRIOR_KW "prior"
4545
WHITESPACE " "
46-
NAME
46+
NAME_REF
4747
IDENT "cursor_name"
4848
SEMICOLON ";"
4949
WHITESPACE "\n\n"
@@ -54,7 +54,7 @@ SOURCE_FILE
5454
WHITESPACE " "
5555
FROM_KW "FROM"
5656
WHITESPACE " "
57-
NAME
57+
NAME_REF
5858
IDENT "cursor_name"
5959
SEMICOLON ";"
6060
WHITESPACE "\n"
@@ -65,7 +65,7 @@ SOURCE_FILE
6565
WHITESPACE " "
6666
FROM_KW "FROM"
6767
WHITESPACE " "
68-
NAME
68+
NAME_REF
6969
IDENT "cursor_name"
7070
SEMICOLON ";"
7171
WHITESPACE "\n"
@@ -76,7 +76,7 @@ SOURCE_FILE
7676
WHITESPACE " "
7777
FROM_KW "FROM"
7878
WHITESPACE " "
79-
NAME
79+
NAME_REF
8080
IDENT "cursor_name"
8181
SEMICOLON ";"
8282
WHITESPACE "\n"
@@ -87,7 +87,7 @@ SOURCE_FILE
8787
WHITESPACE " "
8888
FROM_KW "FROM"
8989
WHITESPACE " "
90-
NAME
90+
NAME_REF
9191
IDENT "cursor_name"
9292
SEMICOLON ";"
9393
WHITESPACE "\n"
@@ -101,7 +101,7 @@ SOURCE_FILE
101101
WHITESPACE " "
102102
FROM_KW "FROM"
103103
WHITESPACE " "
104-
NAME
104+
NAME_REF
105105
IDENT "cursor_name"
106106
SEMICOLON ";"
107107
WHITESPACE "\n"
@@ -115,7 +115,7 @@ SOURCE_FILE
115115
WHITESPACE " "
116116
FROM_KW "FROM"
117117
WHITESPACE " "
118-
NAME
118+
NAME_REF
119119
IDENT "cursor_name"
120120
SEMICOLON ";"
121121
WHITESPACE "\n"
@@ -127,7 +127,7 @@ SOURCE_FILE
127127
WHITESPACE " "
128128
FROM_KW "FROM"
129129
WHITESPACE " "
130-
NAME
130+
NAME_REF
131131
IDENT "cursor_name"
132132
SEMICOLON ";"
133133
WHITESPACE "\n"
@@ -138,7 +138,7 @@ SOURCE_FILE
138138
WHITESPACE " "
139139
FROM_KW "FROM"
140140
WHITESPACE " "
141-
NAME
141+
NAME_REF
142142
IDENT "cursor_name"
143143
SEMICOLON ";"
144144
WHITESPACE "\n"
@@ -149,7 +149,7 @@ SOURCE_FILE
149149
WHITESPACE " "
150150
FROM_KW "FROM"
151151
WHITESPACE " "
152-
NAME
152+
NAME_REF
153153
IDENT "cursor_name"
154154
SEMICOLON ";"
155155
WHITESPACE "\n"
@@ -163,7 +163,7 @@ SOURCE_FILE
163163
WHITESPACE " "
164164
FROM_KW "FROM"
165165
WHITESPACE " "
166-
NAME
166+
NAME_REF
167167
IDENT "cursor_name"
168168
SEMICOLON ";"
169169
WHITESPACE "\n"
@@ -176,7 +176,7 @@ SOURCE_FILE
176176
WHITESPACE " "
177177
FROM_KW "FROM"
178178
WHITESPACE " "
179-
NAME
179+
NAME_REF
180180
IDENT "cursor_name"
181181
SEMICOLON ";"
182182
WHITESPACE "\n"
@@ -187,7 +187,7 @@ SOURCE_FILE
187187
WHITESPACE " "
188188
FROM_KW "FROM"
189189
WHITESPACE " "
190-
NAME
190+
NAME_REF
191191
IDENT "cursor_name"
192192
SEMICOLON ";"
193193
WHITESPACE "\n"
@@ -201,7 +201,7 @@ SOURCE_FILE
201201
WHITESPACE " "
202202
FROM_KW "FROM"
203203
WHITESPACE " "
204-
NAME
204+
NAME_REF
205205
IDENT "cursor_name"
206206
SEMICOLON ";"
207207
WHITESPACE "\n"
@@ -214,7 +214,7 @@ SOURCE_FILE
214214
WHITESPACE " "
215215
FROM_KW "FROM"
216216
WHITESPACE " "
217-
NAME
217+
NAME_REF
218218
IDENT "cursor_name"
219219
SEMICOLON ";"
220220
WHITESPACE "\n\n"

crates/squawk_parser/tests/snapshots/tests__move_ok.snap

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ SOURCE_FILE
1212
WHITESPACE " "
1313
FROM_KW "from"
1414
WHITESPACE " "
15-
NAME
15+
NAME_REF
1616
IDENT "cursor_name"
1717
SEMICOLON ";"
1818
WHITESPACE "\n"
@@ -23,7 +23,7 @@ SOURCE_FILE
2323
WHITESPACE " "
2424
FROM_KW "from"
2525
WHITESPACE " "
26-
NAME
26+
NAME_REF
2727
IDENT "cursor_name"
2828
SEMICOLON ";"
2929
WHITESPACE "\n"
@@ -34,7 +34,7 @@ SOURCE_FILE
3434
WHITESPACE " "
3535
IN_KW "in"
3636
WHITESPACE " "
37-
NAME
37+
NAME_REF
3838
IDENT "cursor_name"
3939
SEMICOLON ";"
4040
WHITESPACE "\n"
@@ -43,7 +43,7 @@ SOURCE_FILE
4343
WHITESPACE " "
4444
PRIOR_KW "prior"
4545
WHITESPACE " "
46-
NAME
46+
NAME_REF
4747
IDENT "cursor_name"
4848
SEMICOLON ";"
4949
WHITESPACE "\n\n"
@@ -54,7 +54,7 @@ SOURCE_FILE
5454
WHITESPACE " "
5555
FROM_KW "FROM"
5656
WHITESPACE " "
57-
NAME
57+
NAME_REF
5858
IDENT "cursor_name"
5959
SEMICOLON ";"
6060
WHITESPACE "\n"
@@ -65,7 +65,7 @@ SOURCE_FILE
6565
WHITESPACE " "
6666
FROM_KW "FROM"
6767
WHITESPACE " "
68-
NAME
68+
NAME_REF
6969
IDENT "cursor_name"
7070
SEMICOLON ";"
7171
WHITESPACE "\n"
@@ -76,7 +76,7 @@ SOURCE_FILE
7676
WHITESPACE " "
7777
FROM_KW "FROM"
7878
WHITESPACE " "
79-
NAME
79+
NAME_REF
8080
IDENT "cursor_name"
8181
SEMICOLON ";"
8282
WHITESPACE "\n"
@@ -87,7 +87,7 @@ SOURCE_FILE
8787
WHITESPACE " "
8888
FROM_KW "FROM"
8989
WHITESPACE " "
90-
NAME
90+
NAME_REF
9191
IDENT "cursor_name"
9292
SEMICOLON ";"
9393
WHITESPACE "\n"
@@ -101,7 +101,7 @@ SOURCE_FILE
101101
WHITESPACE " "
102102
FROM_KW "FROM"
103103
WHITESPACE " "
104-
NAME
104+
NAME_REF
105105
IDENT "cursor_name"
106106
SEMICOLON ";"
107107
WHITESPACE "\n"
@@ -115,7 +115,7 @@ SOURCE_FILE
115115
WHITESPACE " "
116116
FROM_KW "FROM"
117117
WHITESPACE " "
118-
NAME
118+
NAME_REF
119119
IDENT "cursor_name"
120120
SEMICOLON ";"
121121
WHITESPACE "\n"
@@ -127,7 +127,7 @@ SOURCE_FILE
127127
WHITESPACE " "
128128
FROM_KW "FROM"
129129
WHITESPACE " "
130-
NAME
130+
NAME_REF
131131
IDENT "cursor_name"
132132
SEMICOLON ";"
133133
WHITESPACE "\n"
@@ -138,7 +138,7 @@ SOURCE_FILE
138138
WHITESPACE " "
139139
FROM_KW "FROM"
140140
WHITESPACE " "
141-
NAME
141+
NAME_REF
142142
IDENT "cursor_name"
143143
SEMICOLON ";"
144144
WHITESPACE "\n"
@@ -149,7 +149,7 @@ SOURCE_FILE
149149
WHITESPACE " "
150150
FROM_KW "FROM"
151151
WHITESPACE " "
152-
NAME
152+
NAME_REF
153153
IDENT "cursor_name"
154154
SEMICOLON ";"
155155
WHITESPACE "\n"
@@ -163,7 +163,7 @@ SOURCE_FILE
163163
WHITESPACE " "
164164
FROM_KW "FROM"
165165
WHITESPACE " "
166-
NAME
166+
NAME_REF
167167
IDENT "cursor_name"
168168
SEMICOLON ";"
169169
WHITESPACE "\n"
@@ -176,7 +176,7 @@ SOURCE_FILE
176176
WHITESPACE " "
177177
FROM_KW "FROM"
178178
WHITESPACE " "
179-
NAME
179+
NAME_REF
180180
IDENT "cursor_name"
181181
SEMICOLON ";"
182182
WHITESPACE "\n"
@@ -187,7 +187,7 @@ SOURCE_FILE
187187
WHITESPACE " "
188188
FROM_KW "FROM"
189189
WHITESPACE " "
190-
NAME
190+
NAME_REF
191191
IDENT "cursor_name"
192192
SEMICOLON ";"
193193
WHITESPACE "\n"
@@ -201,7 +201,7 @@ SOURCE_FILE
201201
WHITESPACE " "
202202
FROM_KW "FROM"
203203
WHITESPACE " "
204-
NAME
204+
NAME_REF
205205
IDENT "cursor_name"
206206
SEMICOLON ";"
207207
WHITESPACE "\n"
@@ -214,7 +214,7 @@ SOURCE_FILE
214214
WHITESPACE " "
215215
FROM_KW "FROM"
216216
WHITESPACE " "
217-
NAME
217+
NAME_REF
218218
IDENT "cursor_name"
219219
SEMICOLON ";"
220220
WHITESPACE "\n\n"

crates/squawk_parser/tests/snapshots/tests__update_ok.snap

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1120,7 +1120,8 @@ SOURCE_FILE
11201120
WHITESPACE " "
11211121
OF_KW "OF"
11221122
WHITESPACE " "
1123-
IDENT "c_films"
1123+
NAME_REF
1124+
IDENT "c_films"
11241125
SEMICOLON ";"
11251126
WHITESPACE "\n\n"
11261127
UPDATE

0 commit comments

Comments
 (0)