perf: fused native Floe read and write path - #2653
Merged
Merged
Conversation
- decode frames straight into Rows in one native pass - encode Rows straight into complete ROW frames natively - skip offset rows before decoding, drop reader re-batching - build datetimes from timestamps natively on PHP 8.4+ - remove AdaptiveFloeEncoder, FloeEngine picks the encoder - fall back to PHP for extensions without the new methods
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## 1.x #2653 +/- ##
============================================
- Coverage 84.93% 84.92% -0.02%
- Complexity 31265 31283 +18
============================================
Files 2125 2125
Lines 89493 89454 -39
============================================
- Hits 76011 75967 -44
- Misses 13482 13487 +5 🚀 New features to boost your workflow:
|
- data provider no longer builds native hydrators before the skip - bump Blackfire agent and PHP probe on macOS arm64
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Change Log
Added
flow-php/flow-php-ext-RustFloeEncoderNative::decodeRows()decodes Floe frames straight into Rows in one native passflow-php/flow-php-ext-RustFloeEncoderNative::encodeFrames()encodes Rows straight into complete ROW framesflow-php/etl-FloeEncodercontract withdecodeRows()/encodeFrames()Fixed
flow-php/flow-php-ext- native hydrator keeps per-value metadata of numeric-named columns, like the PHP oneChanged
flow-php/etl- Floe reader and writer use the fused native path when the hydrator is nativeflow-php/etl- Floe offset reads skip rows before decoding themflow-php/etl- Floe extractor adds file constants per batch, only when there are anyflow-php/flow-php-ext- datetimes are built from timestamps without parsing on PHP 8.4+flow-php/etl- an extension without the new methods falls back to the PHP Floe engineRemoved
flow-php/etl-AdaptiveFloeEncoder,FloeEngine::adaptivepicks the encoder itselfDeprecated
Security