Skip to content

Conversation

@codedmonkey
Copy link
Contributor

@codedmonkey codedmonkey commented Aug 10, 2025

Currently DbalLimitOffsetExtractor only orders by the last given column instead of in order of all the given ordering columns.

Resolves: #xxx

Change Log


Added

Fixed

  • DbalLimitOffsetExtractor only orders by the last given column instead of in order of all the given ordering columns.

Changed

Removed

Deprecated

Security

@github-actions
Copy link
Contributor

github-actions bot commented Aug 10, 2025

Flow PHP - Benchmarks

Results of the benchmarks from this PR are compared with the results from 1.x branch.

Extractors
+-----------------------+------------------------+------+-----+-----------------+------------------+-----------------+
| benchmark             | subject                | revs | its | mem_peak        | mode             | rstdev          |
+-----------------------+------------------------+------+-----+-----------------+------------------+-----------------+
| CSVExtractorBench     | bench_extract_10k      | 1    | 3   | 4.897mb -0.02%  | 439.386ms +0.39% | ±0.31% -39.40%  |
| ExcelExtractorBench   | bench_extract_10k_ods  | 1    | 3   | 65.592mb -0.00% | 1.058s -1.67%    | ±0.29% -64.24%  |
| ExcelExtractorBench   | bench_extract_10k_xlsx | 1    | 3   | 67.704mb -0.00% | 1.713s +1.20%    | ±0.66% +19.27%  |
| JsonExtractorBench    | bench_extract_10k      | 1    | 3   | 5.491mb -0.02%  | 1.121s -3.61%    | ±0.83% +39.96%  |
| ParquetExtractorBench | bench_extract_10k      | 1    | 3   | 10.714mb -0.18% | 9.220s -19.95%   | ±1.00% +56.48%  |
| TextExtractorBench    | bench_extract_10k      | 1    | 3   | 4.622mb -0.02%  | 42.484ms +0.57%  | ±0.92% +110.83% |
| XmlExtractorBench     | bench_extract_10k      | 1    | 3   | 4.605mb -0.02%  | 604.494ms +1.27% | ±0.66% -21.83%  |
+-----------------------+------------------------+------+-----+-----------------+------------------+-----------------+
Transformers
+---------------------------------+--------------------------+------+-----+------------------+-----------------+-----------------+
| benchmark                       | subject                  | revs | its | mem_peak         | mode            | rstdev          |
+---------------------------------+--------------------------+------+-----+------------------+-----------------+-----------------+
| RenameEntryTransformerBench     | bench_transform_10k_rows | 1    | 3   | 123.354mb -0.00% | 64.307ms -2.72% | ±1.04% -30.66%  |
| RenameEachEntryTransformerBench | bench_transform_10k_rows | 1    | 3   | 18.616mb -0.01%  | 73.122ms -0.52% | ±1.46% +252.07% |
+---------------------------------+--------------------------+------+-----+------------------+-----------------+-----------------+
Loaders
+--------------------+----------------+------+-----+------------------+------------------+-----------------+
| benchmark          | subject        | revs | its | mem_peak         | mode             | rstdev          |
+--------------------+----------------+------+-----+------------------+------------------+-----------------+
| CSVLoaderBench     | bench_load_10k | 1    | 3   | 62.558mb -0.00%  | 84.150ms -1.15%  | ±0.95% -51.00%  |
| JsonLoaderBench    | bench_load_10k | 1    | 3   | 80.639mb -0.00%  | 101.025ms +0.85% | ±0.42% +48.42%  |
| ParquetLoaderBench | bench_load_10k | 1    | 3   | 819.318mb +0.04% | 20.064s -26.07%  | ±0.18% -57.45%  |
| TextLoaderBench    | bench_load_10k | 1    | 3   | 17.922mb -0.01%  | 29.720ms +0.52%  | ±0.65% +349.20% |
+--------------------+----------------+------+-----+------------------+------------------+-----------------+
Building Blocks
+-------------------+----------------------------+------+-----+------------------+------------------+-----------------+
| benchmark         | subject                    | revs | its | mem_peak         | mode             | rstdev          |
+-------------------+----------------------------+------+-----+------------------+------------------+-----------------+
| EntryFactoryBench | bench_entry_factory        | 1    | 3   | 106.036mb -0.00% | 662.416ms -0.46% | ±0.65% -34.19%  |
| EntryFactoryBench | bench_entry_factory        | 1    | 3   | 55.313mb -0.00%  | 331.930ms +1.13% | ±1.06% +32.20%  |
| EntryFactoryBench | bench_entry_factory        | 1    | 3   | 14.899mb -0.01%  | 68.588ms -1.34%  | ±0.22% -81.65%  |
| RowsBench         | bench_chunk_10_on_10k      | 2    | 3   | 93.507mb -0.00%  | 3.327ms +1.77%   | ±1.28% +45.85%  |
| RowsBench         | bench_diff_left_1k_on_10k  | 2    | 3   | 110.896mb -0.00% | 237.551ms +0.97% | ±0.49% -59.49%  |
| RowsBench         | bench_diff_right_1k_on_10k | 2    | 3   | 93.616mb -0.00%  | 23.877ms -0.92%  | ±1.03% -14.92%  |
| RowsBench         | bench_drop_1k_on_10k       | 2    | 3   | 94.382mb -0.00%  | 1.413ms -2.24%   | ±3.33% +12.70%  |
| RowsBench         | bench_drop_right_1k_on_10k | 2    | 3   | 94.382mb -0.00%  | 1.345ms -0.32%   | ±1.51% -30.59%  |
| RowsBench         | bench_entries_on_10k       | 2    | 3   | 92.542mb -0.00%  | 3.414ms -3.07%   | ±1.34% +51.69%  |
| RowsBench         | bench_filter_on_10k        | 2    | 3   | 93.071mb -0.00%  | 15.167ms -3.88%  | ±1.13% +256.77% |
| RowsBench         | bench_find_on_10k          | 2    | 3   | 93.071mb -0.00%  | 15.594ms -0.60%  | ±1.77% +70.23%  |
| RowsBench         | bench_find_one_on_10k      | 10   | 3   | 91.760mb -0.00%  | 1.806μs +0.34%   | ±2.57% +0.00%   |
| RowsBench         | bench_first_on_10k         | 10   | 3   | 91.760mb -0.00%  | 0.400μs 0.00%    | ±0.00% 0.00%    |
| RowsBench         | bench_flat_map_on_1k       | 2    | 3   | 100.821mb -0.00% | 14.216ms -1.44%  | ±1.83% +117.95% |
| RowsBench         | bench_map_on_10k           | 2    | 3   | 130.248mb -0.00% | 67.205ms -1.34%  | ±1.16% +8.23%   |
| RowsBench         | bench_merge_1k_on_10k      | 2    | 3   | 93.591mb -0.00%  | 1.204ms -1.02%   | ±0.84% -75.03%  |
| RowsBench         | bench_partition_by_on_10k  | 2    | 3   | 96.979mb -0.00%  | 61.602ms +1.61%  | ±0.30% -82.37%  |
| RowsBench         | bench_remove_on_10k        | 2    | 3   | 94.644mb -0.00%  | 3.381ms -8.98%   | ±1.30% -56.20%  |
| RowsBench         | bench_sort_asc_on_1k       | 2    | 3   | 92.141mb -0.00%  | 39.385ms +1.34%  | ±0.82% -26.94%  |
| RowsBench         | bench_sort_by_on_1k        | 2    | 3   | 92.141mb -0.00%  | 39.028ms -1.00%  | ±0.34% -61.60%  |
| RowsBench         | bench_sort_desc_on_1k      | 2    | 3   | 92.141mb -0.00%  | 39.599ms -2.01%  | ±0.54% -33.79%  |
| RowsBench         | bench_sort_entries_on_1k   | 2    | 3   | 94.203mb -0.00%  | 7.897ms -0.95%   | ±0.52% -58.38%  |
| RowsBench         | bench_sort_on_1k           | 2    | 3   | 91.953mb -0.00%  | 29.451ms +1.17%  | ±0.71% -2.08%   |
| RowsBench         | bench_take_1k_on_10k       | 10   | 3   | 91.760mb -0.00%  | 14.559μs -0.57%  | ±1.70% -16.23%  |
| RowsBench         | bench_take_right_1k_on_10k | 10   | 3   | 91.760mb -0.00%  | 15.817μs -0.40%  | ±1.38% +29.26%  |
| RowsBench         | bench_unique_on_1k         | 2    | 3   | 110.897mb -0.00% | 242.034ms +0.48% | ±0.96% +482.45% |
| TypeDetectorBench | bench_type_detector        | 1    | 3   | 42.561mb -0.00%  | 409.384ms +0.88% | ±0.90% +182.70% |
| TypeDetectorBench | bench_type_detector        | 1    | 3   | 11.619mb -0.01%  | 81.823ms +0.35%  | ±0.42% -39.03%  |
+-------------------+----------------------------+------+-----+------------------+------------------+-----------------+
Parquet Library
+--------------------+---------------------------------+------+-----+------------------+-------------------+-----------------+
| benchmark          | subject                         | revs | its | mem_peak         | mode              | rstdev          |
+--------------------+---------------------------------+------+-----+------------------+-------------------+-----------------+
| ParquetWriterBench | bench_write_batch               | 1    | 3   | 11.741mb -14.43% | 192.410ms -12.94% | ±0.25% -8.31%   |
| ParquetWriterBench | bench_write_gzip                | 1    | 3   | 10.366mb +0.01%  | 215.697ms -0.60%  | ±0.16% -57.61%  |
| ParquetWriterBench | bench_write_row_by_row          | 1    | 3   | 11.741mb -14.43% | 193.456ms -13.57% | ±1.02% +106.82% |
| ParquetWriterBench | bench_write_snappy              | 1    | 3   | 11.741mb -14.43% | 190.926ms -14.46% | ±0.75% -39.91%  |
| ParquetWriterBench | bench_write_uncompressed        | 1    | 3   | 10.042mb +0.01%  | 190.797ms +0.21%  | ±0.65% +163.94% |
| ParquetReaderBench | bench_page_headers              | 1    | 3   | 6.689mb -0.02%   | 3.320s -1.68%     | ±0.21% -73.37%  |
| ParquetReaderBench | bench_read_metadata             | 1    | 3   | 5.374mb -0.02%   | 18.201ms +0.54%   | ±0.52% -1.60%   |
| ParquetReaderBench | bench_read_schema               | 1    | 3   | 5.374mb -0.02%   | 18.088ms -0.36%   | ±0.13% -79.98%  |
| ParquetReaderBench | bench_read_values_all_columns   | 1    | 3   | 9.123mb -0.22%   | 5.593s -28.83%    | ±0.99% +79.35%  |
| ParquetReaderBench | bench_read_values_single_column | 1    | 3   | 6.421mb -0.31%   | 232.384ms -48.90% | ±0.63% -23.42%  |
| ParquetReaderBench | bench_read_values_with_limit    | 1    | 3   | 6.951mb -0.46%   | 28.702ms -14.06%  | ±0.42% -27.89%  |
+--------------------+---------------------------------+------+-----+------------------+-------------------+-----------------+

@norberttech
Copy link
Member

Hey @codedmonkey
could you maybe try to add a test that would cover this fix?

@norberttech
Copy link
Member

composer cs:php:fix

will handle coding standards for you 😁

@codedmonkey codedmonkey force-pushed the patch-1 branch 3 times, most recently from 1ddecf2 to 36a13d7 Compare August 10, 2025 19:04
@norberttech norberttech merged commit 76be59d into flow-php:1.x Aug 11, 2025
18 checks passed
@norberttech
Copy link
Member

thank you @codedmonkey 🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants