Files
Michael McGuinness efe87321b2 Merged in feature/parallellogqueries (pull request #132)
Testing Tweaks

* parallel

* slowestquery

* split

* cleanup

* health

* dynamiccores

* go

* profile

* timeout

* commitmychanges

* taskfile

* sqlcheckstart

* client

* cost

* ctxtimeout
2025-05-05 09:31:21 +00:00

59 lines
1.6 KiB
YAML

---
version: "2"
servers:
- engine: postgresql
uri: "${DB_URI_GENERATE}"
sql:
- name: "db"
engine: "postgresql"
queries: "internal/database/queries/"
schema: "internal/database/migrations"
rules:
- sqlc/db-prepare
- no-delete
- no-pg
- no-seq-scan
- too-costly
database:
managed: true
gen:
go:
package: "repository"
out: "internal/database/repository"
sql_package: "pgx/v5"
emit_pointers_for_null_types: true
emit_empty_slices: true
emit_db_tags: true
emit_result_struct_pointers: true
emit_params_struct_pointers: true
emit_enum_valid_method: true
emit_sql_as_comment: true
overrides:
- db_type: "uuid"
go_type:
import: "github.com/google/uuid"
type: "UUID"
- db_type: "uuid"
nullable: true
go_type:
import: "github.com/google/uuid"
type: "UUID"
pointer: true
- db_type: "unsignedsmallint"
go_type: "uint16"
rules:
- name: no-pg
message: "invalid engine: not postgresql"
rule: |
config.engine != "postgresql"
- name: no-delete
message: "don't use delete statements"
rule: |
query.sql.contains("DELETE")
- name: too-costly
message: "Query cost estimate is too high"
rule: "postgresql.explain.plan.total_cost > 1000000000.0"
- name: no-seq-scan
message: "Query plan results in a sequential scan"
rule: "postgresql.explain.plan.node_type == 'Seq Scan'"