Skip to content

perf: ISO temporal fast paths and file constants after hydration - #2656

Merged
norberttech merged 1 commit into
1.xfrom
datetime-cast-02
Sep 25, 2026
Merged

norberttech merged 1 commit into
1.xfrom
datetime-cast-02

Conversation

@norberttech

Copy link
Copy Markdown
Member

Resolves: #xxx

Change Log


Added

  • flow-php/types - public ISO gates StringTemporalParts::isoDateTime() / isoDate() and DateType::ISO_DATE

Fixed

Changed

  • flow-php/types - ISO dates and datetimes narrowed without date_parse()
  • flow-php/types - ISO date fast path in DateType and DateTimeType casts
  • flow-php/types - DateTimeType::ISO_DATE_TIME public and limited to timelib field ranges
  • flow-php/flow-php-ext - native CSV narrowing and date casts use byte-level ISO gates
  • flow-php/etl-adapter-csv - file constants stamped after hydration via fillRows()
  • flow-php/etl-adapter-json - file constants stamped after hydration via fillRows()
  • flow-php/etl-adapter-text - file constants stamped after hydration via fillRows()
  • flow-php/etl-adapter-xml - file constants stamped after hydration via fillRows()
  • flow-php/etl-adapter-excel - file constants stamped after hydration via fillRows()
  • flow-php/etl-adapter-parquet - file constants stamped after hydration via fillRows()

Removed

Deprecated

Security

- schema inference narrows ISO dates/datetimes without date_parse()
- ISO date cast fast path in DateType/DateTimeType and native cast
- ISO regexes tightened to timelib field ranges
- extractors stamp file constants after hydration via fillRows()
- shared date_check/uuid_check modules in the extension
- ordered_on date column in the benchmark Orders fixture
@norberttech norberttech added this to the 0.45.0 milestone Sep 25, 2026
@codecov

codecov Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 88.59%. Comparing base (94146f5) to head (6fd73e4).
⚠️ 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    #2656   +/-   ##
=========================================
  Coverage     88.59%   88.59%           
  Complexity    26576    26576           
=========================================
  Files          2046     2046           
  Lines         78181    78197   +16     
=========================================
+ Hits          69263    69279   +16     
  Misses         8918     8918           
Components Coverage Δ
etl 95.38% <ø> (+<0.01%) ⬆️
cli 87.62% <ø> (ø)
lib-array-dot 96.52% <ø> (ø)
lib-azure-sdk 64.44% <ø> (ø)
lib-doctrine-dbal-bulk 94.24% <ø> (ø)
lib-filesystem 87.61% <ø> (ø)
lib-types 94.52% <100.00%> (+0.05%) ⬆️
lib-parquet 70.61% <ø> (ø)
lib-parquet-viewer 82.26% <ø> (ø)
lib-snappy 89.86% <ø> (ø)
lib-dremel 0.00% <ø> (ø)
lib-postgresql 89.33% <ø> (-0.01%) ⬇️
lib-telemetry 86.64% <ø> (ø)
bridge-filesystem-async-aws 92.76% <ø> (ø)
bridge-filesystem-azure 90.34% <ø> (ø)
bridge-filesystem-sftp 91.02% <ø> (ø)
bridge-monolog-http 96.84% <ø> (ø)
bridge-monolog-telemetry 94.79% <ø> (ø)
bridge-openapi-specification 91.45% <ø> (ø)
symfony-http-foundation 75.81% <ø> (ø)
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.62% <ø> (ø)
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.45% <100.00%> (-0.02%) ⬇️
adapter-doctrine 93.21% <ø> (ø)
adapter-google-sheet 99.31% <ø> (ø)
adapter-http 88.13% <ø> (ø)
adapter-json 91.03% <100.00%> (-0.04%) ⬇️
adapter-logger 44.44% <ø> (ø)
adapter-parquet 95.87% <100.00%> (+0.26%) ⬆️
adapter-text 95.45% <100.00%> (-0.11%) ⬇️
adapter-xml 88.86% <100.00%> (-0.05%) ⬇️
adapter-avro 7.14% <ø> (ø)
adapter-excel 95.88% <100.00%> (+<0.01%) ⬆️
adapter-postgresql 95.79% <ø> (ø)
adapter-seal 83.88% <ø> (ø)
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 d7bed4f into 1.x Sep 25, 2026
50 checks passed
@norberttech
norberttech deleted the datetime-cast-02 branch September 25, 2026 08:53
@github-project-automation github-project-automation Bot moved this from Todo to Done in Roadmap Sep 25, 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