sqlc icon indicating copy to clipboard operation
sqlc copied to clipboard

config "output_querier_file_name" does not work properly

Open VictorAlmeidaFonseca opened this issue 1 year ago • 4 comments

Version

1.25.0

What happened?

Option "output_querier_file_name" does not change the default value ps: any other options work

sample

Relevant log output

N/A

Database schema

N/A

SQL queries

N/A

Configuration

version: "2"
sql:
  - engine: "sqlite"
    queries: "internal/infra/db/sql/assignment/query.sql"
    schema: "internal/infra/db/sql/assignment/schema.sql"
    gen:
      go:
        package: "repository"
        emit_json_tags: true
        emit_result_struct_pointers: true
        output_models_file_name: "assignment_models.go"
        output_querier_file_name: "assignment_querier.go"
        output_db_file_name: 'repo.go'
        json_tags_case_style: "camel"
        out: "internal/infra/db/repository"

  - engine: "sqlite"
    queries: "internal/infra/db/sql/person/query.sql"
    schema: "internal/infra/db/sql/person/schema.sql"
    gen:
      go:
        package: "repository"
        emit_json_tags: true
        emit_result_struct_pointers: true
        output_models_file_name: "person_models.go"
        output_querier_file_name: "person_querier.go"
        output_db_file_name: 'repo.go'
        json_tags_case_style: "camel"
        out: "internal/infra/db/repository"

  - engine: "sqlite"
    queries: "internal/infra/db/sql/person_role/query.sql"
    schema: "internal/infra/db/sql/person_role/schema.sql"
    gen:
      go:
        package: "repository"
        emit_json_tags: true
        emit_result_struct_pointers: true
        output_models_file_name: "person_role_models.go"
        output_querier_file_name: "person_role_querier.go"
        output_db_file_name: 'repo.go'
        json_tags_case_style: "camel"
        out: "internal/infra/db/repository"
        

  - engine: "sqlite"
    queries: "internal/infra/db/sql/role/query.sql"
    schema: "internal/infra/db/sql/role/schema.sql"
    gen:
      go:
        package: "repository"
        emit_json_tags: true
        emit_result_struct_pointers: true
        output_models_file_name: "role_models.go"
        output_querier_file_name: "role_querier.go"
        output_db_file_name: 'repo.go'
        json_tags_case_style: "camel"
        out: "internal/infra/db/repository"

Playground URL

No response

What operating system are you using?

Windows

What database engines are you using?

SQLite

What type of code are you generating?

Go

VictorAlmeidaFonseca avatar Mar 20 '24 23:03 VictorAlmeidaFonseca

+1

Devying avatar Apr 18 '24 07:04 Devying

with emit_interface: true that works

Devying avatar Apr 18 '24 07:04 Devying

It seems like the documentation is slightly misleading here. The output file name actually mirrors the one set for the input queries file.

For instance, this configuration will generate a MY_QUERIES_FILE.sql queries file:

version: "2"
sql:
  - engine: "sqlite"
    queries: "internal/infra/db/sql/assignment/MY_QUERIES_FILE.sql"
    schema: "internal/infra/db/sql/assignment/schema.sql"
    gen:
      go:
        package: "repository"
        emit_json_tags: true
        emit_result_struct_pointers: true
        output_models_file_name: "assignment_models.go"
        output_querier_file_name: "assignment_querier.go"
        output_db_file_name: 'repo.go'
        json_tags_case_style: "camel"
        out: "internal/infra/db/repository"

Setting emit_interface to true will only generate an extra querier file.

mgrisole avatar Dec 12 '24 14:12 mgrisole

Just ran into this myself. Based on previous responses it appears that the following should be done.

  • update documentation for output_querier_file_name to mention emit_interface
  • add an output_queries_file_name setting for consistency.
  • perhaps change output_querier_file_name to something like output_interface_file_name or something similar.

SunnysideAaron avatar May 02 '25 18:05 SunnysideAaron