Blog
Deep dives into how GoSQLX parses SQL, how we measure it, and how to put it to work.
Looking for release notes? See the changelog. Subscribe with RSS.
- 3 min read
Blocking SQL injection with AST analysis in Go
Build a Go gate that parses raw SQL before it runs: one statement, SELECT only, allow-listed tables, and injection checks on the syntax tree and the text.
- security
- sql-injection
- go
- ast
- 4 min read
Building an MCP server that understands SQL
How GoSQLX exposes a real SQL parser to AI assistants over the Model Context Protocol in Go: tool design, error shapes, annotations and hosting.
- mcp
- ai
- go
- sql
- 5 min read
Inside a zero-copy SQL tokenizer in Go
How the GoSQLX tokenizer turns SQL into tokens without copying it: substring token values, a sizing prescan, chunked keyword records and pool hygiene.
- go
- performance
- tokenizer
- sql
- 3 min read
Linting SQL in CI with a single Go binary
Validate, lint and format-check .sql files in CI with one static Go binary: no Python runtime, pinned versions, PR annotations and gradual adoption.
- sql
- ci
- linting
- github-actions
- 9 min read
Parsing SQL in Go: benchmark methodology and results
A reproducible end-to-end benchmark of five Go SQL parsers, GoSQLX, pg_query_go, Vitess, TiDB and xwb1989, with the method, raw data and honest caveats.
- go
- benchmarks
- sql
- parsers
- 5 min read
sync.Pool for AST nodes without races
The rules GoSQLX follows to pool tokenizers, parsers and AST nodes with sync.Pool safely: one owner, reset before Put, capped capacity and tests.
- go
- concurrency
- sync-pool
- performance