squawk-parser 2.47.0

Linter for Postgres migrations & SQL
Documentation
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
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
---
source: crates/squawk_parser/tests/tests.rs
input_file: postgres/regression_suite/errors.sql
---
---
error[syntax-error]: expected relation name
   ╭▸ 
49 │ delete from;
   ╰╴           ━
error[syntax-error]: expected path name
    ╭▸ 
131 │ drop index;
    ╰╴          ━
error[syntax-error]: expected path name
    ╭▸ 
134 │ drop index 314159;
    ╰╴          ━
error[syntax-error]: expected SEMICOLON
    ╭▸ 
134 │ drop index 314159;
    ╰╴          ━
error[syntax-error]: expected command, found INT_NUMBER
    ╭▸ 
134 │ drop index 314159;
    ╰╴           ━
error[syntax-error]: expected path name
    ╭▸ 
144 │ drop aggregate;
    ╰╴              ━
error[syntax-error]: expected L_PAREN
    ╭▸ 
144 │ drop aggregate;
    ╰╴              ━
error[syntax-error]: expected type name
    ╭▸ 
144 │ drop aggregate;
    ╰╴              ━
error[syntax-error]: expected R_PAREN
    ╭▸ 
144 │ drop aggregate;
    ╰╴              ━
error[syntax-error]: expected L_PAREN
    ╭▸ 
147 │ drop aggregate newcnt1;
    ╰╴                      ━
error[syntax-error]: expected type name
    ╭▸ 
147 │ drop aggregate newcnt1;
    ╰╴                      ━
error[syntax-error]: expected R_PAREN
    ╭▸ 
147 │ drop aggregate newcnt1;
    ╰╴                      ━
error[syntax-error]: expected path name
    ╭▸ 
150 │ drop aggregate 314159 (int);
    ╰╴               ━
error[syntax-error]: expected L_PAREN
    ╭▸ 
150 │ drop aggregate 314159 (int);
    ╰╴               ━
error[syntax-error]: expected type name
    ╭▸ 
150 │ drop aggregate 314159 (int);
    ╰╴               ━
error[syntax-error]: expected R_PAREN
    ╭▸ 
150 │ drop aggregate 314159 (int);
    ╰╴               ━
error[syntax-error]: expected SEMICOLON
    ╭▸ 
150 │ drop aggregate 314159 (int);
    ╰╴               ━
error[syntax-error]: expected command, found INT_NUMBER
    ╭▸ 
150 │ drop aggregate 314159 (int);
    ╰╴               ━
error[syntax-error]: expected command, found L_PAREN
    ╭▸ 
150 │ drop aggregate 314159 (int);
    ╰╴                      ━
error[syntax-error]: expected command, found INT_KW
    ╭▸ 
150 │ drop aggregate 314159 (int);
    ╰╴                       ━
error[syntax-error]: expected command, found R_PAREN
    ╭▸ 
150 │ drop aggregate 314159 (int);
    ╰╴                          ━
error[syntax-error]: expected path name
    ╭▸ 
166 │ drop function ();
    ╰╴              ━
error[syntax-error]: expected path name
    ╭▸ 
169 │ drop function 314159();
    ╰╴              ━
error[syntax-error]: expected SEMICOLON
    ╭▸ 
169 │ drop function 314159();
    ╰╴              ━
error[syntax-error]: expected command, found INT_NUMBER
    ╭▸ 
169 │ drop function 314159();
    ╰╴              ━
error[syntax-error]: expected command, found L_PAREN
    ╭▸ 
169 │ drop function 314159();
    ╰╴                    ━
error[syntax-error]: expected command, found R_PAREN
    ╭▸ 
169 │ drop function 314159();
    ╰╴                     ━
error[syntax-error]: expected path name
    ╭▸ 
179 │ drop type;
    ╰╴         ━
error[syntax-error]: expected path name
    ╭▸ 
182 │ drop type 314159;
    ╰╴         ━
error[syntax-error]: expected SEMICOLON
    ╭▸ 
182 │ drop type 314159;
    ╰╴         ━
error[syntax-error]: expected command, found INT_NUMBER
    ╭▸ 
182 │ drop type 314159;
    ╰╴          ━
error[syntax-error]: expected operator, got SEMICOLON
    ╭▸ 
192 │ drop operator;
    ╰╴             ━
error[syntax-error]: expected L_PAREN
    ╭▸ 
192 │ drop operator;
    ╰╴             ━
error[syntax-error]: expected type name
    ╭▸ 
