You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+20-2Lines changed: 20 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,24 @@ All notable changes to this project are documented in this file.
4
4
5
5
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
6
6
7
-
## [Unreleased]
7
+
## [0.1.9] - 2026-02-25
8
+
9
+
### Added
10
+
- Rust-side pre-parse formatting guard for deep set-operation chains (`UNION` / `INTERSECT` / `EXCEPT`) with new error code `E_GUARD_SET_OP_CHAIN_EXCEEDED`.
11
+
- New FFI API: `polyglot_format_with_options(sql, dialect, options_json)` to override formatting guard limits per call.
12
+
- Python formatting per-call guard overrides via keyword-only arguments on `format_sql(...)` / `format(...)`:
13
+
-`max_input_bytes`
14
+
-`max_tokens`
15
+
-`max_ast_nodes`
16
+
-`max_set_op_chain`
17
+
18
+
### Changed
19
+
- Formatting guard defaults now include `maxSetOpChain = 256` to fail fast before deep set-op stack-overflow scenarios in large generated queries.
20
+
- ClickHouse `minus(...)` is treated as a function call in set-op guard detection (not as a set operation), avoiding false positives.
21
+
22
+
### Fixed
23
+
- Large/deep set-operation formatting now returns deterministic guard failures instead of process-level stack overflows in affected cases.
24
+
- FFI and Python interfaces are now aligned with Rust/WASM/SDK by supporting per-call formatting guard configuration.
8
25
9
26
## [0.1.8] - 2026-02-24
10
27
@@ -62,7 +79,8 @@ The format is based on Keep a Changelog, and this project adheres to Semantic Ve
62
79
- removed problematic doc-comment patterns that broke generated JSDoc parsing
63
80
- removed `Index.ts` renaming in binding copy flow to avoid case-sensitive import conflicts
0 commit comments