Skip to content

Commit 0cd9957

Browse files
authored
feat: query parser per-database (#118)
* feat: query parser per-database * plural
1 parent 6d3e1d3 commit 0cd9957

5 files changed

Lines changed: 41 additions & 2 deletions

File tree

Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
apiVersion: v1
22
name: pgdog
3-
version: v0.69
3+
version: v0.70
44
appVersion: "0.1.47"

scripts/schema-overrides.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,22 @@ mirrors:
307307
level:
308308
type: string
309309

310+
# --- Query parser array ---
311+
queryParsers:
312+
type: array
313+
description: Per-database query parser entries
314+
items:
315+
type: object
316+
additionalProperties: false
317+
required: ["database", "level"]
318+
properties:
319+
database:
320+
type: string
321+
level:
322+
type: string
323+
engine:
324+
type: string
325+
310326
# --- Sharded schemas ---
311327
shardedSchemas:
312328
type: array

templates/config.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,6 +353,15 @@ data:
353353
{{- end }}
354354
{{- end }}
355355
356+
{{- range .Values.queryParsers }}
357+
[[query_parsers]]
358+
database = {{ .database | quote }}
359+
level = {{ .level | quote }}
360+
{{- if hasKey . "engine" }}
361+
engine = {{ .engine | quote }}
362+
{{- end }}
363+
{{- end }}
364+
356365
{{- range .Values.shardedSchemas }}
357366
[[sharded_schemas]]
358367
database = {{ .database | quote }}

test/values-pgdog-config-extras.yaml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# Covers: ban_replica_lag*, 2PC WAL persistence, resharding copy retries,
33
# query_log, rewrite_shard_key_updates, unique_id_*, cutover_*,
44
# tcp user_timeout/congestion_control, mirroring queue_length/level,
5-
# database lb_weight/resharding_only, multi_tenant, otel.
5+
# query_parsers table, database lb_weight/resharding_only, multi_tenant, otel.
66

77
banReplicaLag: 60_000
88
banReplicaLagBytes: 10_000_000
@@ -62,3 +62,8 @@ mirrors:
6262
queueLength: 256
6363
exposure: 0.5
6464
level: dml
65+
66+
queryParsers:
67+
- database: primary
68+
level: "off"
69+
engine: pg_query_raw

values.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,15 @@ users: []
227227
# mirrors contains a list of databases to replicate traffic from/to.
228228
mirrors: []
229229

230+
# queryParsers contains per-database query parser settings in pgdog.toml.
231+
# Each entry requires: database and level; engine is optional.
232+
# Example:
233+
# queryParsers:
234+
# - database: "prod"
235+
# level: "off"
236+
# engine: "pg_query_raw"
237+
queryParsers: []
238+
230239
# shardedSchemas contains the list of sharded schema entries in pgdog.toml
231240
# Each entry requires: database and shard; name is optional
232241
# Example:

0 commit comments

Comments
 (0)