Skip to content

DuckDB V2 scan: cut chunks on file boundaries, default it for TPC-DS and ClickBench - #10833

Draft
joseph-isaacs wants to merge 27 commits into
developfrom
ji/loving-edison-936mz7
Draft

joseph-isaacs wants to merge 27 commits into
developfrom
ji/loving-edison-936mz7

Conversation

@joseph-isaacs

@joseph-isaacs joseph-isaacs commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Follow-up to #10809, which added the DuckDB V2 scan driver and turned it on for TPC-H only. This PR also runs TPC-DS and ClickBench on V2, and fixes the driver problems those suites exposed. The choice of which benchmarks run V2 now lives in vx-bench, not in the Rust benchmark runners.

Changes

  • Choose the V2 scan per benchmark in vx-bench (bench-orchestrator/bench_orchestrator/runner/executor.py).
    • SCAN_V2_BENCHMARKS passes --scan-v2 true for DuckDB TPC-H, TPC-DS and ClickBench, and DataFusion TPC-H.
    • duckdb-bench and datafusion-bench have no per-benchmark special cases: --scan-v2 is a plain flag that defaults to false.
  • Cut chunks on the file's chunk boundaries (vortex-duckdb/src/scan_v2.rs, file_reader.rs).
    • ClickBench files have 87K and 95K-row chunks. The driver cut on a fixed 64K grid, so nearly every file chunk spanned two scan chunks and was decoded twice.
    • Chunks now end only on the boundaries V1 splits on (SplitBy::default() over the referenced columns).
    • Spans between boundaries are merged up to the scan's chunk size, but no further than leaves parallelism × 4 chunks per file.
  • Plan each file fully at initialize.
    • The root planner, pruning included, runs to the end in reader_initialize on the thread DuckDB uses to initialize the file, as V1 builds its splits there. Its parts are queued.
    • DuckDB gets at most one thread per queued part.
  • Run a part's chunks inline (ChunkPlanner::inline in vortex-layout/src/scan/execution/chunk.rs). A part's chunks run as children of the part, so they share one IO session.
  • Prune each part again under a dynamic filter.
    • Under DuckDB's top-N ORDER BY … LIMIT filter, file-level pruning runs before any bound exists.
    • Each part now runs its own PrunePlanner when a thread takes it, against the latest bound.
    • Zone maps are cached per plan and re-proven only when the bound changes, so re-pruning reads nothing new.
  • Share a segment's read across a scan's IO sessions (vortex-layout/src/scan/v2/io.rs).
    • SegmentScanIo keeps a map of segment reads, so a session reuses a read another session still holds. The map holds reads weakly, so no segment is kept alive longer than before.
    • A sparse selection (at most 1 row in 1024, such as DuckDB's late-materialization row-id fetch) retains its reads for the scan's lifetime, as V1's layout readers do. Its chunks run one after another but read the same wide column segments.
  • Plan a projection of fields as one pack of column plans (vortex-layout/src/plan/physical/plans/eval.rs, pack.rs).
    • EvalPackRule lifts a pack whose fields are all field paths into a Pack child into one PackPlan, stepping each path into its column's plan.
    • ExpressionPackRule steps a field path into its field without annotating every field.
    • Before, the row-id fetch's 105-column projection was packed, renamed and packed again per chunk, comparing the wide dtypes deeply each time.
  • Compile the row index as a lazy sequence (plans/row_idx.rs), as the V1 row-index reader does, so a sparse mask produces only its rows.
  • Plan only the chunks a sparse selection selects (vortex-duckdb/src/scan_v2.rs). Each is its own part, so DuckDB is offered a thread per chunk that has work.

Benchmarks (DuckDB V2 vs base)

Suite 527684b 3b2d95d 0ad75b1
ClickBench +3.8% +1.4% −0.1%
TPC-DS SF1 +0.8% +1.6% +0.5%
TPC-H SF1 −0.9% −1.7% −2.1%
TPC-H SF10 −0.0% −0.1% −0.5%
FineWeb −0.7% −0.3% −0.4%

Each run's base is the develop commit it merged with: TPC-H's base already runs V2, while TPC-DS and ClickBench compare against V1. All suites read "No clear signal". DataFusion TPC-H (V2 on both sides) is −3.9% at SF1 and −1.8% at SF10 on 0ad75b1, so the plan-rule change slowed nothing.

The three ClickBench ORDER BY … LIMIT 10 queries (hot):

ClickBench 431717c 3b2d95d 0ad75b1
q23 +62.6% +20.2% +9.2%
q24 +43.3% −6.0% −4.3%
q26 +57.6% −2.1% −3.4%
  • q24 and q26 are below V1.
  • q23 is still 9% slower. Its slow part is DuckDB's late-materialization row-id fetch, which reads all 105 columns for about 60 rows.
    • Locally, single-threaded, q23 now runs about 365 ms on V2 against 409 ms on V1, and 3.21G instructions against 3.32G under callgrind.
    • The fetch phase itself is still slower than V1's. V2 reads 56 MB of segments that V1 never requests, and DuckDB initializes the later fetch files late.
  • q02 is +8.5%, down from +14.3%. ClickBench q21 and q22 are 14% and 10% faster.

e4eb6f2 dropped the file-level pruning under dynamic filters and kept only the per-part pruning. q24 went back to +7.6%, so 3b2d95d reverts it.

Checks

  • cargo clippy -p vortex-layout -p vortex-duckdb --all-targets --all-features -- -D warnings and nightly fmt: clean.
  • cargo test -p vortex-layout --lib: 668 pass, including sessions_share_a_held_read, retained_reads_outlive_their_sessions and field_projection_with_row_idx_packs_column_plans.
  • cargo test -p vortex-duckdb --lib: 275 pass, including the top_n, filtered_top_n and late_materialized_top_n cases of test_vortex_scan_v2_matches_v1.
  • pytest bench-orchestrator/tests/test_executor.py: 13 pass.

Generated by Claude Code

joseph-isaacs and others added 15 commits October 26, 2026 14:26
A planner says what it needs, compute or reads. Where either runs is an
engine's decision, so this crate stops driving: `ScanBuilder::prepare`
lowers and plans a scan without IO into a `PreparedScan`, which exposes
its rows, selection, filter plans and IO service, and `PrunePlanner` and
`ChunkPlanner` are public for an engine to compose, the prune planner
continuing into whatever it is built with and passing `None` when no
proof ran. The builder's ordering, concurrency, mapping and streams go
with the driver, and the layout's tests drive their scans on a run of
their own.

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The opener composes a scan's planners, a prune planner into a chunk
planner when the scan has a filter and the chunk planner alone when it
does not, and a driver of this crate runs them: the root run stepped on
`spawn_cpu` tasks as DataFusion polls the stream, each spawned chunk on
a task of its own up to the concurrency, or on the root run when the
engine's partitions already fill the cores, with the concurrency
derived from cores per partition unless configured. Batches are mapped
to Arrow on the task that produced them. Every spawning decision of a
V2 scan under DataFusion is in this crate.

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
`vortex_file::v2::ScanDriver` composes a scan's planners and runs them
on the session's runtime, the way an engine's driver does, for the file
API's callers: the compress and random-access benchmarks move to it.

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The opener prepares the scan where compute runs, composes its planners
itself, a prune planner continuing into a chunk planner when there is a
filter and the chunk planner alone when there is not, and hands the
driver the first planner. The driver only drives.

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The prune planner skipped prefetching the zone maps of proofs an earlier
scan of the file had proved. The segment list now comes from compiling
the proof, and a proved proof compiles to its kept result without a
segment scan, so the check repeated what compile already knew.

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The scan code named the filter's zone-map plans proofs. They are the
filter's pruning expressions evaluated over the file's zone map, so the
layout, file and DataFusion code now says pruning, matching
prune_zones, PrunedZones and the pruning field they already used.
Behaviour is unchanged.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
DuckDB scans can now run on the V2 scan executor, like DataFusion's
scan_v2 option. Each file is cut into one block-aligned row range per
core, and every range is a V2 scan stream that shares the file's
ScanCache. The extension enables it with VORTEX_SCAN_V2=1 or
vortex_duckdb::set_scan_v2. duckdb-bench gains --scan-v2, which
defaults to true for TPC-H, matching datafusion-bench.

Signed-off-by: Claude <noreply@anthropic.com>

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M8NsCJMx4C45Wf2Df24qzZ
Cutting a file into one equal row range per core put split ends inside
the layout's 65,536-row chunks. On many-core machines a split covered
only part of a chunk, so every chunk was read and decoded by up to eight
splits; CI's TPC-H SF1 DuckDB run regressed by 15%. Splits now end on
the natural split boundaries the V1 scan uses, spread evenly over the
cores, so each chunk belongs to one split.

Signed-off-by: Claude <noreply@anthropic.com>

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M8NsCJMx4C45Wf2Df24qzZ
…kDB V2 branch

The DuckDB driver composes and drives the V2 planners the same way.

Signed-off-by: Claude <noreply@anthropic.com>

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M8NsCJMx4C45Wf2Df24qzZ
Like the DataFusion opener, the DuckDB extension now prepares a V2 scan
and composes its planners itself, and drives them with its own driver.
Each file is prepared once; the root planner's run is shared by every
thread scanning the file. A thread takes the next part the root spawns
and runs its chunks inline on a run of its own, waiting only for its
reads, so there are no per-split scans, task hops or channels. The root
cuts the rows into a few parts per thread on whole 65,536-row blocks,
so filtered scans, whose chunks are up to 1,048,576 rows, still spread
over every thread and no chunk spans two parts.

Signed-off-by: Claude <noreply@anthropic.com>

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M8NsCJMx4C45Wf2Df24qzZ
Brings in the Cargo.lock update and zstd advisory ignores (#10810).

Signed-off-by: Claude <noreply@anthropic.com>

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M8NsCJMx4C45Wf2Df24qzZ
Brings in the cc 1.8.0 pin that fixes the Windows CI build (#10815).

Signed-off-by: Claude <noreply@anthropic.com>

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M8NsCJMx4C45Wf2Df24qzZ
With #10708 on develop, this branch's diff is only the DuckDB driver.

Signed-off-by: Claude <noreply@anthropic.com>

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M8NsCJMx4C45Wf2Df24qzZ
The CI SQL benchmarks then compare DuckDB's V2 scan with the V1 baseline
on those suites too, as for TPC-H.

Signed-off-by: Claude <noreply@anthropic.com>

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M8NsCJMx4C45Wf2Df24qzZ
Signed-off-by: Claude <noreply@anthropic.com>

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M8NsCJMx4C45Wf2Df24qzZ
@joseph-isaacs joseph-isaacs added changelog/chore A trivial change action/bench-sql Run SQL benchmarks without Vortex Compact on this PR labels Oct 26, 2026 — with Claude
@github-actions github-actions Bot removed the action/bench-sql Run SQL benchmarks without Vortex Compact on this PR label Oct 26, 2026
@github-actions

github-actions Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Polar Signals Profiling Results

Latest Run

Status Commit Job Attempt Link
🟡 In Progress 0ad75b1 clickbench-nvme 1 Explore Profiling Data
🟢 Done 0ad75b1 polarsignals 1 Explore Profiling Data
🟡 In Progress 0ad75b1 tpch-nvme-10 1 Explore Profiling Data
🟢 Done 0ad75b1 fineweb 1 Explore Profiling Data
🟡 In Progress 0ad75b1 tpch-s3 1 Explore Profiling Data
🟡 In Progress 0ad75b1 tpch-nvme 1 Explore Profiling Data
🟡 In Progress 0ad75b1 tpcds-nvme 1 Explore Profiling Data
Previous Runs (57)
Status Commit Job Attempt Link
🟢 Done 3b2d95d clickbench-nvme 1 Explore Profiling Data
🟢 Done 3b2d95d polarsignals 1 Explore Profiling Data
🟢 Done 3b2d95d tpch-nvme-10 1 Explore Profiling Data
🟢 Done 3b2d95d tpch-nvme 1 Explore Profiling Data
🟢 Done 3b2d95d tpch-s3 1 Explore Profiling Data
🟢 Done 3b2d95d fineweb 1 Explore Profiling Data
🟢 Done 3b2d95d tpcds-nvme 1 Explore Profiling Data
🟢 Done e4eb6f2 clickbench-nvme 1 Explore Profiling Data
🟢 Done e4eb6f2 polarsignals 1 Explore Profiling Data
🟢 Done e4eb6f2 tpch-nvme-10 1 Explore Profiling Data
🟢 Done e4eb6f2 fineweb 1 Explore Profiling Data
🟢 Done e4eb6f2 tpcds-nvme 1 Explore Profiling Data
🟢 Done e4eb6f2 tpch-s3 1 Explore Profiling Data
🟢 Done e4eb6f2 tpch-nvme 1 Explore Profiling Data
🟢 Done 4e9cede clickbench-nvme 1 Explore Profiling Data
🟢 Done 4e9cede polarsignals 1 Explore Profiling Data
🟢 Done 4e9cede tpch-nvme-10 1 Explore Profiling Data
🟢 Done 4e9cede fineweb 1 Explore Profiling Data
🟢 Done 4e9cede tpch-s3 1 Explore Profiling Data
🟢 Done 4e9cede tpcds-nvme 1 Explore Profiling Data
🟢 Done 4e9cede tpch-nvme 1 Explore Profiling Data
🟢 Done 431717c clickbench-nvme 1 Explore Profiling Data
🟢 Done 431717c polarsignals 1 Explore Profiling Data
🟢 Done 431717c tpch-nvme-10 1 Explore Profiling Data
🟢 Done 431717c fineweb 1 Explore Profiling Data
🟢 Done 431717c tpch-s3 1 Explore Profiling Data
🟢 Done 431717c tpch-nvme 1 Explore Profiling Data
🟢 Done 431717c tpcds-nvme 1 Explore Profiling Data
🟢 Done 1ed88fe clickbench-nvme 1 Explore Profiling Data
🟢 Done 1ed88fe fineweb 1 Explore Profiling Data
🟢 Done 1ed88fe polarsignals 1 Explore Profiling Data
🟢 Done 1ed88fe tpch-nvme-10 1 Explore Profiling Data
🟢 Done 1ed88fe tpch-s3 1 Explore Profiling Data
🟢 Done 1ed88fe tpch-nvme 1 Explore Profiling Data
🟢 Done 1ed88fe tpcds-nvme 1 Explore Profiling Data
🟢 Done 527684b polarsignals 2 Explore Profiling Data
🟢 Done 527684b clickbench-nvme 1 Explore Profiling Data
🟢 Done 527684b fineweb 1 Explore Profiling Data
🟢 Done 527684b tpch-nvme 1 Explore Profiling Data
🟢 Done 527684b tpcds-nvme 1 Explore Profiling Data
🟢 Done 527684b tpch-nvme-10 1 Explore Profiling Data
🟢 Done 527684b tpch-s3 1 Explore Profiling Data
🟢 Done 8a464a9 clickbench-nvme 1 Explore Profiling Data
🟢 Done 8a4cefe clickbench-nvme 1 Explore Profiling Data
🟢 Done 8a4cefe polarsignals 1 Explore Profiling Data
🟢 Done 8a4cefe tpch-nvme-10 1 Explore Profiling Data
🟢 Done 8a4cefe fineweb 1 Explore Profiling Data
🟢 Done 8a4cefe tpch-nvme 1 Explore Profiling Data
🟢 Done 8a4cefe tpch-s3 1 Explore Profiling Data
🟢 Done 8a4cefe tpcds-nvme 1 Explore Profiling Data
🟢 Done 2aa98a2 fineweb 1 Explore Profiling Data
🟢 Done 2aa98a2 clickbench-nvme 1 Explore Profiling Data
🟢 Done 2aa98a2 tpch-s3 1 Explore Profiling Data
🟢 Done 2aa98a2 polarsignals 1 Explore Profiling Data
🟢 Done 2aa98a2 tpch-nvme-10 1 Explore Profiling Data
🟢 Done 2aa98a2 tpch-nvme 1 Explore Profiling Data
🟢 Done 2aa98a2 tpcds-nvme 1 Explore Profiling Data

Powered by Polar Signals Cloud

@codspeed

codspeed Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Merging this PR will degrade performance by 10.63%

3 warnings, 1 note

⚠️ Walltime results may be unreliable

Some benchmarks used the Walltime instrument outside CodSpeed Macro Runners, which can make the results inconsistent.

Learn more about Macro Runners

See affected benchmarks

⚠️ Unable to measure the execution of 2 benchmarks

These benchmarks measured no execution time, so their results are not comparable and count as unchanged. This usually happens when the compiler removes the code under test.

Prevent compiler optimizations

See affected benchmarks

⚠️ 18 benchmarks are dominated by system calls

System calls cannot be simulated consistently and are left out of the measure. The reported value understates the real cost. Switch to the Walltime instrument to measure them.

Learn more about system calls

See affected benchmarks

ℹ️ 40 benchmarks have no flamegraph

The flamegraph wasn't generated: the symbols of the profiling trace could not be resolved, because no information about the language frames was collected.

See affected benchmarks

❌ 1 regressed benchmark
✅ 2438 untouched benchmarks
⏩ 12 skipped benchmarks1

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
❌ Walltime starts_with_avx512[64, VarBin] 56.2 µs 62.9 µs -10.63%

Tip

Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.


Comparing ji/loving-edison-936mz7 (0ad75b1) with develop (a59294e)

Open in CodSpeed

Footnotes

  1. 12 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩

@github-actions

github-actions Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Benchmarks: PolarSignals Profiling 📖

Commits: PR 0ad75b12 vs base f476db42
Vortex (geomean): hot 0.991x ➖ · cold 0.978x ➖


datafusion / vortex-file-compressed / ns (0.991x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
polarsignals_q00/datafusion:vortex-file-compressed 44588306 / 44949807 / -0.8% 89877432 / 95446765 / -5.8% 0.50 / 0.47 / +5.3%
polarsignals_q01/datafusion:vortex-file-compressed 50345040 / 50787846 / -0.9% 117998145 / 115755217 / +1.9% 0.43 / 0.44 / -2.8%
polarsignals_q02/datafusion:vortex-file-compressed 43673889 / 43863468 / -0.4% 89078298 / 92664494 / -3.9% 0.49 / 0.47 / +3.6%
polarsignals_q03/datafusion:vortex-file-compressed 52826014 / 54657512 / -3.4% 117196530 / 118755249 / -1.3% 0.45 / 0.46 / -2.1%
polarsignals_q04/datafusion:vortex-file-compressed 9246410 / 9400066 / -1.6% 48354012 / 51317325 / -5.8% 0.19 / 0.18 / +4.4%
polarsignals_q05/datafusion:vortex-file-compressed 11838065 / 11895794 / -0.5% 53651076 / 52278412 / +2.6% 0.22 / 0.23 / -3.0%
polarsignals_q06/datafusion:vortex-file-compressed 23311482 / 23715047 / -1.7% 62824003 / 64005186 / -1.8% 0.37 / 0.37 / +0.1%
polarsignals_q07/datafusion:vortex-file-compressed 11096746 / 11105034 / -0.1% 48841205 / 51161031 / -4.5% 0.23 / 0.22 / +4.7%
polarsignals_q08/datafusion:vortex-file-compressed 97727224 / 98333967 / -0.6% 161829362 / 164348210 / -1.5% 0.60 / 0.60 / +0.9%
polarsignals_q09/datafusion:vortex-file-compressed 10018994 / 9933766 / +0.9% 47656524 / 48478557 / -1.7% 0.21 / 0.20 / +2.6%

No file size changes detected.

@github-actions

github-actions Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Benchmarks: TPC-H SF=1 on NVME 📖

Commits: PR 0ad75b12 vs base f476db42
Verdict: No clear signal (low confidence)
Attributed Vortex impact: -3.0%
Engines: DataFusion No clear signal (-3.9%, low confidence) · DuckDB No clear signal (-2.1%, low confidence)
Vortex (geomean): hot 0.968x ➖ · cold 0.998x ➖
Parquet (geomean): hot 0.998x ➖ · cold 0.994x ➖
Shifts: Parquet (control) -0.2% · Median polish -0.4%

How to read Verdict and Engines
  • Verdict: Overall PR-level signal after subtracting baseline drift estimated from Parquet control rows. It can be Likely improvement, Likely regression, or No clear signal.
  • Engines: Per-engine attribution. DataFusion is compared against DataFusion/Parquet controls; DuckDB is compared against DuckDB/Parquet controls. This answers whether each engine improved or regressed independently.
  • Confidence: Based on directional consistency, share of rows above the noise floor, and control-run noise.
  • Hot vs cold: Every measurement is run several times. The first run is reported as the cold run, and the median of the runs after it is reported as the hot run. The verdict and significance use hot runs; each target's geomean reports hot and cold beside each other where the individual runs were recorded and hot alone where they were not, the cold column shows first-run cost per row, and hot/cold is how much of each run the warm path saves. Rows whose results predate per-run reporting show only one value, taken from the value the runner reported.
  • Table cells: Each cell reads PR / base / %diff. The hot and cold columns mark a change as 🔴 slower or 🟢 faster once it clears this suite's threshold; anything smaller is noise here and is left unmarked, as is hot/cold, because a shift in the warm-up ratio is not a win or a loss by itself.

datafusion / vortex-file-compressed / ns (0.959x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpch_q01/datafusion:vortex-file-compressed 16746874 / 17536930 / -4.5% 42073651 / 46254536 / -9.0% 0.40 / 0.38 / +5.0%
tpch_q02/datafusion:vortex-file-compressed 16772806 / 17825566 / -5.9% 34906680 / 35969031 / -3.0% 0.48 / 0.50 / -3.0%
tpch_q03/datafusion:vortex-file-compressed 20667847 / 22186681 / -6.8% 47610349 / 49836993 / -4.5% 0.43 / 0.45 / -2.5%
tpch_q04/datafusion:vortex-file-compressed 12219868 / 13306890 / -8.2% 34436901 / 35316092 / -2.5% 0.35 / 0.38 / -5.8%
tpch_q05/datafusion:vortex-file-compressed 38514305 / 39715599 / -3.0% 69018255 / 68806462 / +0.3% 0.56 / 0.58 / -3.3%
tpch_q06/datafusion:vortex-file-compressed 7889499 / 8612059 / -8.4% 28083857 / 29550190 / -5.0% 0.28 / 0.29 / -3.6%
tpch_q07/datafusion:vortex-file-compressed 53384386 / 55031302 / -3.0% 79641160 / 81066643 / -1.8% 0.67 / 0.68 / -1.3%
tpch_q08/datafusion:vortex-file-compressed 53153356 / 55340851 / -4.0% 84946567 / 77224376 / +10.0% 0.63 / 0.72 / -12.7%
tpch_q09/datafusion:vortex-file-compressed 48537361 / 49366686 / -1.7% 79776518 / 80864767 / -1.3% 0.61 / 0.61 / -0.3%
tpch_q10/datafusion:vortex-file-compressed 19355830 / 20188353 / -4.1% 51433996 / 49526947 / +3.9% 0.38 / 0.41 / -7.7%
tpch_q11/datafusion:vortex-file-compressed 14597105 / 15233456 / -4.2% 33008371 / 34428627 / -4.1% 0.44 / 0.44 / -0.1%
tpch_q12/datafusion:vortex-file-compressed 24714353 / 25292811 / -2.3% 45592224 / 44113681 / +3.4% 0.54 / 0.57 / -5.5%
tpch_q13/datafusion:vortex-file-compressed 20198308 / 21000327 / -3.8% 39013279 / 42981743 / -9.2% 0.52 / 0.49 / +6.0%
tpch_q14/datafusion:vortex-file-compressed 14507507 / 15134720 / -4.1% 37969826 / 40772780 / -6.9% 0.38 / 0.37 / +2.9%
tpch_q15/datafusion:vortex-file-compressed 19895718 / 21098039 / -5.7% 44331612 / 46126385 / -3.9% 0.45 / 0.46 / -1.9%
tpch_q16/datafusion:vortex-file-compressed 18117419 / 18435005 / -1.7% 40732459 / 42091128 / -3.2% 0.44 / 0.44 / +1.6%
tpch_q17/datafusion:vortex-file-compressed 28526630 / 29799267 / -4.3% 59593425 / 58165781 / +2.5% 0.48 / 0.51 / -6.6%
tpch_q18/datafusion:vortex-file-compressed 37109407 / 37947742 / -2.2% 56604469 / 58356077 / -3.0% 0.66 / 0.65 / +0.8%
tpch_q19/datafusion:vortex-file-compressed 17142122 / 18886971 / -9.2% 39870983 / 38742984 / +2.9% 0.43 / 0.49 / -11.8%
tpch_q20/datafusion:vortex-file-compressed 22437460 / 22988787 / -2.4% 45649771 / 47286125 / -3.5% 0.49 / 0.49 / +1.1%
tpch_q21/datafusion:vortex-file-compressed 44514016 / 44671888 / -0.4% 70873013 / 72298660 / -2.0% 0.63 / 0.62 / +1.7%
tpch_q22/datafusion:vortex-file-compressed 11209826 / 11078337 / +1.2% 30858560 / 31746443 / -2.8% 0.36 / 0.35 / +4.1%
datafusion / parquet / ns (0.998x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpch_q01/datafusion:parquet 72227554 / 71930212 / +0.4% 90100472 / 88946142 / +1.3% 0.80 / 0.81 / -0.9%
tpch_q02/datafusion:parquet 76168348 / 76140814 / +0.0% 96011436 / 94825304 / +1.3% 0.79 / 0.80 / -1.2%
tpch_q03/datafusion:parquet 83916129 / 83753495 / +0.2% 106844429 / 108309529 / -1.4% 0.79 / 0.77 / +1.6%
tpch_q04/datafusion:parquet 40662208 / 40890278 / -0.6% 58783161 / 60250202 / -2.4% 0.69 / 0.68 / +1.9%
tpch_q05/datafusion:parquet 112649968 / 113215660 / -0.5% 140561218 / 141662024 / -0.8% 0.80 / 0.80 / +0.3%
tpch_q06/datafusion:parquet 32006509 / 32072153 / -0.2% 50108556 / 50198587 / -0.2% 0.64 / 0.64 / -0.0%
tpch_q07/datafusion:parquet 114951837 / 114956309 / -0.0% 143076786 / 144091310 / -0.7% 0.80 / 0.80 / +0.7%
tpch_q08/datafusion:parquet 119289882 / 119448555 / -0.1% 148086539 / 147619506 / +0.3% 0.81 / 0.81 / -0.4%
tpch_q09/datafusion:parquet 140193380 / 140454047 / -0.2% 167699876 / 170450448 / -1.6% 0.84 / 0.82 / +1.5%
tpch_q10/datafusion:parquet 106764357 / 107036843 / -0.3% 133016955 / 131306268 / +1.3% 0.80 / 0.82 / -1.5%
tpch_q11/datafusion:parquet 61681502 / 61731330 / -0.1% 80143543 / 83920733 / -4.5% 0.77 / 0.74 / +4.6%
tpch_q12/datafusion:parquet 65528271 / 65590878 / -0.1% 84170540 / 86615316 / -2.8% 0.78 / 0.76 / +2.8%
tpch_q13/datafusion:parquet 146905942 / 147439038 / -0.4% 166973955 / 167843099 / -0.5% 0.88 / 0.88 / +0.2%
tpch_q14/datafusion:parquet 48278628 / 48093104 / +0.4% 70609420 / 73186205 / -3.5% 0.68 / 0.66 / +4.0%
tpch_q15/datafusion:parquet 74725285 / 75001344 / -0.4% 94936752 / 96060042 / -1.2% 0.79 / 0.78 / +0.8%
tpch_q16/datafusion:parquet 43895593 / 43967835 / -0.2% 61805373 / 62855500 / -1.7% 0.71 / 0.70 / +1.5%
tpch_q17/datafusion:parquet 123041119 / 124063918 / -0.8% 148923796 / 150020983 / -0.7% 0.83 / 0.83 / -0.1%
tpch_q18/datafusion:parquet 123313603 / 124114352 / -0.6% 144150039 / 141805905 / +1.7% 0.86 / 0.88 / -2.3%
tpch_q19/datafusion:parquet 58277558 / 57993059 / +0.5% 85286971 / 84848296 / +0.5% 0.68 / 0.68 / -0.0%
tpch_q20/datafusion:parquet 78715105 / 79450914 / -0.9% 103371647 / 106713291 / -3.1% 0.76 / 0.74 / +2.3%
tpch_q21/datafusion:parquet 116971664 / 117366866 / -0.3% 138998403 / 142597100 / -2.5% 0.84 / 0.82 / +2.2%
tpch_q22/datafusion:parquet 52500535 / 52181562 / +0.6% 71556454 / 71859007 / -0.4% 0.73 / 0.73 / +1.0%
duckdb / vortex-file-compressed / ns (0.977x ➖, 3↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpch_q01/duckdb:vortex-file-compressed 8983356 / 9270616 / -3.1% 19373134 / 20129594 / -3.8% 0.46 / 0.46 / +0.7%
tpch_q02/duckdb:vortex-file-compressed 14849407 / 14971035 / -0.8% 23019649 / 24192171 / -4.8% 0.65 / 0.62 / +4.2%
tpch_q03/duckdb:vortex-file-compressed 18668901 / 18129720 / +3.0% 35381985 / 33104976 / +6.9% 0.53 / 0.55 / -3.7%
tpch_q04/duckdb:vortex-file-compressed 12277588 / 12527560 / -2.0% 25698961 / 25340994 / +1.4% 0.48 / 0.49 / -3.4%
tpch_q05/duckdb:vortex-file-compressed 20424896 / 20851490 / -2.0% 35064056 / 32040642 / +9.4% 0.58 / 0.65 / -10.5%
tpch_q06/duckdb:vortex-file-compressed 4610779 / 4439244 / +3.9% 13803233 / 13473491 / +2.4% 0.33 / 0.33 / +1.4%
tpch_q07/duckdb:vortex-file-compressed 23883664 / 23635622 / +1.0% 41804955 / 39623684 / +5.5% 0.57 / 0.60 / -4.2%
tpch_q08/duckdb:vortex-file-compressed 21284637 / 20751506 / +2.6% 37266805 / 37202226 / +0.2% 0.57 / 0.56 / +2.4%
tpch_q09/duckdb:vortex-file-compressed 22143524 / 20833413 / +6.3% 39059564 / 35702872 / +9.4% 0.57 / 0.58 / -2.8%
tpch_q10/duckdb:vortex-file-compressed 21742005 / 26880201 / -19.1% 🟢 37383395 / 41642268 / -10.2% 🟢 0.58 / 0.65 / -9.9%
tpch_q11/duckdb:vortex-file-compressed 7744657 / 7934370 / -2.4% 15621865 / 15864905 / -1.5% 0.50 / 0.50 / -0.9%
tpch_q12/duckdb:vortex-file-compressed 14016208 / 13895043 / +0.9% 26374771 / 25906673 / +1.8% 0.53 / 0.54 / -0.9%
tpch_q13/duckdb:vortex-file-compressed 19427957 / 23370814 / -16.9% 🟢 31479687 / 32929149 / -4.4% 0.62 / 0.71 / -13.0%
tpch_q14/duckdb:vortex-file-compressed 11154233 / 11469535 / -2.7% 23380743 / 22403954 / +4.4% 0.48 / 0.51 / -6.8%
tpch_q15/duckdb:vortex-file-compressed 8162531 / 8425691 / -3.1% 19317738 / 20019173 / -3.5% 0.42 / 0.42 / +0.4%
tpch_q16/duckdb:vortex-file-compressed 16585673 / 16479415 / +0.6% 22622921 / 22906208 / -1.2% 0.73 / 0.72 / +1.9%
tpch_q17/duckdb:vortex-file-compressed 12326885 / 12146998 / +1.5% 27587194 / 24158704 / +14.2% 🔴 0.45 / 0.50 / -11.1%
tpch_q18/duckdb:vortex-file-compressed 24039776 / 24793056 / -3.0% 34175527 / 34556124 / -1.1% 0.70 / 0.72 / -2.0%
tpch_q19/duckdb:vortex-file-compressed 10696819 / 10280774 / +4.0% 24036593 / 21309277 / +12.8% 🔴 0.45 / 0.48 / -7.8%
tpch_q20/duckdb:vortex-file-compressed 13564270 / 13631049 / -0.5% 29711253 / 27860350 / +6.6% 0.46 / 0.49 / -6.7%
tpch_q21/duckdb:vortex-file-compressed 36781648 / 36586028 / +0.5% 55398428 / 54706278 / +1.3% 0.66 / 0.67 / -0.7%
tpch_q22/duckdb:vortex-file-compressed 16504483 / 19070090 / -13.5% 🟢 27066205 / 28023691 / -3.4% 0.61 / 0.68 / -10.4%
duckdb / parquet / ns (0.999x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpch_q01/duckdb:parquet 48263312 / 48329585 / -0.1% 54679915 / 55937258 / -2.2% 0.88 / 0.86 / +2.2%
tpch_q02/duckdb:parquet 48838163 / 48694875 / +0.3% 56292335 / 55920989 / +0.7% 0.87 / 0.87 / -0.4%
tpch_q03/duckdb:parquet 60619167 / 60838726 / -0.4% 69996294 / 69592516 / +0.6% 0.87 / 0.87 / -0.9%
tpch_q04/duckdb:parquet 34972976 / 35260078 / -0.8% 44005080 / 44174381 / -0.4% 0.79 / 0.80 / -0.4%
tpch_q05/duckdb:parquet 67884512 / 67915069 / -0.0% 77118198 / 77881162 / -1.0% 0.88 / 0.87 / +0.9%
tpch_q06/duckdb:parquet 22040271 / 22351152 / -1.4% 27988808 / 27911732 / +0.3% 0.79 / 0.80 / -1.7%
tpch_q07/duckdb:parquet 64421034 / 64644517 / -0.3% 75304139 / 75114350 / +0.3% 0.86 / 0.86 / -0.6%
tpch_q08/duckdb:parquet 76516368 / 76502633 / +0.0% 88075413 / 88252547 / -0.2% 0.87 / 0.87 / +0.2%
tpch_q09/duckdb:parquet 108152439 / 108686875 / -0.5% 120552783 / 120195255 / +0.3% 0.90 / 0.90 / -0.8%
tpch_q10/duckdb:parquet 106691611 / 106688320 / +0.0% 119522213 / 119248493 / +0.2% 0.89 / 0.89 / -0.2%
tpch_q11/duckdb:parquet 29847697 / 29887784 / -0.1% 35306867 / 35925060 / -1.7% 0.85 / 0.83 / +1.6%
tpch_q12/duckdb:parquet 38059690 / 38121935 / -0.2% 45195618 / 45747914 / -1.2% 0.84 / 0.83 / +1.1%
tpch_q13/duckdb:parquet 175707271 / 176083404 / -0.2% 183170112 / 184701906 / -0.8% 0.96 / 0.95 / +0.6%
tpch_q14/duckdb:parquet 42626962 / 42494892 / +0.3% 52039276 / 52629272 / -1.1% 0.82 / 0.81 / +1.4%
tpch_q15/duckdb:parquet 33020235 / 32929011 / +0.3% 42093373 / 41960150 / +0.3% 0.78 / 0.78 / -0.0%
tpch_q16/duckdb:parquet 47750544 / 47901490 / -0.3% 54224791 / 53680465 / +1.0% 0.88 / 0.89 / -1.3%
tpch_q17/duckdb:parquet 48242368 / 48151013 / +0.2% 58765418 / 58664278 / +0.2% 0.82 / 0.82 / +0.0%
tpch_q18/duckdb:parquet 74677110 / 74877525 / -0.3% 82269505 / 82114293 / +0.2% 0.91 / 0.91 / -0.5%
tpch_q19/duckdb:parquet 49184584 / 48264274 / +1.9% 55936729 / 56225109 / -0.5% 0.88 / 0.86 / +2.4%
tpch_q20/duckdb:parquet 63740497 / 64022929 / -0.4% 74418567 / 74463078 / -0.1% 0.86 / 0.86 / -0.4%
tpch_q21/duckdb:parquet 107301176 / 107920503 / -0.6% 117724629 / 117943943 / -0.2% 0.91 / 0.92 / -0.4%
tpch_q22/duckdb:parquet 50910924 / 51164013 / -0.5% 60188006 / 59893383 / +0.5% 0.85 / 0.85 / -1.0%

No file size changes detected.

@github-actions

github-actions Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Benchmarks: TPC-H SF=10 on NVME 📖

Commits: PR 0ad75b12 vs base f476db42
Verdict: No clear signal (low confidence)
Attributed Vortex impact: -1.1%
Engines: DataFusion No clear signal (-1.8%, low confidence) · DuckDB No clear signal (-0.5%, low confidence)
Vortex (geomean): hot 0.986x ➖ · cold 1.000x ➖
Parquet (geomean): hot 0.997x ➖ · cold 0.998x ➖
Shifts: Parquet (control) -0.3% · Median polish -0.3%

How to read Verdict and Engines
  • Verdict: Overall PR-level signal after subtracting baseline drift estimated from Parquet control rows. It can be Likely improvement, Likely regression, or No clear signal.
  • Engines: Per-engine attribution. DataFusion is compared against DataFusion/Parquet controls; DuckDB is compared against DuckDB/Parquet controls. This answers whether each engine improved or regressed independently.
  • Confidence: Based on directional consistency, share of rows above the noise floor, and control-run noise.
  • Hot vs cold: Every measurement is run several times. The first run is reported as the cold run, and the median of the runs after it is reported as the hot run. The verdict and significance use hot runs; each target's geomean reports hot and cold beside each other where the individual runs were recorded and hot alone where they were not, the cold column shows first-run cost per row, and hot/cold is how much of each run the warm path saves. Rows whose results predate per-run reporting show only one value, taken from the value the runner reported.
  • Table cells: Each cell reads PR / base / %diff. The hot and cold columns mark a change as 🔴 slower or 🟢 faster once it clears this suite's threshold; anything smaller is noise here and is left unmarked, as is hot/cold, because a shift in the warm-up ratio is not a win or a loss by itself.

datafusion / vortex-file-compressed / ns (0.980x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpch_q01/datafusion:vortex-file-compressed 89363134 / 90659359 / -1.4% 150987872 / 144894247 / +4.2% 0.59 / 0.63 / -5.4%
tpch_q02/datafusion:vortex-file-compressed 66078703 / 67276943 / -1.8% 101294524 / 102387578 / -1.1% 0.65 / 0.66 / -0.7%
tpch_q03/datafusion:vortex-file-compressed 66362873 / 67263903 / -1.3% 118395557 / 112260169 / +5.5% 0.56 / 0.60 / -6.5%
tpch_q04/datafusion:vortex-file-compressed 35788666 / 35965699 / -0.5% 75771227 / 73604097 / +2.9% 0.47 / 0.49 / -3.3%
tpch_q05/datafusion:vortex-file-compressed 119175711 / 119371891 / -0.2% 174590669 / 176013325 / -0.8% 0.68 / 0.68 / +0.6%
tpch_q06/datafusion:vortex-file-compressed 11280266 / 12063141 / -6.5% 54814539 / 58003647 / -5.5% 0.21 / 0.21 / -1.0%
tpch_q07/datafusion:vortex-file-compressed 131768635 / 133040193 / -1.0% 202446840 / 193530903 / +4.6% 0.65 / 0.69 / -5.3%
tpch_q08/datafusion:vortex-file-compressed 144343143 / 143835356 / +0.4% 211271288 / 214704940 / -1.6% 0.68 / 0.67 / +2.0%
tpch_q09/datafusion:vortex-file-compressed 186463113 / 186405485 / +0.0% 270161043 / 270041843 / +0.0% 0.69 / 0.69 / -0.0%
tpch_q10/datafusion:vortex-file-compressed 73667949 / 75019303 / -1.8% 137388744 / 140839772 / -2.5% 0.54 / 0.53 / +0.7%
tpch_q11/datafusion:vortex-file-compressed 43735177 / 45285115 / -3.4% 66224428 / 71810344 / -7.8% 0.66 / 0.63 / +4.7%
tpch_q12/datafusion:vortex-file-compressed 37304565 / 38021751 / -1.9% 77405283 / 77625282 / -0.3% 0.48 / 0.49 / -1.6%
tpch_q13/datafusion:vortex-file-compressed 41376194 / 44077588 / -6.1% 84333931 / 77215693 / +9.2% 0.49 / 0.57 / -14.1%
tpch_q14/datafusion:vortex-file-compressed 22240600 / 22769472 / -2.3% 82855889 / 83446147 / -0.7% 0.27 / 0.27 / -1.6%
tpch_q15/datafusion:vortex-file-compressed 34729762 / 35229472 / -1.4% 92293214 / 90054848 / +2.5% 0.38 / 0.39 / -3.8%
tpch_q16/datafusion:vortex-file-compressed 38871545 / 40162163 / -3.2% 69124121 / 72024273 / -4.0% 0.56 / 0.56 / +0.8%
tpch_q17/datafusion:vortex-file-compressed 177358912 / 178864842 / -0.8% 232672637 / 233815564 / -0.5% 0.76 / 0.76 / -0.4%
tpch_q18/datafusion:vortex-file-compressed 207193165 / 209306653 / -1.0% 271763846 / 263496637 / +3.1% 0.76 / 0.79 / -4.0%
tpch_q19/datafusion:vortex-file-compressed 33459898 / 34760155 / -3.7% 87820549 / 88987528 / -1.3% 0.38 / 0.39 / -2.5%
tpch_q20/datafusion:vortex-file-compressed 63348524 / 64381773 / -1.6% 123829488 / 118622063 / +4.4% 0.51 / 0.54 / -5.7%
tpch_q21/datafusion:vortex-file-compressed 183531947 / 184016886 / -0.3% 243097542 / 266331621 / -8.7% 0.75 / 0.69 / +9.3%
tpch_q22/datafusion:vortex-file-compressed 26784208 / 27826869 / -3.7% 53439682 / 55062253 / -2.9% 0.50 / 0.51 / -0.8%
datafusion / parquet / ns (0.998x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpch_q01/datafusion:parquet 88358781 / 88413223 / -0.1% 129545531 / 132799772 / -2.5% 0.68 / 0.67 / +2.4%
tpch_q02/datafusion:parquet 175612543 / 175257129 / +0.2% 200173246 / 208064210 / -3.8% 0.88 / 0.84 / +4.2%
tpch_q03/datafusion:parquet 137318931 / 138400685 / -0.8% 191483437 / 185085690 / +3.5% 0.72 / 0.75 / -4.1%
tpch_q04/datafusion:parquet 58997434 / 58903953 / +0.2% 101498632 / 96547191 / +5.1% 0.58 / 0.61 / -4.7%
tpch_q05/datafusion:parquet 170727896 / 170510399 / +0.1% 235740127 / 239534683 / -1.6% 0.72 / 0.71 / +1.7%
tpch_q06/datafusion:parquet 37142076 / 37378150 / -0.6% 83157008 / 83497399 / -0.4% 0.45 / 0.45 / -0.2%
tpch_q07/datafusion:parquet 217362030 / 220415685 / -1.4% 282227610 / 276497416 / +2.1% 0.77 / 0.80 / -3.4%
tpch_q08/datafusion:parquet 222292841 / 223349823 / -0.5% 291629349 / 288773896 / +1.0% 0.76 / 0.77 / -1.4%
tpch_q09/datafusion:parquet 314003048 / 314323078 / -0.1% 386733506 / 379652954 / +1.9% 0.81 / 0.83 / -1.9%
tpch_q10/datafusion:parquet 321503326 / 320422560 / +0.3% 389197952 / 381925624 / +1.9% 0.83 / 0.84 / -1.5%
tpch_q11/datafusion:parquet 126972047 / 126310695 / +0.5% 151569364 / 153011354 / -0.9% 0.84 / 0.83 / +1.5%
tpch_q12/datafusion:parquet 84178487 / 84948545 / -0.9% 126384620 / 122677172 / +3.0% 0.67 / 0.69 / -3.8%
tpch_q13/datafusion:parquet 215869332 / 216773907 / -0.4% 252439296 / 244958284 / +3.1% 0.86 / 0.88 / -3.4%
tpch_q14/datafusion:parquet 87072311 / 88368892 / -1.5% 191892852 / 196153396 / -2.2% 0.45 / 0.45 / +0.7%
tpch_q15/datafusion:parquet 107846080 / 107048773 / +0.7% 163044907 / 158149346 / +3.1% 0.66 / 0.68 / -2.3%
tpch_q16/datafusion:parquet 98089445 / 96075193 / +2.1% 124761033 / 123235759 / +1.2% 0.79 / 0.78 / +0.8%
tpch_q17/datafusion:parquet 211933316 / 214220622 / -1.1% 257487005 / 269995639 / -4.6% 0.82 / 0.79 / +3.7%
tpch_q18/datafusion:parquet 270181262 / 271281306 / -0.4% 319178258 / 319565357 / -0.1% 0.85 / 0.85 / -0.3%
tpch_q19/datafusion:parquet 109017211 / 109307704 / -0.3% 164760500 / 167628912 / -1.7% 0.66 / 0.65 / +1.5%
tpch_q20/datafusion:parquet 188824056 / 189460286 / -0.3% 262208516 / 249855672 / +4.9% 0.72 / 0.76 / -5.0%
tpch_q21/datafusion:parquet 247109664 / 247764251 / -0.3% 308070676 / 313352650 / -1.7% 0.80 / 0.79 / +1.4%
tpch_q22/datafusion:parquet 153722417 / 154525914 / -0.5% 179194517 / 178565832 / +0.4% 0.86 / 0.87 / -0.9%
duckdb / vortex-file-compressed / ns (0.992x ➖, 1↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpch_q01/duckdb:vortex-file-compressed 32286185 / 33255061 / -2.9% 70325024 / 77475849 / -9.2% 0.46 / 0.43 / +7.0%
tpch_q02/duckdb:vortex-file-compressed 27033748 / 31296298 / -13.6% 🟢 42164131 / 45434144 / -7.2% 0.64 / 0.69 / -6.9%
tpch_q03/duckdb:vortex-file-compressed 53501324 / 53109992 / +0.7% 103327067 / 102852521 / +0.5% 0.52 / 0.52 / +0.3%
tpch_q04/duckdb:vortex-file-compressed 51465793 / 51438011 / +0.1% 88285080 / 88980341 / -0.8% 0.58 / 0.58 / +0.8%
tpch_q05/duckdb:vortex-file-compressed 68480735 / 68022754 / +0.7% 110245413 / 107430782 / +2.6% 0.62 / 0.63 / -1.9%
tpch_q06/duckdb:vortex-file-compressed 13929907 / 14630407 / -4.8% 51700373 / 54524569 / -5.2% 0.27 / 0.27 / +0.4%
tpch_q07/duckdb:vortex-file-compressed 54834995 / 54507220 / +0.6% 109468258 / 108117711 / +1.2% 0.50 / 0.50 / -0.6%
tpch_q08/duckdb:vortex-file-compressed 86257981 / 87041602 / -0.9% 133777532 / 133430902 / +0.3% 0.64 / 0.65 / -1.2%
tpch_q09/duckdb:vortex-file-compressed 101553966 / 98238203 / +3.4% 159825794 / 162524965 / -1.7% 0.64 / 0.60 / +5.1%
tpch_q10/duckdb:vortex-file-compressed 93331927 / 87705345 / +6.4% 143869304 / 143307386 / +0.4% 0.65 / 0.61 / +6.0%
tpch_q11/duckdb:vortex-file-compressed 14055829 / 13976485 / +0.6% 29818897 / 26835431 / +11.1% 🔴 0.47 / 0.52 / -9.5%
tpch_q12/duckdb:vortex-file-compressed 43145858 / 42798649 / +0.8% 84691042 / 84387391 / +0.4% 0.51 / 0.51 / +0.4%
tpch_q13/duckdb:vortex-file-compressed 68632439 / 68308781 / +0.5% 92426898 / 86347716 / +7.0% 0.74 / 0.79 / -6.1%
tpch_q14/duckdb:vortex-file-compressed 27340666 / 28842430 / -5.2% 73401435 / 71566628 / +2.6% 0.37 / 0.40 / -7.6%
tpch_q15/duckdb:vortex-file-compressed 24199279 / 24773686 / -2.3% 63931171 / 64532244 / -0.9% 0.38 / 0.38 / -1.4%
tpch_q16/duckdb:vortex-file-compressed 48208238 / 49601656 / -2.8% 56819981 / 59001122 / -3.7% 0.85 / 0.84 / +0.9%
tpch_q17/duckdb:vortex-file-compressed 34291252 / 34811305 / -1.5% 67874968 / 65879859 / +3.0% 0.51 / 0.53 / -4.4%
tpch_q18/duckdb:vortex-file-compressed 107685210 / 100953472 / +6.7% 123536822 / 119364635 / +3.5% 0.87 / 0.85 / +3.1%
tpch_q19/duckdb:vortex-file-compressed 24287877 / 24654055 / -1.5% 73914413 / 70978689 / +4.1% 0.33 / 0.35 / -5.4%
tpch_q20/duckdb:vortex-file-compressed 40073468 / 38685484 / +3.6% 92791822 / 90424317 / +2.6% 0.43 / 0.43 / +0.9%
tpch_q21/duckdb:vortex-file-compressed 95540559 / 94748251 / +0.8% 147849564 / 148679585 / -0.6% 0.65 / 0.64 / +1.4%
tpch_q22/duckdb:vortex-file-compressed 32874532 / 34543209 / -4.8% 49396563 / 51540085 / -4.2% 0.67 / 0.67 / -0.7%
duckdb / parquet / ns (0.997x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpch_q01/duckdb:parquet 68569730 / 68395195 / +0.3% 89783685 / 91681433 / -2.1% 0.76 / 0.75 / +2.4%
tpch_q02/duckdb:parquet 87262618 / 88223076 / -1.1% 97933325 / 100712905 / -2.8% 0.89 / 0.88 / +1.7%
tpch_q03/duckdb:parquet 110710013 / 111374143 / -0.6% 142242557 / 148583016 / -4.3% 0.78 / 0.75 / +3.8%
tpch_q04/duckdb:parquet 77547941 / 78699769 / -1.5% 98851941 / 100707205 / -1.8% 0.78 / 0.78 / +0.4%
tpch_q05/duckdb:parquet 124919938 / 125593135 / -0.5% 156998524 / 159321832 / -1.5% 0.80 / 0.79 / +0.9%
tpch_q06/duckdb:parquet 36023804 / 35972534 / +0.1% 61531186 / 61317120 / +0.3% 0.59 / 0.59 / -0.2%
tpch_q07/duckdb:parquet 118200175 / 117273962 / +0.8% 157632515 / 154352529 / +2.1% 0.75 / 0.76 / -1.3%
tpch_q08/duckdb:parquet 149053694 / 149870788 / -0.5% 193812793 / 192987041 / +0.4% 0.77 / 0.78 / -1.0%
tpch_q09/duckdb:parquet 237907710 / 237497355 / +0.2% 280786361 / 284294419 / -1.2% 0.85 / 0.84 / +1.4%
tpch_q10/duckdb:parquet 315433690 / 320395971 / -1.5% 337914364 / 345981416 / -2.3% 0.93 / 0.93 / +0.8%
tpch_q11/duckdb:parquet 43816025 / 44073482 / -0.6% 52362924 / 51369594 / +1.9% 0.84 / 0.86 / -2.5%
tpch_q12/duckdb:parquet 72670341 / 72771299 / -0.1% 94069919 / 91963836 / +2.3% 0.77 / 0.79 / -2.4%
tpch_q13/duckdb:parquet 291914702 / 295262605 / -1.1% 311100450 / 310539461 / +0.2% 0.94 / 0.95 / -1.3%
tpch_q14/duckdb:parquet 101464927 / 102126250 / -0.6% 145146036 / 151849009 / -4.4% 0.70 / 0.67 / +3.9%
tpch_q15/duckdb:parquet 58693081 / 58312136 / +0.7% 88967523 / 88370355 / +0.7% 0.66 / 0.66 / -0.0%
tpch_q16/duckdb:parquet 101186151 / 101819340 / -0.6% 109053569 / 109506699 / -0.4% 0.93 / 0.93 / -0.2%
tpch_q17/duckdb:parquet 84178401 / 83004140 / +1.4% 115994462 / 114652526 / +1.2% 0.73 / 0.72 / +0.2%
tpch_q18/duckdb:parquet 157744523 / 160015324 / -1.4% 170788344 / 173573449 / -1.6% 0.92 / 0.92 / +0.2%
tpch_q19/duckdb:parquet 100163214 / 100060021 / +0.1% 133875858 / 137519943 / -2.6% 0.75 / 0.73 / +2.8%
tpch_q20/duckdb:parquet 147233269 / 147637964 / -0.3% 191413168 / 186943790 / +2.4% 0.77 / 0.79 / -2.6%
tpch_q21/duckdb:parquet 257350366 / 256131350 / +0.5% 273563375 / 291575793 / -6.2% 0.94 / 0.88 / +7.1%
tpch_q22/duckdb:parquet 169100769 / 169393512 / -0.2% 183519799 / 185884501 / -1.3% 0.92 / 0.91 / +1.1%

No file size changes detected.

@github-actions

github-actions Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Benchmarks: TPC-DS SF=1 on NVME 📖

Commits: PR 0ad75b12 vs base f476db42
Verdict: No clear signal (low confidence)
Attributed Vortex impact: +0.2%
Engines: DataFusion No clear signal (-0.1%, low confidence) · DuckDB No clear signal (+0.5%, low confidence)
Vortex (geomean): hot 0.999x ➖ · cold 1.001x ➖
Parquet (geomean): hot 0.997x ➖ · cold 0.996x ➖
Shifts: Parquet (control) -0.3% · Median polish -0.2%

How to read Verdict and Engines
  • Verdict: Overall PR-level signal after subtracting baseline drift estimated from Parquet control rows. It can be Likely improvement, Likely regression, or No clear signal.
  • Engines: Per-engine attribution. DataFusion is compared against DataFusion/Parquet controls; DuckDB is compared against DuckDB/Parquet controls. This answers whether each engine improved or regressed independently.
  • Confidence: Based on directional consistency, share of rows above the noise floor, and control-run noise.
  • Hot vs cold: Every measurement is run several times. The first run is reported as the cold run, and the median of the runs after it is reported as the hot run. The verdict and significance use hot runs; each target's geomean reports hot and cold beside each other where the individual runs were recorded and hot alone where they were not, the cold column shows first-run cost per row, and hot/cold is how much of each run the warm path saves. Rows whose results predate per-run reporting show only one value, taken from the value the runner reported.
  • Table cells: Each cell reads PR / base / %diff. The hot and cold columns mark a change as 🔴 slower or 🟢 faster once it clears this suite's threshold; anything smaller is noise here and is left unmarked, as is hot/cold, because a shift in the warm-up ratio is not a win or a loss by itself.

datafusion / vortex-file-compressed / ns (0.995x ➖, 0↑ 1↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpcds_q01/datafusion:vortex-file-compressed 24571708 / 24582899 / -0.0% 42194938 / 43446774 / -2.9% 0.58 / 0.57 / +2.9%
tpcds_q02/datafusion:vortex-file-compressed 46673871 / 47086968 / -0.9% 64180733 / 64144553 / +0.1% 0.73 / 0.73 / -0.9%
tpcds_q03/datafusion:vortex-file-compressed 11655336 / 11677842 / -0.2% 27575035 / 27455408 / +0.4% 0.42 / 0.43 / -0.6%
tpcds_q04/datafusion:vortex-file-compressed 125622496 / 123378338 / +1.8% 151836316 / 154083199 / -1.5% 0.83 / 0.80 / +3.3%
tpcds_q05/datafusion:vortex-file-compressed 59709218 / 59772210 / -0.1% 79660470 / 80971430 / -1.6% 0.75 / 0.74 / +1.5%
tpcds_q06/datafusion:vortex-file-compressed 22813924 / 23005990 / -0.8% 44037883 / 40899919 / +7.7% 0.52 / 0.56 / -7.9%
tpcds_q07/datafusion:vortex-file-compressed 31232651 / 31758274 / -1.7% 53885121 / 53423431 / +0.9% 0.58 / 0.59 / -2.5%
tpcds_q08/datafusion:vortex-file-compressed 25055072 / 24962046 / +0.4% 41953958 / 42398926 / -1.0% 0.60 / 0.59 / +1.4%
tpcds_q09/datafusion:vortex-file-compressed 17018430 / 16799437 / +1.3% 31723507 / 32569531 / -2.6% 0.54 / 0.52 / +4.0%
tpcds_q10/datafusion:vortex-file-compressed 27189176 / 27105078 / +0.3% 48497913 / 47992399 / +1.1% 0.56 / 0.56 / -0.7%
tpcds_q11/datafusion:vortex-file-compressed 63690196 / 64960294 / -2.0% 90629973 / 92936717 / -2.5% 0.70 / 0.70 / +0.5%
tpcds_q12/datafusion:vortex-file-compressed 16638514 / 17175830 / -3.1% 33369082 / 34064595 / -2.0% 0.50 / 0.50 / -1.1%
tpcds_q13/datafusion:vortex-file-compressed 31415990 / 31988464 / -1.8% 52663475 / 52030056 / +1.2% 0.60 / 0.61 / -3.0%
tpcds_q14/datafusion:vortex-file-compressed 498677774 / 496598014 / +0.4% 546968981 / 548006514 / -0.2% 0.91 / 0.91 / +0.6%
tpcds_q15/datafusion:vortex-file-compressed 15097106 / 15703160 / -3.9% 34016830 / 34678775 / -1.9% 0.44 / 0.45 / -2.0%
tpcds_q16/datafusion:vortex-file-compressed 19757446 / 19966816 / -1.0% 37502036 / 36761067 / +2.0% 0.53 / 0.54 / -3.0%
tpcds_q17/datafusion:vortex-file-compressed 57148235 / 58720102 / -2.7% 75607107 / 74327405 / +1.7% 0.76 / 0.79 / -4.3%
tpcds_q18/datafusion:vortex-file-compressed 68007918 / 68833334 / -1.2% 90621742 / 91446355 / -0.9% 0.75 / 0.75 / -0.3%
tpcds_q19/datafusion:vortex-file-compressed 17526674 / 17610772 / -0.5% 38307099 / 37439361 / +2.3% 0.46 / 0.47 / -2.7%
tpcds_q20/datafusion:vortex-file-compressed 17613656 / 17655532 / -0.2% 35768193 / 35790948 / -0.1% 0.49 / 0.49 / -0.2%
tpcds_q21/datafusion:vortex-file-compressed 16026652 / 16647538 / -3.7% 39226730 / 37423150 / +4.8% 0.41 / 0.44 / -8.2%
tpcds_q22/datafusion:vortex-file-compressed 57883682 / 57715780 / +0.3% 80490780 / 81146040 / -0.8% 0.72 / 0.71 / +1.1%
tpcds_q23/datafusion:vortex-file-compressed 69704930 / 70910636 / -1.7% 96944950 / 102007140 / -5.0% 0.72 / 0.70 / +3.4%
tpcds_q24/datafusion:vortex-file-compressed 67729244 / 66897483 / +1.2% 89613582 / 89832899 / -0.2% 0.76 / 0.74 / +1.5%
tpcds_q25/datafusion:vortex-file-compressed 53499056 / 47615981 / +12.4% 🔴 81758115 / 78891825 / +3.6% 0.65 / 0.60 / +8.4%
tpcds_q26/datafusion:vortex-file-compressed 30410868 / 30644761 / -0.8% 51072259 / 50056542 / +2.0% 0.60 / 0.61 / -2.7%
tpcds_q27/datafusion:vortex-file-compressed 59441777 / 60677225 / -2.0% 92784593 / 87323304 / +6.3% 0.64 / 0.69 / -7.8%
tpcds_q28/datafusion:vortex-file-compressed 18081084 / 17829918 / +1.4% 34614481 / 34867000 / -0.7% 0.52 / 0.51 / +2.1%
tpcds_q29/datafusion:vortex-file-compressed 58960618 / 59295392 / -0.6% 80386656 / 71866567 / +11.9% 🔴 0.73 / 0.83 / -11.1%
tpcds_q30/datafusion:vortex-file-compressed 26632698 / 26810370 / -0.7% 44172077 / 45934816 / -3.8% 0.60 / 0.58 / +3.3%
tpcds_q31/datafusion:vortex-file-compressed 58482109 / 58464506 / +0.0% 81926042 / 83270717 / -1.6% 0.71 / 0.70 / +1.7%
tpcds_q32/datafusion:vortex-file-compressed 13487343 / 13488664 / -0.0% 29976484 / 29170185 / +2.8% 0.45 / 0.46 / -2.7%
tpcds_q33/datafusion:vortex-file-compressed 27127322 / 27197120 / -0.3% 50563323 / 49908330 / +1.3% 0.54 / 0.54 / -1.5%
tpcds_q34/datafusion:vortex-file-compressed 17247794 / 17206868 / +0.2% 35923916 / 36052580 / -0.4% 0.48 / 0.48 / +0.6%
tpcds_q35/datafusion:vortex-file-compressed 34157538 / 34232291 / -0.2% 57823635 / 56448006 / +2.4% 0.59 / 0.61 / -2.6%
tpcds_q36/datafusion:vortex-file-compressed 47712736 / 47409952 / +0.6% 71199016 / 72558263 / -1.9% 0.67 / 0.65 / +2.6%
tpcds_q37/datafusion:vortex-file-compressed 12532052 / 12542742 / -0.1% 33599200 / 33655356 / -0.2% 0.37 / 0.37 / +0.1%
tpcds_q38/datafusion:vortex-file-compressed 29592564 / 29921426 / -1.1% 48771812 / 48956783 / -0.4% 0.61 / 0.61 / -0.7%
tpcds_q39/datafusion:vortex-file-compressed 61560142 / 61200884 / +0.6% 87423623 / 85850097 / +1.8% 0.70 / 0.71 / -1.2%
tpcds_q40/datafusion:vortex-file-compressed 24422294 / 24633526 / -0.9% 44441121 / 44846503 / -0.9% 0.55 / 0.55 / +0.0%
tpcds_q41/datafusion:vortex-file-compressed 17368976 / 17796865 / -2.4% 31688851 / 32263392 / -1.8% 0.55 / 0.55 / -0.6%
tpcds_q42/datafusion:vortex-file-compressed 11228128 / 10900076 / +3.0% 27407719 / 26818269 / +2.2% 0.41 / 0.41 / +0.8%
tpcds_q43/datafusion:vortex-file-compressed 12705191 / 12769958 / -0.5% 30378801 / 30074318 / +1.0% 0.42 / 0.42 / -1.5%
tpcds_q44/datafusion:vortex-file-compressed 25568399 / 26253079 / -2.6% 47725730 / 49404790 / -3.4% 0.54 / 0.53 / +0.8%
tpcds_q45/datafusion:vortex-file-compressed 18459510 / 18367350 / +0.5% 38095711 / 37298700 / +2.1% 0.48 / 0.49 / -1.6%
tpcds_q46/datafusion:vortex-file-compressed 23145366 / 23095850 / +0.2% 45869175 / 47803702 / -4.0% 0.50 / 0.48 / +4.4%
tpcds_q47/datafusion:vortex-file-compressed 76273006 / 78121658 / -2.4% 105998457 / 106791167 / -0.7% 0.72 / 0.73 / -1.6%
tpcds_q48/datafusion:vortex-file-compressed 29497670 / 29635634 / -0.5% 49244832 / 48034777 / +2.5% 0.60 / 0.62 / -2.9%
tpcds_q49/datafusion:vortex-file-compressed 59598772 / 58472824 / +1.9% 79085208 / 80312396 / -1.5% 0.75 / 0.73 / +3.5%
tpcds_q50/datafusion:vortex-file-compressed 33560925 / 31986412 / +4.9% 52585028 / 51699542 / +1.7% 0.64 / 0.62 / +3.2%
tpcds_q51/datafusion:vortex-file-compressed 66920290 / 67918032 / -1.5% 89907908 / 88364015 / +1.7% 0.74 / 0.77 / -3.2%
tpcds_q52/datafusion:vortex-file-compressed 11567336 / 11706632 / -1.2% 27019628 / 26392998 / +2.4% 0.43 / 0.44 / -3.5%
tpcds_q53/datafusion:vortex-file-compressed 18015494 / 18167264 / -0.8% 37753682 / 37848432 / -0.3% 0.48 / 0.48 / -0.6%
tpcds_q54/datafusion:vortex-file-compressed 32800021 / 32674936 / +0.4% 55215050 / 55519866 / -0.5% 0.59 / 0.59 / +0.9%
tpcds_q55/datafusion:vortex-file-compressed 11525046 / 11471617 / +0.5% 27346343 / 27817708 / -1.7% 0.42 / 0.41 / +2.2%
tpcds_q56/datafusion:vortex-file-compressed 26645069 / 27160214 / -1.9% 49059948 / 49060225 / -0.0% 0.54 / 0.55 / -1.9%
tpcds_q57/datafusion:vortex-file-compressed 77492247 / 77558209 / -0.1% 102702256 / 103183450 / -0.5% 0.75 / 0.75 / +0.4%
tpcds_q58/datafusion:vortex-file-compressed 40780782 / 41232636 / -1.1% 66234921 / 66673173 / -0.7% 0.62 / 0.62 / -0.4%
tpcds_q59/datafusion:vortex-file-compressed 30866825 / 31127752 / -0.8% 51841736 / 52068537 / -0.4% 0.60 / 0.60 / -0.4%
tpcds_q60/datafusion:vortex-file-compressed 26366880 / 26645832 / -1.0% 46666584 / 48515042 / -3.8% 0.57 / 0.55 / +2.9%
tpcds_q61/datafusion:vortex-file-compressed 22960742 / 22927076 / +0.1% 44198497 / 45201375 / -2.2% 0.52 / 0.51 / +2.4%
tpcds_q62/datafusion:vortex-file-compressed 18433892 / 18090858 / +1.9% 33954681 / 33568454 / +1.2% 0.54 / 0.54 / +0.7%
tpcds_q63/datafusion:vortex-file-compressed 17666828 / 17998718 / -1.8% 37532586 / 37821632 / -0.8% 0.47 / 0.48 / -1.1%
tpcds_q64/datafusion:vortex-file-compressed 223776123 / 224160722 / -0.2% 263116976 / 265848203 / -1.0% 0.85 / 0.84 / +0.9%
tpcds_q65/datafusion:vortex-file-compressed 74900790 / 74642094 / +0.3% 97465095 / 97839131 / -0.4% 0.77 / 0.76 / +0.7%
tpcds_q66/datafusion:vortex-file-compressed 52733086 / 52748352 / -0.0% 72501239 / 72324362 / +0.2% 0.73 / 0.73 / -0.3%
tpcds_q67/datafusion:vortex-file-compressed 58148384 / 58863914 / -1.2% 87397299 / 86564294 / +1.0% 0.67 / 0.68 / -2.2%
tpcds_q68/datafusion:vortex-file-compressed 22301860 / 22488156 / -0.8% 46932651 / 45910900 / +2.2% 0.48 / 0.49 / -3.0%
tpcds_q69/datafusion:vortex-file-compressed 27686576 / 28211970 / -1.9% 49148430 / 47032214 / +4.5% 0.56 / 0.60 / -6.1%
tpcds_q70/datafusion:vortex-file-compressed 70159350 / 71017850 / -1.2% 92945841 / 91285743 / +1.8% 0.75 / 0.78 / -3.0%
tpcds_q71/datafusion:vortex-file-compressed 18925420 / 19550517 / -3.2% 36469740 / 38261187 / -4.7% 0.52 / 0.51 / +1.6%
tpcds_q72/datafusion:vortex-file-compressed 343362815 / 347292202 / -1.1% 387720319 / 402342494 / -3.6% 0.89 / 0.86 / +2.6%
tpcds_q73/datafusion:vortex-file-compressed 16127868 / 16105982 / +0.1% 36234555 / 34940231 / +3.7% 0.45 / 0.46 / -3.4%
tpcds_q74/datafusion:vortex-file-compressed 45402233 / 45661118 / -0.6% 71664271 / 71685106 / -0.0% 0.63 / 0.64 / -0.5%
tpcds_q75/datafusion:vortex-file-compressed 136755008 / 136381433 / +0.3% 163651442 / 167120763 / -2.1% 0.84 / 0.82 / +2.4%
tpcds_q76/datafusion:vortex-file-compressed 26543843 / 26712690 / -0.6% 45315834 / 45254658 / +0.1% 0.59 / 0.59 / -0.8%
tpcds_q77/datafusion:vortex-file-compressed 44877287 / 46328780 / -3.1% 67549992 / 68307624 / -1.1% 0.66 / 0.68 / -2.0%
tpcds_q78/datafusion:vortex-file-compressed 68338484 / 68512821 / -0.3% 97348008 / 95911822 / +1.5% 0.70 / 0.71 / -1.7%
tpcds_q79/datafusion:vortex-file-compressed 19359371 / 19978780 / -3.1% 42556399 / 43541042 / -2.3% 0.45 / 0.46 / -0.9%
tpcds_q80/datafusion:vortex-file-compressed 74886270 / 74401417 / +0.7% 104146076 / 105284955 / -1.1% 0.72 / 0.71 / +1.8%
tpcds_q81/datafusion:vortex-file-compressed 26767238 / 27164954 / -1.5% 44831031 / 45294142 / -1.0% 0.60 / 0.60 / -0.4%
tpcds_q82/datafusion:vortex-file-compressed 12417758 / 12975637 / -4.3% 34542168 / 34396088 / +0.4% 0.36 / 0.38 / -4.7%
tpcds_q83/datafusion:vortex-file-compressed 34744060 / 35738027 / -2.8% 56004903 / 55580937 / +0.8% 0.62 / 0.64 / -3.5%
tpcds_q84/datafusion:vortex-file-compressed 12132922 / 12035405 / +0.8% 26346419 / 26464071 / -0.4% 0.46 / 0.45 / +1.3%
tpcds_q85/datafusion:vortex-file-compressed 57626357 / 57695729 / -0.1% 81068576 / 81744464 / -0.8% 0.71 / 0.71 / +0.7%
tpcds_q86/datafusion:vortex-file-compressed 16355988 / 16461616 / -0.6% 33173918 / 33378277 / -0.6% 0.49 / 0.49 / -0.0%
tpcds_q87/datafusion:vortex-file-compressed 29801134 / 29828038 / -0.1% 51136100 / 51402517 / -0.5% 0.58 / 0.58 / +0.4%
tpcds_q88/datafusion:vortex-file-compressed 32169910 / 32112460 / +0.2% 66539150 / 60807887 / +9.4% 0.48 / 0.53 / -8.4%
tpcds_q89/datafusion:vortex-file-compressed 20567910 / 20633294 / -0.3% 41557354 / 40685023 / +2.1% 0.49 / 0.51 / -2.4%
tpcds_q90/datafusion:vortex-file-compressed 10593822 / 10188628 / +4.0% 25817074 / 24541707 / +5.2% 0.41 / 0.42 / -1.2%
tpcds_q91/datafusion:vortex-file-compressed 15277602 / 15739050 / -2.9% 34300789 / 34714418 / -1.2% 0.45 / 0.45 / -1.8%
tpcds_q92/datafusion:vortex-file-compressed 13610644 / 13539496 / +0.5% 29530440 / 29036863 / +1.7% 0.46 / 0.47 / -1.2%
tpcds_q93/datafusion:vortex-file-compressed 22577816 / 22524442 / +0.2% 42365320 / 41559376 / +1.9% 0.53 / 0.54 / -1.7%
tpcds_q94/datafusion:vortex-file-compressed 18934202 / 19546758 / -3.1% 35858750 / 36602669 / -2.0% 0.53 / 0.53 / -1.1%
tpcds_q95/datafusion:vortex-file-compressed 44779784 / 45486838 / -1.6% 64885220 / 64368191 / +0.8% 0.69 / 0.71 / -2.3%
tpcds_q96/datafusion:vortex-file-compressed 8426689 / 8660179 / -2.7% 22315802 / 22361032 / -0.2% 0.38 / 0.39 / -2.5%
tpcds_q97/datafusion:vortex-file-compressed 20707774 / 21342076 / -3.0% 41902336 / 41524069 / +0.9% 0.49 / 0.51 / -3.8%
tpcds_q98/datafusion:vortex-file-compressed 17007091 / 16930668 / +0.5% 37031175 / 37253710 / -0.6% 0.46 / 0.45 / +1.1%
tpcds_q99/datafusion:vortex-file-compressed 20868759 / 20937260 / -0.3% 36665904 / 36269966 / +1.1% 0.57 / 0.58 / -1.4%
datafusion / parquet / ns (0.996x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpcds_q01/datafusion:parquet 43122282 / 43536947 / -1.0% 63462264 / 62881462 / +0.9% 0.68 / 0.69 / -1.9%
tpcds_q02/datafusion:parquet 55313562 / 55403128 / -0.2% 71972138 / 73201475 / -1.7% 0.77 / 0.76 / +1.5%
tpcds_q03/datafusion:parquet 19000132 / 19306012 / -1.6% 33065205 / 33424192 / -1.1% 0.57 / 0.58 / -0.5%
tpcds_q04/datafusion:parquet 179911474 / 181181290 / -0.7% 204090564 / 210887443 / -3.2% 0.88 / 0.86 / +2.6%
tpcds_q05/datafusion:parquet 67786720 / 69034143 / -1.8% 90052407 / 93337109 / -3.5% 0.75 / 0.74 / +1.8%
tpcds_q06/datafusion:parquet 33276840 / 33121955 / +0.5% 47468454 / 49987058 / -5.0% 0.70 / 0.66 / +5.8%
tpcds_q07/datafusion:parquet 47551626 / 47305940 / +0.5% 67263985 / 66869371 / +0.6% 0.71 / 0.71 / -0.1%
tpcds_q08/datafusion:parquet 31485001 / 30733238 / +2.4% 47674624 / 47417485 / +0.5% 0.66 / 0.65 / +1.9%
tpcds_q09/datafusion:parquet 29919591 / 29878656 / +0.1% 44129899 / 39494217 / +11.7% 🔴 0.68 / 0.76 / -10.4%
tpcds_q10/datafusion:parquet 43587156 / 44945706 / -3.0% 56417906 / 60053634 / -6.1% 0.77 / 0.75 / +3.2%
tpcds_q11/datafusion:parquet 98343954 / 99126028 / -0.8% 121223345 / 123362057 / -1.7% 0.81 / 0.80 / +1.0%
tpcds_q12/datafusion:parquet 24104754 / 23795229 / +1.3% 36601758 / 37279538 / -1.8% 0.66 / 0.64 / +3.2%
tpcds_q13/datafusion:parquet 46798295 / 46154738 / +1.4% 69843235 / 70616697 / -1.1% 0.67 / 0.65 / +2.5%
tpcds_q14/datafusion:parquet 536638216 / 538526568 / -0.4% 587610219 / 589408065 / -0.3% 0.91 / 0.91 / -0.0%
tpcds_q15/datafusion:parquet 23938540 / 23806385 / +0.6% 38317350 / 41281682 / -7.2% 0.62 / 0.58 / +8.3%
tpcds_q16/datafusion:parquet 37017180 / 37298270 / -0.8% 51705113 / 52171887 / -0.9% 0.72 / 0.71 / +0.1%
tpcds_q17/datafusion:parquet 74893175 / 73094590 / +2.5% 98380352 / 102471329 / -4.0% 0.76 / 0.71 / +6.7%
tpcds_q18/datafusion:parquet 65942124 / 68331512 / -3.5% 87726692 / 94557764 / -7.2% 0.75 / 0.72 / +4.0%
tpcds_q19/datafusion:parquet 30249718 / 29840288 / +1.4% 44819117 / 44368744 / +1.0% 0.67 / 0.67 / +0.4%
tpcds_q20/datafusion:parquet 25515537 / 24821157 / +2.8% 39766380 / 38920481 / +2.2% 0.64 / 0.64 / +0.6%
tpcds_q21/datafusion:parquet 20246367 / 20369947 / -0.6% 32612002 / 33112489 / -1.5% 0.62 / 0.62 / +0.9%
tpcds_q22/datafusion:parquet 77249792 / 77714666 / -0.6% 89885065 / 90595735 / -0.8% 0.86 / 0.86 / +0.2%
tpcds_q23/datafusion:parquet 93143764 / 94489378 / -1.4% 115078083 / 113854492 / +1.1% 0.81 / 0.83 / -2.5%
tpcds_q24/datafusion:parquet 91750910 / 91247533 / +0.6% 116899525 / 118144615 / -1.1% 0.78 / 0.77 / +1.6%
tpcds_q25/datafusion:parquet 82328770 / 81582216 / +0.9% 102665261 / 102782861 / -0.1% 0.80 / 0.79 / +1.0%
tpcds_q26/datafusion:parquet 43898565 / 43399303 / +1.2% 62230743 / 60961424 / +2.1% 0.71 / 0.71 / -0.9%
tpcds_q27/datafusion:parquet 76706514 / 77393803 / -0.9% 100465188 / 97622421 / +2.9% 0.76 / 0.79 / -3.7%
tpcds_q28/datafusion:parquet 28094584 / 28201807 / -0.4% 44057176 / 46036351 / -4.3% 0.64 / 0.61 / +4.1%
tpcds_q29/datafusion:parquet 76408016 / 76664156 / -0.3% 97940648 / 102842204 / -4.8% 0.78 / 0.75 / +4.7%
tpcds_q30/datafusion:parquet 45505728 / 45736422 / -0.5% 59662314 / 62491920 / -4.5% 0.76 / 0.73 / +4.2%
tpcds_q31/datafusion:parquet 79626340 / 81974754 / -2.9% 98078922 / 100707279 / -2.6% 0.81 / 0.81 / -0.3%
tpcds_q32/datafusion:parquet 26518465 / 26136080 / +1.5% 41865592 / 42768302 / -2.1% 0.63 / 0.61 / +3.7%
tpcds_q33/datafusion:parquet 37975064 / 37785330 / +0.5% 52816296 / 53603992 / -1.5% 0.72 / 0.70 / +2.0%
tpcds_q34/datafusion:parquet 24503908 / 24695274 / -0.8% 36740099 / 38360923 / -4.2% 0.67 / 0.64 / +3.6%
tpcds_q35/datafusion:parquet 50615170 / 50128162 / +1.0% 63366864 / 67125688 / -5.6% 0.80 / 0.75 / +7.0%
tpcds_q36/datafusion:parquet 51813290 / 54023114 / -4.1% 72572917 / 73568853 / -1.4% 0.71 / 0.73 / -2.8%
tpcds_q37/datafusion:parquet 20811049 / 21731487 / -4.2% 33477635 / 35510211 / -5.7% 0.62 / 0.61 / +1.6%
tpcds_q38/datafusion:parquet 45647201 / 45166044 / +1.1% 60612483 / 62739067 / -3.4% 0.75 / 0.72 / +4.6%
tpcds_q39/datafusion:parquet 68222167 / 68373922 / -0.2% 86767246 / 88595909 / -2.1% 0.79 / 0.77 / +1.9%
tpcds_q40/datafusion:parquet 30110924 / 31263903 / -3.7% 51220584 / 51634743 / -0.8% 0.59 / 0.61 / -2.9%
tpcds_q41/datafusion:parquet 19666063 / 19595910 / +0.4% 31777189 / 34233154 / -7.2% 0.62 / 0.57 / +8.1%
tpcds_q42/datafusion:parquet 18369678 / 18389628 / -0.1% 32311741 / 31100113 / +3.9% 0.57 / 0.59 / -3.9%
tpcds_q43/datafusion:parquet 19298570 / 19540403 / -1.2% 33194785 / 33400105 / -0.6% 0.58 / 0.59 / -0.6%
tpcds_q44/datafusion:parquet 35703948 / 36570172 / -2.4% 49928132 / 50053031 / -0.2% 0.72 / 0.73 / -2.1%
tpcds_q45/datafusion:parquet 27403596 / 27189810 / +0.8% 42600127 / 42143412 / +1.1% 0.64 / 0.65 / -0.3%
tpcds_q46/datafusion:parquet 29757037 / 29848408 / -0.3% 47825955 / 47148054 / +1.4% 0.62 / 0.63 / -1.7%
tpcds_q47/datafusion:parquet 97461522 / 97872278 / -0.4% 121645272 / 115753554 / +5.1% 0.80 / 0.85 / -5.2%
tpcds_q48/datafusion:parquet 42439410 / 42603104 / -0.4% 61488840 / 61921764 / -0.7% 0.69 / 0.69 / +0.3%
tpcds_q49/datafusion:parquet 74250690 / 71128383 / +4.4% 102166951 / 97344604 / +5.0% 0.73 / 0.73 / -0.5%
tpcds_q50/datafusion:parquet 48577870 / 48006608 / +1.2% 68788642 / 67571793 / +1.8% 0.71 / 0.71 / -0.6%
tpcds_q51/datafusion:parquet 75429730 / 75616875 / -0.2% 94069403 / 95774032 / -1.8% 0.80 / 0.79 / +1.6%
tpcds_q52/datafusion:parquet 18754226 / 18707740 / +0.2% 33591852 / 31630824 / +6.2% 0.56 / 0.59 / -5.6%
tpcds_q53/datafusion:parquet 22710767 / 22973786 / -1.1% 39341697 / 39010218 / +0.8% 0.58 / 0.59 / -2.0%
tpcds_q54/datafusion:parquet 53013300 / 54644863 / -3.0% 66207598 / 67592493 / -2.0% 0.80 / 0.81 / -1.0%
tpcds_q55/datafusion:parquet 18290175 / 18369406 / -0.4% 31650500 / 32776239 / -3.4% 0.58 / 0.56 / +3.1%
tpcds_q56/datafusion:parquet 39978566 / 41694721 / -4.1% 55314317 / 56281399 / -1.7% 0.72 / 0.74 / -2.4%
tpcds_q57/datafusion:parquet 100666652 / 102505096 / -1.8% 116182954 / 118205941 / -1.7% 0.87 / 0.87 / -0.1%
tpcds_q58/datafusion:parquet 64491152 / 65962023 / -2.2% 83786912 / 84429091 / -0.8% 0.77 / 0.78 / -1.5%
tpcds_q59/datafusion:parquet 48413682 / 49093882 / -1.4% 65595037 / 65604309 / -0.0% 0.74 / 0.75 / -1.4%
tpcds_q60/datafusion:parquet 39280516 / 40327388 / -2.6% 54145245 / 57703482 / -6.2% 0.73 / 0.70 / +3.8%
tpcds_q61/datafusion:parquet 36501213 / 37116012 / -1.7% 50702023 / 50974307 / -0.5% 0.72 / 0.73 / -1.1%
tpcds_q62/datafusion:parquet 25389722 / 25060652 / +1.3% 38789211 / 37696850 / +2.9% 0.65 / 0.66 / -1.5%
tpcds_q63/datafusion:parquet 22301058 / 22299218 / +0.0% 39342876 / 39598293 / -0.6% 0.57 / 0.56 / +0.7%
tpcds_q64/datafusion:parquet 291268276 / 289741500 / +0.5% 334939821 / 326291391 / +2.7% 0.87 / 0.89 / -2.1%
tpcds_q65/datafusion:parquet 123140916 / 120858852 / +1.9% 135610216 / 140759426 / -3.7% 0.91 / 0.86 / +5.8%
tpcds_q66/datafusion:parquet 60616437 / 60821448 / -0.3% 78299743 / 79470972 / -1.5% 0.77 / 0.77 / +1.2%
tpcds_q67/datafusion:parquet 69229920 / 68706574 / +0.8% 92649680 / 92697413 / -0.1% 0.75 / 0.74 / +0.8%
tpcds_q68/datafusion:parquet 29391232 / 30046360 / -2.2% 49200664 / 49230603 / -0.1% 0.60 / 0.61 / -2.1%
tpcds_q69/datafusion:parquet 43614532 / 44707554 / -2.4% 59067980 / 59380721 / -0.5% 0.74 / 0.75 / -1.9%
tpcds_q70/datafusion:parquet 80525372 / 81175456 / -0.8% 99230025 / 99019409 / +0.2% 0.81 / 0.82 / -1.0%
tpcds_q71/datafusion:parquet 26326867 / 25395688 / +3.7% 37732787 / 40147269 / -6.0% 0.70 / 0.63 / +10.3%
tpcds_q72/datafusion:parquet 523078972 / 523620307 / -0.1% 556077118 / 543724503 / +2.3% 0.94 / 0.96 / -2.3%
tpcds_q73/datafusion:parquet 24180714 / 24259651 / -0.3% 36203499 / 36151249 / +0.1% 0.67 / 0.67 / -0.5%
tpcds_q74/datafusion:parquet 70243971 / 71099050 / -1.2% 88671237 / 88693989 / -0.0% 0.79 / 0.80 / -1.2%
tpcds_q75/datafusion:parquet 157217155 / 155421859 / +1.2% 186961266 / 176500928 / +5.9% 0.84 / 0.88 / -4.5%
tpcds_q76/datafusion:parquet 33906534 / 33080449 / +2.5% 47241653 / 47922347 / -1.4% 0.72 / 0.69 / +4.0%
tpcds_q77/datafusion:parquet 55434061 / 56434396 / -1.8% 77217220 / 77425980 / -0.3% 0.72 / 0.73 / -1.5%
tpcds_q78/datafusion:parquet 85504047 / 87073909 / -1.8% 119682021 / 117627485 / +1.7% 0.71 / 0.74 / -3.5%
tpcds_q79/datafusion:parquet 27332371 / 27304058 / +0.1% 42124786 / 43047490 / -2.1% 0.65 / 0.63 / +2.3%
tpcds_q80/datafusion:parquet 81162552 / 81411092 / -0.3% 110926300 / 114415068 / -3.0% 0.73 / 0.71 / +2.8%
tpcds_q81/datafusion:parquet 37264448 / 39222950 / -5.0% 52597344 / 52710766 / -0.2% 0.71 / 0.74 / -4.8%
tpcds_q82/datafusion:parquet 23003174 / 22160822 / +3.8% 36904074 / 36538429 / +1.0% 0.62 / 0.61 / +2.8%
tpcds_q83/datafusion:parquet 58365146 / 58314265 / +0.1% 76545222 / 73811475 / +3.7% 0.76 / 0.79 / -3.5%
tpcds_q84/datafusion:parquet 26391678 / 26211074 / +0.7% 42720817 / 41612729 / +2.7% 0.62 / 0.63 / -1.9%
tpcds_q85/datafusion:parquet 81029830 / 80796910 / +0.3% 103774517 / 103270006 / +0.5% 0.78 / 0.78 / -0.2%
tpcds_q86/datafusion:parquet 20595018 / 21091302 / -2.4% 33412875 / 32788804 / +1.9% 0.62 / 0.64 / -4.2%
tpcds_q87/datafusion:parquet 44635262 / 45987844 / -2.9% 63370990 / 61916804 / +2.3% 0.70 / 0.74 / -5.2%
tpcds_q88/datafusion:parquet 37567426 / 37687199 / -0.3% 51233750 / 52129241 / -1.7% 0.73 / 0.72 / +1.4%
tpcds_q89/datafusion:parquet 25750646 / 25882896 / -0.5% 42397346 / 42919788 / -1.2% 0.61 / 0.60 / +0.7%
tpcds_q90/datafusion:parquet 14661340 / 14854390 / -1.3% 26965950 / 26962985 / +0.0% 0.54 / 0.55 / -1.3%
tpcds_q91/datafusion:parquet 32477284 / 32195310 / +0.9% 47507274 / 47245278 / +0.6% 0.68 / 0.68 / +0.3%
tpcds_q92/datafusion:parquet 27083003 / 25764642 / +5.1% 41323381 / 40792729 / +1.3% 0.66 / 0.63 / +3.8%
tpcds_q93/datafusion:parquet 28055808 / 27597356 / +1.7% 46845630 / 46330927 / +1.1% 0.60 / 0.60 / +0.5%
tpcds_q94/datafusion:parquet 35454654 / 35383655 / +0.2% 48984055 / 49132440 / -0.3% 0.72 / 0.72 / +0.5%
tpcds_q95/datafusion:parquet 64584816 / 65405522 / -1.3% 78779078 / 79042435 / -0.3% 0.82 / 0.83 / -0.9%
tpcds_q96/datafusion:parquet 12365923 / 12678917 / -2.5% 24753019 / 24238106 / +2.1% 0.50 / 0.52 / -4.5%
tpcds_q97/datafusion:parquet 35596649 / 35605598 / -0.0% 51030899 / 53035489 / -3.8% 0.70 / 0.67 / +3.9%
tpcds_q98/datafusion:parquet 24966360 / 25250763 / -1.1% 38880422 / 39032973 / -0.4% 0.64 / 0.65 / -0.7%
tpcds_q99/datafusion:parquet 29741086 / 30241524 / -1.7% 42748488 / 42230553 / +1.2% 0.70 / 0.72 / -2.8%
duckdb / vortex-file-compressed / ns (1.003x ➖, 1↑ 1↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpcds_q01/duckdb:vortex-file-compressed 16031790 / 15984996 / +0.3% 23771232 / 24939201 / -4.7% 0.67 / 0.64 / +5.2%
tpcds_q02/duckdb:vortex-file-compressed 16046728 / 15498148 / +3.5% 22932500 / 24170091 / -5.1% 0.70 / 0.64 / +9.1%
tpcds_q03/duckdb:vortex-file-compressed 7005961 / 6797578 / +3.1% 16359169 / 15623672 / +4.7% 0.43 / 0.44 / -1.6%
tpcds_q04/duckdb:vortex-file-compressed 44933919 / 45438948 / -1.1% 54926796 / 54906260 / +0.0% 0.82 / 0.83 / -1.1%
tpcds_q05/duckdb:vortex-file-compressed 22552842 / 22882142 / -1.4% 31921544 / 30900231 / +3.3% 0.71 / 0.74 / -4.6%
tpcds_q06/duckdb:vortex-file-compressed 23888439 / 23832101 / +0.2% 39072004 / 37383542 / +4.5% 0.61 / 0.64 / -4.1%
tpcds_q07/duckdb:vortex-file-compressed 13163774 / 13506896 / -2.5% 24398082 / 24019291 / +1.6% 0.54 / 0.56 / -4.1%
tpcds_q08/duckdb:vortex-file-compressed 17619524 / 17415083 / +1.2% 24891964 / 23932895 / +4.0% 0.71 / 0.73 / -2.7%
tpcds_q09/duckdb:vortex-file-compressed 18124576 / 18068935 / +0.3% 28397187 / 27340131 / +3.9% 0.64 / 0.66 / -3.4%
tpcds_q10/duckdb:vortex-file-compressed 27153770 / 26675220 / +1.8% 40978529 / 40300875 / +1.7% 0.66 / 0.66 / +0.1%
tpcds_q11/duckdb:vortex-file-compressed 36913922 / 36897599 / +0.0% 43763838 / 44043145 / -0.6% 0.84 / 0.84 / +0.7%
tpcds_q12/duckdb:vortex-file-compressed 9954532 / 9752448 / +2.1% 15886637 / 16465551 / -3.5% 0.63 / 0.59 / +5.8%
tpcds_q13/duckdb:vortex-file-compressed 19759088 / 20657790 / -4.4% 32325578 / 33499614 / -3.5% 0.61 / 0.62 / -0.9%
tpcds_q14/duckdb:vortex-file-compressed 57468016 / 55189476 / +4.1% 65599123 / 65560144 / +0.1% 0.88 / 0.84 / +4.1%
tpcds_q15/duckdb:vortex-file-compressed 11196803 / 10816855 / +3.5% 17641980 / 17690002 / -0.3% 0.63 / 0.61 / +3.8%
tpcds_q16/duckdb:vortex-file-compressed 24661086 / 23984180 / +2.8% 35380631 / 34550123 / +2.4% 0.70 / 0.69 / +0.4%
tpcds_q17/duckdb:vortex-file-compressed 23945899 / 25038532 / -4.4% 35350803 / 40009594 / -11.6% 🟢 0.68 / 0.63 / +8.2%
tpcds_q18/duckdb:vortex-file-compressed 31668494 / 30674841 / +3.2% 40909623 / 40866894 / +0.1% 0.77 / 0.75 / +3.1%
tpcds_q19/duckdb:vortex-file-compressed 78696370 / 77469338 / +1.6% 91378786 / 90333776 / +1.2% 0.86 / 0.86 / +0.4%
tpcds_q20/duckdb:vortex-file-compressed 10704312 / 10516858 / +1.8% 17777458 / 17769790 / +0.0% 0.60 / 0.59 / +1.7%
tpcds_q21/duckdb:vortex-file-compressed 9721377 / 10383533 / -6.4% 22471605 / 22308078 / +0.7% 0.43 / 0.47 / -7.1%
tpcds_q22/duckdb:vortex-file-compressed 17387592 / 17960856 / -3.2% 27683278 / 28367468 / -2.4% 0.63 / 0.63 / -0.8%
tpcds_q23/duckdb:vortex-file-compressed 37436709 / 37342104 / +0.3% 49543687 / 48084789 / +3.0% 0.76 / 0.78 / -2.7%
tpcds_q24/duckdb:vortex-file-compressed 26361956 / 27065649 / -2.6% 36262822 / 38066198 / -4.7% 0.73 / 0.71 / +2.2%
tpcds_q25/duckdb:vortex-file-compressed 22566768 / 23181032 / -2.6% 33178584 / 37853410 / -12.3% 🟢 0.68 / 0.61 / +11.1%
tpcds_q26/duckdb:vortex-file-compressed 12733166 / 13017722 / -2.2% 20933115 / 21125962 / -0.9% 0.61 / 0.62 / -1.3%
tpcds_q27/duckdb:vortex-file-compressed 15582097 / 16372018 / -4.8% 26267585 / 28075114 / -6.4% 0.59 / 0.58 / +1.7%
tpcds_q28/duckdb:vortex-file-compressed 14590096 / 14791838 / -1.4% 24691328 / 23113618 / +6.8% 0.59 / 0.64 / -7.7%
tpcds_q29/duckdb:vortex-file-compressed 22125954 / 23207588 / -4.7% 33719150 / 37232123 / -9.4% 0.66 / 0.62 / +5.3%
tpcds_q30/duckdb:vortex-file-compressed 15981128 / 15797400 / +1.2% 24314640 / 23585202 / +3.1% 0.66 / 0.67 / -1.9%
tpcds_q31/duckdb:vortex-file-compressed 17990068 / 17943515 / +0.3% 26300121 / 25799932 / +1.9% 0.68 / 0.70 / -1.6%
tpcds_q32/duckdb:vortex-file-compressed 11898092 / 11553126 / +3.0% 21778019 / 19888910 / +9.5% 0.55 / 0.58 / -5.9%
tpcds_q33/duckdb:vortex-file-compressed 17495620 / 17728280 / -1.3% 26459281 / 26124933 / +1.3% 0.66 / 0.68 / -2.6%
tpcds_q34/duckdb:vortex-file-compressed 12577694 / 12178684 / +3.3% 22593358 / 21863191 / +3.3% 0.56 / 0.56 / -0.1%
tpcds_q35/duckdb:vortex-file-compressed 28062186 / 27931192 / +0.5% 40029776 / 38522622 / +3.9% 0.70 / 0.73 / -3.3%
tpcds_q36/duckdb:vortex-file-compressed 14207523 / 14746282 / -3.7% 24613356 / 24473895 / +0.6% 0.58 / 0.60 / -4.2%
tpcds_q37/duckdb:vortex-file-compressed 9199716 / 9053985 / +1.6% 22781639 / 21690400 / +5.0% 0.40 / 0.42 / -3.3%
tpcds_q38/duckdb:vortex-file-compressed 24533922 / 23932650 / +2.5% 32010687 / 30059819 / +6.5% 0.77 / 0.80 / -3.7%
tpcds_q39/duckdb:vortex-file-compressed 18480887 / 20612453 / -10.3% 🟢 30482779 / 31775873 / -4.1% 0.61 / 0.65 / -6.5%
tpcds_q40/duckdb:vortex-file-compressed 13807358 / 14013460 / -1.5% 21214424 / 21023835 / +0.9% 0.65 / 0.67 / -2.4%
tpcds_q41/duckdb:vortex-file-compressed 16704063 / 14226056 / +17.4% 🔴 24758635 / 21732212 / +13.9% 🔴 0.67 / 0.65 / +3.1%
tpcds_q42/duckdb:vortex-file-compressed 6840442 / 7009996 / -2.4% 15248437 / 15894737 / -4.1% 0.45 / 0.44 / +1.7%
tpcds_q43/duckdb:vortex-file-compressed 9875484 / 10028414 / -1.5% 18124319 / 18602655 / -2.6% 0.54 / 0.54 / +1.1%
tpcds_q44/duckdb:vortex-file-compressed 13873244 / 15143188 / -8.4% 25684564 / 26081859 / -1.5% 0.54 / 0.58 / -7.0%
tpcds_q45/duckdb:vortex-file-compressed 24012692 / 23222346 / +3.4% 30054474 / 30992386 / -3.0% 0.80 / 0.75 / +6.6%
tpcds_q46/duckdb:vortex-file-compressed 19590626 / 19417824 / +0.9% 29050268 / 27014350 / +7.5% 0.67 / 0.72 / -6.2%
tpcds_q47/duckdb:vortex-file-compressed 34464754 / 33893550 / +1.7% 43970150 / 44194649 / -0.5% 0.78 / 0.77 / +2.2%
tpcds_q48/duckdb:vortex-file-compressed 22084252 / 23430708 / -5.7% 33438518 / 35386439 / -5.5% 0.66 / 0.66 / -0.3%
tpcds_q49/duckdb:vortex-file-compressed 20252239 / 20023844 / +1.1% 30946068 / 33571590 / -7.8% 0.65 / 0.60 / +9.7%
tpcds_q50/duckdb:vortex-file-compressed 16718312 / 17235866 / -3.0% 27439774 / 28311428 / -3.1% 0.61 / 0.61 / +0.1%
tpcds_q51/duckdb:vortex-file-compressed 48958804 / 50207440 / -2.5% 59483341 / 77075926 / -22.8% 🟢 0.82 / 0.65 / +26.4%
tpcds_q52/duckdb:vortex-file-compressed 6861692 / 7300046 / -6.0% 15495786 / 15673948 / -1.1% 0.44 / 0.47 / -4.9%
tpcds_q53/duckdb:vortex-file-compressed 11319376 / 11280635 / +0.3% 20007619 / 20220990 / -1.1% 0.57 / 0.56 / +1.4%
tpcds_q54/duckdb:vortex-file-compressed 20000232 / 20050106 / -0.2% 29820144 / 29051737 / +2.6% 0.67 / 0.69 / -2.8%
tpcds_q55/duckdb:vortex-file-compressed 6739143 / 6917646 / -2.6% 15301329 / 15801340 / -3.2% 0.44 / 0.44 / +0.6%
tpcds_q56/duckdb:vortex-file-compressed 17948289 / 17852160 / +0.5% 26030898 / 26029064 / +0.0% 0.69 / 0.69 / +0.5%
tpcds_q57/duckdb:vortex-file-compressed 25771780 / 25113797 / +2.6% 34592548 / 33668395 / +2.7% 0.75 / 0.75 / -0.1%
tpcds_q58/duckdb:vortex-file-compressed 20038081 / 20099160 / -0.3% 30231124 / 28509661 / +6.0% 0.66 / 0.70 / -6.0%
tpcds_q59/duckdb:vortex-file-compressed 19796031 / 19585326 / +1.1% 26813261 / 27596113 / -2.8% 0.74 / 0.71 / +4.0%
tpcds_q60/duckdb:vortex-file-compressed 19264986 / 18399518 / +4.7% 27057511 / 28067287 / -3.6% 0.71 / 0.66 / +8.6%
tpcds_q61/duckdb:vortex-file-compressed 23893726 / 23457683 / +1.9% 34751749 / 34588901 / +0.5% 0.69 / 0.68 / +1.4%
tpcds_q62/duckdb:vortex-file-compressed 12201368 / 11902687 / +2.5% 19124311 / 20167223 / -5.2% 0.64 / 0.59 / +8.1%
tpcds_q63/duckdb:vortex-file-compressed 11127063 / 10777438 / +3.2% 19275072 / 18667795 / +3.3% 0.58 / 0.58 / -0.0%
tpcds_q64/duckdb:vortex-file-compressed 47955276 / 49136633 / -2.4% 63538632 / 69341816 / -8.4% 0.75 / 0.71 / +6.5%
tpcds_q65/duckdb:vortex-file-compressed 15586215 / 14832080 / +5.1% 24403535 / 23860112 / +2.3% 0.64 / 0.62 / +2.7%
tpcds_q66/duckdb:vortex-file-compressed 28957766 / 28573904 / +1.3% 39360981 / 38135592 / +3.2% 0.74 / 0.75 / -1.8%
tpcds_q67/duckdb:vortex-file-compressed 57871240 / 58371935 / -0.9% 66817237 / 67560675 / -1.1% 0.87 / 0.86 / +0.2%
tpcds_q68/duckdb:vortex-file-compressed 19419064 / 18641452 / +4.2% 29413497 / 27092736 / +8.6% 0.66 / 0.69 / -4.0%
tpcds_q69/duckdb:vortex-file-compressed 23053949 / 21948566 / +5.0% 37508490 / 36322168 / +3.3% 0.61 / 0.60 / +1.7%
tpcds_q70/duckdb:vortex-file-compressed 15509339 / 15385150 / +0.8% 26277017 / 23952440 / +9.7% 0.59 / 0.64 / -8.1%
tpcds_q71/duckdb:vortex-file-compressed 12909060 / 12835045 / +0.6% 23825473 / 21636717 / +10.1% 🔴 0.54 / 0.59 / -8.7%
tpcds_q72/duckdb:vortex-file-compressed 53275996 / 54600955 / -2.4% 63076867 / 70786527 / -10.9% 🟢 0.84 / 0.77 / +9.5%
tpcds_q73/duckdb:vortex-file-compressed 11555981 / 11185308 / +3.3% 20999734 / 21148473 / -0.7% 0.55 / 0.53 / +4.0%
tpcds_q74/duckdb:vortex-file-compressed 25849334 / 25685672 / +0.6% 33538211 / 33078845 / +1.4% 0.77 / 0.78 / -0.7%
tpcds_q75/duckdb:vortex-file-compressed 28234776 / 28705106 / -1.6% 38895908 / 38854375 / +0.1% 0.73 / 0.74 / -1.7%
tpcds_q76/duckdb:vortex-file-compressed 13215868 / 12557747 / +5.2% 23275949 / 22176880 / +5.0% 0.57 / 0.57 / +0.3%
tpcds_q77/duckdb:vortex-file-compressed 21453128 / 20278196 / +5.8% 30778292 / 31706704 / -2.9% 0.70 / 0.64 / +9.0%
tpcds_q78/duckdb:vortex-file-compressed 43379778 / 43008616 / +0.9% 55257123 / 51637031 / +7.0% 0.79 / 0.83 / -5.7%
tpcds_q79/duckdb:vortex-file-compressed 13386590 / 13018228 / +2.8% 22047280 / 21038811 / +4.8% 0.61 / 0.62 / -1.9%
tpcds_q80/duckdb:vortex-file-compressed 37810348 / 36223559 / +4.4% 48267220 / 50795482 / -5.0% 0.78 / 0.71 / +9.8%
tpcds_q81/duckdb:vortex-file-compressed 20787924 / 21042714 / -1.2% 29493102 / 28322510 / +4.1% 0.70 / 0.74 / -5.1%
tpcds_q82/duckdb:vortex-file-compressed 9253936 / 9417326 / -1.7% 24375577 / 22316622 / +9.2% 0.38 / 0.42 / -10.0%
tpcds_q83/duckdb:vortex-file-compressed 17367696 / 17247313 / +0.7% 24308526 / 23626637 / +2.9% 0.71 / 0.73 / -2.1%
tpcds_q84/duckdb:vortex-file-compressed 15349026 / 15769632 / -2.7% 23099629 / 23189568 / -0.4% 0.66 / 0.68 / -2.3%
tpcds_q85/duckdb:vortex-file-compressed 23332588 / 24103142 / -3.2% 36006356 / 37811664 / -4.8% 0.65 / 0.64 / +1.7%
tpcds_q86/duckdb:vortex-file-compressed 9730674 / 9445952 / +3.0% 16700625 / 16669706 / +0.2% 0.58 / 0.57 / +2.8%
tpcds_q87/duckdb:vortex-file-compressed 25602942 / 25554248 / +0.2% 32105696 / 31699103 / +1.3% 0.80 / 0.81 / -1.1%
tpcds_q88/duckdb:vortex-file-compressed 37429946 / 37337655 / +0.2% 47382303 / 46839796 / +1.2% 0.79 / 0.80 / -0.9%
tpcds_q89/duckdb:vortex-file-compressed 12237007 / 12105320 / +1.1% 20517046 / 21409292 / -4.2% 0.60 / 0.57 / +5.5%
tpcds_q90/duckdb:vortex-file-compressed 9002226 / 8595430 / +4.7% 15132193 / 15042041 / +0.6% 0.59 / 0.57 / +4.1%
tpcds_q91/duckdb:vortex-file-compressed 14038478 / 14036058 / +0.0% 21016016 / 21183633 / -0.8% 0.67 / 0.66 / +0.8%
tpcds_q92/duckdb:vortex-file-compressed 12173398 / 11744396 / +3.7% 21476143 / 19448397 / +10.4% 🔴 0.57 / 0.60 / -6.1%
tpcds_q93/duckdb:vortex-file-compressed 10040290 / 10293606 / -2.5% 22478183 / 24718827 / -9.1% 0.45 / 0.42 / +7.3%
tpcds_q94/duckdb:vortex-file-compressed 22292778 / 21621991 / +3.1% 31914585 / 31284585 / +2.0% 0.70 / 0.69 / +1.1%
tpcds_q95/duckdb:vortex-file-compressed 40102118 / 40126677 / -0.1% 52955006 / 54448481 / -2.7% 0.76 / 0.74 / +2.8%
tpcds_q96/duckdb:vortex-file-compressed 6668311 / 6649713 / +0.3% 15332385 / 15391249 / -0.4% 0.43 / 0.43 / +0.7%
tpcds_q97/duckdb:vortex-file-compressed 23358703 / 22898348 / +2.0% 33607957 / 31040870 / +8.3% 0.70 / 0.74 / -5.8%
tpcds_q98/duckdb:vortex-file-compressed 11053279 / 11084294 / -0.3% 19371737 / 19152549 / +1.1% 0.57 / 0.58 / -1.4%
tpcds_q99/duckdb:vortex-file-compressed 14679230 / 14900617 / -1.5% 22424072 / 22796978 / -1.6% 0.65 / 0.65 / +0.2%
duckdb / parquet / ns (0.998x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpcds_q01/duckdb:parquet 24325265 / 24324988 / +0.0% 31397790 / 31196200 / +0.6% 0.77 / 0.78 / -0.6%
tpcds_q02/duckdb:parquet 18270702 / 18634162 / -2.0% 24846400 / 24500490 / +1.4% 0.74 / 0.76 / -3.3%
tpcds_q03/duckdb:parquet 9878608 / 9911615 / -0.3% 15726602 / 16077600 / -2.2% 0.63 / 0.62 / +1.9%
tpcds_q04/duckdb:parquet 118198340 / 118208816 / -0.0% 125532332 / 128197788 / -2.1% 0.94 / 0.92 / +2.1%
tpcds_q05/duckdb:parquet 28828834 / 28911742 / -0.3% 33198484 / 33029545 / +0.5% 0.87 / 0.88 / -0.8%
tpcds_q06/duckdb:parquet 26658084 / 26865779 / -0.8% 35831578 / 35791940 / +0.1% 0.74 / 0.75 / -0.9%
tpcds_q07/duckdb:parquet 31220016 / 31247984 / -0.1% 41190610 / 39862514 / +3.3% 0.76 / 0.78 / -3.3%
tpcds_q08/duckdb:parquet 20273560 / 20243734 / +0.1% 25841961 / 24586102 / +5.1% 0.78 / 0.82 / -4.7%
tpcds_q09/duckdb:parquet 27477154 / 27848754 / -1.3% 30464998 / 31174342 / -2.3% 0.90 / 0.89 / +1.0%
tpcds_q10/duckdb:parquet 32858490 / 32971021 / -0.3% 41206587 / 41099255 / +0.3% 0.80 / 0.80 / -0.6%
tpcds_q11/duckdb:parquet 68820827 / 68691702 / +0.2% 76864853 / 76440369 / +0.6% 0.90 / 0.90 / -0.4%
tpcds_q12/duckdb:parquet 14146819 / 14254526 / -0.8% 19703776 / 20270330 / -2.8% 0.72 / 0.70 / +2.1%
tpcds_q13/duckdb:parquet 31947874 / 31317911 / +2.0% 39785785 / 40568480 / -1.9% 0.80 / 0.77 / +4.0%
tpcds_q14/duckdb:parquet 66471394 / 65336188 / +1.7% 70428378 / 71039186 / -0.9% 0.94 / 0.92 / +2.6%
tpcds_q15/duckdb:parquet 17041047 / 16955845 / +0.5% 23678920 / 23115268 / +2.4% 0.72 / 0.73 / -1.9%
tpcds_q16/duckdb:parquet 30525050 / 30743917 / -0.7% 37857018 / 38422332 / -1.5% 0.81 / 0.80 / +0.8%
tpcds_q17/duckdb:parquet 35027840 / 35051752 / -0.1% 40979006 / 40617125 / +0.9% 0.85 / 0.86 / -1.0%
tpcds_q18/duckdb:parquet 47774918 / 47930897 / -0.3% 56147108 / 55148334 / +1.8% 0.85 / 0.87 / -2.1%
tpcds_q19/duckdb:parquet 18974361 / 18924994 / +0.3% 25987731 / 26109217 / -0.5% 0.73 / 0.72 / +0.7%
tpcds_q20/duckdb:parquet 15148071 / 15147714 / +0.0% 20275234 / 20060428 / +1.1% 0.75 / 0.76 / -1.1%
tpcds_q21/duckdb:parquet 10972042 / 10838384 / +1.2% 17104340 / 17899871 / -4.4% 0.64 / 0.61 / +5.9%
tpcds_q22/duckdb:parquet 20795706 / 20781539 / +0.1% 27131310 / 26923173 / +0.8% 0.77 / 0.77 / -0.7%
tpcds_q23/duckdb:parquet 42729975 / 42885302 / -0.4% 47913481 / 48287789 / -0.8% 0.89 / 0.89 / +0.4%
tpcds_q24/duckdb:parquet 30803617 / 30779475 / +0.1% 38263551 / 37270281 / +2.7% 0.81 / 0.83 / -2.5%
tpcds_q25/duckdb:parquet 31005894 / 30997677 / +0.0% 38155435 / 37855018 / +0.8% 0.81 / 0.82 / -0.8%
tpcds_q26/duckdb:parquet 29203430 / 29287426 / -0.3% 35591330 / 35460235 / +0.4% 0.82 / 0.83 / -0.7%
tpcds_q27/duckdb:parquet 32887324 / 33886871 / -2.9% 42382812 / 43115767 / -1.7% 0.78 / 0.79 / -1.3%
tpcds_q28/duckdb:parquet 26952240 / 26985334 / -0.1% 34258169 / 33971368 / +0.8% 0.79 / 0.79 / -1.0%
tpcds_q29/duckdb:parquet 32541939 / 32804671 / -0.8% 39969440 / 40841577 / -2.1% 0.81 / 0.80 / +1.4%
tpcds_q30/duckdb:parquet 36064892 / 36071138 / -0.0% 45166370 / 44925345 / +0.5% 0.80 / 0.80 / -0.6%
tpcds_q31/duckdb:parquet 36386436 / 36024078 / +1.0% 43413965 / 43402632 / +0.0% 0.84 / 0.83 / +1.0%
tpcds_q32/duckdb:parquet 14569478 / 14531508 / +0.3% 21669447 / 21357470 / +1.5% 0.67 / 0.68 / -1.2%
tpcds_q33/duckdb:parquet 23508403 / 23581151 / -0.3% 29532945 / 29450236 / +0.3% 0.80 / 0.80 / -0.6%
tpcds_q34/duckdb:parquet 17210108 / 17147962 / +0.4% 25210236 / 24525863 / +2.8% 0.68 / 0.70 / -2.4%
tpcds_q35/duckdb:parquet 35962184 / 35399372 / +1.6% 44410007 / 44928840 / -1.2% 0.81 / 0.79 / +2.8%
tpcds_q36/duckdb:parquet 40307770 / 40763078 / -1.1% 48704690 / 48496032 / +0.4% 0.83 / 0.84 / -1.5%
tpcds_q37/duckdb:parquet 12831638 / 13250798 / -3.2% 20112896 / 19819538 / +1.5% 0.64 / 0.67 / -4.6%
tpcds_q38/duckdb:parquet 29750490 / 29898433 / -0.5% 33691293 / 35215706 / -4.3% 0.88 / 0.85 / +4.0%
tpcds_q39/duckdb:parquet 23425262 / 23456176 / -0.1% 30638107 / 30795212 / -0.5% 0.76 / 0.76 / +0.4%
tpcds_q40/duckdb:parquet 16214804 / 16488545 / -1.7% 22141699 / 21956973 / +0.8% 0.73 / 0.75 / -2.5%
tpcds_q41/duckdb:parquet 12391513 / 12158214 / +1.9% 18797240 / 18614898 / +1.0% 0.66 / 0.65 / +0.9%
tpcds_q42/duckdb:parquet 9726795 / 9757014 / -0.3% 16298853 / 15683186 / +3.9% 0.60 / 0.62 / -4.1%
tpcds_q43/duckdb:parquet 12388408 / 12567830 / -1.4% 18995413 / 18685103 / +1.7% 0.65 / 0.67 / -3.0%
tpcds_q44/duckdb:parquet 21027570 / 21723820 / -3.2% 26733458 / 27036799 / -1.1% 0.79 / 0.80 / -2.1%
tpcds_q45/duckdb:parquet 21566256 / 21475766 / +0.4% 28315356 / 28993524 / -2.3% 0.76 / 0.74 / +2.8%
tpcds_q46/duckdb:parquet 35747828 / 35949510 / -0.6% 46237197 / 45611400 / +1.4% 0.77 / 0.79 / -1.9%
tpcds_q47/duckdb:parquet 34536908 / 34428334 / +0.3% 42065620 / 41594611 / +1.1% 0.82 / 0.83 / -0.8%
tpcds_q48/duckdb:parquet 30228419 / 29154370 / +3.7% 37305174 / 37849120 / -1.4% 0.81 / 0.77 / +5.2%
tpcds_q49/duckdb:parquet 30456190 / 30374199 / +0.3% 37255548 / 36794620 / +1.3% 0.82 / 0.83 / -1.0%
tpcds_q50/duckdb:parquet 19903006 / 19966589 / -0.3% 26686393 / 26222281 / +1.8% 0.75 / 0.76 / -2.1%
tpcds_q51/duckdb:parquet 52143588 / 52574841 / -0.8% 60193002 / 61599974 / -2.3% 0.87 / 0.85 / +1.5%
tpcds_q52/duckdb:parquet 9656474 / 9767799 / -1.1% 16440724 / 15969132 / +3.0% 0.59 / 0.61 / -4.0%
tpcds_q53/duckdb:parquet 14058808 / 14070330 / -0.1% 21453951 / 21480507 / -0.1% 0.66 / 0.66 / +0.0%
tpcds_q54/duckdb:parquet 25173667 / 25266582 / -0.4% 32791998 / 32703256 / +0.3% 0.77 / 0.77 / -0.6%
tpcds_q55/duckdb:parquet 9620454 / 9595406 / +0.3% 15832645 / 15828583 / +0.0% 0.61 / 0.61 / +0.2%
tpcds_q56/duckdb:parquet 25289836 / 25073690 / +0.9% 30247435 / 30975701 / -2.4% 0.84 / 0.81 / +3.3%
tpcds_q57/duckdb:parquet 30841133 / 30902736 / -0.2% 36057386 / 36502754 / -1.2% 0.86 / 0.85 / +1.0%
tpcds_q58/duckdb:parquet 25053851 / 24526126 / +2.2% 30394078 / 30119382 / +0.9% 0.82 / 0.81 / +1.2%
tpcds_q59/duckdb:parquet 23343513 / 23259483 / +0.4% 29652986 / 30098960 / -1.5% 0.79 / 0.77 / +1.9%
tpcds_q60/duckdb:parquet 27290964 / 27725714 / -1.6% 32893360 / 33442437 / -1.6% 0.83 / 0.83 / +0.1%
tpcds_q61/duckdb:parquet 24878010 / 25606680 / -2.8% 29859240 / 31203503 / -4.3% 0.83 / 0.82 / +1.5%
tpcds_q62/duckdb:parquet 13137621 / 13313222 / -1.3% 18497035 / 18464802 / +0.2% 0.71 / 0.72 / -1.5%
tpcds_q63/duckdb:parquet 13443651 / 13663310 / -1.6% 20064583 / 20132066 / -0.3% 0.67 / 0.68 / -1.3%
tpcds_q64/duckdb:parquet 70975060 / 71666954 / -1.0% 82048757 / 83287042 / -1.5% 0.87 / 0.86 / +0.5%
tpcds_q65/duckdb:parquet 20590670 / 19592344 / +5.1% 25886664 / 25348221 / +2.1% 0.80 / 0.77 / +2.9%
tpcds_q66/duckdb:parquet 35548686 / 35644940 / -0.3% 42136291 / 42173351 / -0.1% 0.84 / 0.85 / -0.2%
tpcds_q67/duckdb:parquet 60666830 / 61157528 / -0.8% 67501062 / 68148243 / -0.9% 0.90 / 0.90 / +0.1%
tpcds_q68/duckdb:parquet 30673445 / 29481710 / +4.0% 37196901 / 39095356 / -4.9% 0.82 / 0.75 / +9.4%
tpcds_q69/duckdb:parquet 25938882 / 26255668 / -1.2% 34631548 / 34369435 / +0.8% 0.75 / 0.76 / -2.0%
tpcds_q70/duckdb:parquet 19469960 / 19605662 / -0.7% 26709344 / 26893805 / -0.7% 0.73 / 0.73 / -0.0%
tpcds_q71/duckdb:parquet 17695438 / 17090382 / +3.5% 24205489 / 24390662 / -0.8% 0.73 / 0.70 / +4.3%
tpcds_q72/duckdb:parquet 54971684 / 54365961 / +1.1% 61776647 / 62950402 / -1.9% 0.89 / 0.86 / +3.0%
tpcds_q73/duckdb:parquet 14899269 / 15367295 / -3.0% 22111955 / 22553756 / -2.0% 0.67 / 0.68 / -1.1%
tpcds_q74/duckdb:parquet 84763654 / 84221635 / +0.6% 91327628 / 92821190 / -1.6% 0.93 / 0.91 / +2.3%
tpcds_q75/duckdb:parquet 45991722 / 44993772 / +2.2% 50661484 / 51309455 / -1.3% 0.91 / 0.88 / +3.5%
tpcds_q76/duckdb:parquet 18456920 / 19576890 / -5.7% 24539923 / 24225727 / +1.3% 0.75 / 0.81 / -6.9%
tpcds_q77/duckdb:parquet 26006916 / 24492326 / +6.2% 31603558 / 32336267 / -2.3% 0.82 / 0.76 / +8.6%
tpcds_q78/duckdb:parquet 78749702 / 79645508 / -1.1% 86195942 / 85907717 / +0.3% 0.91 / 0.93 / -1.5%
tpcds_q79/duckdb:parquet 21889048 / 23806820 / -8.1% 29349381 / 29482395 / -0.5% 0.75 / 0.81 / -7.6%
tpcds_q80/duckdb:parquet 39049751 / 38412072 / +1.7% 45878457 / 44595083 / +2.9% 0.85 / 0.86 / -1.2%
tpcds_q81/duckdb:parquet 37285580 / 37201050 / +0.2% 45411038 / 45011626 / +0.9% 0.82 / 0.83 / -0.7%
tpcds_q82/duckdb:parquet 13869856 / 13790059 / +0.6% 21064448 / 20672355 / +1.9% 0.66 / 0.67 / -1.3%
tpcds_q83/duckdb:parquet 20715795 / 20665604 / +0.2% 25928413 / 25583247 / +1.3% 0.80 / 0.81 / -1.1%
tpcds_q84/duckdb:parquet 23376628 / 23572548 / -0.8% 29077102 / 29452344 / -1.3% 0.80 / 0.80 / +0.4%
tpcds_q85/duckdb:parquet 32860012 / 32586248 / +0.8% 39994987 / 40637005 / -1.6% 0.82 / 0.80 / +2.5%
tpcds_q86/duckdb:parquet 11965360 / 12130588 / -1.4% 17622745 / 17309861 / +1.8% 0.68 / 0.70 / -3.1%
tpcds_q87/duckdb:parquet 31292356 / 31566746 / -0.9% 35550832 / 35925387 / -1.0% 0.88 / 0.88 / +0.2%
tpcds_q88/duckdb:parquet 40555902 / 38985746 / +4.0% 44717056 / 48049433 / -6.9% 0.91 / 0.81 / +11.8%
tpcds_q89/duckdb:parquet 14448016 / 16020148 / -9.8% 21969248 / 21529172 / +2.0% 0.66 / 0.74 / -11.6%
tpcds_q90/duckdb:parquet 10338658 / 10257418 / +0.8% 15220155 / 15671675 / -2.9% 0.68 / 0.65 / +3.8%
tpcds_q91/duckdb:parquet 21538860 / 21514010 / +0.1% 29090741 / 28920156 / +0.6% 0.74 / 0.74 / -0.5%
tpcds_q92/duckdb:parquet 15875468 / 15943692 / -0.4% 22970333 / 22579147 / +1.7% 0.69 / 0.71 / -2.1%
tpcds_q93/duckdb:parquet 14159194 / 14280433 / -0.8% 20470170 / 20471031 / -0.0% 0.69 / 0.70 / -0.8%
tpcds_q94/duckdb:parquet 25807925 / 25819291 / -0.0% 33588095 / 32873032 / +2.2% 0.77 / 0.79 / -2.2%
tpcds_q95/duckdb:parquet 44208044 / 43978529 / +0.5% 49892808 / 50490336 / -1.2% 0.89 / 0.87 / +1.7%
tpcds_q96/duckdb:parquet 8332487 / 8445108 / -1.3% 13880548 / 13728342 / +1.1% 0.60 / 0.62 / -2.4%
tpcds_q97/duckdb:parquet 27605636 / 27874404 / -1.0% 34888893 / 34468727 / +1.2% 0.79 / 0.81 / -2.2%
tpcds_q98/duckdb:parquet 16820507 / 16653833 / +1.0% 23826554 / 23390632 / +1.9% 0.71 / 0.71 / -0.8%
tpcds_q99/duckdb:parquet 19234209 / 19140899 / +0.5% 24449686 / 25132646 / -2.7% 0.79 / 0.76 / +3.3%

No file size changes detected.

@github-actions

github-actions Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Benchmarks: FineWeb NVMe 📖

Commits: PR 0ad75b12 vs base f476db42
Verdict: No clear signal (low confidence)
Attributed Vortex impact: -0.8%
Engines: DataFusion No clear signal (-0.3%, low confidence) · DuckDB No clear signal (-1.4%, low confidence)
Vortex (geomean): hot 0.999x ➖ · cold 0.992x ➖
Parquet (geomean): hot 1.007x ➖ · cold 1.014x ➖
Shifts: Parquet (control) +0.7% · Median polish +0.2%

How to read Verdict and Engines
  • Verdict: Overall PR-level signal after subtracting baseline drift estimated from Parquet control rows. It can be Likely improvement, Likely regression, or No clear signal.
  • Engines: Per-engine attribution. DataFusion is compared against DataFusion/Parquet controls; DuckDB is compared against DuckDB/Parquet controls. This answers whether each engine improved or regressed independently.
  • Confidence: Based on directional consistency, share of rows above the noise floor, and control-run noise.
  • Hot vs cold: Every measurement is run several times. The first run is reported as the cold run, and the median of the runs after it is reported as the hot run. The verdict and significance use hot runs; each target's geomean reports hot and cold beside each other where the individual runs were recorded and hot alone where they were not, the cold column shows first-run cost per row, and hot/cold is how much of each run the warm path saves. Rows whose results predate per-run reporting show only one value, taken from the value the runner reported.
  • Table cells: Each cell reads PR / base / %diff. The hot and cold columns mark a change as 🔴 slower or 🟢 faster once it clears this suite's threshold; anything smaller is noise here and is left unmarked, as is hot/cold, because a shift in the warm-up ratio is not a win or a loss by itself.

datafusion / vortex-file-compressed / ns (1.003x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
fineweb_q00/datafusion:vortex-file-compressed 6768644 / 6937470 / -2.4% 15638409 / 16234002 / -3.7% 0.43 / 0.43 / +1.3%
fineweb_q01/datafusion:vortex-file-compressed 7700524 / 7138858 / +7.9% 42575106 / 43293881 / -1.7% 0.18 / 0.16 / +9.7%
fineweb_q02/datafusion:vortex-file-compressed 9326345 / 9307926 / +0.2% 45569702 / 49386338 / -7.7% 0.20 / 0.19 / +8.6%
fineweb_q03/datafusion:vortex-file-compressed 20065072 / 20665096 / -2.9% 107594603 / 106779152 / +0.8% 0.19 / 0.19 / -3.6%
fineweb_q04/datafusion:vortex-file-compressed 66379092 / 66777418 / -0.6% 154190611 / 150800193 / +2.2% 0.43 / 0.44 / -2.8%
fineweb_q05/datafusion:vortex-file-compressed 67402920 / 67256060 / +0.2% 149485857 / 146042644 / +2.4% 0.45 / 0.46 / -2.1%
fineweb_q06/datafusion:vortex-file-compressed 19378148 / 19233203 / +0.8% 130351462 / 109781958 / +18.7% 🔴 0.15 / 0.18 / -15.1%
fineweb_q07/datafusion:vortex-file-compressed 18171759 / 18192877 / -0.1% 111094829 / 108225049 / +2.7% 0.16 / 0.17 / -2.7%
fineweb_q08/datafusion:vortex-file-compressed 8862682 / 8856683 / +0.1% 39920090 / 48441970 / -17.6% 🟢 0.22 / 0.18 / +21.4%
datafusion / parquet / ns (1.006x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
fineweb_q00/datafusion:parquet 9434174 / 9297114 / +1.5% 32263016 / 32861309 / -1.8% 0.29 / 0.28 / +3.4%
fineweb_q01/datafusion:parquet 76132546 / 74560748 / +2.1% 164809705 / 161967565 / +1.8% 0.46 / 0.46 / +0.3%
fineweb_q02/datafusion:parquet 75531070 / 76459873 / -1.2% 163376342 / 161317741 / +1.3% 0.46 / 0.47 / -2.5%
fineweb_q03/datafusion:parquet 74688851 / 74375784 / +0.4% 172346726 / 158132095 / +9.0% 0.43 / 0.47 / -7.9%
fineweb_q04/datafusion:parquet 81993525 / 82410349 / -0.5% 162861594 / 161684644 / +0.7% 0.50 / 0.51 / -1.2%
fineweb_q05/datafusion:parquet 81487637 / 80324832 / +1.4% 163723111 / 158815566 / +3.1% 0.50 / 0.51 / -1.6%
fineweb_q06/datafusion:parquet 77163342 / 75586196 / +2.1% 167485965 / 159255717 / +5.2% 0.46 / 0.47 / -2.9%
fineweb_q07/datafusion:parquet 74218712 / 74100803 / +0.2% 168880028 / 152409300 / +10.8% 🔴 0.44 / 0.49 / -9.6%
fineweb_q08/datafusion:parquet 73758445 / 74016132 / -0.3% 157698651 / 156119833 / +1.0% 0.47 / 0.47 / -1.3%
duckdb / vortex-file-compressed / ns (0.994x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
fineweb_q00/duckdb:vortex-file-compressed 1994860 / 2028465 / -1.7% 7333184 / 7025751 / +4.4% 0.27 / 0.29 / -5.8%
fineweb_q01/duckdb:vortex-file-compressed 9301124 / 9504888 / -2.1% 34306875 / 33745178 / +1.7% 0.27 / 0.28 / -3.7%
fineweb_q02/duckdb:vortex-file-compressed 10508906 / 10671478 / -1.5% 32049229 / 36903055 / -13.2% 🟢 0.33 / 0.29 / +13.4%
fineweb_q03/duckdb:vortex-file-compressed 19000380 / 18969330 / +0.2% 100759895 / 101752881 / -1.0% 0.19 / 0.19 / +1.2%
fineweb_q04/duckdb:vortex-file-compressed 67543430 / 68274388 / -1.1% 118034372 / 119163610 / -0.9% 0.57 / 0.57 / -0.1%
fineweb_q05/duckdb:vortex-file-compressed 66407862 / 66550680 / -0.2% 112098242 / 113369990 / -1.1% 0.59 / 0.59 / +0.9%
fineweb_q06/duckdb:vortex-file-compressed 19445888 / 19357892 / +0.5% 102759757 / 108231068 / -5.1% 0.19 / 0.18 / +5.8%
fineweb_q07/duckdb:vortex-file-compressed 17871446 / 19014442 / -6.0% 100088354 / 87026666 / +15.0% 🔴 0.18 / 0.22 / -18.3%
fineweb_q08/duckdb:vortex-file-compressed 5542546 / 5156960 / +7.5% 13657575 / 14244320 / -4.1% 0.41 / 0.36 / +12.1%
duckdb / parquet / ns (1.008x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
fineweb_q00/duckdb:parquet 24542190 / 24052346 / +2.0% 28403606 / 31493753 / -9.8% 0.86 / 0.76 / +13.1%
fineweb_q01/duckdb:parquet 55791306 / 55871940 / -0.1% 76134877 / 76536633 / -0.5% 0.73 / 0.73 / +0.4%
fineweb_q02/duckdb:parquet 60488254 / 61188803 / -1.1% 84340262 / 83098514 / +1.5% 0.72 / 0.74 / -2.6%
fineweb_q03/duckdb:parquet 119912096 / 118482960 / +1.2% 180526363 / 189504473 / -4.7% 0.66 / 0.63 / +6.2%
fineweb_q04/duckdb:parquet 163762052 / 162687413 / +0.7% 216752051 / 218093618 / -0.6% 0.76 / 0.75 / +1.3%
fineweb_q05/duckdb:parquet 163143934 / 158071640 / +3.2% 211395121 / 200023116 / +5.7% 0.77 / 0.79 / -2.3%
fineweb_q06/duckdb:parquet 90144839 / 87463512 / +3.1% 158298128 / 154616953 / +2.4% 0.57 / 0.57 / +0.7%
fineweb_q07/duckdb:parquet 92944724 / 92585044 / +0.4% 154663552 / 150901954 / +2.5% 0.60 / 0.61 / -2.1%
fineweb_q08/duckdb:parquet 29509704 / 30059949 / -1.8% 31505543 / 31434220 / +0.2% 0.94 / 0.96 / -2.1%

No file size changes detected.

@github-actions

github-actions Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Benchmarks: Clickbench on NVME 📖

Commits: PR 0ad75b12 vs base f476db42
Verdict: No clear signal (low confidence)
Attributed Vortex impact: +0.2%
Engines: DataFusion No clear signal (+0.4%, low confidence) · DuckDB No clear signal (-0.1%, low confidence)
Vortex (geomean): hot 1.002x ➖ · cold 0.964x ➖
Parquet (geomean): hot 1.000x ➖ · cold 0.983x ➖
Shifts: Parquet (control) +0.0% · Median polish +0.6%

How to read Verdict and Engines
  • Verdict: Overall PR-level signal after subtracting baseline drift estimated from Parquet control rows. It can be Likely improvement, Likely regression, or No clear signal.
  • Engines: Per-engine attribution. DataFusion is compared against DataFusion/Parquet controls; DuckDB is compared against DuckDB/Parquet controls. This answers whether each engine improved or regressed independently.
  • Confidence: Based on directional consistency, share of rows above the noise floor, and control-run noise.
  • Hot vs cold: Every measurement is run several times. The first run is reported as the cold run, and the median of the runs after it is reported as the hot run. The verdict and significance use hot runs; each target's geomean reports hot and cold beside each other where the individual runs were recorded and hot alone where they were not, the cold column shows first-run cost per row, and hot/cold is how much of each run the warm path saves. Rows whose results predate per-run reporting show only one value, taken from the value the runner reported.
  • Table cells: Each cell reads PR / base / %diff. The hot and cold columns mark a change as 🔴 slower or 🟢 faster once it clears this suite's threshold; anything smaller is noise here and is left unmarked, as is hot/cold, because a shift in the warm-up ratio is not a win or a loss by itself.

datafusion / vortex-file-compressed / ns (0.998x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
clickbench_q00/datafusion:vortex-file-compressed 1259278 / 1266662 / -0.6% 22578976 / 23359471 / -3.3% 0.06 / 0.05 / +2.9%
clickbench_q01/datafusion:vortex-file-compressed 5947079 / 5878133 / +1.2% 33881073 / 33820904 / +0.2% 0.18 / 0.17 / +1.0%
clickbench_q02/datafusion:vortex-file-compressed 9220152 / 9256198 / -0.4% 35796002 / 37643636 / -4.9% 0.26 / 0.25 / +4.8%
clickbench_q03/datafusion:vortex-file-compressed 10988002 / 11533012 / -4.7% 52239942 / 55050025 / -5.1% 0.21 / 0.21 / +0.4%
clickbench_q04/datafusion:vortex-file-compressed 56280534 / 55229658 / +1.9% 90073735 / 91492744 / -1.6% 0.62 / 0.60 / +3.5%
clickbench_q05/datafusion:vortex-file-compressed 74510410 / 75627930 / -1.5% 116578908 / 115724386 / +0.7% 0.64 / 0.65 / -2.2%
clickbench_q06/datafusion:vortex-file-compressed 1252612 / 1249140 / +0.3% 23420413 / 21834259 / +7.3% 0.05 / 0.06 / -6.5%
clickbench_q07/datafusion:vortex-file-compressed 9180960 / 9376610 / -2.1% 35181975 / 33716325 / +4.3% 0.26 / 0.28 / -6.2%
clickbench_q08/datafusion:vortex-file-compressed 77567524 / 77693717 / -0.2% 112516031 / 115135196 / -2.3% 0.69 / 0.67 / +2.2%
clickbench_q09/datafusion:vortex-file-compressed 170192792 / 167863848 / +1.4% 203757713 / 213865339 / -4.7% 0.84 / 0.78 / +6.4%
clickbench_q10/datafusion:vortex-file-compressed 22548640 / 22564672 / -0.1% 66666550 / 63911704 / +4.3% 0.34 / 0.35 / -4.2%
clickbench_q11/datafusion:vortex-file-compressed 23688976 / 24590180 / -3.7% 67907950 / 64256481 / +5.7% 0.35 / 0.38 / -8.8%
clickbench_q12/datafusion:vortex-file-compressed 71891066 / 70880816 / +1.4% 117046475 / 117206275 / -0.1% 0.61 / 0.60 / +1.6%
clickbench_q13/datafusion:vortex-file-compressed 116734158 / 116706564 / +0.0% 175983963 / 177047474 / -0.6% 0.66 / 0.66 / +0.6%
clickbench_q14/datafusion:vortex-file-compressed 74297934 / 76374656 / -2.7% 123012645 / 121965869 / +0.9% 0.60 / 0.63 / -3.5%
clickbench_q15/datafusion:vortex-file-compressed 60668176 / 60411933 / +0.4% 97317786 / 101555182 / -4.2% 0.62 / 0.59 / +4.8%
clickbench_q16/datafusion:vortex-file-compressed 147372087 / 146839965 / +0.4% 209100491 / 205755004 / +1.6% 0.70 / 0.71 / -1.2%
clickbench_q17/datafusion:vortex-file-compressed 148428671 / 148428438 / +0.0% 213542907 / 217160666 / -1.7% 0.70 / 0.68 / +1.7%
clickbench_q18/datafusion:vortex-file-compressed 295330840 / 290727592 / +1.6% 383212338 / 397577118 / -3.6% 0.77 / 0.73 / +5.4%
clickbench_q19/datafusion:vortex-file-compressed 7192064 / 7664374 / -6.2% 48482262 / 48488412 / -0.0% 0.15 / 0.16 / -6.2%
clickbench_q20/datafusion:vortex-file-compressed 60197382 / 59509612 / +1.2% 225940229 / 224233496 / +0.8% 0.27 / 0.27 / +0.4%
clickbench_q21/datafusion:vortex-file-compressed 87438368 / 86564365 / +1.0% 270357818 / 270921745 / -0.2% 0.32 / 0.32 / +1.2%
clickbench_q22/datafusion:vortex-file-compressed 98161294 / 98145028 / +0.0% 345126542 / 341566446 / +1.0% 0.28 / 0.29 / -1.0%
clickbench_q23/datafusion:vortex-file-compressed 198551626 / 193941902 / +2.4% 385344147 / 480233633 / -19.8% 🟢 0.52 / 0.40 / +27.6%
clickbench_q24/datafusion:vortex-file-compressed 14974772 / 14689942 / +1.9% 64596964 / 68513886 / -5.7% 0.23 / 0.21 / +8.1%
clickbench_q25/datafusion:vortex-file-compressed 17607139 / 17876358 / -1.5% 57090023 / 55271507 / +3.3% 0.31 / 0.32 / -4.6%
clickbench_q26/datafusion:vortex-file-compressed 15702830 / 15540748 / +1.0% 67651005 / 69251795 / -2.3% 0.23 / 0.22 / +3.4%
clickbench_q27/datafusion:vortex-file-compressed 95396491 / 95844892 / -0.5% 243855946 / 238214801 / +2.4% 0.39 / 0.40 / -2.8%
clickbench_q28/datafusion:vortex-file-compressed 554977386 / 555949242 / -0.2% 608397605 / 620530862 / -2.0% 0.91 / 0.90 / +1.8%
clickbench_q29/datafusion:vortex-file-compressed 22812006 / 22619948 / +0.8% 49297614 / 48789386 / +1.0% 0.46 / 0.46 / -0.2%
clickbench_q30/datafusion:vortex-file-compressed 56809286 / 57974250 / -2.0% 102624592 / 104632099 / -1.9% 0.55 / 0.55 / -0.1%
clickbench_q31/datafusion:vortex-file-compressed 67071376 / 66124742 / +1.4% 150490730 / 153937121 / -2.2% 0.45 / 0.43 / +3.8%
clickbench_q32/datafusion:vortex-file-compressed 291969526 / 286539714 / +1.9% 380331602 / 389126877 / -2.3% 0.77 / 0.74 / +4.3%
clickbench_q33/datafusion:vortex-file-compressed 316652692 / 320658537 / -1.2% 416851092 / 433869506 / -3.9% 0.76 / 0.74 / +2.8%
clickbench_q34/datafusion:vortex-file-compressed 322964974 / 315681500 / +2.3% 423682904 / 431077200 / -1.7% 0.76 / 0.73 / +4.1%
clickbench_q35/datafusion:vortex-file-compressed 54460649 / 56917798 / -4.3% 87542013 / 89060182 / -1.7% 0.62 / 0.64 / -2.7%
clickbench_q36/datafusion:vortex-file-compressed 37322952 / 37056341 / +0.7% 66332417 / 65429195 / +1.4% 0.56 / 0.57 / -0.7%
clickbench_q37/datafusion:vortex-file-compressed 21529698 / 22062792 / -2.4% 48248761 / 49812137 / -3.1% 0.45 / 0.44 / +0.7%
clickbench_q38/datafusion:vortex-file-compressed 11528272 / 11628018 / -0.9% 38374947 / 40172128 / -4.5% 0.30 / 0.29 / +3.8%
clickbench_q39/datafusion:vortex-file-compressed 78063010 / 77611452 / +0.6% 108795217 / 110624894 / -1.7% 0.72 / 0.70 / +2.3%
clickbench_q40/datafusion:vortex-file-compressed 11239858 / 11092708 / +1.3% 37671891 / 37030262 / +1.7% 0.30 / 0.30 / -0.4%
clickbench_q41/datafusion:vortex-file-compressed 10558773 / 10615928 / -0.5% 36324066 / 36368689 / -0.1% 0.29 / 0.29 / -0.4%
clickbench_q42/datafusion:vortex-file-compressed 10782349 / 10729772 / +0.5% 35834865 / 37157500 / -3.6% 0.30 / 0.29 / +4.2%
datafusion / parquet / ns (0.993x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
clickbench_q00/datafusion:parquet 1273969 / 1265991 / +0.6% 49822698 / 49833868 / -0.0% 0.03 / 0.03 / +0.7%
clickbench_q01/datafusion:parquet 15666526 / 16199252 / -3.3% 71674029 / 67160706 / +6.7% 0.22 / 0.24 / -9.4%
clickbench_q02/datafusion:parquet 18366582 / 19135092 / -4.0% 79711964 / 80605269 / -1.1% 0.23 / 0.24 / -2.9%
clickbench_q03/datafusion:parquet 17030023 / 16722596 / +1.8% 78500659 / 80608156 / -2.6% 0.22 / 0.21 / +4.6%
clickbench_q04/datafusion:parquet 62451654 / 62910774 / -0.7% 124663465 / 127466028 / -2.2% 0.50 / 0.49 / +1.5%
clickbench_q05/datafusion:parquet 87174882 / 89468516 / -2.6% 153252359 / 155783906 / -1.6% 0.57 / 0.57 / -1.0%
clickbench_q06/datafusion:parquet 1278966 / 1244478 / +2.8% 49642025 / 50662855 / -2.0% 0.03 / 0.02 / +4.9%
clickbench_q07/datafusion:parquet 16650366 / 16782800 / -0.8% 67925304 / 69959674 / -2.9% 0.25 / 0.24 / +2.2%
clickbench_q08/datafusion:parquet 84682626 / 87246576 / -2.9% 156488818 / 167537358 / -6.6% 0.54 / 0.52 / +3.9%
clickbench_q09/datafusion:parquet 183000630 / 190901573 / -4.1% 269251036 / 265931229 / +1.2% 0.68 / 0.72 / -5.3%
clickbench_q10/datafusion:parquet 35903282 / 36274236 / -1.0% 99688674 / 102896283 / -3.1% 0.36 / 0.35 / +2.2%
clickbench_q11/datafusion:parquet 43228311 / 43007926 / +0.5% 109689288 / 112190733 / -2.2% 0.39 / 0.38 / +2.8%
clickbench_q12/datafusion:parquet 95896040 / 95675882 / +0.2% 160997109 / 163409838 / -1.5% 0.60 / 0.59 / +1.7%
clickbench_q13/datafusion:parquet 145529599 / 146928762 / -1.0% 227834917 / 232617752 / -2.1% 0.64 / 0.63 / +1.1%
clickbench_q14/datafusion:parquet 100870336 / 103945149 / -3.0% 173802321 / 173472173 / +0.2% 0.58 / 0.60 / -3.1%
clickbench_q15/datafusion:parquet 72713948 / 69930642 / +4.0% 131071910 / 134032152 / -2.2% 0.55 / 0.52 / +6.3%
clickbench_q16/datafusion:parquet 154312917 / 155233382 / -0.6% 233384926 / 236461122 / -1.3% 0.66 / 0.66 / +0.7%
clickbench_q17/datafusion:parquet 156105823 / 155656645 / +0.3% 234628649 / 235630003 / -0.4% 0.67 / 0.66 / +0.7%
clickbench_q18/datafusion:parquet 307417170 / 311367960 / -1.3% 428182592 / 425647528 / +0.6% 0.72 / 0.73 / -1.9%
clickbench_q19/datafusion:parquet 18860238 / 18943028 / -0.4% 75604074 / 77160990 / -2.0% 0.25 / 0.25 / +1.6%
clickbench_q20/datafusion:parquet 178331348 / 179258098 / -0.5% 301484217 / 296351764 / +1.7% 0.59 / 0.60 / -2.2%
clickbench_q21/datafusion:parquet 174402440 / 173406882 / +0.6% 291849459 / 316140962 / -7.7% 0.60 / 0.55 / +8.9%
clickbench_q22/datafusion:parquet 256437278 / 261322342 / -1.9% 411819811 / 453288822 / -9.1% 0.62 / 0.58 / +8.0%
clickbench_q23/datafusion:parquet 1010065607 / 1010256806 / -0.0% 1194431331 / 1192717245 / +0.1% 0.85 / 0.85 / -0.2%
clickbench_q24/datafusion:parquet 29921654 / 29978214 / -0.2% 86473137 / 91279455 / -5.3% 0.35 / 0.33 / +5.4%
clickbench_q25/datafusion:parquet 37320697 / 37480176 / -0.4% 100383561 / 102947342 / -2.5% 0.37 / 0.36 / +2.1%
clickbench_q26/datafusion:parquet 30367934 / 31032833 / -2.1% 87948202 / 90110350 / -2.4% 0.35 / 0.34 / +0.3%
clickbench_q27/datafusion:parquet 192606400 / 194088816 / -0.8% 281609301 / 307983976 / -8.6% 0.68 / 0.63 / +8.5%
clickbench_q28/datafusion:parquet 619493884 / 619106756 / +0.1% 696712712 / 709664106 / -1.8% 0.89 / 0.87 / +1.9%
clickbench_q29/datafusion:parquet 29545602 / 29561132 / -0.1% 90323432 / 89098215 / +1.4% 0.33 / 0.33 / -1.4%
clickbench_q30/datafusion:parquet 91186020 / 90502456 / +0.8% 166809249 / 173077938 / -3.6% 0.55 / 0.52 / +4.5%
clickbench_q31/datafusion:parquet 102274222 / 105693898 / -3.2% 187244236 / 203064326 / -7.8% 0.55 / 0.52 / +4.9%
clickbench_q32/datafusion:parquet 310414116 / 310714886 / -0.1% 425888639 / 433915012 / -1.8% 0.73 / 0.72 / +1.8%
clickbench_q33/datafusion:parquet 380359774 / 379234076 / +0.3% 468998891 / 479385769 / -2.2% 0.81 / 0.79 / +2.5%
clickbench_q34/datafusion:parquet 376562549 / 376044935 / +0.1% 478081928 / 479747382 / -0.3% 0.79 / 0.78 / +0.5%
clickbench_q35/datafusion:parquet 64530382 / 65800214 / -1.9% 121795051 / 124219249 / -2.0% 0.53 / 0.53 / +0.0%
clickbench_q36/datafusion:parquet 73342848 / 73311750 / +0.0% 133704057 / 136778605 / -2.2% 0.55 / 0.54 / +2.3%
clickbench_q37/datafusion:parquet 35398266 / 35482038 / -0.2% 91178011 / 90790482 / +0.4% 0.39 / 0.39 / -0.7%
clickbench_q38/datafusion:parquet 47585040 / 48051443 / -1.0% 105168596 / 108647172 / -3.2% 0.45 / 0.44 / +2.3%
clickbench_q39/datafusion:parquet 144416309 / 143848430 / +0.4% 206608547 / 213299033 / -3.1% 0.70 / 0.67 / +3.6%
clickbench_q40/datafusion:parquet 20080224 / 19840472 / +1.2% 76454388 / 76998913 / -0.7% 0.26 / 0.26 / +1.9%
clickbench_q41/datafusion:parquet 18585098 / 18933055 / -1.8% 76565056 / 76225890 / +0.4% 0.24 / 0.25 / -2.3%
clickbench_q42/datafusion:parquet 18777742 / 19287824 / -2.6% 75628725 / 74597093 / +1.4% 0.25 / 0.26 / -4.0%
duckdb / vortex-file-compressed / ns (1.006x ➖, 2↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
clickbench_q00/duckdb:vortex-file-compressed 2228874 / 2172615 / +2.6% 23618574 / 24977993 / -5.4% 0.09 / 0.09 / +8.5%
clickbench_q01/duckdb:vortex-file-compressed 7080626 / 6941038 / +2.0% 29912814 / 26900384 / +11.2% 🔴 0.24 / 0.26 / -8.3%
clickbench_q02/duckdb:vortex-file-compressed 8640190 / 7964631 / +8.5% 32756416 / 36248027 / -9.6% 0.26 / 0.22 / +20.0%
clickbench_q03/duckdb:vortex-file-compressed 13963014 / 14232660 / -1.9% 45449702 / 57748334 / -21.3% 🟢 0.31 / 0.25 / +24.7%
clickbench_q04/duckdb:vortex-file-compressed 57145992 / 55968628 / +2.1% 88576819 / 100594167 / -11.9% 🟢 0.65 / 0.56 / +16.0%
clickbench_q05/duckdb:vortex-file-compressed 65424584 / 65083937 / +0.5% 95002829 / 94408464 / +0.6% 0.69 / 0.69 / -0.1%
clickbench_q06/duckdb:vortex-file-compressed 2611922 / 2699498 / -3.2% 28583906 / 28102141 / +1.7% 0.09 / 0.10 / -4.9%
clickbench_q07/duckdb:vortex-file-compressed 8236501 / 8551618 / -3.7% 31402164 / 30841354 / +1.8% 0.26 / 0.28 / -5.4%
clickbench_q08/duckdb:vortex-file-compressed 71043508 / 68269150 / +4.1% 102889107 / 113007932 / -9.0% 0.69 / 0.60 / +14.3%
clickbench_q09/duckdb:vortex-file-compressed 94336392 / 87624424 / +7.7% 128340826 / 131576262 / -2.5% 0.74 / 0.67 / +10.4%
clickbench_q10/duckdb:vortex-file-compressed 26557275 / 26276918 / +1.1% 64462868 / 72271665 / -10.8% 🟢 0.41 / 0.36 / +13.3%
clickbench_q11/duckdb:vortex-file-compressed 28965702 / 28768162 / +0.7% 65254552 / 72092838 / -9.5% 0.44 / 0.40 / +11.2%
clickbench_q12/duckdb:vortex-file-compressed 70364638 / 69617384 / +1.1% 100754141 / 98410610 / +2.4% 0.70 / 0.71 / -1.3%
clickbench_q13/duckdb:vortex-file-compressed 124160410 / 124452416 / -0.2% 159659382 / 165804928 / -3.7% 0.78 / 0.75 / +3.6%
clickbench_q14/duckdb:vortex-file-compressed 76024567 / 74726958 / +1.7% 106834239 / 106931142 / -0.1% 0.71 / 0.70 / +1.8%
clickbench_q15/duckdb:vortex-file-compressed 76907820 / 74856108 / +2.7% 110031849 / 115233999 / -4.5% 0.70 / 0.65 / +7.6%
clickbench_q16/duckdb:vortex-file-compressed 138098973 / 137640496 / +0.3% 169662055 / 184946455 / -8.3% 0.81 / 0.74 / +9.4%
clickbench_q17/duckdb:vortex-file-compressed 141990090 / 139465546 / +1.8% 172326939 / 176815912 / -2.5% 0.82 / 0.79 / +4.5%
clickbench_q18/duckdb:vortex-file-compressed 260301700 / 258030720 / +0.9% 313015657 / 316472045 / -1.1% 0.83 / 0.82 / +2.0%
clickbench_q19/duckdb:vortex-file-compressed 8950160 / 9222921 / -3.0% 36514257 / 45294644 / -19.4% 🟢 0.25 / 0.20 / +20.4%
clickbench_q20/duckdb:vortex-file-compressed 68686717 / 65629873 / +4.7% 163846746 / 164806003 / -0.6% 0.42 / 0.40 / +5.3%
clickbench_q21/duckdb:vortex-file-compressed 83704151 / 97368463 / -14.0% 🟢 177560120 / 288775199 / -38.5% 🟢 0.47 / 0.34 / +39.8%
clickbench_q22/duckdb:vortex-file-compressed 155726868 / 173552580 / -10.3% 🟢 321679410 / 437937052 / -26.5% 🟢 0.48 / 0.40 / +22.2%
clickbench_q23/duckdb:vortex-file-compressed 37285099 / 34133127 / +9.2% 84401655 / 88777005 / -4.9% 0.44 / 0.38 / +14.9%
clickbench_q24/duckdb:vortex-file-compressed 13681214 / 14301884 / -4.3% 35008683 / 34328373 / +2.0% 0.39 / 0.42 / -6.2%
clickbench_q25/duckdb:vortex-file-compressed 19707120 / 18758780 / +5.1% 50641805 / 52591646 / -3.7% 0.39 / 0.36 / +9.1%
clickbench_q26/duckdb:vortex-file-compressed 10932302 / 11319576 / -3.4% 32103142 / 33523587 / -4.2% 0.34 / 0.34 / +0.9%
clickbench_q27/duckdb:vortex-file-compressed 53493878 / 53680325 / -0.3% 163300352 / 221982002 / -26.4% 🟢 0.33 / 0.24 / +35.5%
clickbench_q28/duckdb:vortex-file-compressed 518904109 / 512195272 / +1.3% 565401344 / 576041806 / -1.8% 0.92 / 0.89 / +3.2%
clickbench_q29/duckdb:vortex-file-compressed 17193624 / 17110150 / +0.5% 43609931 / 46238829 / -5.7% 0.39 / 0.37 / +6.5%
clickbench_q30/duckdb:vortex-file-compressed 60184286 / 58403405 / +3.0% 102798804 / 111373683 / -7.7% 0.59 / 0.52 / +11.6%
clickbench_q31/duckdb:vortex-file-compressed 110411786 / 109998060 / +0.4% 183231476 / 176471477 / +3.8% 0.60 / 0.62 / -3.3%
clickbench_q32/duckdb:vortex-file-compressed 370970680 / 377028286 / -1.6% 398536949 / 417444657 / -4.5% 0.93 / 0.90 / +3.1%
clickbench_q33/duckdb:vortex-file-compressed 346109472 / 348305104 / -0.6% 406822940 / 447406906 / -9.1% 0.85 / 0.78 / +9.3%
clickbench_q34/duckdb:vortex-file-compressed 361782014 / 357459356 / +1.2% 428893906 / 461863373 / -7.1% 0.84 / 0.77 / +9.0%
clickbench_q35/duckdb:vortex-file-compressed 57071227 / 57104841 / -0.1% 85293001 / 92628153 / -7.9% 0.67 / 0.62 / +8.5%
clickbench_q36/duckdb:vortex-file-compressed 11635878 / 11906602 / -2.3% 29961147 / 33692041 / -11.1% 🟢 0.39 / 0.35 / +9.9%
clickbench_q37/duckdb:vortex-file-compressed 8312008 / 7803988 / +6.5% 31745277 / 28487341 / +11.4% 🔴 0.26 / 0.27 / -4.4%
clickbench_q38/duckdb:vortex-file-compressed 8349040 / 8450513 / -1.2% 29129213 / 28105750 / +3.6% 0.29 / 0.30 / -4.7%
clickbench_q39/duckdb:vortex-file-compressed 18586776 / 19315650 / -3.8% 36537678 / 41441230 / -11.8% 🟢 0.51 / 0.47 / +9.1%
clickbench_q40/duckdb:vortex-file-compressed 7198628 / 6935784 / +3.8% 34384355 / 28335751 / +21.3% 🔴 0.21 / 0.24 / -14.5%
clickbench_q41/duckdb:vortex-file-compressed 8290396 / 7979178 / +3.9% 32017346 / 29761390 / +7.6% 0.26 / 0.27 / -3.4%
clickbench_q42/duckdb:vortex-file-compressed 7585854 / 7069820 / +7.3% 29585627 / 30944674 / -4.4% 0.26 / 0.23 / +12.2%
duckdb / parquet / ns (1.008x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
clickbench_q00/duckdb:parquet 10690062 / 11383580 / -6.1% 18417333 / 18062047 / +2.0% 0.58 / 0.63 / -7.9%
clickbench_q01/duckdb:parquet 17344303 / 16438743 / +5.5% 24796567 / 25187700 / -1.6% 0.70 / 0.65 / +7.2%
clickbench_q02/duckdb:parquet 23724106 / 24179519 / -1.9% 34541874 / 33759847 / +2.3% 0.69 / 0.72 / -4.1%
clickbench_q03/duckdb:parquet 24925323 / 24324734 / +2.5% 39738976 / 39685425 / +0.1% 0.63 / 0.61 / +2.3%
clickbench_q04/duckdb:parquet 63906708 / 63474640 / +0.7% 78404635 / 80056488 / -2.1% 0.82 / 0.79 / +2.8%
clickbench_q05/duckdb:parquet 85531764 / 84509512 / +1.2% 102685043 / 103477305 / -0.8% 0.83 / 0.82 / +2.0%
clickbench_q06/duckdb:parquet 23121878 / 23330090 / -0.9% 31406464 / 31685091 / -0.9% 0.74 / 0.74 / -0.0%
clickbench_q07/duckdb:parquet 18590818 / 19128920 / -2.8% 28003745 / 26233653 / +6.7% 0.66 / 0.73 / -9.0%
clickbench_q08/duckdb:parquet 76474136 / 76844065 / -0.5% 89273405 / 95132790 / -6.2% 0.86 / 0.81 / +6.1%
clickbench_q09/duckdb:parquet 105014235 / 105264848 / -0.2% 126920286 / 124324883 / +2.1% 0.83 / 0.85 / -2.3%
clickbench_q10/duckdb:parquet 43180217 / 42362040 / +1.9% 58249423 / 59297038 / -1.8% 0.74 / 0.71 / +3.8%
clickbench_q11/duckdb:parquet 48347396 / 47164516 / +2.5% 67610962 / 64946430 / +4.1% 0.72 / 0.73 / -1.5%
clickbench_q12/duckdb:parquet 94498698 / 93654582 / +0.9% 116046154 / 114920417 / +1.0% 0.81 / 0.81 / -0.1%
clickbench_q13/duckdb:parquet 153122158 / 151698432 / +0.9% 176428919 / 176745853 / -0.2% 0.87 / 0.86 / +1.1%
clickbench_q14/duckdb:parquet 103206591 / 102865160 / +0.3% 126966198 / 131272554 / -3.3% 0.81 / 0.78 / +3.7%
clickbench_q15/duckdb:parquet 89178185 / 89257749 / -0.1% 103058480 / 106486737 / -3.2% 0.87 / 0.84 / +3.2%
clickbench_q16/duckdb:parquet 176222965 / 179364130 / -1.8% 189715450 / 185400344 / +2.3% 0.93 / 0.97 / -4.0%
clickbench_q17/duckdb:parquet 173496858 / 173590478 / -0.1% 189673553 / 189355433 / +0.2% 0.91 / 0.92 / -0.2%
clickbench_q18/duckdb:parquet 312745345 / 305780488 / +2.3% 338559130 / 341753095 / -0.9% 0.92 / 0.89 / +3.2%
clickbench_q19/duckdb:parquet 21129504 / 20846174 / +1.4% 30278999 / 32678979 / -7.3% 0.70 / 0.64 / +9.4%
clickbench_q20/duckdb:parquet 190876913 / 192372747 / -0.8% 232375699 / 237407308 / -2.1% 0.82 / 0.81 / +1.4%
clickbench_q21/duckdb:parquet 238479771 / 227780386 / +4.7% 271060258 / 269541954 / +0.6% 0.88 / 0.85 / +4.1%
clickbench_q22/duckdb:parquet 327718968 / 321378114 / +2.0% 371892308 / 368165499 / +1.0% 0.88 / 0.87 / +1.0%
clickbench_q23/duckdb:parquet 172243974 / 173540963 / -0.7% 241017276 / 250826182 / -3.9% 0.71 / 0.69 / +3.3%
clickbench_q24/duckdb:parquet 32466932 / 32511236 / -0.1% 36262107 / 47917023 / -24.3% 🟢 0.90 / 0.68 / +32.0%
clickbench_q25/duckdb:parquet 44527873 / 44116980 / +0.9% 58543815 / 66104937 / -11.4% 🟢 0.76 / 0.67 / +14.0%
clickbench_q26/duckdb:parquet 34137096 / 33425872 / +2.1% 49078461 / 47009570 / +4.4% 0.70 / 0.71 / -2.2%
clickbench_q27/duckdb:parquet 194222638 / 194413190 / -0.1% 233691403 / 236402112 / -1.1% 0.83 / 0.82 / +1.1%
clickbench_q28/duckdb:parquet 985804544 / 983502768 / +0.2% 966037526 / 968899949 / -0.3% 1.02 / 1.02 / +0.5%
clickbench_q29/duckdb:parquet 26845024 / 26254540 / +2.2% 35018991 / 35039693 / -0.1% 0.77 / 0.75 / +2.3%
clickbench_q30/duckdb:parquet 107415285 / 107635400 / -0.2% 135745836 / 139022062 / -2.4% 0.79 / 0.77 / +2.2%
clickbench_q31/duckdb:parquet 161344817 / 162951870 / -1.0% 184339680 / 183774255 / +0.3% 0.88 / 0.89 / -1.3%
clickbench_q32/duckdb:parquet 402808680 / 392487528 / +2.6% 417024525 / 431999329 / -3.5% 0.97 / 0.91 / +6.3%
clickbench_q33/duckdb:parquet 488121004 / 486290342 / +0.4% 481490054 / 458390375 / +5.0% 1.01 / 1.06 / -4.4%
clickbench_q34/duckdb:parquet 487401438 / 473928504 / +2.8% 489965947 / 461228499 / +6.2% 0.99 / 1.03 / -3.2%
clickbench_q35/duckdb:parquet 63066588 / 63680347 / -1.0% 80321449 / 80308677 / +0.0% 0.79 / 0.79 / -1.0%
clickbench_q36/duckdb:parquet 32603628 / 31503630 / +3.5% 41500240 / 40089499 / +3.5% 0.79 / 0.79 / -0.0%
clickbench_q37/duckdb:parquet 25214752 / 24994606 / +0.9% 34191048 / 35262705 / -3.0% 0.74 / 0.71 / +4.0%
clickbench_q38/duckdb:parquet 25834832 / 25787656 / +0.2% 34459451 / 34434511 / +0.1% 0.75 / 0.75 / +0.1%
clickbench_q39/duckdb:parquet 55061184 / 53904002 / +2.1% 65285146 / 63886451 / +2.2% 0.84 / 0.84 / -0.0%
clickbench_q40/duckdb:parquet 16601837 / 15738781 / +5.5% 24103139 / 25672570 / -6.1% 0.69 / 0.61 / +12.4%
clickbench_q41/duckdb:parquet 17326782 / 16923779 / +2.4% 24414542 / 26059067 / -6.3% 0.71 / 0.65 / +9.3%
clickbench_q42/duckdb:parquet 16134698 / 16321736 / -1.1% 25184532 / 25523551 / -1.3% 0.64 / 0.64 / +0.2%

No file size changes detected.

@github-actions

github-actions Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Benchmarks: TPC-H SF=1 on S3 📖

Commits: PR 0ad75b12 vs base f476db42
Verdict: No clear signal (environment too noisy confidence)
Attributed Vortex impact: -5.2%
Engines: DataFusion No clear signal (-5.9%, environment too noisy confidence) · DuckDB No clear signal (-4.6%, environment too noisy confidence)
Vortex (geomean): hot 0.929x ➖ · cold 0.904x ➖
Parquet (geomean): hot 0.980x ➖ · cold 0.976x ➖
Shifts: Parquet (control) -2.0% · Median polish -3.0%

How to read Verdict and Engines
  • Verdict: Overall PR-level signal after subtracting baseline drift estimated from Parquet control rows. It can be Likely improvement, Likely regression, or No clear signal.
  • Engines: Per-engine attribution. DataFusion is compared against DataFusion/Parquet controls; DuckDB is compared against DuckDB/Parquet controls. This answers whether each engine improved or regressed independently.
  • Confidence: Based on directional consistency, share of rows above the noise floor, and control-run noise.
  • Hot vs cold: Every measurement is run several times. The first run is reported as the cold run, and the median of the runs after it is reported as the hot run. The verdict and significance use hot runs; each target's geomean reports hot and cold beside each other where the individual runs were recorded and hot alone where they were not, the cold column shows first-run cost per row, and hot/cold is how much of each run the warm path saves. Rows whose results predate per-run reporting show only one value, taken from the value the runner reported.
  • Table cells: Each cell reads PR / base / %diff. The hot and cold columns mark a change as 🔴 slower or 🟢 faster once it clears this suite's threshold; anything smaller is noise here and is left unmarked, as is hot/cold, because a shift in the warm-up ratio is not a win or a loss by itself.

datafusion / vortex-file-compressed / ns (0.881x ➖, 2↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpch_q01/datafusion:vortex-file-compressed 243116923 / 320364357 / -24.1% 751625818 / 857290181 / -12.3% 0.32 / 0.37 / -13.4%
tpch_q02/datafusion:vortex-file-compressed 327479202 / 326144621 / +0.4% 638685845 / 672847220 / -5.1% 0.51 / 0.48 / +5.8%
tpch_q03/datafusion:vortex-file-compressed 356877555 / 399027247 / -10.6% 970175391 / 918913972 / +5.6% 0.37 / 0.43 / -15.3%
tpch_q04/datafusion:vortex-file-compressed 194463130 / 202196966 / -3.8% 416604763 / 437895083 / -4.9% 0.47 / 0.46 / +1.1%
tpch_q05/datafusion:vortex-file-compressed 454643396 / 523269529 / -13.1% 628418380 / 780854161 / -19.5% 0.72 / 0.67 / +8.0%
tpch_q06/datafusion:vortex-file-compressed 154286072 / 260802184 / -40.8% 🟢 325056593 / 682739839 / -52.4% 🟢 0.47 / 0.38 / +24.3%
tpch_q07/datafusion:vortex-file-compressed 414483568 / 510279764 / -18.8% 510881837 / 703158017 / -27.3% 0.81 / 0.73 / +11.8%
tpch_q08/datafusion:vortex-file-compressed 496438816 / 453547656 / +9.5% 668635127 / 1481400535 / -54.9% 🟢 0.74 / 0.31 / +142.5%
tpch_q09/datafusion:vortex-file-compressed 314758205 / 358235473 / -12.1% 525367267 / 635825003 / -17.4% 0.60 / 0.56 / +6.3%
tpch_q10/datafusion:vortex-file-compressed 360878854 / 693460969 / -48.0% 🟢 557902007 / 1249518501 / -55.4% 🟢 0.65 / 0.55 / +16.6%
tpch_q11/datafusion:vortex-file-compressed 258987606 / 272332135 / -4.9% 411361814 / 421317365 / -2.4% 0.63 / 0.65 / -2.6%
tpch_q12/datafusion:vortex-file-compressed 207503083 / 263695793 / -21.3% 406946642 / 409814730 / -0.7% 0.51 / 0.64 / -20.8%
tpch_q13/datafusion:vortex-file-compressed 128772670 / 136144923 / -5.4% 370106057 / 341646149 / +8.3% 0.35 / 0.40 / -12.7%
tpch_q14/datafusion:vortex-file-compressed 186545587 / 172712088 / +8.0% 349357614 / 330244378 / +5.8% 0.53 / 0.52 / +2.1%
tpch_q15/datafusion:vortex-file-compressed 343702242 / 355297643 / -3.3% 593681141 / 652894981 / -9.1% 0.58 / 0.54 / +6.4%
tpch_q16/datafusion:vortex-file-compressed 145290819 / 163121892 / -10.9% 264913643 / 284294570 / -6.8% 0.55 / 0.57 / -4.4%
tpch_q17/datafusion:vortex-file-compressed 259173184 / 297114077 / -12.8% 643859240 / 523987138 / +22.9% 0.40 / 0.57 / -29.0%
tpch_q18/datafusion:vortex-file-compressed 312575918 / 345141421 / -9.4% 530451543 / 750100375 / -29.3% 0.59 / 0.46 / +28.1%
tpch_q19/datafusion:vortex-file-compressed 290417623 / 309519456 / -6.2% 466096655 / 548284533 / -15.0% 0.62 / 0.56 / +10.4%
tpch_q20/datafusion:vortex-file-compressed 275778830 / 295834923 / -6.8% 532167114 / 560724029 / -5.1% 0.52 / 0.53 / -1.8%
tpch_q21/datafusion:vortex-file-compressed 719123449 / 672575246 / +6.9% 842138556 / 628021338 / +34.1% 🔴 0.85 / 1.07 / -20.3%
tpch_q22/datafusion:vortex-file-compressed 163671201 / 176615971 / -7.3% 353261111 / 468165807 / -24.5% 0.46 / 0.38 / +22.8%
datafusion / parquet / ns (0.936x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpch_q01/datafusion:parquet 151401908 / 160300645 / -5.6% 610877530 / 443195328 / +37.8% 🔴 0.25 / 0.36 / -31.5%
tpch_q02/datafusion:parquet 297825297 / 283567515 / +5.0% 508752007 / 422801735 / +20.3% 0.59 / 0.67 / -12.7%
tpch_q03/datafusion:parquet 235313044 / 247195034 / -4.8% 582809367 / 740384150 / -21.3% 0.40 / 0.33 / +20.9%
tpch_q04/datafusion:parquet 160102549 / 167579109 / -4.5% 336894709 / 337343066 / -0.1% 0.48 / 0.50 / -4.3%
tpch_q05/datafusion:parquet 366557462 / 362746322 / +1.1% 538537209 / 489035449 / +10.1% 0.68 / 0.74 / -8.2%
tpch_q06/datafusion:parquet 113154162 / 133206102 / -15.1% 223519070 / 260640923 / -14.2% 0.51 / 0.51 / -0.9%
tpch_q07/datafusion:parquet 324311217 / 379149445 / -14.5% 406583571 / 670471364 / -39.4% 🟢 0.80 / 0.57 / +41.1%
tpch_q08/datafusion:parquet 423225327 / 458493065 / -7.7% 539523400 / 594978431 / -9.3% 0.78 / 0.77 / +1.8%
tpch_q09/datafusion:parquet 368591821 / 415584737 / -11.3% 473389665 / 764018022 / -38.0% 🟢 0.78 / 0.54 / +43.1%
tpch_q10/datafusion:parquet 303413031 / 343932218 / -11.8% 397930736 / 482076994 / -17.5% 0.76 / 0.71 / +6.9%
tpch_q11/datafusion:parquet 276458382 / 269661812 / +2.5% 371826818 / 417281762 / -10.9% 0.74 / 0.65 / +15.1%
tpch_q12/datafusion:parquet 183297025 / 179630083 / +2.0% 412558058 / 322715529 / +27.8% 0.44 / 0.56 / -20.2%
tpch_q13/datafusion:parquet 275849267 / 306211511 / -9.9% 422863655 / 666892703 / -36.6% 🟢 0.65 / 0.46 / +42.1%
tpch_q14/datafusion:parquet 150281675 / 165265319 / -9.1% 346461664 / 326711771 / +6.0% 0.43 / 0.51 / -14.3%
tpch_q15/datafusion:parquet 301091301 / 325984868 / -7.6% 438809347 / 571266015 / -23.2% 0.69 / 0.57 / +20.2%
tpch_q16/datafusion:parquet 99045633 / 108865637 / -9.0% 193536688 / 214225526 / -9.7% 0.51 / 0.51 / +0.7%
tpch_q17/datafusion:parquet 289864789 / 353992956 / -18.1% 449399687 / 488451273 / -8.0% 0.65 / 0.72 / -11.0%
tpch_q18/datafusion:parquet 315441141 / 374472275 / -15.8% 486153975 / 710405369 / -31.6% 🟢 0.65 / 0.53 / +23.1%
tpch_q19/datafusion:parquet 162262344 / 165845090 / -2.2% 384385524 / 332415526 / +15.6% 0.42 / 0.50 / -15.4%
tpch_q20/datafusion:parquet 248011544 / 258639694 / -4.1% 384807863 / 333402091 / +15.4% 0.64 / 0.78 / -16.9%
tpch_q21/datafusion:parquet 302243321 / 325938709 / -7.3% 476848140 / 509246875 / -6.4% 0.63 / 0.64 / -1.0%
tpch_q22/datafusion:parquet 187889846 / 166419442 / +12.9% 388707532 / 317591477 / +22.4% 0.48 / 0.52 / -7.8%
duckdb / vortex-file-compressed / ns (0.979x ➖, 0↑ 1↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpch_q01/duckdb:vortex-file-compressed 228275950 / 247144121 / -7.6% 256247461 / 248248927 / +3.2% 0.89 / 1.00 / -10.5%
tpch_q02/duckdb:vortex-file-compressed 395097117 / 458374863 / -13.8% 464652903 / 708303911 / -34.4% 🟢 0.85 / 0.65 / +31.4%
tpch_q03/duckdb:vortex-file-compressed 439803795 / 437683411 / +0.5% 481056222 / 487443889 / -1.3% 0.91 / 0.90 / +1.8%
tpch_q04/duckdb:vortex-file-compressed 253309047 / 253663885 / -0.1% 341838071 / 292766492 / +16.8% 0.74 / 0.87 / -14.5%
tpch_q05/duckdb:vortex-file-compressed 581893451 / 534955520 / +8.8% 565454832 / 653473585 / -13.5% 1.03 / 0.82 / +25.7%
tpch_q06/duckdb:vortex-file-compressed 195922017 / 219701966 / -10.8% 260977275 / 353931909 / -26.3% 0.75 / 0.62 / +20.9%
tpch_q07/duckdb:vortex-file-compressed 549921653 / 442072584 / +24.4% 474169901 / 526800407 / -10.0% 1.16 / 0.84 / +38.2%
tpch_q08/duckdb:vortex-file-compressed 896117525 / 613812589 / +46.0% 🔴 1012904718 / 598517389 / +69.2% 🔴 0.88 / 1.03 / -13.7%
tpch_q09/duckdb:vortex-file-compressed 386888998 / 452502746 / -14.5% 442816294 / 479408415 / -7.6% 0.87 / 0.94 / -7.4%
tpch_q10/duckdb:vortex-file-compressed 525514089 / 529495628 / -0.8% 542308486 / 519274051 / +4.4% 0.97 / 1.02 / -5.0%
tpch_q11/duckdb:vortex-file-compressed 325882220 / 310476607 / +5.0% 302508545 / 322626818 / -6.2% 1.08 / 0.96 / +11.9%
tpch_q12/duckdb:vortex-file-compressed 245383033 / 255292380 / -3.9% 313626550 / 267706145 / +17.2% 0.78 / 0.95 / -18.0%
tpch_q13/duckdb:vortex-file-compressed 194348197 / 263544685 / -26.3% 228982209 / 256264494 / -10.6% 0.85 / 1.03 / -17.5%
tpch_q14/duckdb:vortex-file-compressed 222282303 / 261640787 / -15.0% 314168267 / 293545704 / +7.0% 0.71 / 0.89 / -20.6%
tpch_q15/duckdb:vortex-file-compressed 244386497 / 248061475 / -1.5% 280382343 / 322173156 / -13.0% 0.87 / 0.77 / +13.2%
tpch_q16/duckdb:vortex-file-compressed 212165835 / 208236020 / +1.9% 240993684 / 275422164 / -12.5% 0.88 / 0.76 / +16.4%
tpch_q17/duckdb:vortex-file-compressed 330840455 / 374079804 / -11.6% 374133866 / 406536914 / -8.0% 0.88 / 0.92 / -3.9%
tpch_q18/duckdb:vortex-file-compressed 330101504 / 413700835 / -20.2% 491130396 / 592965619 / -17.2% 0.67 / 0.70 / -3.7%
tpch_q19/duckdb:vortex-file-compressed 318884764 / 355497969 / -10.3% 312351110 / 324615142 / -3.8% 1.02 / 1.10 / -6.8%
tpch_q20/duckdb:vortex-file-compressed 399948783 / 363625500 / +10.0% 478370358 / 454801783 / +5.2% 0.84 / 0.80 / +4.6%
tpch_q21/duckdb:vortex-file-compressed 747545051 / 647884984 / +15.4% 667941761 / 748492455 / -10.8% 1.12 / 0.87 / +29.3%
tpch_q22/duckdb:vortex-file-compressed 263103513 / 256329460 / +2.6% 336562074 / 295710683 / +13.8% 0.78 / 0.87 / -9.8%
duckdb / parquet / ns (1.026x ➖, 0↑ 2↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpch_q01/duckdb:parquet 195777239 / 148497419 / +31.8% 🔴 228529721 / 173516019 / +31.7% 🔴 0.86 / 0.86 / +0.1%
tpch_q02/duckdb:parquet 471209859 / 474892002 / -0.8% 472838277 / 606833133 / -22.1% 1.00 / 0.78 / +27.3%
tpch_q03/duckdb:parquet 319940016 / 441228944 / -27.5% 420777740 / 528083252 / -20.3% 0.76 / 0.84 / -9.0%
tpch_q04/duckdb:parquet 239150640 / 271501224 / -11.9% 295348464 / 352838483 / -16.3% 0.81 / 0.77 / +5.2%
tpch_q05/duckdb:parquet 461365582 / 557919902 / -17.3% 501457557 / 539249486 / -7.0% 0.92 / 1.03 / -11.1%
tpch_q06/duckdb:parquet 138944131 / 181221074 / -23.3% 153352650 / 203061467 / -24.5% 0.91 / 0.89 / +1.5%
tpch_q07/duckdb:parquet 485809978 / 487789769 / -0.4% 524997071 / 521792954 / +0.6% 0.93 / 0.93 / -1.0%
tpch_q08/duckdb:parquet 705809361 / 686648790 / +2.8% 683505211 / 705457503 / -3.1% 1.03 / 0.97 / +6.1%
tpch_q09/duckdb:parquet 832515516 / 645859152 / +28.9% 1257908126 / 684772304 / +83.7% 🔴 0.66 / 0.94 / -29.8%
tpch_q10/duckdb:parquet 576334943 / 545953930 / +5.6% 670045539 / 618354653 / +8.4% 0.86 / 0.88 / -2.6%
tpch_q11/duckdb:parquet 284606721 / 287684829 / -1.1% 290764488 / 307817884 / -5.5% 0.98 / 0.93 / +4.7%
tpch_q12/duckdb:parquet 262739092 / 231438480 / +13.5% 305862928 / 329714592 / -7.2% 0.86 / 0.70 / +22.4%
tpch_q13/duckdb:parquet 438443384 / 422209968 / +3.8% 538957662 / 563063356 / -4.3% 0.81 / 0.75 / +8.5%
tpch_q14/duckdb:parquet 302024391 / 299174567 / +1.0% 336769722 / 581905419 / -42.1% 🟢 0.90 / 0.51 / +74.4%
tpch_q15/duckdb:parquet 377241632 / 202905415 / +85.9% 🔴 457030882 / 240991039 / +89.6% 🔴 0.83 / 0.84 / -2.0%
tpch_q16/duckdb:parquet 246631641 / 276648116 / -10.9% 291836210 / 295455317 / -1.2% 0.85 / 0.94 / -9.7%
tpch_q17/duckdb:parquet 294805155 / 281008197 / +4.9% 454478370 / 454794488 / -0.1% 0.65 / 0.62 / +5.0%
tpch_q18/duckdb:parquet 374357846 / 320562646 / +16.8% 385649870 / 358666528 / +7.5% 0.97 / 0.89 / +8.6%
tpch_q19/duckdb:parquet 271322931 / 252487007 / +7.5% 377364171 / 285481348 / +32.2% 🔴 0.72 / 0.88 / -18.7%
tpch_q20/duckdb:parquet 467585008 / 465418597 / +0.5% 520849416 / 541277845 / -3.8% 0.90 / 0.86 / +4.4%
tpch_q21/duckdb:parquet 503641565 / 481395074 / +4.6% 996823440 / 573582619 / +73.8% 🔴 0.51 / 0.84 / -39.8%
tpch_q22/duckdb:parquet 284244872 / 325011478 / -12.5% 297952366 / 303941128 / -2.0% 0.95 / 1.07 / -10.8%

The DuckDB V2 driver cut parts on 64K-row blocks and the chunk planner
cut chunks on a fixed grid. Files whose chunks are not 64K rows, such as
ClickBench's 87K and 95K-row chunks, had nearly every chunk span two
scan chunks, so it was decoded twice.

Take the boundaries V1 splits on (the referenced columns' chunk
boundaries, with wide spans subdivided) and cut chunks only there,
merging spans up to the scan's chunk size. Parts group whole chunks.
ChunkPlanner gains a with_chunks constructor for drivers that cut the
rows themselves.

Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M8NsCJMx4C45Wf2Df24qzZ
@joseph-isaacs joseph-isaacs changed the title Default duckdb-bench to the V2 scan for TPC-DS and ClickBench DuckDB V2 scan: cut chunks on file boundaries, default it for TPC-DS and ClickBench Oct 26, 2026
@joseph-isaacs joseph-isaacs added the action/bench-sql Run SQL benchmarks without Vortex Compact on this PR label Oct 26, 2026 — with Claude
@github-actions github-actions Bot removed the action/bench-sql Run SQL benchmarks without Vortex Compact on this PR label Oct 26, 2026

Copy link
Copy Markdown
Contributor Author

The sql-bench … (polarsignals …) failure on 527684b isn't from this PR's code. The runner never started: AWS returned InsufficientInstanceCapacity for c8gd.metal-24xl in us-east-1a and us-east-1b, so no benchmark ran. That suite is also DataFusion-only, and this PR changes the DuckDB scan path. I've re-run the failed job once.


Generated by Claude Code

Pass --scan-v2 true from the benchmark orchestrator for DuckDB's
TPC-DS and ClickBench runs instead of changing duckdb-bench's default,
which goes back to V2 for TPC-H only.

Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M8NsCJMx4C45Wf2Df24qzZ
@joseph-isaacs joseph-isaacs added the action/bench-sql Run SQL benchmarks without Vortex Compact on this PR label Oct 26, 2026 — with Claude
@github-actions github-actions Bot removed the action/bench-sql Run SQL benchmarks without Vortex Compact on this PR label Oct 26, 2026
Each chunk a part spawned was admitted as its own root with a fresh IO
session, and a session caches only its own reads. For a wide projection
the chunks are cut on every column's boundaries, so a column chunk
spanning several scan chunks was read once per scan chunk. DuckDB's
late-materialization fetch of ClickBench q23 (SELECT * ... ORDER BY ...
LIMIT 10) read many segments two or three times.

ChunkPlanner::inline emits the chunks as children of the part's root,
on its run and session, instead of spawning them. A thread runs one
part at a time, so this gives up no parallelism.

Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M8NsCJMx4C45Wf2Df24qzZ
@joseph-isaacs joseph-isaacs added the action/bench-sql Run SQL benchmarks without Vortex Compact on this PR label Oct 26, 2026 — with Claude
@github-actions github-actions Bot removed the action/bench-sql Run SQL benchmarks without Vortex Compact on this PR label Oct 26, 2026
datafusion-bench and duckdb-bench no longer pick the V2 Vortex scan by
benchmark or read VORTEX_SCAN_V2: --scan-v2 defaults to false. The
benchmark orchestrator passes --scan-v2 true for DataFusion TPC-H and
for DuckDB TPC-H, TPC-DS and ClickBench.

Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M8NsCJMx4C45Wf2Df24qzZ
A file is planned, pruning included, when DuckDB initializes it. With
100 files and 96 threads every file is planned before DuckDB's top-N
bound has tightened, so a dynamic comparison prunes nothing and every
chunk is read. V1 prunes each split when it runs and skips the splits
the tightened bound excludes: on ClickBench q24 V2 read 44 segments
(8.5 MB) V1 never touched.

When the filter has a dynamic comparison, run a part behind its own
pruning when a thread takes it, intersected with the file's static
pruning. The zone maps were read when the file was planned, so this
reads nothing new. Adds top-N cases to the V2-matches-V1 test.

Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M8NsCJMx4C45Wf2Df24qzZ
@joseph-isaacs joseph-isaacs added the action/bench-sql Run SQL benchmarks without Vortex Compact on this PR label Oct 26, 2026 — with Claude
@github-actions github-actions Bot removed the action/bench-sql Run SQL benchmarks without Vortex Compact on this PR label Oct 26, 2026
Planning a file runs its pruning plans before DuckDB's top-N bound
exists, so under a dynamic filter they prove little and only delay the
file's first part behind the zone map reads, which for a long string
column such as ClickBench's URL are large. Each part is pruned when a
thread takes it anyway, so skip the file-level pruning when the filter
is dynamic and let the parts prune, in parallel, against the latest
bound.

Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M8NsCJMx4C45Wf2Df24qzZ
@joseph-isaacs joseph-isaacs added the action/bench-sql Run SQL benchmarks without Vortex Compact on this PR label Oct 26, 2026 — with Claude
@github-actions github-actions Bot removed the action/bench-sql Run SQL benchmarks without Vortex Compact on this PR label Oct 26, 2026
Every part of a V2 scan reads through its own IO session, so parts
whose chunks cut into the same column segment each read it. ClickBench
q23's row-id fetch, which reads all 105 columns for a few rows,
re-requested 430 segments (46 MB) that V1's layout readers read once.
Keep a scan-wide map of each segment's read, held weakly, so a session
shares a read another session still holds. A read lives no longer than
before: the map only keeps it while some session does.

Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M8NsCJMx4C45Wf2Df24qzZ
This reverts e4eb6f2. CI measured ClickBench q24 at +7.6% against V1
without the file-level pruning, where it was -8.8% with it, and no
query gained, so prune the file at initialize and each part again when
a thread takes it.

Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M8NsCJMx4C45Wf2Df24qzZ
@joseph-isaacs joseph-isaacs added the action/bench-sql Run SQL benchmarks without Vortex Compact on this PR label Oct 26, 2026 — with Claude
@github-actions github-actions Bot removed the action/bench-sql Run SQL benchmarks without Vortex Compact on this PR label Oct 26, 2026
A projection that packs fields by path, such as DuckDB's row-id fetch of
every column beside its row ids, kept an Eval of the whole pack above a
Pack plan. Each chunk then built the struct, renamed its fields and
packed it again, comparing the 105-field ClickBench dtypes deeply at
each step, and rebuilt a row index for every row of the chunk before
taking the few selected ones.

EvalPackRule now lifts a pack whose fields are all field paths into a
non-nullable Pack child into one PackPlan, stepping each path straight
into its column's plan, and ExpressionPackRule steps a field path into
its field without annotating every field. RowIdx compiles a lazy
sequence, as the V1 row index reader does, so a sparse mask produces
only its rows.

On ClickBench q23, single threaded under callgrind, the V2 scan now
runs 3.21G instructions, against 3.56G before and 3.32G for V1, and
plans each file in a third of the time.

Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M8NsCJMx4C45Wf2Df24qzZ
A row-id fetch, such as DuckDB's late materialization in ClickBench q23,
selects a few rows of each file, but each wide column segment it touches
is needed by every chunk that selects a row of it. The chunks run one
after another, so sharing a read only while another session holds it
read those segments again: 3905 requests for 2312 segments, 849 MB read
for 321 MB of segments. A scan whose selection keeps at most one row in
1024 now retains its reads for its lifetime, as V1's layout readers do.

The DuckDB driver also planned every chunk of such a file as a part,
most of them empty, and offered DuckDB a thread for each. It now keeps
only the chunks with a selected row, each its own part.

Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M8NsCJMx4C45Wf2Df24qzZ
@joseph-isaacs joseph-isaacs added the action/bench-sql Run SQL benchmarks without Vortex Compact on this PR label Oct 27, 2026 — with Claude
@github-actions github-actions Bot removed the action/bench-sql Run SQL benchmarks without Vortex Compact on this PR label Oct 27, 2026

Copy link
Copy Markdown
Contributor Author

The failing CodSpeed Performance Analysis check on 0ad75b1 flags one benchmark: starts_with_avx512[64, VarBin] (vortex-array/benches/row_fn_utf8_input.rs), 56.2 µs → 62.9 µs (−10.6%).

This isn't from this PR's changes: the PR changes only vortex-layout, vortex-duckdb, bench-orchestrator and the benchmark runners. That kernel and its benchmark don't use any of them. It's also a Walltime result, which CodSpeed itself warns is unreliable outside its Macro Runners. The same kind of one-off walltime flag showed up on earlier heads of this PR in other untouched vortex-array benchmarks. No fix to port; leaving it to be acknowledged on CodSpeed.


Generated by Claude Code

@joseph-isaacs joseph-isaacs added action/bench-sql Run SQL benchmarks without Vortex Compact on this PR action/bench-random-access Run only the random-access benchmark on this PR action/bench-compress Run only the compression benchmark on this PR labels Oct 27, 2026
@github-actions github-actions Bot removed action/bench-sql Run SQL benchmarks without Vortex Compact on this PR action/bench-compress Run only the compression benchmark on this PR action/bench-random-access Run only the random-access benchmark on this PR labels Oct 27, 2026

This branch has not been deployed

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

Labels

changelog/chore A trivial change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants