PackageTrack

Go modules

github.com/DataDog/go-sqllexer

v0.2.4DataDog/go-sqllexer

Release timeline

78 releases since 2023
20232026

One column per quarter.

Releases

  1. v0.2.415 Jul 2026
    Release notes

    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 like ESCAPE '\' 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.
    Open source →
  2. v0.2.36 Jul 2026
    Release notes
    • Preserve bracket-quoted T-SQL identifiers containing spaces ([#…
    Open source →
    Additional notes

    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]).
    Open source →
  3. v0.2.3-0.20260702151445-d86dde980f992 Jul 2026pre-release

    Nothing published for this version

  4. v0.2.25 May 2026
    Release notes
    Open source →
    Additional notes

    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 via pg_stat_activity kept epoch as an unquoted identifier while queries from pg_stat_statements had it normalized to $1 (and then to ?), splitting one logical query across two DBM signatures. Both code paths now converge on EXTRACT(? FROM source). Bare epoch/year/etc. outside an EXTRACT(...) 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 VACUUM from 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 a strings.ToUpper + map lookup with an allocation-free strings.EqualFold scan over a small slice of EXTRACT field names.
    Open source →
  5. v0.2.2-0.20260327163001-86709eda4cd027 Mar 2026pre-release

    Nothing published for this version

  6. v0.2.119 Mar 2026
    Release notes

    Update CHANGELOG.md (#92)

    Open source →
    Additional notes

    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 adds LATERAL as a recognized keyword so it is no longer misidentified as a table name during metadata extraction.

    Maintenance

    • Pin GitHub Actions (#90)
    Open source →
  7. v0.2.013 Feb 2026
    Release notes
    Open source →
    Additional notes

    Breaking Changes

    • Minimum Go version bumped to 1.25 (#87) The go.mod minimum 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 children field was changed from map[rune]*trieNode to a fixed-size [27]*trieNode array (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/sqllexer CLI 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
    Open source →
  8. v0.1.135 Feb 2026
    Release notes
    Open source →
  9. v0.1.13-0.20260128184027-339f69a70bd628 Jan 2026pre-release

    Nothing published for this version

  10. v0.1.1222 Jan 2026
    Release notes

    Clone StringBuilder and string slice fields to shrink heap memory usa…

    Open source →
  11. v0.1.1122 Jan 2026
    Release notes

    Fix normalization of Oracle positional bind parameters

    Open source →
  12. v0.1.1019 Nov 2025
    Release notes

    Add -replace-bind-parameter flag to cli (#79)

    Open source →
  13. v0.1.10-0.20251112230609-90111c7794b312 Nov 2025pre-release

    Nothing published for this version

  14. v0.1.10-0.20251105172440-2f0d8dfa4ba65 Nov 2025pre-release

    Nothing published for this version

  15. v0.1.917 Oct 2025
    Release notes

    Bump versions in lint workflow (#73)

    Open source →
  16. v0.1.9-0.20251017205352-27f447374b9c17 Oct 2025pre-release

    Nothing published for this version

  17. v0.1.9-0.20251003221313-852fc57b43c73 Oct 2025pre-release

    Nothing published for this version

  18. v0.1.84 Sept 2025

    Nothing published for this version

  19. v0.1.726 Aug 2025

    Nothing published for this version

  20. v0.1.622 Apr 2025

    Nothing published for this version

  21. v0.1.522 Apr 2025

    Nothing published for this version

  22. v0.1.5-0.20250414153623-34d85cf57d3f14 Apr 2025pre-release

    Nothing published for this version

  23. v0.1.411 Apr 2025

    Nothing published for this version

  24. v0.1.33 Mar 2025

    Nothing published for this version

  25. v0.1.23 Mar 2025

    Nothing published for this version

  26. v0.1.2-alpha.13 Mar 2025pre-release

    Nothing published for this version

  27. v0.1.125 Feb 2025

    Nothing published for this version

  28. v0.1.1-alpha.125 Feb 2025pre-release

    Nothing published for this version

  29. v0.1.020 Feb 2025withdrawn: Version retracted: This version had memory leaks and should not be used

    Nothing published for this version

  30. v0.1.0-alpha.420 Feb 2025pre-release

    Nothing published for this version

  31. v0.1.0-alpha.320 Feb 2025pre-release

    Nothing published for this version

  32. v0.1.0-alpha.219 Feb 2025pre-release

    Nothing published for this version

  33. v0.1.0-alpha.119 Feb 2025pre-release

    Nothing published for this version

  34. v0.0.22-0.20250219002315-da451071d78b19 Feb 2025pre-release

    Nothing published for this version

  35. v0.0.2114 Feb 2025

    Nothing published for this version

  36. v0.0.2010 Jan 2025

    Nothing published for this version

  37. v0.0.20-0.20250115152739-6b24a3fcb64d15 Jan 2025pre-release

    Nothing published for this version

  38. v0.0.20-0.20250110150046-1c47eb46173610 Jan 2025pre-release

    Nothing published for this version

  39. v0.0.198 Jan 2025

    Nothing published for this version

  40. v0.0.1817 Dec 2024

    Nothing published for this version

  41. v0.0.1712 Nov 2024

    Nothing published for this version

  42. v0.0.17-0.20241112115915-96160b1c2c8c12 Nov 2024pre-release

    Nothing published for this version

  43. v0.0.17-0.20241024141352-8c03f53cb7a224 Oct 2024pre-release

    Nothing published for this version

  44. v0.0.168 Oct 2024

    Nothing published for this version

  45. v0.0.156 Sept 2024

    Nothing published for this version

  46. v0.0.15-0.20240906194926-cbc90c6bc0a46 Sept 2024pre-release

    Nothing published for this version

  47. v0.0.1421 Aug 2024

    Nothing published for this version

  48. v0.0.135 Aug 2024

    Nothing published for this version

  49. v0.0.1215 May 2024

    Nothing published for this version

  50. v0.0.12-0.20240515125744-a44fe7cc47d715 May 2024pre-release

    Nothing published for this version

  51. v0.0.114 Mar 2024

    Nothing published for this version

  52. v0.0.1013 Dec 2023

    Nothing published for this version

  53. v0.0.10-0.20231213224500-56342fe7784e13 Dec 2023pre-release

    Nothing published for this version

  54. v0.0.922 Nov 2023

    Nothing published for this version

  55. v0.0.826 Oct 2023

    Nothing published for this version

  56. v0.0.8-0.20231026180240-ea63d3072d9026 Oct 2023pre-release

    Nothing published for this version

  57. v0.0.723 Oct 2023

    Nothing published for this version

  58. v0.0.7-0.20231019215807-4de1898f96e119 Oct 2023pre-release

    Nothing published for this version

  59. v0.0.610 Oct 2023

    Nothing published for this version

  60. v0.0.6-0.20231010194311-38637fa646f210 Oct 2023pre-release

    Nothing published for this version