Releases: sbdchd/squawk
Postgres 19 Syntax Support & More Goto Def Support
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
tablestmt (#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
Fixed
- ci: try to fix npm trusted publishing (#742)
Fix NPM Trusted Publishing
Fixed
- ci: npm trusted publishing (#741)
Ide Features, NPM Trusted Publishing, & Linter Fix for Create Temp Table
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)
Fixed
Fix parsing issues with cross joins & insert/merge/update
Fix False Positive in `adding-foreign-key-constraint` & LSP Support for Case Expressions
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
New Rule: ban-uncommitted-transaction
Added
-
linter: new rule
ban-uncommitted-transactionSquawk now warns about missing
commitstatements 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
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
Fix for require-timeout-settings false positive
New Rule: require-timeout-settings
Added
-
New rule: require-timeout-settings (#671)
It's important to configure lock & statement timeouts to ensure safe migrations.
See Safety RequirementsSo 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.