Skip to content

feat(flow-php/etl): partition placeholders in read/write paths#2509

Merged
norberttech merged 1 commit into
1.xfrom
partition-placeholders
Jul 5, 2026
Merged

feat(flow-php/etl): partition placeholders in read/write paths#2509
norberttech merged 1 commit into
1.xfrom
partition-placeholders

Conversation

@norberttech

Copy link
Copy Markdown
Member

Resolves: #2238

Change Log


Added

  • flow-php/filesystem - {column} partition placeholders in paths with extraction, glob listing and filter support
  • flow-php/etl - writing partitions into file/directory names via placeholders in destination paths
  • flow-php/etl - reading placeholder paths recovers partitions from file names, including partition pruning

Fixed

Changed

  • flow-php/filesystem - Partition name and value now forbid { and } characters

Removed

Deprecated

Security

- {column} placeholders in destination paths turn partitions into
file/directory names
- placeholders in extractor paths match like wildcards and recover
partition values, incl. pruning
- Partition name and value now forbid { and } (breaking, upgrade note
added)
- save modes (overwrite/append) applied to resolved placeholder paths
@norberttech norberttech added this to the 0.42.0 milestone Jul 5, 2026
@datadog-official

Copy link
Copy Markdown

Pipelines

⚠️ Warnings

🚦 1 Pipeline job failed

Test Suite | mutation-tests / mutation-tests (locked, 8.3, ubuntu-latest)   View in Datadog   GitHub Actions

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 241cad6 | Docs | Give us feedback!

@codecov

codecov Bot commented Jul 5, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 93.92265% with 11 lines in your changes missing coverage. Please review.
✅ Project coverage is 85.92%. Comparing base (aba45db) to head (241cad6).
⚠️ Report is 4 commits behind head on 1.x.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@             Coverage Diff              @@
##                1.x    #2509      +/-   ##
============================================
+ Coverage     85.90%   85.92%   +0.01%     
- Complexity        0    21923   +21923     
============================================
  Files          1652     1653       +1     
  Lines         67527    67687     +160     
============================================
+ Hits          58011    58161     +150     
- Misses         9516     9526      +10     
Components Coverage Δ
etl 88.49% <76.66%> (-0.05%) ⬇️
cli 89.40% <ø> (ø)
lib-array-dot 81.44% <ø> (ø)
lib-azure-sdk 64.44% <ø> (ø)
lib-doctrine-dbal-bulk 93.61% <ø> (ø)
lib-filesystem 85.97% <97.35%> (+0.93%) ⬆️
lib-types 90.06% <ø> (ø)
lib-parquet 70.10% <ø> (ø)
lib-parquet-viewer 82.26% <ø> (ø)
lib-snappy 88.93% <ø> (ø)
lib-dremel 0.00% <ø> (ø)
lib-postgresql 88.62% <ø> (ø)
lib-telemetry 86.58% <ø> (ø)
bridge-filesystem-async-aws 92.74% <ø> (ø)
bridge-filesystem-azure 90.45% <ø> (ø)
bridge-monolog-http 96.82% <ø> (ø)
bridge-monolog-telemetry 94.79% <ø> (ø)
bridge-openapi-specification 92.07% <ø> (ø)
symfony-http-foundation 78.57% <ø> (ø)
bridge-psr18-telemetry 100.00% <ø> (ø)
bridge-psr3-telemetry 98.95% <ø> (ø)
bridge-psr7-telemetry 100.00% <ø> (ø)
bridge-telemetry-otlp 90.41% <ø> (ø)
bridge-symfony-http-foundation-telemetry 92.85% <ø> (ø)
bridge-symfony-filesystem-bundle 90.66% <ø> (ø)
bridge-symfony-filesystem-cache 98.18% <ø> (ø)
bridge-symfony-postgresql-bundle 93.39% <ø> (ø)
bridge-symfony-postgresql-cache 94.41% <ø> (ø)
bridge-symfony-postgresql-messenger 98.80% <ø> (ø)
bridge-symfony-postgresql-session 93.65% <ø> (ø)
bridge-symfony-telemetry-bundle 90.23% <ø> (ø)
adapter-chartjs 84.05% <ø> (ø)
adapter-csv 91.43% <ø> (+0.27%) ⬆️
adapter-doctrine 90.79% <ø> (ø)
adapter-google-sheet 99.18% <ø> (ø)
adapter-http 72.34% <ø> (ø)
adapter-json 88.63% <ø> (ø)
adapter-logger 50.00% <ø> (ø)
adapter-parquet 77.70% <ø> (ø)
adapter-text 74.13% <ø> (ø)
adapter-xml 83.40% <ø> (ø)
adapter-avro 0.00% <ø> (ø)
adapter-excel 94.21% <ø> (ø)
adapter-postgresql 91.06% <ø> (ø)
adapter-seal 85.42% <ø> (ø)
bridge-phpunit-postgresql 75.30% <ø> (ø)
bridge-phpunit-telemetry 87.32% <ø> (ø)
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 2d2e067 into 1.x Jul 5, 2026
38 of 39 checks passed
@norberttech norberttech deleted the partition-placeholders branch July 5, 2026 10:13
@github-project-automation github-project-automation Bot moved this from Todo to Done in Roadmap Jul 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

[Proposal]: Allow path pattern names with partitioning

1 participant