Summary
When query_parameter_limit: 0 is enabled, zero-parameter queries generate empty params dataclasses with no body, which produces invalid Python.
Example generated output:
@dataclasses.dataclass()
class CountBarsParams:
That fails to parse because the class body is empty.
Reproduction
Use a query file with a zero-parameter query:
-- name: CountBars :one
SELECT count(*) FROM bar;
And a sqlc.yaml config with:
options:
package: querytest
emit_sync_querier: true
emit_async_querier: true
query_parameter_limit: 0
Generate Python code and inspect the params struct for the zero-arg query.
Actual
The generated file contains an empty dataclass body:
@dataclasses.dataclass()
class CountBarsParams:
This leads to invalid Python syntax and downstream lint/parse failures.
Expected
Zero-field generated classes should still emit a valid body, for example:
@dataclasses.dataclass()
class CountBarsParams:
pass
Summary
When
query_parameter_limit: 0is enabled, zero-parameter queries generate empty params dataclasses with no body, which produces invalid Python.Example generated output:
That fails to parse because the class body is empty.
Reproduction
Use a query file with a zero-parameter query:
And a
sqlc.yamlconfig with:Generate Python code and inspect the params struct for the zero-arg query.
Actual
The generated file contains an empty dataclass body:
This leads to invalid Python syntax and downstream lint/parse failures.
Expected
Zero-field generated classes should still emit a valid body, for example: