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
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