Skip to content

Update aggregate dynamic filter from parquet file stats during file o…#20687

Draft
Dandandan wants to merge 2 commits intoapache:mainfrom
Dandandan:claude/update-parquet-dynamic-filter-YNZT0
Draft

Update aggregate dynamic filter from parquet file stats during file o…#20687
Dandandan wants to merge 2 commits intoapache:mainfrom
Dandandan:claude/update-parquet-dynamic-filter-YNZT0

Conversation

@Dandandan
Copy link
Contributor

…pening

When a parquet file is opened, its file-level statistics (min/max per column) are now used to update the aggregate dynamic filter bounds before any data is read. This enables earlier pruning of concurrent and subsequent files.

Key changes:

  • Add DynamicFilterFileStatsHandler trait for updating filter bounds from file statistics
  • Implement the trait for AggrDynFilter using inclusive operators (<=/>= instead of </>) for file-stats-derived bounds to preserve correctness
  • Track bound_from_data per accumulator to switch to strict operators once the accumulator confirms the bound from actual data
  • Add build_predicate() to AggrDynFilter, unifying predicate construction between file stats updates and accumulator updates
  • Walk the predicate tree in the parquet opener to find and update dynamic filter nodes with file-level statistics

https://claude.ai/code/session_016tPwbdpgUiYwZSQNT8onup

Which issue does this PR close?

  • Closes #.

Rationale for this change

What changes are included in this PR?

Are these changes tested?

Are there any user-facing changes?

…pening

When a parquet file is opened, its file-level statistics (min/max per column)
are now used to update the aggregate dynamic filter bounds before any data
is read. This enables earlier pruning of concurrent and subsequent files.

Key changes:
- Add DynamicFilterFileStatsHandler trait for updating filter bounds from
  file statistics
- Implement the trait for AggrDynFilter using inclusive operators (<=/>=
  instead of </>) for file-stats-derived bounds to preserve correctness
- Track bound_from_data per accumulator to switch to strict operators once
  the accumulator confirms the bound from actual data
- Add build_predicate() to AggrDynFilter, unifying predicate construction
  between file stats updates and accumulator updates
- Walk the predicate tree in the parquet opener to find and update dynamic
  filter nodes with file-level statistics

https://claude.ai/code/session_016tPwbdpgUiYwZSQNT8onup
@github-actions github-actions bot added physical-expr Changes to the physical-expr crates datasource Changes to the datasource crate physical-plan Changes to the physical-plan crate labels Mar 4, 2026
@Dandandan
Copy link
Contributor Author

run benchmarks

@alamb-ghbot
Copy link

🤖 ./gh_compare_branch.sh gh_compare_branch.sh Running
Linux aal-dev 6.14.0-1018-gcp #19~24.04.1-Ubuntu SMP Wed Sep 24 23:23:09 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Comparing claude/update-parquet-dynamic-filter-YNZT0 (0c5008d) to 2cbee47 diff using: tpch_mem clickbench_partitioned clickbench_extended
Results will be posted here when complete

@alamb-ghbot
Copy link

🤖: Benchmark completed

Details

Comparing HEAD and claude_update-parquet-dynamic-filter-YNZT0
--------------------
Benchmark clickbench_extended.json
--------------------
┏━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query    ┃        HEAD ┃ claude_update-parquet-dynamic-filter-YNZT0 ┃        Change ┃
┡━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0 │  2514.57 ms │                                 2473.21 ms │     no change │
│ QQuery 1 │   985.62 ms │                                  960.98 ms │     no change │
│ QQuery 2 │  2043.06 ms │                                 1900.71 ms │ +1.07x faster │
│ QQuery 3 │  1111.73 ms │                                 1075.57 ms │     no change │
│ QQuery 4 │  2412.13 ms │                                 2405.06 ms │     no change │
│ QQuery 5 │ 26832.25 ms │                                27105.86 ms │     no change │
│ QQuery 6 │  4029.28 ms │                                 4204.32 ms │     no change │
│ QQuery 7 │  2995.02 ms │                                 3092.93 ms │     no change │
└──────────┴─────────────┴────────────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary                                         ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)                                         │ 42923.66ms │
│ Total Time (claude_update-parquet-dynamic-filter-YNZT0)   │ 43218.64ms │
│ Average Time (HEAD)                                       │  5365.46ms │
│ Average Time (claude_update-parquet-dynamic-filter-YNZT0) │  5402.33ms │
│ Queries Faster                                            │          1 │
│ Queries Slower                                            │          0 │
│ Queries with No Change                                    │          7 │
│ Queries with Failure                                      │          0 │
└───────────────────────────────────────────────────────────┴────────────┘
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃        HEAD ┃ claude_update-parquet-dynamic-filter-YNZT0 ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0  │     2.58 ms │                                    2.60 ms │     no change │
│ QQuery 1  │    53.35 ms │                                   50.68 ms │ +1.05x faster │
│ QQuery 2  │   164.12 ms │                                  163.21 ms │     no change │
│ QQuery 3  │   172.36 ms │                                  165.02 ms │     no change │
│ QQuery 4  │  1139.55 ms │                                 1124.25 ms │     no change │
│ QQuery 5  │  1349.88 ms │                                 1374.60 ms │     no change │
│ QQuery 6  │     5.88 ms │                                       FAIL │  incomparable │
│ QQuery 7  │    56.01 ms │                                   55.81 ms │     no change │
│ QQuery 8  │  1536.95 ms │                                 1491.06 ms │     no change │
│ QQuery 9  │  1843.38 ms │                                 1910.93 ms │     no change │
│ QQuery 10 │   359.87 ms │                                  364.84 ms │     no change │
│ QQuery 11 │   414.89 ms │                                  414.00 ms │     no change │
│ QQuery 12 │  1265.72 ms │                                 1269.00 ms │     no change │
│ QQuery 13 │  2028.61 ms │                                 2035.51 ms │     no change │
│ QQuery 14 │  1259.18 ms │                                 1308.80 ms │     no change │
│ QQuery 15 │  1267.97 ms │                                 1309.61 ms │     no change │
│ QQuery 16 │  2693.09 ms │                                 2625.51 ms │     no change │
│ QQuery 17 │  2656.62 ms │                                 2647.27 ms │     no change │
│ QQuery 18 │  6010.10 ms │                                 5017.51 ms │ +1.20x faster │
│ QQuery 19 │   130.32 ms │                                  125.49 ms │     no change │
│ QQuery 20 │  2026.60 ms │                                 1952.35 ms │     no change │
│ QQuery 21 │  2330.43 ms │                                 2286.09 ms │     no change │
│ QQuery 22 │  4114.62 ms │                                 3857.60 ms │ +1.07x faster │
│ QQuery 23 │ 30426.93 ms │                                11807.82 ms │ +2.58x faster │
│ QQuery 24 │   211.75 ms │                                  218.85 ms │     no change │
│ QQuery 25 │   459.72 ms │                                  459.96 ms │     no change │
│ QQuery 26 │   223.44 ms │                                  200.31 ms │ +1.12x faster │
│ QQuery 27 │  2941.31 ms │                                 2850.65 ms │     no change │
│ QQuery 28 │ 24934.33 ms │                                23783.73 ms │     no change │
│ QQuery 29 │  1011.99 ms │                                 1074.02 ms │  1.06x slower │
│ QQuery 30 │  1233.76 ms │                                 1309.53 ms │  1.06x slower │
│ QQuery 31 │  1331.97 ms │                                 1392.26 ms │     no change │
│ QQuery 32 │  4458.48 ms │                                 4399.59 ms │     no change │
│ QQuery 33 │  5515.25 ms │                                 5688.79 ms │     no change │
│ QQuery 34 │  5633.12 ms │                                 5958.14 ms │  1.06x slower │
│ QQuery 35 │  1872.31 ms │                                 2048.84 ms │  1.09x slower │
│ QQuery 36 │   190.25 ms │                                  193.29 ms │     no change │
│ QQuery 37 │    74.14 ms │                                   71.44 ms │     no change │
│ QQuery 38 │   111.63 ms │                                  114.31 ms │     no change │
│ QQuery 39 │   343.07 ms │                                  351.91 ms │     no change │
│ QQuery 40 │    39.35 ms │                                   40.36 ms │     no change │
│ QQuery 41 │    34.57 ms │                                   34.63 ms │     no change │
│ QQuery 42 │    30.62 ms │                                   30.94 ms │     no change │
└───────────┴─────────────┴────────────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓
┃ Benchmark Summary                                         ┃             ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩
│ Total Time (HEAD)                                         │ 113954.19ms │
│ Total Time (claude_update-parquet-dynamic-filter-YNZT0)   │  93581.08ms │
│ Average Time (HEAD)                                       │   2713.19ms │
│ Average Time (claude_update-parquet-dynamic-filter-YNZT0) │   2228.12ms │
│ Queries Faster                                            │           5 │
│ Queries Slower                                            │           4 │
│ Queries with No Change                                    │          33 │
│ Queries with Failure                                      │           1 │
└───────────────────────────────────────────────────────────┴─────────────┘
--------------------
Benchmark tpch_mem_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃      HEAD ┃ claude_update-parquet-dynamic-filter-YNZT0 ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1  │ 141.44 ms │                                  127.96 ms │ +1.11x faster │
│ QQuery 2  │  34.95 ms │                                   33.41 ms │     no change │
│ QQuery 3  │  40.99 ms │                                   38.71 ms │ +1.06x faster │
│ QQuery 4  │  34.36 ms │                                   34.91 ms │     no change │
│ QQuery 5  │  89.46 ms │                                   90.57 ms │     no change │
│ QQuery 6  │  24.95 ms │                                   24.67 ms │     no change │
│ QQuery 7  │ 155.00 ms │                                  158.91 ms │     no change │
│ QQuery 8  │  41.78 ms │                                   41.50 ms │     no change │
│ QQuery 9  │ 115.10 ms │                                  108.23 ms │ +1.06x faster │
│ QQuery 10 │  72.01 ms │                                   72.25 ms │     no change │
│ QQuery 11 │  19.86 ms │                                   19.14 ms │     no change │
│ QQuery 12 │  67.40 ms │                                   69.19 ms │     no change │
│ QQuery 13 │  53.85 ms │                                   51.73 ms │     no change │
│ QQuery 14 │  15.75 ms │                                   16.37 ms │     no change │
│ QQuery 15 │  33.82 ms │                                   33.15 ms │     no change │
│ QQuery 16 │  29.98 ms │                                   29.99 ms │     no change │
│ QQuery 17 │ 162.50 ms │                                  170.49 ms │     no change │
│ QQuery 18 │ 302.51 ms │                                  306.45 ms │     no change │
│ QQuery 19 │  54.88 ms │                                   53.45 ms │     no change │
│ QQuery 20 │  61.19 ms │                                   62.18 ms │     no change │
│ QQuery 21 │ 206.82 ms │                                  200.92 ms │     no change │
│ QQuery 22 │  24.31 ms │                                   24.34 ms │     no change │
└───────────┴───────────┴────────────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary                                         ┃           ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD)                                         │ 1782.92ms │
│ Total Time (claude_update-parquet-dynamic-filter-YNZT0)   │ 1768.51ms │
│ Average Time (HEAD)                                       │   81.04ms │
│ Average Time (claude_update-parquet-dynamic-filter-YNZT0) │   80.39ms │
│ Queries Faster                                            │         3 │
│ Queries Slower                                            │         0 │
│ Queries with No Change                                    │        19 │
│ Queries with Failure                                      │         0 │
└───────────────────────────────────────────────────────────┴───────────┘

