Skip to content

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

@kellen-miller

Description

@kellen-miller

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions