Skip to content

feat(flow-php/postgresql): libpq quoting, session settings and bundle connection options - #2739

Merged
norberttech merged 1 commit into
1.xfrom
libpg-quoting
Nov 13, 2026
Merged

norberttech merged 1 commit into
1.xfrom
libpg-quoting

Conversation

@norberttech

Copy link
Copy Markdown
Member

Resolves: #xxx

Change Log


Added

  • flow-php/postgresql - ConnectionParameters::withSessionSettings() for server settings like statement_timeout
  • flow-php/postgresql - ConnectionParameters::OPTION_KEYS with the libpq keys of PostgreSQL 16 to 18
  • flow-php/symfony-postgresql-bundle - options and session_settings for each connection

Fixed

  • flow-php/postgresql - ConnectionParameters::toString() quotes values with whitespace, quotes or backslashes
  • flow-php/postgresql - ConnectionParameters::fromString() reads escaped and quoted values by the libpq rules
  • flow-php/postgresql - pgsql_connection() docblock no longer claims URL support

Changed

  • flow-php/postgresql - ConnectionParameters::fromString() throws on a keyword without = and on an unterminated quote
  • flow-php/postgresql - an options value that escapes spaces with a backslash no longer works

Removed

Deprecated

Security

… connection options

- ConnectionParameters::toString() quotes values, fromString() follows libpq conninfo_parse
- ConnectionParameters::OPTION_KEYS as the one libpq key list, with PostgreSQL 16-18 keys
- withSessionSettings() writes "-c name=value" pairs into the options key
- symfony-postgresql-bundle: per-connection options and session_settings
@codecov

codecov Bot commented Nov 13, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 91.06%. Comparing base (a16b21f) to head (658906f).
⚠️ Report is 1 commits behind head on 1.x.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@             Coverage Diff              @@
##                1.x    #2739      +/-   ##
============================================
+ Coverage     91.04%   91.06%   +0.01%     
- Complexity    32120    32159      +39     
============================================
  Files          2237     2237              
  Lines         92882    92941      +59     
============================================
+ Hits          84566    84633      +67     
+ Misses         8316     8308       -8     
Components Coverage Δ
etl 96.20% <ø> (ø)
cli 87.40% <ø> (ø)
lib-array-dot 96.52% <ø> (ø)
lib-azure-sdk 67.98% <ø> (ø)
lib-doctrine-dbal-bulk 94.25% <ø> (ø)
lib-filesystem 89.08% <ø> (ø)
lib-types 94.64% <ø> (ø)
lib-parquet 82.80% <ø> (ø)
lib-parquet-viewer 83.15% <ø> (ø)
lib-snappy 90.74% <ø> (+0.88%) ⬆️
lib-dremel 0.00% <ø> (ø)
lib-postgresql 90.43% <100.00%> (+0.01%) ⬆️
lib-telemetry 86.85% <ø> (ø)
bridge-filesystem-async-aws 96.72% <ø> (ø)
bridge-filesystem-azure 95.34% <ø> (ø)
bridge-filesystem-sftp 90.29% <ø> (ø)
bridge-monolog-http 96.84% <ø> (ø)
bridge-monolog-telemetry 92.85% <ø> (ø)
bridge-openapi-specification 91.95% <ø> (ø)
symfony-http-foundation 80.76% <ø> (ø)
bridge-symfony-console 98.01% <ø> (ø)
bridge-psr18-telemetry 100.00% <ø> (ø)
bridge-psr3-telemetry 98.95% <ø> (ø)
bridge-psr7-telemetry 100.00% <ø> (ø)
bridge-telemetry-otlp 90.11% <ø> (ø)
bridge-symfony-http-foundation-telemetry 92.85% <ø> (ø)
bridge-symfony-filesystem-bundle 93.15% <ø> (ø)
bridge-symfony-filesystem-cache 98.18% <ø> (ø)
bridge-symfony-postgresql-bundle 93.72% <100.00%> (+0.36%) ⬆️
bridge-symfony-postgresql-cache 94.41% <ø> (ø)
bridge-symfony-postgresql-messenger 98.80% <ø> (ø)
bridge-symfony-postgresql-session 93.65% <ø> (ø)
bridge-symfony-telemetry-bundle 90.76% <ø> (ø)
adapter-chartjs 82.46% <ø> (ø)
adapter-csv 97.68% <ø> (ø)
adapter-doctrine 95.14% <ø> (ø)
adapter-google-sheet 97.53% <ø> (ø)
adapter-http 87.18% <ø> (ø)
adapter-json 90.62% <ø> (ø)
adapter-logger 47.05% <ø> (ø)
adapter-parquet 97.20% <ø> (ø)
adapter-text 97.68% <ø> (ø)
adapter-xml 98.01% <ø> (ø)
adapter-avro 6.25% <ø> (ø)
adapter-excel 96.79% <ø> (ø)
adapter-postgresql 97.35% <ø> (ø)
adapter-seal 90.00% <ø> (ø)
bridge-phpunit-postgresql 75.30% <ø> (ø)
bridge-phpunit-telemetry 87.36% <ø> (ø)
bridge-phpstan-types 0.00% <ø> (ø)
bridge-postgresql-valinor 100.00% <ø> (ø)
🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@norberttech
norberttech merged commit ef75bc9 into 1.x Nov 13, 2026
21 checks passed
@norberttech
norberttech deleted the libpg-quoting branch November 13, 2026 22:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant