Skip to content

sqlc-dev#1

Merged
Arthur-Sk merged 17 commits intoArthur-Sk:mainfrom
sqlc-dev:main
Jan 16, 2026
Merged

sqlc-dev#1
Arthur-Sk merged 17 commits intoArthur-Sk:mainfrom
sqlc-dev:main

Conversation

@Arthur-Sk
Copy link
Owner

No description provided.

dependabot bot and others added 17 commits December 10, 2025 10:47
…y with 3 updates (#4224)

Bumps the production-dependencies group with 3 updates in the / directory: [github.com/ncruces/go-sqlite3](https://github.com/ncruces/go-sqlite3), [github.com/spf13/cobra](https://github.com/spf13/cobra) and [golang.org/x/sync](https://github.com/golang/sync).


Updates `github.com/ncruces/go-sqlite3` from 0.30.2 to 0.30.3
- [Release notes](https://github.com/ncruces/go-sqlite3/releases)
- [Commits](ncruces/go-sqlite3@v0.30.2...v0.30.3)

Updates `github.com/spf13/cobra` from 1.10.1 to 1.10.2
- [Release notes](https://github.com/spf13/cobra/releases)
- [Commits](spf13/cobra@v1.10.1...v1.10.2)

Updates `golang.org/x/sync` from 0.18.0 to 0.19.0
- [Commits](golang/sync@v0.18.0...v0.19.0)

---
updated-dependencies:
- dependency-name: github.com/ncruces/go-sqlite3
  dependency-version: 0.30.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: github.com/spf13/cobra
  dependency-version: 1.10.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: golang.org/x/sync
  dependency-version: 0.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…up (#4225)

Bumps the production-dependencies group in /docs with 1 update: [urllib3](https://github.com/urllib3/urllib3).


Updates `urllib3` from 2.5.0 to 2.6.1
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](urllib3/urllib3@2.5.0...2.6.1)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-version: 2.6.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps golang from 1.25.4 to 1.25.5.

---
updated-dependencies:
- dependency-name: golang
  dependency-version: 1.25.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Replaces manual slice copy loop with built-in copy() function
to fix S1001 linter warning: should use copy(to, from) instead of a loop.
#4237)

* feat(postgresql): add accurate analyzer mode for database-only analysis

Add an optional `analyzer.accurate: true` mode for PostgreSQL that bypasses
the internal catalog and uses only database-backed analysis.

Key features:
- Uses database PREPARE for all type resolution (columns, parameters)
- Uses expander package for SELECT * and RETURNING * expansion
- Queries pg_catalog to build catalog structures for code generation
- Skips internal catalog building from schema files

Configuration:
```yaml
sql:
  - engine: postgresql
    database:
      uri: "postgres://..."  # or managed: true
    analyzer:
      accurate: true
```

This mode requires a database connection and the schema must exist in the
database. It provides more accurate type information for complex queries.

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

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

* test: add end-to-end tests for accurate analyzer mode

Add three end-to-end test cases for the accurate analyzer mode:

1. accurate_star_expansion - Tests SELECT *, INSERT RETURNING *, UPDATE RETURNING *, DELETE RETURNING *
2. accurate_enum - Tests enum type introspection from pg_catalog
3. accurate_cte - Tests CTE (Common Table Expression) with star expansion

All tests use the managed-db context which requires Docker to run
PostgreSQL containers.

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

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

* fix(tests): update expected output for accurate mode end-to-end tests

Update expected output files to match actual sqlc generate output:
- Fix parameter naming (Column1, Column2, dollar_1)
- Fix nullability types (sql.NullString, sql.NullInt32)
- Fix CTE formatting (single line)
- Fix query semicolons

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

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

* test(e2e): add accurate mode test for CTE with VALUES clause

Tests CTE using VALUES clause with column aliasing to verify
accurate analyzer handles inline table expressions.

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

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

* fix(ast): fix VALUES clause formatting to output multiple rows

The VALUES clause was incorrectly formatting multiple rows as a single
row with multiple columns. For example:
  VALUES ('A'), ('B'), ('C')
was being formatted as:
  VALUES ('A', 'B', 'C')

This caused the star expander to think the VALUES table had 3 columns
instead of 1, resulting in incorrect SELECT * expansion.

The fix properly iterates over each row in ValuesLists and wraps each
in parentheses.

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

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

* feat: rename accurate mode to analyzer.database: only with analyzerv2 experiment

This change refactors the "accurate analyzer mode" feature:

1. Rename config option from `analyzer.accurate: true` to
   `analyzer.database: only` - a third option in addition to true/false

2. Gate the feature behind the `analyzerv2` experiment flag. The feature
   is only enabled when:
   - `analyzer.database: only` is set in the config
   - `SQLCEXPERIMENT=analyzerv2` environment variable is set

3. Update JSON schemas to support boolean or "only" for analyzer.database

4. Add experiment tests for analyzerv2 flag

5. Update end-to-end test configs and expected outputs

The database-only mode skips building the internal catalog from schema
files and instead relies entirely on the database for type resolution
and star expansion.

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

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

* feat: add SQLite support for database-only mode (analyzer.database: only)

This extends the database-only analyzer mode to support SQLite in addition
to PostgreSQL:

1. Add EnsureConn, GetColumnNames, and IntrospectSchema methods to the
   SQLite analyzer for database-only mode functionality

2. Update compiler to handle SQLite database-only mode:
   - Add sqliteAnalyzer field to Compiler struct
   - Initialize SQLite analyzer when database-only mode is enabled
   - Build catalog from SQLite database via PRAGMA table_info

3. Add SQLite end-to-end test case for database-only mode

The SQLite database-only mode uses PRAGMA table_info to introspect
tables and columns, and prepares queries to get column names for
star expansion.

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

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

* refactor: use analyzer interface for database-only mode

- Add EnsureConn and GetColumnNames methods to Analyzer interface
- Remove engine-specific pgAnalyzer and sqliteAnalyzer fields from compiler
- Use unified analyzer interface for database connection initialization
- Keep parsing schema files to build catalog, only use database for star expansion

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

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

* feat: parse schema for syntax validation only in database-only mode

In database-only mode, parse the schema migrations to validate syntax
and collect them for the database connection, but skip updating the
catalog. The database will be the source of truth for schema information.

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

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

---------

Co-authored-by: Claude <noreply@anthropic.com>
* feat: add parse subcommand behind parsecmd experiment

Add a new `parse` subcommand that parses SQL and outputs the AST as JSON.
This is useful for debugging and understanding how sqlc parses SQL statements.

The command requires the `parsecmd` experiment to be enabled via
SQLCEXPERIMENT=parsecmd.

Usage:
  sqlc parse --dialect postgresql|mysql|sqlite [file]

If no file is provided, reads from stdin.

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

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

* refactor: use parseCmd global instead of NewCmdParse function

Match the style of other commands in cmd.go by using a global variable
and registering flags in init().

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

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

---------

Co-authored-by: Claude <noreply@anthropic.com>
…y with 2 updates (#4256)

Bumps the production-dependencies group with 2 updates in the /docs directory: [certifi](https://github.com/certifi/python-certifi) and [pyparsing](https://github.com/pyparsing/pyparsing).


Updates `certifi` from 2025.11.12 to 2026.1.4
- [Commits](certifi/python-certifi@2025.11.12...2026.01.04)

Updates `pyparsing` from 3.2.5 to 3.3.1
- [Release notes](https://github.com/pyparsing/pyparsing/releases)
- [Changelog](https://github.com/pyparsing/pyparsing/blob/master/CHANGES)
- [Commits](pyparsing/pyparsing@3.2.5...3.3.1)

---
updated-dependencies:
- dependency-name: certifi
  dependency-version: 2026.1.4
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: production-dependencies
- dependency-name: pyparsing
  dependency-version: 3.3.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Update language-support.rst
@Arthur-Sk Arthur-Sk merged commit bca17cd into Arthur-Sk:main Jan 16, 2026
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.

4 participants