Skip to content

Conversation

@kyleconroy
Copy link
Collaborator

Add experimental support for PGLite, an embedded PostgreSQL that runs
in WebAssembly via wazero. This allows database-backed type analysis
without requiring a running PostgreSQL server.

Changes:

  • Add 'pglite' experiment flag (SQLCEXPERIMENT=pglite)
  • Add PGLite configuration in analyzer config (url, sha256)
  • Create pglite analyzer package that uses wazero runtime
  • Wire PGLite analyzer into compiler when experiment is enabled

To use PGLite analyzer, enable the experiment and configure it:

SQLCEXPERIMENT=pglite sqlc generate

sqlc.yaml:
sql:
- engine: postgresql
analyzer:
pglite:
url: "file://path/to/pglite.wasm"
sha256: "..."

🤖 Generated with Claude Code

Co-Authored-By: Claude noreply@anthropic.com

Add experimental support for PGLite, an embedded PostgreSQL that runs
in WebAssembly via wazero. This allows database-backed type analysis
without requiring a running PostgreSQL server.

Changes:
- Add 'pglite' experiment flag (SQLCEXPERIMENT=pglite)
- Add PGLite configuration in analyzer config (url, sha256)
- Create pglite analyzer package that uses wazero runtime
- Wire PGLite analyzer into compiler when experiment is enabled

To use PGLite analyzer, enable the experiment and configure it:

  SQLCEXPERIMENT=pglite sqlc generate

  sqlc.yaml:
    sql:
      - engine: postgresql
        analyzer:
          pglite:
            url: "file://path/to/pglite.wasm"
            sha256: "..."

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Add integration tests that verify the PGLite analyzer works end-to-end:
- Mock WASM module that parses CREATE TABLE and SELECT statements
- Tests for SELECT *, SELECT with parameters, specific columns
- Tests for multiple tables
- Tests for analyzer close/cleanup

The mock WASM module implements the JSON protocol expected by the
analyzer and can parse simple PostgreSQL schemas and queries.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
@dosubot dosubot bot added size:XXL This PR changes 1000+ lines, ignoring generated files. 🔧 golang labels Dec 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL This PR changes 1000+ lines, ignoring generated files. 🔧 golang

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants