Skip to content

Releases: sbdchd/squawk

Fix Invalid Validation for Casts

25 Jul 02:08
fecb7c8
Compare
Choose a tag to compare

Fixed

  • parser: bugged warning for invalid casts that was warning about all casts inside function calls. (#598)

Fix VSCode on Windows

24 Jul 00:43
f4da3e9
Compare
Choose a tag to compare

Added

  • parser: warn about try_cast and don't fail to parse casts that are invalid. (#593)

Fixed

  • vscode: invalid binary path on windows causing extension not to load. (#595)

GitHub Annotations

12 Jul 19:54
13336d4
Compare
Choose a tag to compare

Added

  • GitHub annotations when run with GITHUB_ACTIONS set. (#589), (#590)

    This can be disabled by setting SQUAWK_DISABLE_GITHUB_ANNOTATIONS.

  • Docs for squawk-ignore-file. (#588)

  • Publishing to open vsx in CI. (#587)

File level ignores

10 Jul 02:02
201e011
Compare
Choose a tag to compare

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

04 Jul 00:43
1078214
Compare
Choose a tag to compare

Added

  • vscode: Show tokens command to get lexer output. (#579)
  • vscode: Show server & Stop server commands. (#576)
  • vscode: show client logs & show syntax tree commands. (#575)

Language Server Begins With A VSCode Extension

01 Jul 03:56
ac9f90c
Compare
Choose a tag to compare

Added

Parsing for non-standard params like `:name` & misc parser improvements

28 Jun 00:32
cb392d6
Compare
Choose a tag to compare

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

21 Jun 23:36
2fdef09
Compare
Choose a tag to compare

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

18 Jun 01:58
d3acbbe
Compare
Choose a tag to compare

Added

  • The npm install script now checks an env var (SQUAWK_LOCAL_CDNURL), that
    defaults to https://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

  • The last of the pg regression suite errors. (#543), (#542)

  • Precendence when parsing compound select statements. (#544)

    SELECT foo UNION SELECT bar ORDER BY baz;
    -- equal to:
    (SELECT foo UNION SELECT bar) ORDER BY baz;

Improved parsing for joins & compound select statements

16 Jun 01:58
6f44981
Compare
Choose a tag to compare

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;
       |                              ^^^^^^^
       |