Skip to content

Remove the analyzerv2 experiment and database-only analyzer mode - #4545

Merged
kyleconroy merged 2 commits into
mainfrom
claude/remove-analyzerv2-bf2ge0
Aug 7, 2026
Merged

Remove the analyzerv2 experiment and database-only analyzer mode#4545
kyleconroy merged 2 commits into
mainfrom
claude/remove-analyzerv2-bf2ge0

Conversation

@kyleconroy

@kyleconroy kyleconroy commented Aug 6, 2026

Copy link
Copy Markdown
Collaborator

Removes the analyzerv2 experiment flag and everything reachable only through it:

  • The AnalyzerV2 flag in the SQLCEXPERIMENT parser. The generic experiment mechanism itself stays, since it's documented in the reference docs and is independent of this experiment.
  • Database-only analysis mode (analyzer.database: only) in the compiler: the databaseOnlyMode branches in catalog parsing and query analysis in internal/compiler.
  • EnsureConn, GetColumnNames, and the never-called IntrospectSchema from the analyzer interface, the cached wrapper, and the PostgreSQL/SQLite analyzer implementations.
  • The "only" value for analyzer.database — the config field reverts to a plain boolean, in both the Go type and the v1/v2 JSON schemas.
  • The four accurate_* end-to-end test cases that ran under SQLCEXPERIMENT=analyzerv2.

The internal/x/expander package (star expansion for SELECT */RETURNING *) is kept for future use — it is self-contained, with a locally defined ColumnGetter interface and tests that bring their own implementations, so it has no dependency on the removed analyzer methods.

Changelog entries mentioning the experiment are left as historical record of the 1.31.0 release.

Testing

  • go build ./... and go vet ./... are clean.
  • Full suite go test --tags=examples -timeout 20m ./... passes with PostgreSQL and MySQL running (set up via sqlc-test-setup).

🤖 Generated with Claude Code

https://claude.ai/code/session_01JyDtVLiKKixbPi6YvdM5wd

claude added 2 commits August 6, 2026 20:25
Remove the analyzerv2 experiment flag and everything reachable only
through it:

- The AnalyzerV2 flag in the SQLCEXPERIMENT parser (the generic
  experiment mechanism stays)
- Database-only analysis mode (analyzer.database: only) in the
  compiler, including the star expander wiring
- The internal/x/expander package
- EnsureConn, GetColumnNames and IntrospectSchema on the analyzer
  interface and the PostgreSQL/SQLite implementations
- The "only" value for analyzer.database in the config, which reverts
  to a plain boolean
- The accurate_* end-to-end test cases that exercised the experiment

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JyDtVLiKKixbPi6YvdM5wd
Keep the star expander package around for future use. It is
self-contained: its ColumnGetter interface is defined locally and its
tests bring their own implementations, so it does not depend on the
removed analyzer methods.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JyDtVLiKKixbPi6YvdM5wd
@kyleconroy kyleconroy closed this Aug 7, 2026
@kyleconroy kyleconroy reopened this Aug 7, 2026
@kyleconroy
kyleconroy merged commit 50989da into main Aug 7, 2026
13 checks passed
@kyleconroy
kyleconroy deleted the claude/remove-analyzerv2-bf2ge0 branch August 7, 2026 04:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants