Releases: sbdchd/squawk
Fix Invalid Validation for Casts
Fix VSCode on Windows
GitHub Annotations
File level ignores
v2.19.0 - 2025-07-09
Added
-
linter: file level rule violation ignore comments. (#585)
Now you can ignore all violations in a file via:
-- squawk-ignore-file
or ignore a specific rule for the file:
-- squawk-ignore-file prefer-robust-stmts
This works with the existing line level ignores:
create table t (id int); -- squawk-ignore prefer-robust-stmts create table u (id int);
-
vscode: incremental sync. (#583)
No more debouncing of file updates making squawk in vscode snappier!
-
vscode: tracing setting
squawk.trace.server
& output channel. (#584), (#585)
More VSCode Commands
Language Server Begins With A VSCode Extension
Parsing for non-standard params like `:name` & misc parser improvements
Added
- Parsing non-standard placeholders with format
:name
. (#560), (#561) - Error recovery for
drop table
when there's extra commas or missing commas. (#556) - Improved
order by
parsing. (#556) - Error recovery for array exprs & improvements for constraints. (#557)
- Improved CTE parsing. (#558)
- Error recovery for type args & more forgiving create table args parsing. (#559)
Changed
- Internal: bumped rust to 1.88.0
Parser Improvements, `create table`, `alter table` & more
Added
-
validation for missing types in
create table
args. (#550)The following now parses with an error:
create table t ( x int, description );
error[syntax-error]: Missing column type --> stdin:3:14 | 3 | description | ^ |
-
Make
alter table
actions robust to missing commas. (#549)The following now parses with an error:
alter table t validate constraint foo validate constraint b;
error[syntax-error]: missing comma --> stdin:2:26 | 2 | validate constraint foo | ^ |
Fixed
-
Crash with trailing comma in select target list. (#551)
The following now parses with an error:
select a, from t;
error[syntax-error]: unexpected trailing comma --> stdin:1:9 | 1 | select a, from t; | ^ |
-
Parsing idents with
uescape
. (#533)The following now parses:
select U&"d!0061t!+000061" UESCAPE '!';
Update install script with CDN env var
Added
- The npm install script now checks an env var (
SQUAWK_LOCAL_CDNURL
), that
defaults tohttps://github.com/sbdchd/squawk/releases/download
, for
downloading binaries. This should help when you want to use a cache or in case
GitHub is down.
Fixed
Improved parsing for joins & compound select statements
Fixed
-
parsing compound select statements & their trailing clauses, i.e.
(select 1) limit 1; select * from ( (select 1) union all (select 1) );
-
join parsing to be more error resilent:
error[syntax-error]: Join missing condition. --> stdin:2:23 | 2 | select * from t join u; | ^ | error[syntax-error]: Join `using` clause is not allowed for cross joins. --> stdin:16:30 | 16 | select * from t cross join u using (id); | ^^^^^^^^^^ | error[syntax-error]: Join condition is not allowed for cross joins. --> stdin:18:30 | 18 | select * from t cross join u on true; | ^^^^^^^ |