From e309033afe4fc28f3090ec7a42080aeff3194407 Mon Sep 17 00:00:00 2001 From: Lev Kokotov Date: Wed, 8 Jul 2026 12:42:01 -0700 Subject: [PATCH 1/2] feat: query parser per-database --- Chart.yaml | 2 +- scripts/schema-overrides.yaml | 16 ++++++++++++++++ templates/config.yaml | 9 +++++++++ test/values-pgdog-config-extras.yaml | 7 ++++++- values.yaml | 9 +++++++++ 5 files changed, 41 insertions(+), 2 deletions(-) diff --git a/Chart.yaml b/Chart.yaml index b32d77e..6d1e882 100644 --- a/Chart.yaml +++ b/Chart.yaml @@ -1,4 +1,4 @@ apiVersion: v1 name: pgdog -version: v0.69 +version: v0.70 appVersion: "0.1.47" diff --git a/scripts/schema-overrides.yaml b/scripts/schema-overrides.yaml index 7ea20c9..6638e52 100644 --- a/scripts/schema-overrides.yaml +++ b/scripts/schema-overrides.yaml @@ -307,6 +307,22 @@ mirrors: level: type: string +# --- Query parser array --- +queryParsers: + type: array + description: Per-database query parser entries + items: + type: object + additionalProperties: false + required: ["database", "level"] + properties: + database: + type: string + level: + type: string + engine: + type: string + # --- Sharded schemas --- shardedSchemas: type: array diff --git a/templates/config.yaml b/templates/config.yaml index ac32247..d86396e 100644 --- a/templates/config.yaml +++ b/templates/config.yaml @@ -353,6 +353,15 @@ data: {{- end }} {{- end }} + {{- range .Values.queryParsers }} + [[query_parser]] + database = {{ .database | quote }} + level = {{ .level | quote }} + {{- if hasKey . "engine" }} + engine = {{ .engine | quote }} + {{- end }} + {{- end }} + {{- range .Values.shardedSchemas }} [[sharded_schemas]] database = {{ .database | quote }} diff --git a/test/values-pgdog-config-extras.yaml b/test/values-pgdog-config-extras.yaml index bfecd6c..505f866 100644 --- a/test/values-pgdog-config-extras.yaml +++ b/test/values-pgdog-config-extras.yaml @@ -2,7 +2,7 @@ # Covers: ban_replica_lag*, 2PC WAL persistence, resharding copy retries, # query_log, rewrite_shard_key_updates, unique_id_*, cutover_*, # tcp user_timeout/congestion_control, mirroring queue_length/level, -# database lb_weight/resharding_only, multi_tenant, otel. +# query_parser table, database lb_weight/resharding_only, multi_tenant, otel. banReplicaLag: 60_000 banReplicaLagBytes: 10_000_000 @@ -62,3 +62,8 @@ mirrors: queueLength: 256 exposure: 0.5 level: dml + +queryParsers: + - database: primary + level: "off" + engine: pg_query_raw diff --git a/values.yaml b/values.yaml index c4741ca..8191d35 100644 --- a/values.yaml +++ b/values.yaml @@ -227,6 +227,15 @@ users: [] # mirrors contains a list of databases to replicate traffic from/to. mirrors: [] +# queryParsers contains per-database query parser settings in pgdog.toml. +# Each entry requires: database and level; engine is optional. +# Example: +# queryParsers: +# - database: "prod" +# level: "off" +# engine: "pg_query_raw" +queryParsers: [] + # shardedSchemas contains the list of sharded schema entries in pgdog.toml # Each entry requires: database and shard; name is optional # Example: From bdd948df5dd2739670bc5666fdea7f5216e2417d Mon Sep 17 00:00:00 2001 From: Lev Kokotov Date: Wed, 8 Jul 2026 12:45:55 -0700 Subject: [PATCH 2/2] plural --- templates/config.yaml | 2 +- test/values-pgdog-config-extras.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/templates/config.yaml b/templates/config.yaml index d86396e..e1d9579 100644 --- a/templates/config.yaml +++ b/templates/config.yaml @@ -354,7 +354,7 @@ data: {{- end }} {{- range .Values.queryParsers }} - [[query_parser]] + [[query_parsers]] database = {{ .database | quote }} level = {{ .level | quote }} {{- if hasKey . "engine" }} diff --git a/test/values-pgdog-config-extras.yaml b/test/values-pgdog-config-extras.yaml index 505f866..5c9169c 100644 --- a/test/values-pgdog-config-extras.yaml +++ b/test/values-pgdog-config-extras.yaml @@ -2,7 +2,7 @@ # Covers: ban_replica_lag*, 2PC WAL persistence, resharding copy retries, # query_log, rewrite_shard_key_updates, unique_id_*, cutover_*, # tcp user_timeout/congestion_control, mirroring queue_length/level, -# query_parser table, database lb_weight/resharding_only, multi_tenant, otel. +# query_parsers table, database lb_weight/resharding_only, multi_tenant, otel. banReplicaLag: 60_000 banReplicaLagBytes: 10_000_000