Skip to content

Releases: sbdchd/squawk

Postgres 19 Syntax Support & More Goto Def Support

23 Dec 02:25
c69c76d

Choose a tag to compare

Added

  • parser: add support for postgres 19's partition merge, partition split, and more. (#754)
  • parser: handle missing exprs in case expr (#749)
  • ide: goto def with table stmt (#748)
  • ide: support set search_path (#747)

Internal

  • fix: Removed deprecated cargo_bin() function in snapbox (#746). Thanks @ranger-ross!

Fix NPM Trusted Publishing Round 2

16 Dec 23:38
02bb0f1

Choose a tag to compare

Fixed

  • ci: try to fix npm trusted publishing (#742)

Fix NPM Trusted Publishing

16 Dec 23:19
0e1f799

Choose a tag to compare

Fixed

  • ci: npm trusted publishing (#741)

Ide Features, NPM Trusted Publishing, & Linter Fix for Create Temp Table

16 Dec 14:59
6f5364d

Choose a tag to compare

v2.33.0 - 2025-12-16

Added

  • ide: goto def create temp table (#737)

  • ide: basic goto def for create table/drop table (#736)

  • ide: goto def on begin/commit/rollback (#734)

  • ide: quote & unquote identifiers (#733)

  • ide: add table <-> select rewrites (#728)

  • ide: string rewrites (#725)

  • parser: update grammar & ast (#727)

  • use npm trusted publishing (#724). Thanks @chdsbd!

Fixed

  • linter: fix false positive with create temp table t() on commit drop; (#739)
  • parser: fix reindex parsing (#726)

Fix parsing issues with cross joins & insert/merge/update

05 Dec 05:05
8c116dd

Choose a tag to compare

Fixed

  • parser: fixed issue parsing some insert's with selects and conflict clauses (#720, #721, #722).

Added

  • parser: special case functions like extract are now properly typed in the ast (#719).

Fix False Positive in `adding-foreign-key-constraint` & LSP Support for Case Expressions

24 Nov 21:19
23a9a1c

Choose a tag to compare

Added

  • linter: adding_foreign_key_constraint: allow when create table in transaction (#713)
  • lsp: add code action for case else clause (#709). Thanks @cr4ftx!
  • lsp: go to def for case exprs (#708)
  • parser: fill out more ast nodes (#714)
  • parser: add slice expr node to syntax tree (#707)
  • parser: improve create function & create foreign table robustness (#704)
  • parser: improve option & role lists (#702)
  • parser: improve error recovery for update statements (#701)

Fixed

  • parser: fix nodes for casts so ast access works correctly (#711)
  • linter: fix autofix for int & smallint with array types (#710)

New Rule: ban-uncommitted-transaction

31 Oct 01:18
95d1c0c

Choose a tag to compare

Added

  • linter: new rule ban-uncommitted-transaction

    Squawk now warns about missing commit statements like:

    begin;
    create table t(id bigint);
    warning[ban-uncommitted-transaction]: Transaction never committed or rolled back.
      ╭▸ stdin:1:1
      │
    1 │ begin;
      │ ━━━━━
      │
      ├ help: Add a `COMMIT` or `ROLLBACK` statement to complete the transaction.
      ╭╴
    2 ±
    3 + COMMIT;
      ╰╴
    

Linter Fix, Parser & VSCode Improvements

20 Oct 02:20
8b6a435

Choose a tag to compare

Added

  • parser: improve error recovery for option lists in reindex, prepare,
    vacuum, copy, drop database, create type, create function,
    create table, create index (#684)

  • parser: improved error recovery for CTEs (#683)

    with
      a as (
         select 1
      ) -- <-- missing a comma
      b as (
         select 3
      )
    select 2;

    squawk now identifies the missing comma correctly:

      error[syntax-error]: missing comma
      ╭▸ stdin:4:6
      │
    4 │     ) -- <-- missing a comma
      ╰╴     ━
    
  • parser: improve error recovery of group by & distinct on (#695)

  • vscode: improved commenting behavior (#690)

Fixed

  • linter: fixed false positive with constraint-missing-not-valid (#694)

  • lexer: lex empty dollar quoted strings ($$$$) correctly (#691)

  • linter: identify table statement as fast (#688)

  • lsp: server logs no longer contain ansi codes which vscode garbles (#681)

Fix for require-timeout-settings false positive

04 Oct 03:41
adc0c1a

Choose a tag to compare

Added

  • lsp server: expand selection support. (#674)

Fixed

  • linter: fix require-timeout-settings false positives with create table
    statements that do not have foreign keys. (#675)

New Rule: require-timeout-settings

03 Oct 03:08
1a71748

Choose a tag to compare

Added

  • New rule: require-timeout-settings (#671)

    It's important to configure lock & statement timeouts to ensure safe migrations.
    See Safety Requirements

    So the following will error:

    alter table t add column c boolean;

    but this is okay:

    set lock_timeout = '1s';
    set statement_timeout = '5s';
    alter table t add column c boolean;

    If you've already configured timeouts for your migrations, you can safely
    ignore this rule.

Fixed

  • parser: pg18 like clause in create foreign table now parses (#666)

  • cli: parsing rule alises i.e., prefer-timestamptz and prefer-timestamp-tz both work. (#668)