Last release 1 months ago
15 Jul 2026
Ships fairly regularly
a new release about every 3 weeks
Some releases are documented
notes for 10 of 39 stable releases
1 version withdrawn
withdrawn after publishing
3 years old
78 releases · first in 2023
Release timeline
78 releases since 2023One column per quarter.
Releases
- v0.2.415 Jul 2026
Release notes
Open source →Bug Fixes
- Don't treat backslash as a string escape in SQL Server and Oracle (#103)
SQL Server (T-SQL) and Oracle follow ANSI-SQL string semantics, where backslash is an ordinary character and a quote inside a literal is escaped by doubling it (
''). The lexer previously treated\as an escape character for all dialects, so a literal likeESCAPE '\'had its closing quote misread as escaped, causing the scan to swallow the rest of the batch up to the next quote and truncate the obfuscated query.
- Don't treat backslash as a string escape in SQL Server and Oracle (#103)
SQL Server (T-SQL) and Oracle follow ANSI-SQL string semantics, where backslash is an ordinary character and a quote inside a literal is escaped by doubling it (
- v0.2.36 Jul 2026
Additional notes
Open source →Bug Fixes
- Preserve bracket-quoted T-SQL identifiers containing spaces (#101)
Bracket-quoted identifiers whose content contains whitespace (e.g.
[Column With Spaces]) are no longer de-bracketed during normalization. Stripping the brackets produces bare spaces in identifier position, which breaks query structure. Simple identifiers ([schema],[table]) and dot-joined multi-part identifiers ([schema].[table]) are unaffected and continue to be de-bracketed as before. A secondary fix suppresses the spurious space that the normalizer was inserting between a dot-suffixed token and the bracket-quoted identifier that follows it (e.g.t. [Col]→t.[Col]).
- Preserve bracket-quoted T-SQL identifiers containing spaces (#101)
Bracket-quoted identifiers whose content contains whitespace (e.g.
- v0.2.3-0.20260702151445-d86dde980f992 Jul 2026pre-release
Nothing published for this version
- v0.2.25 May 2026
Additional notes
Open source →Bug Fixes
-
Obfuscate EXTRACT field keywords (#98) The obfuscator now replaces the field argument of
EXTRACT(field FROM source)with a placeholder when it matches a known PostgreSQL field name (epoch,year,month,dow,isodow,microseconds,timezone_hour, etc.). Previously, queries captured viapg_stat_activitykeptepochas an unquoted identifier while queries frompg_stat_statementshad it normalized to$1(and then to?), splitting one logical query across two DBM signatures. Both code paths now converge onEXTRACT(? FROM source). Bareepoch/year/etc. outside anEXTRACT(...)call (e.g. as a column reference) and unrecognized field names are left untouched. -
Fix handling of PostgreSQL VACUUM commands (#96) Fixes a typo and reclassifies
VACUUMfrom a generic keyword to a command so it is correctly extracted into statement metadata. -
Handle multiline comment after keyword (#89) The lexer now correctly tokenizes SQL keywords when they are directly followed by a multiline comment (e.g.
select/**/*/**/from/**/events). Previously, the leading/of the comment could be absorbed into the preceding token, breaking keyword detection.
Performance Improvements
- Avoid allocation in
isExtractFieldKeyword(#99) Replaces astrings.ToUpper+ map lookup with an allocation-freestrings.EqualFoldscan over a small slice of EXTRACT field names.
-
- v0.2.2-0.20260327163001-86709eda4cd027 Mar 2026pre-release
Nothing published for this version
- v0.2.119 Mar 2026
Additional notes
Open source →Bug Fixes
- Fix table name metadata extraction (#91)
The normalizer now correctly extracts all table names from comma-separated table lists (e.g.,
SELECT * FROM t1, t2). Previously, only the first table after a table indicator keyword was collected. This also addsLATERALas a recognized keyword so it is no longer misidentified as a table name during metadata extraction.
Maintenance
- Pin GitHub Actions (#90)
- Fix table name metadata extraction (#91)
The normalizer now correctly extracts all table names from comma-separated table lists (e.g.,
- v0.2.013 Feb 2026
Additional notes
Open source →Breaking Changes
- Minimum Go version bumped to 1.25 (#87)
The
go.modminimum Go version has been raised to Go 1.25. CI now tests through Go 1.25.7.
Bug Fixes
- Fix multi-byte UTF-8 character handling (#85) The lexer now correctly advances by the full rune length when scanning unknown tokens, double-quoted identifiers, and other multi-byte UTF-8 sequences (e.g., full-width punctuation, CJK characters). Previously, multi-byte characters could be incorrectly split into separate byte-level tokens or cause misaligned scans. This includes a fix for truncated UTF-8 sequences at the end of input.
Performance Improvements
- Use fixed-size array for trie nodes instead of a hashmap (#84)
The keyword trie's
childrenfield was changed frommap[rune]*trieNodeto a fixed-size[27]*trieNodearray (A–Z + underscore). This replaces map lookups with direct array indexing during keyword matching, reducing allocations and improving lexer throughput.
Enhancements
- Rework CLI and add missing normalizer option flags (#83)
The
cmd/sqllexerCLI was refactored for cleaner config plumbing and now exposes all normalizer options as flags:-keep-identifier-quotation-dollar-quoted-func-replace-positional-parameter-collect-procedures-uppercase-keywords-remove-space-between-parentheses-keep-trailing-semicolon
- Minimum Go version bumped to 1.25 (#87)
The
- v0.1.135 Feb 2026
- v0.1.13-0.20260128184027-339f69a70bd628 Jan 2026pre-release
Nothing published for this version
- v0.1.1222 Jan 2026
- v0.1.1122 Jan 2026
- v0.1.1019 Nov 2025
- v0.1.10-0.20251112230609-90111c7794b312 Nov 2025pre-release
Nothing published for this version
- v0.1.10-0.20251105172440-2f0d8dfa4ba65 Nov 2025pre-release
Nothing published for this version
- v0.1.917 Oct 2025
- v0.1.9-0.20251017205352-27f447374b9c17 Oct 2025pre-release
Nothing published for this version
- v0.1.9-0.20251003221313-852fc57b43c73 Oct 2025pre-release
Nothing published for this version
- v0.1.84 Sept 2025
Nothing published for this version
- v0.1.726 Aug 2025
Nothing published for this version
- v0.1.622 Apr 2025
Nothing published for this version
- v0.1.522 Apr 2025
Nothing published for this version
- v0.1.5-0.20250414153623-34d85cf57d3f14 Apr 2025pre-release
Nothing published for this version
- v0.1.411 Apr 2025
Nothing published for this version
- v0.1.33 Mar 2025
Nothing published for this version
- v0.1.23 Mar 2025
Nothing published for this version
- v0.1.2-alpha.13 Mar 2025pre-release
Nothing published for this version
- v0.1.125 Feb 2025
Nothing published for this version
- v0.1.1-alpha.125 Feb 2025pre-release
Nothing published for this version
- v0.1.020 Feb 2025withdrawn: Version retracted: This version had memory leaks and should not be used
Nothing published for this version
- v0.1.0-alpha.420 Feb 2025pre-release
Nothing published for this version
- v0.1.0-alpha.320 Feb 2025pre-release
Nothing published for this version
- v0.1.0-alpha.219 Feb 2025pre-release
Nothing published for this version
- v0.1.0-alpha.119 Feb 2025pre-release
Nothing published for this version
- v0.0.22-0.20250219002315-da451071d78b19 Feb 2025pre-release
Nothing published for this version
- v0.0.2114 Feb 2025
Nothing published for this version
- v0.0.2010 Jan 2025
Nothing published for this version
- v0.0.20-0.20250115152739-6b24a3fcb64d15 Jan 2025pre-release
Nothing published for this version
- v0.0.20-0.20250110150046-1c47eb46173610 Jan 2025pre-release
Nothing published for this version
- v0.0.198 Jan 2025
Nothing published for this version
- v0.0.1817 Dec 2024
Nothing published for this version
- v0.0.1712 Nov 2024
Nothing published for this version
- v0.0.17-0.20241112115915-96160b1c2c8c12 Nov 2024pre-release
Nothing published for this version
- v0.0.17-0.20241024141352-8c03f53cb7a224 Oct 2024pre-release
Nothing published for this version
- v0.0.168 Oct 2024
Nothing published for this version
- v0.0.156 Sept 2024
Nothing published for this version
- v0.0.15-0.20240906194926-cbc90c6bc0a46 Sept 2024pre-release
Nothing published for this version
- v0.0.1421 Aug 2024
Nothing published for this version
- v0.0.135 Aug 2024
Nothing published for this version
- v0.0.1215 May 2024
Nothing published for this version
- v0.0.12-0.20240515125744-a44fe7cc47d715 May 2024pre-release
Nothing published for this version
- v0.0.114 Mar 2024
Nothing published for this version
- v0.0.1013 Dec 2023
Nothing published for this version
- v0.0.10-0.20231213224500-56342fe7784e13 Dec 2023pre-release
Nothing published for this version
- v0.0.922 Nov 2023
Nothing published for this version
- v0.0.826 Oct 2023
Nothing published for this version
- v0.0.8-0.20231026180240-ea63d3072d9026 Oct 2023pre-release
Nothing published for this version
- v0.0.723 Oct 2023
Nothing published for this version
- v0.0.7-0.20231019215807-4de1898f96e119 Oct 2023pre-release
Nothing published for this version
- v0.0.610 Oct 2023
Nothing published for this version
- v0.0.6-0.20231010194311-38637fa646f210 Oct 2023pre-release
Nothing published for this version