◐ Shell
clean mode source ↗

Zero-parameter params classes generate invalid Python with query_parameter_limit: 0

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