Replace derived Debug on Inner with a manual implementation that omits
the file_stats_handler field's recursive expansion. This prevents a
stack overflow when AggrDynFilter holds a DynamicFilterPhysicalExpr
which in turn holds a file_stats_handler pointing back to AggrDynFilter.

https://claude.ai/code/session_016tPwbdpgUiYwZSQNT8onup
@Dandandan
Copy link
Contributor Author

run benchmarks

@alamb-ghbot
Copy link

🤖 ./gh_compare_branch.sh gh_compare_branch.sh Running
Linux aal-dev 6.14.0-1018-gcp #19~24.04.1-Ubuntu SMP Wed Sep 24 23:23:09 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Comparing claude/update-parquet-dynamic-filter-YNZT0 (945a64c) to 2cbee47 diff using: tpch_mem clickbench_partitioned clickbench_extended
Results will be posted here when complete

@alamb-ghbot
Copy link

🤖: Benchmark completed

Details

Comparing HEAD and claude_update-parquet-dynamic-filter-YNZT0
--------------------
Benchmark clickbench_extended.json
--------------------
┏━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query    ┃        HEAD ┃ claude_update-parquet-dynamic-filter-YNZT0 ┃        Change ┃
┡━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0 │  2446.89 ms │                                 2467.16 ms │     no change │
│ QQuery 1 │  1015.86 ms │                                  920.30 ms │ +1.10x faster │
│ QQuery 2 │  2009.56 ms │                                 1907.11 ms │ +1.05x faster │
│ QQuery 3 │  1091.63 ms │                                 1123.24 ms │     no change │
│ QQuery 4 │  2369.14 ms │                                 2306.55 ms │     no change │
│ QQuery 5 │ 28045.48 ms │                                27420.40 ms │     no change │
│ QQuery 6 │  4081.06 ms │                                 4182.76 ms │     no change │
│ QQuery 7 │  2930.74 ms │                                 2693.93 ms │ +1.09x faster │
└──────────┴─────────────┴────────────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary                                         ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)                                         │ 43990.36ms │
│ Total Time (claude_update-parquet-dynamic-filter-YNZT0)   │ 43021.45ms │
│ Average Time (HEAD)                                       │  5498.80ms │
│ Average Time (claude_update-parquet-dynamic-filter-YNZT0) │  5377.68ms │
│ Queries Faster                                            │          3 │
│ Queries Slower                                            │          0 │
│ Queries with No Change                                    │          5 │
│ Queries with Failure                                      │          0 │
└───────────────────────────────────────────────────────────┴────────────┘
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃        HEAD ┃ claude_update-parquet-dynamic-filter-YNZT0 ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0  │     2.55 ms │                                    2.59 ms │     no change │
│ QQuery 1  │    51.07 ms │                                   51.67 ms │     no change │
│ QQuery 2  │   163.40 ms │                                  167.96 ms │     no change │
│ QQuery 3  │   167.48 ms │                                  164.41 ms │     no change │
│ QQuery 4  │  1070.87 ms │                                 1140.06 ms │  1.06x slower │
│ QQuery 5  │  1397.66 ms │                                 1377.26 ms │     no change │
│ QQuery 6  │     6.69 ms │                                       FAIL │  incomparable │
│ QQuery 7  │    54.61 ms │                                   55.51 ms │     no change │
│ QQuery 8  │  1530.32 ms │                                 1540.31 ms │     no change │
│ QQuery 9  │  1941.20 ms │                                 1849.72 ms │     no change │
│ QQuery 10 │   363.47 ms │                                  358.88 ms │     no change │
│ QQuery 11 │   414.87 ms │                                  413.00 ms │     no change │
│ QQuery 12 │  1278.55 ms │                                 1266.25 ms │     no change │
│ QQuery 13 │  2111.57 ms │                                 2053.59 ms │     no change │
│ QQuery 14 │  1290.44 ms │                                 1258.30 ms │     no change │
│ QQuery 15 │  1322.95 ms │                                 1268.57 ms │     no change │
│ QQuery 16 │  2804.27 ms │                                 2660.52 ms │ +1.05x faster │
│ QQuery 17 │  2655.80 ms │                                 2738.96 ms │     no change │
│ QQuery 18 │  5978.91 ms │                                 5298.00 ms │ +1.13x faster │
│ QQuery 19 │   130.72 ms │                                  126.94 ms │     no change │
│ QQuery 20 │  2032.81 ms │                                 1937.98 ms │     no change │
│ QQuery 21 │  2267.87 ms │                                 2242.11 ms │     no change │
│ QQuery 22 │  4094.14 ms │                                 3927.09 ms │     no change │
│ QQuery 23 │ 24141.78 ms │                                12545.91 ms │ +1.92x faster │
│ QQuery 24 │   202.17 ms │                                  211.69 ms │     no change │
│ QQuery 25 │   474.07 ms │                                  465.41 ms │     no change │
│ QQuery 26 │   224.10 ms │                                  202.44 ms │ +1.11x faster │
│ QQuery 27 │  2928.37 ms │                                 2798.14 ms │     no change │
│ QQuery 28 │ 24497.30 ms │                                24497.41 ms │     no change │
│ QQuery 29 │  1046.58 ms │                                 1051.48 ms │     no change │
│ QQuery 30 │  1308.86 ms │                                 1279.55 ms │     no change │
│ QQuery 31 │  1419.66 ms │                                 1398.21 ms │     no change │
│ QQuery 32 │  5155.61 ms │                                 5233.83 ms │     no change │
│ QQuery 33 │  6300.48 ms │                                 5945.18 ms │ +1.06x faster │
│ QQuery 34 │  6621.58 ms │                                 6615.72 ms │     no change │
│ QQuery 35 │  2086.93 ms │                                 1997.71 ms │     no change │
│ QQuery 36 │   192.00 ms │                                  188.88 ms │     no change │
│ QQuery 37 │    73.01 ms │                                   71.71 ms │     no change │
│ QQuery 38 │   112.71 ms │                                  114.93 ms │     no change │
│ QQuery 39 │   337.63 ms │                                  343.27 ms │     no change │
│ QQuery 40 │    39.96 ms │                                   39.34 ms │     no change │
│ QQuery 41 │    34.28 ms │                                   34.13 ms │     no change │
│ QQuery 42 │    30.15 ms │                                   31.32 ms │     no change │
└───────────┴─────────────┴────────────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓
┃ Benchmark Summary                                         ┃             ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩
│ Total Time (HEAD)                                         │ 110352.77ms │
│ Total Time (claude_update-parquet-dynamic-filter-YNZT0)   │  96965.94ms │
│ Average Time (HEAD)                                       │   2627.45ms │
│ Average Time (claude_update-parquet-dynamic-filter-YNZT0) │   2308.71ms │
│ Queries Faster                                            │           5 │
│ Queries Slower                                            │           1 │
│ Queries with No Change                                    │          36 │
│ Queries with Failure                                      │           1 │
└───────────────────────────────────────────────────────────┴─────────────┘
--------------------
Benchmark tpch_mem_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃      HEAD ┃ claude_update-parquet-dynamic-filter-YNZT0 ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1  │ 125.14 ms │                                  117.66 ms │ +1.06x faster │
│ QQuery 2  │  32.53 ms │                                   33.09 ms │     no change │
│ QQuery 3  │  40.24 ms │                                   39.44 ms │     no change │
│ QQuery 4  │  34.74 ms │                                   35.27 ms │     no change │
│ QQuery 5  │  89.35 ms │                                   90.68 ms │     no change │
│ QQuery 6  │  24.41 ms │                                   24.24 ms │     no change │
│ QQuery 7  │ 161.52 ms │                                  160.09 ms │     no change │
│ QQuery 8  │  41.10 ms │                                   39.90 ms │     no change │
│ QQuery 9  │ 108.93 ms │                                  112.37 ms │     no change │
│ QQuery 10 │  73.00 ms │                                   70.95 ms │     no change │
│ QQuery 11 │  18.18 ms │                                   18.37 ms │     no change │
│ QQuery 12 │  58.40 ms │                                   67.20 ms │  1.15x slower │
│ QQuery 13 │  53.47 ms │                                   53.95 ms │     no change │
│ QQuery 14 │  15.40 ms │                                   15.40 ms │     no change │
│ QQuery 15 │  33.40 ms │                                   33.24 ms │     no change │
│ QQuery 16 │  30.69 ms │                                   28.91 ms │ +1.06x faster │
│ QQuery 17 │ 170.58 ms │                                  168.64 ms │     no change │
│ QQuery 18 │ 296.29 ms │                                  299.48 ms │     no change │
│ QQuery 19 │  54.76 ms │                                   51.21 ms │ +1.07x faster │
│ QQuery 20 │  62.15 ms │                                   61.76 ms │     no change │
│ QQuery 21 │ 195.93 ms │                                  199.71 ms │     no change │
│ QQuery 22 │  23.96 ms │                                   24.43 ms │     no change │
└───────────┴───────────┴────────────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary                                         ┃           ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD)                                         │ 1744.17ms │
│ Total Time (claude_update-parquet-dynamic-filter-YNZT0)   │ 1746.01ms │
│ Average Time (HEAD)                                       │   79.28ms │
│ Average Time (claude_update-parquet-dynamic-filter-YNZT0) │   79.36ms │
│ Queries Faster                                            │         3 │
│ Queries Slower                                            │         1 │
│ Queries with No Change                                    │        18 │
│ Queries with Failure                                      │         0 │
└───────────────────────────────────────────────────────────┴───────────┘

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

Labels

datasource Changes to the datasource crate physical-expr Changes to the physical-expr crates physical-plan Changes to the physical-plan crate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants