feat(sources/postgres): add configurable pgx query execution mode (#2477)

Adds optional `queryExecMode` to postgres source config, allowing users
to set pgx `DefaultQueryExecMode` for compatibility with external
connection poolers (e.g. transaction pooling).

Supported values:
- cache_statement (default)
- cache_describe
- describe_exec
- exec
- simple_protocol

Implementation details:
- parse DSN with `pgxpool.ParseConfig`
- map `queryExecMode` to `pgx.QueryExecMode*`
- create pool via `pgxpool.NewWithConfig`
- validate config using `oneof` tag
- document new field in postgres source docs
- add parser/validation tests

Tests run:
`go test -v ./internal/sources/postgres -count=1 -vet=off`

Refs #2385

---------

Co-authored-by: Molt (OpenClaw) <noreply@users.noreply.github.com>
Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com>
Co-authored-by: Yuan Teoh <yuanteoh@google.com>
This commit is contained in:
Mark L
2026-02-19 04:35:44 +08:00
committed by GitHub
parent 276cf604a2
commit 57b77bca09
3 changed files with 113 additions and 11 deletions

View File

@@ -133,3 +133,4 @@ instead of hardcoding your secrets into the configuration file.
| user | string | true | Name of the Postgres user to connect as (e.g. "my-pg-user"). |
| password | string | true | Password of the Postgres user (e.g. "my-password"). |
| queryParams | map[string]string | false | Raw query to be added to the db connection string. |
| queryExecMode | string | false | pgx query execution mode. Valid values: `cache_statement` (default), `cache_describe`, `describe_exec`, `exec`, `simple_protocol`. Useful with connection poolers that don't support prepared statement caching. |