192 │ drop operator;
    ╰╴             ━
error[syntax-error]: expected COMMA
    ╭▸ 
192 │ drop operator;
    ╰╴             ━
error[syntax-error]: expected type name
    ╭▸ 
192 │ drop operator;
    ╰╴             ━
error[syntax-error]: expected R_PAREN
    ╭▸ 
192 │ drop operator;
    ╰╴             ━
error[syntax-error]: expected operator, got SEMICOLON
    ╭▸ 
195 │ drop operator equals;
    ╰╴                    ━
error[syntax-error]: expected L_PAREN
    ╭▸ 
195 │ drop operator equals;
    ╰╴                    ━
error[syntax-error]: expected type name
    ╭▸ 
195 │ drop operator equals;
    ╰╴                    ━
error[syntax-error]: expected COMMA
    ╭▸ 
195 │ drop operator equals;
    ╰╴                    ━
error[syntax-error]: expected type name
    ╭▸ 
195 │ drop operator equals;
    ╰╴                    ━
error[syntax-error]: expected R_PAREN
    ╭▸ 
195 │ drop operator equals;
    ╰╴                    ━
error[syntax-error]: expected L_PAREN
    ╭▸ 
198 │ drop operator ===;
    ╰╴                 ━
error[syntax-error]: expected type name
    ╭▸ 
198 │ drop operator ===;
    ╰╴                 ━
error[syntax-error]: expected COMMA
    ╭▸ 
198 │ drop operator ===;
    ╰╴                 ━
error[syntax-error]: expected type name
    ╭▸ 
198 │ drop operator ===;
    ╰╴                 ━
error[syntax-error]: expected R_PAREN
    ╭▸ 
198 │ drop operator ===;
    ╰╴                 ━
error[syntax-error]: expected operator, got COMMA
    ╭▸ 
201 │ drop operator int4, int4;
    ╰╴                  ━
error[syntax-error]: expected L_PAREN
    ╭▸ 
201 │ drop operator int4, int4;
    ╰╴                  ━
error[syntax-error]: expected type name
    ╭▸ 
201 │ drop operator int4, int4;
    ╰╴                  ━
error[syntax-error]: expected R_PAREN
    ╭▸ 
201 │ drop operator int4, int4;
    ╰╴                        ━
error[syntax-error]: expected operator, got L_PAREN
    ╭▸ 
204 │ drop operator (int4, int4);
    ╰╴              ━
error[syntax-error]: expected type name
    ╭▸ 
207 │ drop operator === ();
    ╰╴                   ━
error[syntax-error]: expected COMMA
    ╭▸ 
207 │ drop operator === ();
    ╰╴                   ━
error[syntax-error]: expected type name
    ╭▸ 
207 │ drop operator === ();
    ╰╴                   ━
error[syntax-error]: expected COMMA
    ╭▸ 
210 │ drop operator === (int4);
    ╰╴                       ━
error[syntax-error]: expected type name
    ╭▸ 
210 │ drop operator === (int4);
    ╰╴                       ━
error[syntax-error]: expected COMMA
    ╭▸ 
216 │ drop operator = (nonesuch);
    ╰╴                         ━
error[syntax-error]: expected type name
    ╭▸ 
216 │ drop operator = (nonesuch);
    ╰╴                         ━
error[syntax-error]: expected type name
    ╭▸ 
219 │ drop operator = ( , int4);
    ╰╴                 ━
error[syntax-error]: expected type name
    ╭▸ 
228 │ drop operator = (int4, );
    ╰╴                      ━
error[syntax-error]: expected name
    ╭▸ 
235 │ drop rule;
    ╰╴         ━
error[syntax-error]: expected ON_KW
    ╭▸ 
235 │ drop rule;
    ╰╴         ━
error[syntax-error]: expected path name
    ╭▸ 
235 │ drop rule;
    ╰╴         ━
error[syntax-error]: expected name
    ╭▸ 
238 │ drop rule 314159;
    ╰╴         ━
error[syntax-error]: expected ON_KW
    ╭▸ 
238 │ drop rule 314159;
    ╰╴          ━
error[syntax-error]: expected path name
    ╭▸ 
238 │ drop rule 314159;
    ╰╴          ━
error[syntax-error]: expected SEMICOLON
    ╭▸ 
238 │ drop rule 314159;
    ╰╴          ━
error[syntax-error]: expected command, found INT_NUMBER
    ╭▸ 
238 │ drop rule 314159;
    ╰╴          ━
error[syntax-error]: expected command, found DROP_KW
    ╭▸ 
244 │ drop tuple rule nonesuch;
    ╰╴━
error[syntax-error]: expected command, found IDENT
    ╭▸ 
244 │ drop tuple rule nonesuch;
    ╰╴     ━
error[syntax-error]: expected command, found RULE_KW
    ╭▸ 
244 │ drop tuple rule nonesuch;
    ╰╴           ━
error[syntax-error]: expected command, found IDENT
    ╭▸ 
244 │ drop tuple rule nonesuch;
    ╰╴                ━
error[syntax-error]: expected command, found DROP_KW
    ╭▸ 
245 │ drop instance rule nonesuch on noplace;
    ╰╴━
error[syntax-error]: expected command, found IDENT
    ╭▸ 
245 │ drop instance rule nonesuch on noplace;
    ╰╴     ━
error[syntax-error]: expected command, found RULE_KW
    ╭▸ 
245 │ drop instance rule nonesuch on noplace;
    ╰╴              ━
error[syntax-error]: expected command, found IDENT
    ╭▸ 
245 │ drop instance rule nonesuch on noplace;
    ╰╴                   ━
error[syntax-error]: expected command, found ON_KW
    ╭▸ 
245 │ drop instance rule nonesuch on noplace;
    ╰╴                            ━
error[syntax-error]: expected command, found IDENT
    ╭▸ 
245 │ drop instance rule nonesuch on noplace;
    ╰╴                               ━
error[syntax-error]: expected command, found DROP_KW
    ╭▸ 
246 │ drop rewrite rule nonesuch;
    ╰╴━
error[syntax-error]: expected command, found IDENT
    ╭▸ 
246 │ drop rewrite rule nonesuch;
    ╰╴     ━
error[syntax-error]: expected command, found RULE_KW
    ╭▸ 
246 │ drop rewrite rule nonesuch;
    ╰╴             ━
error[syntax-error]: expected command, found IDENT
    ╭▸ 
246 │ drop rewrite rule nonesuch;
    ╰╴                  ━
error[syntax-error]: expected command, found IDENT
    ╭▸ 
279 │ xxx;
    ╰╴━
error[syntax-error]: expected command, found CREATE_KW
    ╭▸ 
281 │ CREATE foo;
    ╰╴━
error[syntax-error]: expected command, found IDENT
    ╭▸ 
281 │ CREATE foo;
    ╰╴       ━
error[syntax-error]: expected path name
    ╭▸ 
283 │ CREATE TABLE ;
    ╰╴            ━
error[syntax-error]: expected SEMICOLON
    ╭▸ 
288 │ INSERT INTO foo VALUES(123) foo;
    ╰╴      ━
error[syntax-error]: expected command, found INTO_KW
    ╭▸ 
288 │ INSERT INTO foo VALUES(123) foo;
    ╰╴       ━
error[syntax-error]: expected command, found IDENT
    ╭▸ 
288 │ INSERT INTO foo VALUES(123) foo;
    ╰╴            ━
error[syntax-error]: expected SEMICOLON
    ╭▸ 
288 │ INSERT INTO foo VALUES(123) foo;
    ╰╴                           ━
error[syntax-error]: expected command, found IDENT
    ╭▸ 
288 │ INSERT INTO foo VALUES(123) foo;
    ╰╴                            ━
error[syntax-error]: expected path name
    ╭▸ 
290 │ INSERT INTO 123
    ╰╴           ━
error[syntax-error]: expected select stmt
    ╭▸ 
290 │ INSERT INTO 123
    ╰╴           ━
error[syntax-error]: expected SEMICOLON
    ╭▸ 
290 │ INSERT INTO 123
    ╰╴           ━
error[syntax-error]: expected command, found INT_NUMBER
    ╭▸ 
290 │ INSERT INTO 123
    ╰╴            ━
error[syntax-error]: expected SEMICOLON
    ╭▸ 
294 │ VALUES(123) 123
    ╰╴           ━
error[syntax-error]: expected command, found INT_NUMBER
    ╭▸ 
294 │ VALUES(123) 123
    ╰╴            ━
error[syntax-error]: expected NULL_KW
    ╭▸ 
300 │     id3 INTEGER NOT NUL,
    ╰╴                   ━
error[syntax-error]: expected COMMA
    ╭▸ 
300 │     id3 INTEGER NOT NUL,
    ╰╴                   ━
error[syntax-error]: expected NULL_KW
    ╭▸ 
