Skip to content

fix(flow-php/etl): rename_map() breaks on numeric entry names - #2635

Merged
norberttech merged 4 commits into
1.xfrom
rename-bug
Sep 18, 2026
Merged

norberttech merged 4 commits into
1.xfrom
rename-bug

Conversation

@norberttech

Copy link
Copy Markdown
Member

Change Log


Added

Fixed

  • flow-php/etl - renameEach(rename_map(...)) no longer throws a TypeError on numeric entry names.
  • flow-php/etl - chained rename strategies no longer desync rows from the schema on numeric entry names.

Changed

  • flow-php/etl - name-keyed row storage is typed as array-key and names are cast back to string at consuming boundaries.
  • flow-php/etl-adapter-csv - inferred column names are cast to string before schema divergence checks.
  • flow-php/etl-adapter-parquet - encoder row type widened to array-key.
  • flow-php/parquet - reader and writer row types widened to array-key.

Removed

  • flow-php/etl - @mago-ignore suppressions that existed only to hide the unrepresentable row value type.

Deprecated

Security

- cast numeric entry name back to string for Schema::rename()
- keep strategy chaining keyed by the original name
- type name-keyed row storage as array-key, cast to string at name boundaries
- pin codecov-action comment to the tag it resolves to
@norberttech norberttech added this to the 0.45.0 milestone Sep 18, 2026
@codecov

codecov Bot commented Sep 18, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 84.55%. Comparing base (ff162a4) to head (e2fdfd4).
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@             Coverage Diff              @@
##                1.x    #2635      +/-   ##
============================================
+ Coverage     84.54%   84.55%   +0.01%     
- Complexity    23268    30064    +6796     
============================================
  Files          2007     2007              
  Lines         87047    87050       +3     
============================================
+ Hits          73590    73604      +14     
+ Misses        13457    13446      -11     
Components Coverage Δ
etl 91.49% <100.00%> (+<0.01%) ⬆️
cli 75.45% <ø> (ø)
lib-array-dot 96.52% <ø> (ø)
lib-azure-sdk 64.44% <ø> (ø)
lib-doctrine-dbal-bulk 70.36% <ø> (ø)
lib-filesystem 77.08% <ø> (ø)
lib-types 90.49% <ø> (ø)
lib-parquet 70.32% <ø> (+0.09%) ⬆️
lib-parquet-viewer 82.26% <ø> (ø)
lib-snappy 89.86% <ø> (ø)
lib-dremel 0.00% <ø> (ø)
lib-postgresql 85.64% <ø> (ø)
lib-telemetry 86.62% <ø> (ø)
bridge-filesystem-async-aws 86.31% <ø> (ø)
bridge-filesystem-azure 80.96% <ø> (ø)
bridge-filesystem-sftp 91.02% <ø> (ø)
bridge-monolog-http 91.54% <ø> (ø)
bridge-monolog-telemetry 94.79% <ø> (ø)
bridge-openapi-specification 60.86% <ø> (ø)
symfony-http-foundation 56.86% <ø> (ø)
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 91.85% <ø> (ø)
bridge-symfony-filesystem-cache 98.18% <ø> (ø)
bridge-symfony-postgresql-bundle 93.04% <ø> (ø)
bridge-symfony-postgresql-cache 94.41% <ø> (ø)
bridge-symfony-postgresql-messenger 98.80% <ø> (ø)
bridge-symfony-postgresql-session 93.65% <ø> (ø)
bridge-symfony-telemetry-bundle 90.72% <ø> (ø)
adapter-chartjs 80.50% <ø> (ø)
adapter-csv 95.98% <100.00%> (+0.01%) ⬆️
adapter-doctrine 93.02% <ø> (ø)
adapter-google-sheet 80.11% <ø> (ø)
adapter-http 76.52% <ø> (ø)
adapter-json 65.62% <ø> (ø)
adapter-logger 28.57% <ø> (ø)
adapter-parquet 75.38% <100.00%> (+0.08%) ⬆️
adapter-text 70.78% <ø> (ø)
adapter-xml 59.83% <ø> (ø)
adapter-avro 0.00% <ø> (ø)
adapter-excel 79.10% <ø> (ø)
adapter-postgresql 79.96% <ø> (ø)
adapter-seal 65.69% <ø> (ø)
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.

- drop the per-comparison strval() from the sort/dedup path
- pin both the key coercion and its inverse in the extension phpt
@norberttech
norberttech merged commit 07ad8f6 into 1.x Sep 18, 2026
50 checks passed
@norberttech
norberttech deleted the rename-bug branch September 18, 2026 10:09
@github-project-automation github-project-automation Bot moved this from Todo to Done in Roadmap Sep 18, 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.

1 participant