304 │ CREATE TABLE foo(id INT4 UNIQUE NOT NULL, id2 TEXT NOT NULL PRIMARY KEY, id3 INTEGER NOT NUL,
    ╰╴                                                                                        ━
error[syntax-error]: expected COMMA
    ╭▸ 
304 │ CREATE TABLE foo(id INT4 UNIQUE NOT NULL, id2 TEXT NOT NULL PRIMARY KEY, id3 INTEGER NOT NUL,
    ╰╴                                                                                        ━
error[syntax-error]: expected NULL_KW
    ╭▸ 
309 │ id3 INTEGER NOT NUL, id4 INT4 UNIQUE NOT NULL, id5 TEXT UNIQUE NOT NULL, id INT4 UNIQUE NOT NULL, id2 TEXT NOT NULL PRIMARY KEY);
    ╰╴               ━
error[syntax-error]: expected COMMA
    ╭▸ 
309 │ id3 INTEGER NOT NUL, id4 INT4 UNIQUE NOT NULL, id5 TEXT UNIQUE NOT NULL, id INT4 UNIQUE NOT NULL, id2 TEXT NOT NULL PRIMARY KEY);
    ╰╴               ━
error[syntax-error]: expected NULL_KW
    ╭▸ 
312 │ CREATE TABLE foo(id INT4 UNIQUE NOT NULL, id2 TEXT NOT NULL PRIMARY KEY, id3 INTEGER NOT NUL, id4 INT4 UNIQUE NOT NULL, id5 TEXT UNIQ…
    ╰╴                                                                                        ━
error[syntax-error]: expected COMMA
    ╭▸ 
312 │ CREATE TABLE foo(id INT4 UNIQUE NOT NULL, id2 TEXT NOT NULL PRIMARY KEY, id3 INTEGER NOT NUL, id4 INT4 UNIQUE NOT NULL, id5 TEXT UNIQ…
    ╰╴                                                                                        ━
error[syntax-error]: expected NULL_KW
    ╭▸ 
318 │ foo(id INT4 UNIQUE NOT NULL, id2 TEXT NOT NULL PRIMARY KEY, id3 INTEGER NOT NUL,
    ╰╴                                                                           ━
error[syntax-error]: expected COMMA
    ╭▸ 
318 │ foo(id INT4 UNIQUE NOT NULL, id2 TEXT NOT NULL PRIMARY KEY, id3 INTEGER NOT NUL,
    ╰╴                                                                           ━
error[syntax-error]: expected NULL_KW
    ╭▸ 
334 │ id3 INTEGER NOT NUL, id4 INT4 UNIQUE NOT NULL, id5 TEXT UNIQUE NOT NULL, id INT4 UNIQUE NOT NULL, id2 TEXT NOT NULL PRIMARY KEY)
    ╰╴               ━
error[syntax-error]: expected COMMA
    ╭▸ 
334 │ id3 INTEGER NOT NUL, id4 INT4 UNIQUE NOT NULL, id5 TEXT UNIQUE NOT NULL, id INT4 UNIQUE NOT NULL, id2 TEXT NOT NULL PRIMARY KEY)
    ╰╴               ━
error[syntax-error]: expected NULL_KW
    ╭▸ 
344 │ UNIQUE NOT NULL, idx INT4 UNIQUE NOT NULL, idy INT4 UNIQUE NOT NULL, id2 TEXT NOT NULL PRIMARY KEY, id3 INTEGER NOT NUL, id4 INT4 UNI…
    ╰╴                                                                                                                   ━
error[syntax-error]: expected COMMA
    ╭▸ 
344 │ UNIQUE NOT NULL, idx INT4 UNIQUE NOT NULL, idy INT4 UNIQUE NOT NULL, id2 TEXT NOT NULL PRIMARY KEY, id3 INTEGER NOT NUL, id4 INT4 UNI…
    ╰╴                                                                                                                   ━
error[syntax-error]: expected NULL_KW
    ╭▸ 
364 │ idx INT4 UNIQUE NOT NULL, idy INT4 UNIQUE NOT NULL, id2 TEXT NOT NULL PRIMARY KEY, id3 INTEGER NOT NUL, id4 INT4 UNIQUE NOT NULL, id5…
    ╰╴                                                                                                  ━
error[syntax-error]: expected COMMA
    ╭▸ 
364 │ idx INT4 UNIQUE NOT NULL, idy INT4 UNIQUE NOT NULL, id2 TEXT NOT NULL PRIMARY KEY, id3 INTEGER NOT NUL, id4 INT4 UNIQUE NOT NULL, id5…
    ╰╴                                                                                                  ━