Skip to content

perf: Eliminate a join a foreign key makes redundant - #24793

Draft
Dandandan wants to merge 1 commit into
apache:mainfrom
Dandandan:feat/fk-join-elimination
Draft

perf: Eliminate a join a foreign key makes redundant#24793
Dandandan wants to merge 1 commit into
apache:mainfrom
Dandandan:feat/fk-join-elimination

Conversation

@Dandandan

Copy link
Copy Markdown
Contributor

Which issue does this PR close?

  • Closes #.

Rationale for this change

A fact table often joins a dimension purely to check that a row exists:

SELECT ss_item_sk FROM store_sales, promotion WHERE ss_promo_sk = p_promo_sk

No column of promotion is used and nothing filters it. eliminate_join
already turns this into a semi join, because p_promo_sk is a primary key. But
if a foreign key says every ss_promo_sk exists in promotion, the check is
guaranteed to succeed and the join can be dropped entirely.

DataFusion had no way to say that. Constraint had only PrimaryKey and
Unique, and the SQL planner rejected foreign keys outright with "Foreign key
constraints are not currently supported".

What changes are included in this PR?

  • Constraint::ForeignKey { columns, referenced_table, referenced_columns },
    taken on trust like the existing constraints, round-tripping through proto.
  • The SQL planner accepts FOREIGN KEY (..) REFERENCES t(..) and the inline
    col INT REFERENCES t(c) form.
  • eliminate_join drops a join the foreign key makes redundant.
  • dfbench declares the TPC-DS foreign keys. Its comment previously read
    "TPC-DS also defines foreign keys, but those are currently unsupported".

Two details worth review:

The join is replaced by its left input under a col IS NOT NULL filter, not
dropped outright. A foreign key column may be nullable, and the semi join it
replaces does drop rows whose key is NULL, so the filter preserves that. It
also covers the case where an outer join further down padded the column.

The rewrite only fires when the referenced side is an unfiltered scan of the
referenced table. A foreign key promises the value exists in the table, not
that it survives a predicate, so a filtered dimension keeps its join.

Benchmarks

TPC-DS SF1, primary keys declared in both runs, median of 3, plus the movers
re-checked at 9 iterations:

query without foreign keys with
q64 347 ms 239 ms 1.45x
q18 92 ms 76 ms 1.22x
suite 9551 ms 9440 ms -1.2%

q64 loses 6 joins: promotion twice and income_band four times. q23 and q24
looked like regressions at 3 iterations but their plans are unchanged, and at 9
iterations they are flat.

TPC-H is unaffected: all of its dimension joins carry filters.

Are these changes tested?

Yes. functional_dependencies.slt covers the rewrite, the results it produces,
and the two cases that must keep the join: a predicate on the referenced side,
and a query that uses one of its columns. Three cases in group_by.slt that
asserted foreign keys were rejected now assert they are accepted.

All 99 TPC-DS queries were checked to return identical results with and without
the foreign keys declared. The full sqllogictest suite (504 files) and the
workspace test suite pass.

Are there any user-facing changes?

FOREIGN KEY in CREATE TABLE is accepted instead of erroring, and joins it
makes redundant are removed. Constraint gains a variant, so exhaustive matches
on it need a new arm; this is an API change.

When a fact table joins a dimension on a foreign key, uses none of the
dimension's columns, and does not filter it, the join only checks that a row
that is guaranteed to exist does exist. `eliminate_join` already turns that
into a semi join; with the foreign key declared it can drop the join entirely.

DataFusion had no way to declare one. `Constraint` gains a `ForeignKey`
variant, the SQL planner accepts `FOREIGN KEY (..) REFERENCES t(..)` and the
inline `REFERENCES` form instead of rejecting them, and both round-trip through
proto.

The join is replaced by the left input under a `col IS NOT NULL` filter rather
than dropped outright. A foreign key column may be nullable, and a semi join
drops rows whose key is NULL, so the filter preserves that. It also covers an
outer join further down having padded the column with NULLs.

The rewrite only applies when the referenced side is an unfiltered scan of the
referenced table: a foreign key promises the value exists in the table, not
that it survives a predicate.

`dfbench` declares the TPC-DS foreign keys, which its comment previously noted
as unsupported. On TPC-DS SF1 that removes 6 joins from q64, taking it from
347 ms to 239 ms (1.45x), and q18 from 92 ms to 76 ms (1.22x), for -1.2% on the
suite. All 99 queries return unchanged results.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SgqwvctZdvR1ZCz2hbkEJC
@github-actions github-actions Bot added sql SQL Planner physical-expr Changes to the physical-expr crates optimizer Optimizer rules sqllogictest SQL Logic Tests (.slt) common Related to common crate proto Related to proto crate datasource Changes to the datasource crate labels Aug 30, 2026
@github-actions

Copy link
Copy Markdown

Thank you for opening this pull request!

Reviewer note: cargo-semver-checks reported the current version number is not SemVer-compatible with the changes in this pull request (compared against the base branch).

Details
     Cloning apache/main
    Building datafusion-common v55.0.0 (current)
       Built [  37.391s] (current)
     Parsing datafusion-common v55.0.0 (current)
      Parsed [   0.062s] (current)
    Building datafusion-common v55.0.0 (baseline)
       Built [  34.673s] (baseline)
     Parsing datafusion-common v55.0.0 (baseline)
      Parsed [   0.062s] (baseline)
    Checking datafusion-common v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.730s] 223 checks: 222 pass, 1 fail, 0 warn, 31 skip

--- failure enum_variant_added: enum variant added on exhaustive enum ---

Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.50.0/src/lints/enum_variant_added.ron

Failed in:
  variant Constraint:ForeignKey in /home/runner/work/datafusion/datafusion/datafusion/common/src/functional_dependencies.rs:39

     Summary semver requires new major version: 1 major and 0 minor checks failed
    Finished [  74.248s] datafusion-common
    Building datafusion-datasource v55.0.0 (current)
       Built [  44.768s] (current)
     Parsing datafusion-datasource v55.0.0 (current)
      Parsed [   0.033s] (current)
    Building datafusion-datasource v55.0.0 (baseline)
       Built [  45.178s] (baseline)
     Parsing datafusion-datasource v55.0.0 (baseline)
      Parsed [   0.033s] (baseline)
    Checking datafusion-datasource v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.250s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [  91.354s] datafusion-datasource
    Building datafusion-optimizer v55.0.0 (current)
       Built [  28.525s] (current)
     Parsing datafusion-optimizer v55.0.0 (current)
      Parsed [   0.031s] (current)
    Building datafusion-optimizer v55.0.0 (baseline)
       Built [  28.396s] (baseline)
     Parsing datafusion-optimizer v55.0.0 (baseline)
      Parsed [   0.032s] (baseline)
    Checking datafusion-optimizer v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.162s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [  57.935s] datafusion-optimizer
    Building datafusion-physical-expr v55.0.0 (current)
       Built [  30.645s] (current)
     Parsing datafusion-physical-expr v55.0.0 (current)
      Parsed [   0.049s] (current)
    Building datafusion-physical-expr v55.0.0 (baseline)
       Built [  29.293s] (baseline)
     Parsing datafusion-physical-expr v55.0.0 (baseline)
      Parsed [   0.050s] (baseline)
    Checking datafusion-physical-expr v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.319s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [  61.233s] datafusion-physical-expr
    Building datafusion-proto-common v55.0.0 (current)
       Built [  22.543s] (current)
     Parsing datafusion-proto-common v55.0.0 (current)
      Parsed [   0.047s] (current)
    Building datafusion-proto-common v55.0.0 (baseline)
       Built [  22.230s] (baseline)
     Parsing datafusion-proto-common v55.0.0 (baseline)
      Parsed [   0.049s] (baseline)
    Checking datafusion-proto-common v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   1.124s] 223 checks: 222 pass, 1 fail, 0 warn, 31 skip

--- failure enum_variant_added: enum variant added on exhaustive enum ---

Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.50.0/src/lints/enum_variant_added.ron

Failed in:
  variant ConstraintMode:ForeignKey in /home/runner/work/datafusion/datafusion/datafusion/proto-common/src/generated/prost.rs:83
  variant ConstraintMode:ForeignKey in /home/runner/work/datafusion/datafusion/datafusion/proto-common/src/generated/prost.rs:83
  variant ConstraintMode:ForeignKey in /home/runner/work/datafusion/datafusion/datafusion/proto-common/src/generated/prost.rs:83

     Summary semver requires new major version: 1 major and 0 minor checks failed
    Finished [  47.007s] datafusion-proto-common
    Building datafusion-proto-models v55.0.0 (current)
       Built [  26.388s] (current)
     Parsing datafusion-proto-models v55.0.0 (current)
      Parsed [   0.131s] (current)
    Building datafusion-proto-models v55.0.0 (baseline)
       Built [  25.738s] (baseline)
     Parsing datafusion-proto-models v55.0.0 (baseline)
      Parsed [   0.134s] (baseline)
    Checking datafusion-proto-models v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   1.762s] 223 checks: 222 pass, 1 fail, 0 warn, 31 skip

--- failure enum_variant_added: enum variant added on exhaustive enum ---

Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.50.0/src/lints/enum_variant_added.ron

Failed in:
  variant ConstraintMode:ForeignKey in /home/runner/work/datafusion/datafusion/datafusion/proto-models/src/generated/datafusion_proto_common.rs:83
  variant ConstraintMode:ForeignKey in /home/runner/work/datafusion/datafusion/datafusion/proto-models/src/generated/datafusion_proto_common.rs:83

     Summary semver requires new major version: 1 major and 0 minor checks failed
    Finished [  55.219s] datafusion-proto-models
    Building datafusion-sql v55.0.0 (current)
       Built [  42.936s] (current)
     Parsing datafusion-sql v55.0.0 (current)
      Parsed [   0.031s] (current)
    Building datafusion-sql v55.0.0 (baseline)
       Built [  42.213s] (baseline)
     Parsing datafusion-sql v55.0.0 (baseline)
      Parsed [   0.032s] (baseline)
    Checking datafusion-sql v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.267s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [  86.519s] datafusion-sql
    Building datafusion-sqllogictest v55.0.0 (current)
       Built [ 100.655s] (current)
     Parsing datafusion-sqllogictest v55.0.0 (current)
      Parsed [   0.021s] (current)
    Building datafusion-sqllogictest v55.0.0 (baseline)
       Built [ 101.762s] (baseline)
     Parsing datafusion-sqllogictest v55.0.0 (baseline)
      Parsed [   0.023s] (baseline)
    Checking datafusion-sqllogictest v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.096s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [ 205.017s] datafusion-sqllogictest

@github-actions github-actions Bot added the auto detected api change Auto detected API change label Aug 30, 2026
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 45.26316% with 156 lines in your changes missing coverage. Please review.
✅ Project coverage is 81.50%. Comparing base (61bf6b9) to head (d043a7e).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
datafusion/proto-common/src/generated/pbjson.rs 0.00% 85 Missing ⚠️
benchmarks/src/tpcds/run.rs 0.00% 23 Missing ⚠️
datafusion/optimizer/src/eliminate_join.rs 87.71% 5 Missing and 9 partials ⚠️
datafusion/common/src/functional_dependencies.rs 21.42% 11 Missing ⚠️
datafusion/proto-common/src/from_proto/mod.rs 0.00% 8 Missing ⚠️
datafusion/proto-common/src/to_proto/mod.rs 0.00% 6 Missing ⚠️
datafusion/sql/src/statement.rs 80.64% 4 Missing and 2 partials ⚠️
...on/physical-expr/src/equivalence/properties/mod.rs 0.00% 2 Missing ⚠️
datafusion/datasource/src/file_scan_config/mod.rs 50.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #24793      +/-   ##
==========================================
- Coverage   81.52%   81.50%   -0.03%     
==========================================
  Files        1123     1123              
  Lines      405970   406320     +350     
  Branches   405970   406320     +350     
==========================================
+ Hits       330978   331162     +184     
- Misses      55627    55781     +154     
- Partials    19365    19377      +12     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@Dandandan

Copy link
Copy Markdown
Contributor Author

run benchmark tpcds

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5468398109-2044-mzz25 6.12.85+ #1 SMP Sat Jun 27 09:31:30 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected

Comparing feat/fk-join-elimination (d043a7e) to 61bf6b9 (merge-base) diff

Run configuration
run benchmark tpcds

Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance: c4a-highmem-16 (12 vCPU / 65 GiB)

Comparing feat/fk-join-elimination (d043a7e) to 61bf6b9 (merge-base) diff

Run configuration
run benchmark tpcds
CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected
Details

Comparing HEAD and feat_fk-join-elimination
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃       HEAD ┃ feat_fk-join-elimination ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1  │    5.87 ms │                  6.27 ms │  1.07x slower │
│ QQuery 2  │   81.58 ms │                 83.00 ms │     no change │
│ QQuery 3  │   29.66 ms │                 30.01 ms │     no change │
│ QQuery 4  │  523.56 ms │                540.89 ms │     no change │
│ QQuery 5  │   53.08 ms │                 53.07 ms │     no change │
│ QQuery 6  │   38.14 ms │                 37.77 ms │     no change │
│ QQuery 7  │   77.05 ms │                 75.53 ms │     no change │
│ QQuery 8  │   37.77 ms │                 37.16 ms │     no change │
│ QQuery 9  │   53.56 ms │                 53.34 ms │     no change │
│ QQuery 10 │   64.92 ms │                 63.47 ms │     no change │
│ QQuery 11 │  351.08 ms │                331.03 ms │ +1.06x faster │
│ QQuery 12 │   30.75 ms │                 29.84 ms │     no change │
│ QQuery 13 │  123.02 ms │                119.32 ms │     no change │
│ QQuery 14 │  426.70 ms │                426.20 ms │     no change │
│ QQuery 15 │   66.87 ms │                 62.55 ms │ +1.07x faster │
│ QQuery 16 │    7.30 ms │                  7.40 ms │     no change │
│ QQuery 17 │   82.35 ms │                 82.15 ms │     no change │
│ QQuery 18 │  109.54 ms │                 89.80 ms │ +1.22x faster │
│ QQuery 19 │   42.73 ms │                 42.56 ms │     no change │
│ QQuery 20 │   36.96 ms │                 37.86 ms │     no change │
│ QQuery 21 │   17.83 ms │                 18.02 ms │     no change │
│ QQuery 22 │   67.47 ms │                 66.45 ms │     no change │
│ QQuery 23 │  334.40 ms │                327.61 ms │     no change │
│ QQuery 24 │  208.16 ms │                210.27 ms │     no change │
│ QQuery 25 │  112.46 ms │                112.46 ms │     no change │
│ QQuery 26 │   50.44 ms │                 50.40 ms │     no change │
│ QQuery 27 │    6.55 ms │                  6.65 ms │     no change │
│ QQuery 28 │   61.52 ms │                 56.96 ms │ +1.08x faster │
│ QQuery 29 │   99.31 ms │                 98.47 ms │     no change │
│ QQuery 30 │   34.06 ms │                 34.35 ms │     no change │
│ QQuery 31 │  114.06 ms │                114.65 ms │     no change │
│ QQuery 32 │   21.48 ms │                 21.35 ms │     no change │
│ QQuery 33 │   39.18 ms │                 38.59 ms │     no change │
│ QQuery 34 │   10.52 ms │                 10.66 ms │     no change │
│ QQuery 35 │   77.56 ms │                 76.56 ms │     no change │
│ QQuery 36 │    6.18 ms │                  6.35 ms │     no change │
│ QQuery 37 │    7.16 ms │                  7.23 ms │     no change │
│ QQuery 38 │   66.18 ms │                 65.30 ms │     no change │
│ QQuery 39 │   95.53 ms │                 93.70 ms │     no change │
│ QQuery 40 │   25.58 ms │                 25.61 ms │     no change │
│ QQuery 41 │   11.84 ms │                 12.19 ms │     no change │
│ QQuery 42 │   24.56 ms │                 24.37 ms │     no change │
│ QQuery 43 │    5.64 ms │                  5.44 ms │     no change │
│ QQuery 44 │    9.94 ms │                 10.05 ms │     no change │
│ QQuery 45 │   43.24 ms │                 41.80 ms │     no change │
│ QQuery 46 │   12.60 ms │                 12.58 ms │     no change │
│ QQuery 47 │  252.28 ms │                245.70 ms │     no change │
│ QQuery 48 │   97.90 ms │                 94.89 ms │     no change │
│ QQuery 49 │   72.70 ms │                 73.14 ms │     no change │
│ QQuery 50 │   59.89 ms │                 61.33 ms │     no change │
│ QQuery 51 │   92.81 ms │                 94.65 ms │     no change │
│ QQuery 52 │   24.80 ms │                 24.75 ms │     no change │
│ QQuery 53 │   29.86 ms │                 32.70 ms │  1.10x slower │
│ QQuery 54 │   56.19 ms │                 56.26 ms │     no change │
│ QQuery 55 │   24.33 ms │                 24.08 ms │     no change │
│ QQuery 56 │   40.88 ms │                 39.81 ms │     no change │
│ QQuery 57 │  185.46 ms │                178.77 ms │     no change │
│ QQuery 58 │  117.25 ms │                114.35 ms │     no change │
│ QQuery 59 │  121.03 ms │                119.71 ms │     no change │
│ QQuery 60 │   41.38 ms │                 41.01 ms │     no change │
│ QQuery 61 │   12.97 ms │                 12.86 ms │     no change │
│ QQuery 62 │   48.16 ms │                 47.00 ms │     no change │
│ QQuery 63 │   30.52 ms │                 32.85 ms │  1.08x slower │
│ QQuery 64 │  389.89 ms │                256.92 ms │ +1.52x faster │
│ QQuery 65 │  132.26 ms │                130.10 ms │     no change │
│ QQuery 66 │   86.71 ms │                 86.50 ms │     no change │
│ QQuery 67 │  278.30 ms │                280.21 ms │     no change │
│ QQuery 68 │   12.98 ms │                 13.19 ms │     no change │
│ QQuery 69 │   60.54 ms │                 59.14 ms │     no change │
│ QQuery 70 │  111.77 ms │                113.43 ms │     no change │
│ QQuery 71 │   37.54 ms │                 37.28 ms │     no change │
│ QQuery 72 │ 1971.22 ms │               1956.51 ms │     no change │
│ QQuery 73 │   11.42 ms │                 11.07 ms │     no change │
│ QQuery 74 │  205.04 ms │                202.20 ms │     no change │
│ QQuery 75 │  153.48 ms │                151.56 ms │     no change │
│ QQuery 76 │   37.18 ms │                 36.85 ms │     no change │
│ QQuery 77 │   63.93 ms │                 64.27 ms │     no change │
│ QQuery 78 │  235.54 ms │                238.29 ms │     no change │
│ QQuery 79 │   69.29 ms │                 70.02 ms │     no change │
│ QQuery 80 │  102.22 ms │                106.79 ms │     no change │
│ QQuery 81 │   27.37 ms │                 28.03 ms │     no change │
│ QQuery 82 │   17.25 ms │                 17.72 ms │     no change │
│ QQuery 83 │   35.41 ms │                 35.60 ms │     no change │
│ QQuery 84 │   30.31 ms │                 30.51 ms │     no change │
│ QQuery 85 │  106.48 ms │                108.15 ms │     no change │
│ QQuery 86 │   26.25 ms │                 27.00 ms │     no change │
│ QQuery 87 │   64.70 ms │                 67.35 ms │     no change │
│ QQuery 88 │   65.60 ms │                 66.06 ms │     no change │
│ QQuery 89 │   36.44 ms │                 37.03 ms │     no change │
│ QQuery 90 │   17.81 ms │                 18.03 ms │     no change │
│ QQuery 91 │   46.29 ms │                 46.84 ms │     no change │
│ QQuery 92 │   31.41 ms │                 31.83 ms │     no change │
│ QQuery 93 │   52.13 ms │                 52.80 ms │     no change │
│ QQuery 94 │   39.77 ms │                 41.17 ms │     no change │
│ QQuery 95 │   83.79 ms │                 83.76 ms │     no change │
│ QQuery 96 │   24.83 ms │                 24.61 ms │     no change │
│ QQuery 97 │   53.44 ms │                 55.23 ms │     no change │
│ QQuery 98 │   44.78 ms │                 46.00 ms │     no change │
│ QQuery 99 │   71.74 ms │                 72.21 ms │     no change │
└───────────┴────────────┴──────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary                       ┃           ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD)                       │ 9949.46ms │
│ Total Time (feat_fk-join-elimination)   │ 9755.41ms │
│ Average Time (HEAD)                     │  100.50ms │
│ Average Time (feat_fk-join-elimination) │   98.54ms │
│ Queries Faster                          │         5 │
│ Queries Slower                          │         3 │
│ Queries with No Change                  │        91 │
│ Queries with Failure                    │         0 │
└─────────────────────────────────────────┴───────────┘

Distribution per query (min / mean ±stddev / max):

Comparing HEAD and feat_fk-join-elimination
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                                  HEAD ┃              feat_fk-join-elimination ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1  │           5.87 / 6.40 ±0.88 / 8.14 ms │           6.27 / 6.78 ±0.89 / 8.55 ms │  1.06x slower │
│ QQuery 2  │        81.58 / 81.91 ±0.30 / 82.29 ms │        83.00 / 83.30 ±0.24 / 83.70 ms │     no change │
│ QQuery 3  │        29.66 / 29.99 ±0.24 / 30.41 ms │        30.01 / 30.32 ±0.24 / 30.66 ms │     no change │
│ QQuery 4  │     523.56 / 532.02 ±6.97 / 541.16 ms │     540.89 / 547.23 ±4.78 / 552.59 ms │     no change │
│ QQuery 5  │        53.08 / 53.52 ±0.26 / 53.79 ms │        53.07 / 53.90 ±0.70 / 55.06 ms │     no change │
│ QQuery 6  │        38.14 / 39.18 ±0.54 / 39.60 ms │        37.77 / 38.30 ±0.67 / 39.50 ms │     no change │
│ QQuery 7  │        77.05 / 78.27 ±1.22 / 80.48 ms │        75.53 / 77.77 ±1.70 / 80.13 ms │     no change │
│ QQuery 8  │        37.77 / 37.96 ±0.14 / 38.17 ms │        37.16 / 37.73 ±0.42 / 38.23 ms │     no change │
│ QQuery 9  │        53.56 / 56.36 ±2.84 / 61.64 ms │        53.34 / 56.48 ±1.77 / 58.49 ms │     no change │
│ QQuery 10 │        64.92 / 65.12 ±0.15 / 65.28 ms │        63.47 / 63.74 ±0.26 / 64.17 ms │     no change │
│ QQuery 11 │     351.08 / 352.86 ±1.78 / 355.31 ms │     331.03 / 334.31 ±1.86 / 336.53 ms │ +1.06x faster │
│ QQuery 12 │        30.75 / 31.11 ±0.30 / 31.65 ms │        29.84 / 30.34 ±0.34 / 30.88 ms │     no change │
│ QQuery 13 │     123.02 / 124.34 ±0.88 / 125.76 ms │     119.32 / 120.59 ±1.11 / 122.65 ms │     no change │
│ QQuery 14 │     426.70 / 428.21 ±0.77 / 428.86 ms │     426.20 / 431.12 ±4.09 / 436.70 ms │     no change │
│ QQuery 15 │        66.87 / 68.22 ±0.90 / 69.55 ms │        62.55 / 63.28 ±0.48 / 63.96 ms │ +1.08x faster │
│ QQuery 16 │          7.30 / 8.39 ±1.96 / 12.31 ms │           7.40 / 7.58 ±0.12 / 7.73 ms │ +1.11x faster │
│ QQuery 17 │        82.35 / 83.98 ±1.51 / 86.08 ms │        82.15 / 83.01 ±0.81 / 84.19 ms │     no change │
│ QQuery 18 │     109.54 / 110.74 ±1.34 / 113.35 ms │        89.80 / 90.90 ±0.64 / 91.68 ms │ +1.22x faster │
│ QQuery 19 │        42.73 / 44.54 ±1.81 / 46.89 ms │        42.56 / 42.80 ±0.20 / 43.04 ms │     no change │
│ QQuery 20 │        36.96 / 37.79 ±1.01 / 39.74 ms │        37.86 / 38.43 ±0.42 / 38.99 ms │     no change │
│ QQuery 21 │        17.83 / 18.23 ±0.38 / 18.94 ms │        18.02 / 18.26 ±0.25 / 18.71 ms │     no change │
│ QQuery 22 │        67.47 / 68.34 ±0.50 / 68.94 ms │        66.45 / 67.18 ±0.52 / 68.02 ms │     no change │
│ QQuery 23 │     334.40 / 341.31 ±7.66 / 353.89 ms │     327.61 / 333.40 ±3.66 / 338.86 ms │     no change │
│ QQuery 24 │     208.16 / 211.96 ±3.06 / 216.61 ms │     210.27 / 214.05 ±4.91 / 223.74 ms │     no change │
│ QQuery 25 │     112.46 / 115.87 ±5.29 / 126.30 ms │     112.46 / 113.62 ±1.16 / 115.63 ms │     no change │
│ QQuery 26 │        50.44 / 50.54 ±0.11 / 50.74 ms │        50.40 / 52.16 ±2.86 / 57.86 ms │     no change │
│ QQuery 27 │           6.55 / 6.74 ±0.20 / 7.12 ms │           6.65 / 6.82 ±0.16 / 7.12 ms │     no change │
│ QQuery 28 │        61.52 / 62.00 ±0.44 / 62.81 ms │        56.96 / 60.10 ±2.37 / 62.70 ms │     no change │
│ QQuery 29 │      99.31 / 102.63 ±3.07 / 107.16 ms │      98.47 / 100.05 ±1.41 / 102.19 ms │     no change │
│ QQuery 30 │        34.06 / 34.23 ±0.09 / 34.32 ms │        34.35 / 36.57 ±2.46 / 41.33 ms │  1.07x slower │
│ QQuery 31 │     114.06 / 115.29 ±0.76 / 116.17 ms │     114.65 / 115.19 ±0.55 / 116.11 ms │     no change │
│ QQuery 32 │        21.48 / 23.19 ±1.86 / 26.44 ms │        21.35 / 21.60 ±0.23 / 21.93 ms │ +1.07x faster │
│ QQuery 33 │        39.18 / 39.83 ±0.60 / 40.94 ms │        38.59 / 39.32 ±1.05 / 41.36 ms │     no change │
│ QQuery 34 │        10.52 / 10.70 ±0.10 / 10.83 ms │        10.66 / 13.04 ±3.63 / 20.14 ms │  1.22x slower │
│ QQuery 35 │        77.56 / 77.96 ±0.24 / 78.23 ms │        76.56 / 77.77 ±0.69 / 78.68 ms │     no change │
│ QQuery 36 │           6.18 / 6.32 ±0.13 / 6.50 ms │           6.35 / 6.50 ±0.09 / 6.62 ms │     no change │
│ QQuery 37 │           7.16 / 7.28 ±0.21 / 7.70 ms │           7.23 / 7.35 ±0.07 / 7.45 ms │     no change │
│ QQuery 38 │        66.18 / 67.06 ±0.45 / 67.49 ms │        65.30 / 65.77 ±0.41 / 66.40 ms │     no change │
│ QQuery 39 │        95.53 / 97.29 ±1.08 / 98.93 ms │       93.70 / 96.40 ±2.31 / 100.44 ms │     no change │
│ QQuery 40 │        25.58 / 26.06 ±0.28 / 26.38 ms │        25.61 / 26.24 ±0.55 / 27.17 ms │     no change │
│ QQuery 41 │        11.84 / 12.03 ±0.19 / 12.37 ms │        12.19 / 12.43 ±0.15 / 12.62 ms │     no change │
│ QQuery 42 │        24.56 / 24.75 ±0.10 / 24.82 ms │        24.37 / 24.98 ±0.43 / 25.64 ms │     no change │
│ QQuery 43 │           5.64 / 5.74 ±0.09 / 5.88 ms │           5.44 / 5.68 ±0.17 / 5.98 ms │     no change │
│ QQuery 44 │         9.94 / 10.02 ±0.06 / 10.10 ms │        10.05 / 10.16 ±0.11 / 10.37 ms │     no change │
│ QQuery 45 │        43.24 / 45.54 ±2.60 / 50.49 ms │        41.80 / 42.38 ±0.73 / 43.69 ms │ +1.07x faster │
│ QQuery 46 │        12.60 / 12.71 ±0.10 / 12.86 ms │        12.58 / 12.99 ±0.38 / 13.66 ms │     no change │
│ QQuery 47 │     252.28 / 257.15 ±3.69 / 262.88 ms │     245.70 / 251.75 ±4.85 / 258.75 ms │     no change │
│ QQuery 48 │       97.90 / 99.26 ±1.95 / 103.11 ms │        94.89 / 95.42 ±0.50 / 96.34 ms │     no change │
│ QQuery 49 │        72.70 / 73.36 ±0.48 / 74.09 ms │        73.14 / 75.16 ±2.06 / 78.98 ms │     no change │
│ QQuery 50 │        59.89 / 60.54 ±0.34 / 60.88 ms │        61.33 / 62.06 ±0.53 / 62.74 ms │     no change │
│ QQuery 51 │       92.81 / 98.12 ±5.63 / 108.90 ms │        94.65 / 95.71 ±1.10 / 97.62 ms │     no change │
│ QQuery 52 │        24.80 / 25.30 ±0.35 / 25.86 ms │        24.75 / 25.48 ±1.05 / 27.56 ms │     no change │
│ QQuery 53 │        29.86 / 30.18 ±0.39 / 30.95 ms │        32.70 / 35.24 ±3.78 / 42.76 ms │  1.17x slower │
│ QQuery 54 │        56.19 / 56.40 ±0.15 / 56.64 ms │        56.26 / 56.56 ±0.26 / 56.94 ms │     no change │
│ QQuery 55 │        24.33 / 24.59 ±0.16 / 24.80 ms │        24.08 / 24.27 ±0.19 / 24.61 ms │     no change │
│ QQuery 56 │        40.88 / 41.65 ±1.19 / 44.03 ms │        39.81 / 40.54 ±0.82 / 42.09 ms │     no change │
│ QQuery 57 │     185.46 / 187.79 ±3.02 / 193.58 ms │     178.77 / 183.23 ±4.67 / 192.00 ms │     no change │
│ QQuery 58 │     117.25 / 119.32 ±1.56 / 122.09 ms │     114.35 / 115.32 ±0.85 / 116.63 ms │     no change │
│ QQuery 59 │     121.03 / 123.39 ±2.40 / 127.98 ms │     119.71 / 120.37 ±0.41 / 120.88 ms │     no change │
│ QQuery 60 │        41.38 / 42.07 ±0.62 / 43.21 ms │        41.01 / 41.74 ±0.71 / 42.65 ms │     no change │
│ QQuery 61 │        12.97 / 13.30 ±0.17 / 13.45 ms │        12.86 / 13.02 ±0.12 / 13.17 ms │     no change │
│ QQuery 62 │        48.16 / 48.45 ±0.19 / 48.66 ms │        47.00 / 47.26 ±0.19 / 47.50 ms │     no change │
│ QQuery 63 │        30.52 / 30.99 ±0.38 / 31.44 ms │        32.85 / 33.23 ±0.26 / 33.54 ms │  1.07x slower │
│ QQuery 64 │     389.89 / 393.10 ±3.72 / 399.71 ms │     256.92 / 258.50 ±1.59 / 261.28 ms │ +1.52x faster │
│ QQuery 65 │     132.26 / 137.59 ±5.78 / 148.60 ms │     130.10 / 132.20 ±2.81 / 137.70 ms │     no change │
│ QQuery 66 │        86.71 / 87.33 ±0.62 / 88.28 ms │        86.50 / 87.08 ±0.43 / 87.52 ms │     no change │
│ QQuery 67 │     278.30 / 285.27 ±4.75 / 290.81 ms │     280.21 / 288.07 ±6.77 / 296.04 ms │     no change │
│ QQuery 68 │        12.98 / 13.62 ±0.65 / 14.74 ms │        13.19 / 13.37 ±0.10 / 13.48 ms │     no change │
│ QQuery 69 │        60.54 / 60.85 ±0.25 / 61.14 ms │        59.14 / 59.99 ±0.53 / 60.79 ms │     no change │
│ QQuery 70 │     111.77 / 117.90 ±7.46 / 132.36 ms │     113.43 / 120.37 ±5.65 / 127.22 ms │     no change │
│ QQuery 71 │        37.54 / 37.87 ±0.18 / 38.06 ms │        37.28 / 37.56 ±0.22 / 37.89 ms │     no change │
│ QQuery 72 │ 1971.22 / 2098.04 ±71.08 / 2174.32 ms │ 1956.51 / 2072.29 ±87.80 / 2196.03 ms │     no change │
│ QQuery 73 │        11.42 / 12.50 ±1.38 / 15.12 ms │        11.07 / 11.27 ±0.23 / 11.66 ms │ +1.11x faster │
│ QQuery 74 │     205.04 / 210.29 ±3.84 / 214.68 ms │     202.20 / 204.69 ±2.40 / 209.11 ms │     no change │
│ QQuery 75 │     153.48 / 155.15 ±1.38 / 157.60 ms │     151.56 / 155.87 ±4.88 / 165.37 ms │     no change │
│ QQuery 76 │        37.18 / 40.47 ±3.75 / 46.81 ms │        36.85 / 37.39 ±0.39 / 37.97 ms │ +1.08x faster │
│ QQuery 77 │        63.93 / 64.66 ±0.62 / 65.50 ms │        64.27 / 68.96 ±5.57 / 79.32 ms │  1.07x slower │
│ QQuery 78 │     235.54 / 243.27 ±7.59 / 255.21 ms │     238.29 / 247.49 ±8.06 / 261.66 ms │     no change │
│ QQuery 79 │        69.29 / 69.81 ±0.41 / 70.37 ms │        70.02 / 70.69 ±0.69 / 71.96 ms │     no change │
│ QQuery 80 │     102.22 / 104.75 ±2.87 / 110.36 ms │     106.79 / 109.18 ±2.41 / 113.50 ms │     no change │
│ QQuery 81 │        27.37 / 27.66 ±0.25 / 28.12 ms │        28.03 / 28.58 ±0.31 / 28.94 ms │     no change │
│ QQuery 82 │        17.25 / 17.39 ±0.13 / 17.56 ms │        17.72 / 18.05 ±0.45 / 18.94 ms │     no change │
│ QQuery 83 │        35.41 / 35.59 ±0.17 / 35.85 ms │        35.60 / 36.66 ±0.73 / 37.80 ms │     no change │
│ QQuery 84 │        30.31 / 34.03 ±5.89 / 45.64 ms │        30.51 / 30.96 ±0.47 / 31.82 ms │ +1.10x faster │
│ QQuery 85 │     106.48 / 107.58 ±0.86 / 108.74 ms │     108.15 / 111.15 ±2.85 / 116.51 ms │     no change │
│ QQuery 86 │        26.25 / 26.54 ±0.25 / 26.89 ms │        27.00 / 27.68 ±0.43 / 28.34 ms │     no change │
│ QQuery 87 │        64.70 / 66.84 ±1.67 / 69.08 ms │        67.35 / 67.74 ±0.29 / 68.14 ms │     no change │
│ QQuery 88 │        65.60 / 65.98 ±0.29 / 66.46 ms │        66.06 / 68.86 ±3.19 / 74.74 ms │     no change │
│ QQuery 89 │        36.44 / 36.97 ±0.54 / 38.01 ms │        37.03 / 37.39 ±0.41 / 38.16 ms │     no change │
│ QQuery 90 │        17.81 / 17.97 ±0.11 / 18.10 ms │        18.03 / 18.37 ±0.31 / 18.85 ms │     no change │
│ QQuery 91 │        46.29 / 46.75 ±0.37 / 47.41 ms │        46.84 / 47.67 ±0.82 / 49.13 ms │     no change │
│ QQuery 92 │        31.41 / 34.35 ±3.59 / 41.11 ms │        31.83 / 32.90 ±1.00 / 34.59 ms │     no change │
│ QQuery 93 │        52.13 / 53.26 ±0.74 / 54.28 ms │        52.80 / 53.58 ±0.67 / 54.81 ms │     no change │
│ QQuery 94 │        39.77 / 40.16 ±0.23 / 40.41 ms │        41.17 / 41.88 ±0.62 / 42.77 ms │     no change │
│ QQuery 95 │        83.79 / 84.19 ±0.29 / 84.63 ms │        83.76 / 84.78 ±0.80 / 85.72 ms │     no change │
│ QQuery 96 │        24.83 / 25.56 ±1.06 / 27.67 ms │        24.61 / 25.52 ±1.10 / 27.65 ms │     no change │
│ QQuery 97 │        53.44 / 55.94 ±2.09 / 59.70 ms │        55.23 / 56.33 ±1.38 / 58.85 ms │     no change │
│ QQuery 98 │        44.78 / 45.76 ±0.71 / 46.48 ms │        46.00 / 46.73 ±0.44 / 47.33 ms │     no change │
│ QQuery 99 │        71.74 / 72.32 ±0.37 / 72.73 ms │        72.21 / 72.57 ±0.34 / 73.09 ms │     no change │
└───────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary                       ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)                       │ 10223.72ms │
│ Total Time (feat_fk-join-elimination)   │ 10016.61ms │
│ Average Time (HEAD)                     │   103.27ms │
│ Average Time (feat_fk-join-elimination) │   101.18ms │
│ Queries Faster                          │         10 │
│ Queries Slower                          │          6 │
│ Queries with No Change                  │         83 │
│ Queries with Failure                    │          0 │
└─────────────────────────────────────────┴────────────┘

Resource Usage

tpcds — base (merge-base)

Metric Value
Wall time 55.0s
Peak memory 2.1 GiB
Avg memory 1.4 GiB
CPU user 225.3s
CPU sys 6.2s
Peak spill 0 B

tpcds — branch

Metric Value
Wall time 55.0s
Peak memory 2.3 GiB
Avg memory 1.5 GiB
CPU user 220.3s
CPU sys 6.0s
Peak spill 0 B

File an issue against this benchmark runner

@Dandandan

Copy link
Copy Markdown
Contributor Author

run benchmark tpcds

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5471121711-2046-wgmzl 6.12.85+ #1 SMP Sat Jun 27 09:31:30 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected

Comparing feat/fk-join-elimination (d043a7e) to 61bf6b9 (merge-base) diff

Run configuration
run benchmark tpcds

Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance: c4a-highmem-16 (12 vCPU / 65 GiB)

Comparing feat/fk-join-elimination (d043a7e) to 61bf6b9 (merge-base) diff

Run configuration
run benchmark tpcds
CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected
Details

Comparing HEAD and feat_fk-join-elimination
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃       HEAD ┃ feat_fk-join-elimination ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1  │    5.65 ms │                  5.76 ms │     no change │
│ QQuery 2  │   80.98 ms │                 81.34 ms │     no change │
│ QQuery 3  │   28.67 ms │                 29.15 ms │     no change │
│ QQuery 4  │  484.04 ms │                486.49 ms │     no change │
│ QQuery 5  │   51.61 ms │                 51.68 ms │     no change │
│ QQuery 6  │   36.11 ms │                 35.99 ms │     no change │
│ QQuery 7  │   75.00 ms │                 74.30 ms │     no change │
│ QQuery 8  │   36.39 ms │                 36.35 ms │     no change │
│ QQuery 9  │   52.51 ms │                 52.76 ms │     no change │
│ QQuery 10 │   62.89 ms │                 62.24 ms │     no change │
│ QQuery 11 │  294.47 ms │                295.44 ms │     no change │
│ QQuery 12 │   29.65 ms │                 28.43 ms │     no change │
│ QQuery 13 │  117.92 ms │                116.33 ms │     no change │
│ QQuery 14 │  416.10 ms │                418.10 ms │     no change │
│ QQuery 15 │   57.20 ms │                 57.54 ms │     no change │
│ QQuery 16 │    6.80 ms │                  6.88 ms │     no change │
│ QQuery 17 │   79.73 ms │                 79.74 ms │     no change │
│ QQuery 18 │  103.48 ms │                 85.15 ms │ +1.22x faster │
│ QQuery 19 │   41.15 ms │                 40.99 ms │     no change │
│ QQuery 20 │   34.91 ms │                 35.66 ms │     no change │
│ QQuery 21 │   16.84 ms │                 17.23 ms │     no change │
│ QQuery 22 │   62.91 ms │                 62.62 ms │     no change │
│ QQuery 23 │  308.65 ms │                311.53 ms │     no change │
│ QQuery 24 │  190.91 ms │                194.86 ms │     no change │
│ QQuery 25 │  110.12 ms │                109.58 ms │     no change │
│ QQuery 26 │   48.81 ms │                 47.80 ms │     no change │
│ QQuery 27 │    6.03 ms │                  6.12 ms │     no change │
│ QQuery 28 │   60.07 ms │                 56.69 ms │ +1.06x faster │
│ QQuery 29 │   96.65 ms │                 97.02 ms │     no change │
│ QQuery 30 │   32.20 ms │                 32.72 ms │     no change │
│ QQuery 31 │  110.01 ms │                109.70 ms │     no change │
│ QQuery 32 │   20.11 ms │                 20.08 ms │     no change │
│ QQuery 33 │   37.19 ms │                 37.73 ms │     no change │
│ QQuery 34 │    9.94 ms │                 10.00 ms │     no change │
│ QQuery 35 │   72.54 ms │                 72.22 ms │     no change │
│ QQuery 36 │    5.76 ms │                  5.84 ms │     no change │
│ QQuery 37 │    6.75 ms │                  6.85 ms │     no change │
│ QQuery 38 │   61.93 ms │                 61.43 ms │     no change │
│ QQuery 39 │   89.36 ms │                 90.46 ms │     no change │
│ QQuery 40 │   23.51 ms │                 23.84 ms │     no change │
│ QQuery 41 │   11.07 ms │                 11.16 ms │     no change │
│ QQuery 42 │   23.66 ms │                 23.53 ms │     no change │
│ QQuery 43 │    5.28 ms │                  5.19 ms │     no change │
│ QQuery 44 │    9.41 ms │                  9.46 ms │     no change │
│ QQuery 45 │   37.22 ms │                 38.31 ms │     no change │
│ QQuery 46 │   11.92 ms │                 12.33 ms │     no change │
│ QQuery 47 │  223.24 ms │                226.41 ms │     no change │
│ QQuery 48 │   95.17 ms │                 92.14 ms │     no change │
│ QQuery 49 │   70.80 ms │                 71.36 ms │     no change │
│ QQuery 50 │   59.00 ms │                 60.01 ms │     no change │
│ QQuery 51 │   93.58 ms │                 92.75 ms │     no change │
│ QQuery 52 │   24.53 ms │                 24.26 ms │     no change │
│ QQuery 53 │   29.18 ms │                 31.88 ms │  1.09x slower │
│ QQuery 54 │   53.95 ms │                 54.26 ms │     no change │
│ QQuery 55 │   23.11 ms │                 23.28 ms │     no change │
│ QQuery 56 │   38.63 ms │                 38.84 ms │     no change │
│ QQuery 57 │  175.43 ms │                174.74 ms │     no change │
│ QQuery 58 │  111.56 ms │                112.14 ms │     no change │
│ QQuery 59 │  117.33 ms │                117.88 ms │     no change │
│ QQuery 60 │   38.70 ms │                 39.28 ms │     no change │
│ QQuery 61 │   12.08 ms │                 12.17 ms │     no change │
│ QQuery 62 │   46.23 ms │                 46.08 ms │     no change │
│ QQuery 63 │   29.06 ms │                 31.83 ms │  1.10x slower │
│ QQuery 64 │  364.38 ms │                245.26 ms │ +1.49x faster │
│ QQuery 65 │  124.05 ms │                126.01 ms │     no change │
│ QQuery 66 │   81.80 ms │                 80.69 ms │     no change │
│ QQuery 67 │  237.32 ms │                239.06 ms │     no change │
│ QQuery 68 │   11.82 ms │                 12.01 ms │     no change │
│ QQuery 69 │   57.18 ms │                 56.82 ms │     no change │
│ QQuery 70 │  106.53 ms │                105.60 ms │     no change │
│ QQuery 71 │   35.30 ms │                 34.96 ms │     no change │
│ QQuery 72 │ 1853.47 ms │               1910.35 ms │     no change │
│ QQuery 73 │    9.95 ms │                  9.92 ms │     no change │
│ QQuery 74 │  177.41 ms │                170.51 ms │     no change │
│ QQuery 75 │  147.11 ms │                145.29 ms │     no change │
│ QQuery 76 │   35.68 ms │                 35.10 ms │     no change │
│ QQuery 77 │   62.48 ms │                 60.52 ms │     no change │
│ QQuery 78 │  221.66 ms │                216.28 ms │     no change │
│ QQuery 79 │   66.74 ms │                 66.33 ms │     no change │
│ QQuery 80 │  100.54 ms │                 98.96 ms │     no change │
│ QQuery 81 │   26.21 ms │                 25.88 ms │     no change │
│ QQuery 82 │   16.54 ms │                 16.06 ms │     no change │
│ QQuery 83 │   34.78 ms │                 34.43 ms │     no change │
│ QQuery 84 │   30.04 ms │                 28.93 ms │     no change │
│ QQuery 85 │  103.21 ms │                101.89 ms │     no change │
│ QQuery 86 │   25.01 ms │                 25.04 ms │     no change │
│ QQuery 87 │   61.57 ms │                 61.19 ms │     no change │
│ QQuery 88 │   62.98 ms │                 63.63 ms │     no change │
│ QQuery 89 │   35.05 ms │                 35.13 ms │     no change │
│ QQuery 90 │   17.00 ms │                 17.06 ms │     no change │
│ QQuery 91 │   44.77 ms │                 44.73 ms │     no change │
│ QQuery 92 │   28.78 ms │                 29.06 ms │     no change │
│ QQuery 93 │   49.68 ms │                 50.54 ms │     no change │
│ QQuery 94 │   37.95 ms │                 37.58 ms │     no change │
│ QQuery 95 │   80.35 ms │                 79.97 ms │     no change │
│ QQuery 96 │   23.88 ms │                 23.89 ms │     no change │
│ QQuery 97 │   53.21 ms │                 52.54 ms │     no change │
│ QQuery 98 │   42.83 ms │                 42.30 ms │     no change │
│ QQuery 99 │   69.86 ms │                 69.87 ms │     no change │
└───────────┴────────────┴──────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary                       ┃           ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD)                       │ 9342.76ms │
│ Total Time (feat_fk-join-elimination)   │ 9257.29ms │
│ Average Time (HEAD)                     │   94.37ms │
│ Average Time (feat_fk-join-elimination) │   93.51ms │
│ Queries Faster                          │         3 │
│ Queries Slower                          │         2 │
│ Queries with No Change                  │        94 │
│ Queries with Failure                    │         0 │
└─────────────────────────────────────────┴───────────┘

Distribution per query (min / mean ±stddev / max):

Comparing HEAD and feat_fk-join-elimination
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                                  HEAD ┃             feat_fk-join-elimination ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1  │           5.65 / 6.18 ±0.93 / 8.04 ms │          5.76 / 6.29 ±0.94 / 8.17 ms │     no change │
│ QQuery 2  │        80.98 / 81.17 ±0.10 / 81.27 ms │       81.34 / 81.77 ±0.29 / 82.08 ms │     no change │
│ QQuery 3  │        28.67 / 28.96 ±0.27 / 29.38 ms │       29.15 / 29.28 ±0.11 / 29.43 ms │     no change │
│ QQuery 4  │     484.04 / 486.19 ±1.27 / 487.70 ms │   486.49 / 496.83 ±13.60 / 523.43 ms │     no change │
│ QQuery 5  │        51.61 / 52.96 ±1.32 / 55.32 ms │       51.68 / 52.08 ±0.32 / 52.64 ms │     no change │
│ QQuery 6  │        36.11 / 36.49 ±0.32 / 36.86 ms │       35.99 / 36.57 ±0.40 / 37.21 ms │     no change │
│ QQuery 7  │        75.00 / 75.42 ±0.43 / 76.03 ms │       74.30 / 74.58 ±0.20 / 74.86 ms │     no change │
│ QQuery 8  │        36.39 / 37.85 ±2.59 / 43.02 ms │       36.35 / 37.34 ±1.62 / 40.58 ms │     no change │
│ QQuery 9  │        52.51 / 54.03 ±1.52 / 56.68 ms │       52.76 / 53.92 ±0.97 / 55.51 ms │     no change │
│ QQuery 10 │        62.89 / 63.40 ±0.43 / 64.20 ms │       62.24 / 62.66 ±0.26 / 63.02 ms │     no change │
│ QQuery 11 │     294.47 / 302.49 ±4.10 / 306.08 ms │    295.44 / 299.13 ±3.03 / 303.95 ms │     no change │
│ QQuery 12 │        29.65 / 29.84 ±0.12 / 29.99 ms │       28.43 / 28.94 ±0.45 / 29.74 ms │     no change │
│ QQuery 13 │     117.92 / 119.84 ±1.03 / 120.66 ms │    116.33 / 116.98 ±0.62 / 117.81 ms │     no change │
│ QQuery 14 │     416.10 / 419.33 ±2.35 / 421.92 ms │    418.10 / 420.11 ±1.73 / 422.17 ms │     no change │
│ QQuery 15 │        57.20 / 59.45 ±2.71 / 64.72 ms │       57.54 / 59.05 ±1.34 / 61.46 ms │     no change │
│ QQuery 16 │           6.80 / 7.01 ±0.21 / 7.39 ms │          6.88 / 7.04 ±0.23 / 7.50 ms │     no change │
│ QQuery 17 │        79.73 / 81.27 ±1.05 / 82.66 ms │       79.74 / 81.33 ±1.65 / 83.74 ms │     no change │
│ QQuery 18 │     103.48 / 105.01 ±1.38 / 107.58 ms │       85.15 / 86.10 ±0.56 / 86.77 ms │ +1.22x faster │
│ QQuery 19 │        41.15 / 41.68 ±0.38 / 42.23 ms │       40.99 / 41.36 ±0.42 / 42.02 ms │     no change │
│ QQuery 20 │        34.91 / 35.90 ±0.60 / 36.79 ms │       35.66 / 36.14 ±0.40 / 36.61 ms │     no change │
│ QQuery 21 │        16.84 / 17.17 ±0.28 / 17.60 ms │       17.23 / 17.49 ±0.21 / 17.73 ms │     no change │
│ QQuery 22 │        62.91 / 63.92 ±0.81 / 65.34 ms │       62.62 / 63.46 ±0.49 / 63.98 ms │     no change │
│ QQuery 23 │     308.65 / 312.29 ±2.61 / 315.09 ms │    311.53 / 314.11 ±3.59 / 321.20 ms │     no change │
│ QQuery 24 │     190.91 / 194.24 ±4.55 / 203.14 ms │    194.86 / 197.00 ±2.36 / 201.06 ms │     no change │
│ QQuery 25 │     110.12 / 111.29 ±1.01 / 112.91 ms │    109.58 / 110.85 ±1.59 / 113.91 ms │     no change │
│ QQuery 26 │        48.81 / 49.08 ±0.28 / 49.57 ms │       47.80 / 48.55 ±0.40 / 48.93 ms │     no change │
│ QQuery 27 │           6.03 / 6.21 ±0.22 / 6.61 ms │          6.12 / 6.32 ±0.13 / 6.46 ms │     no change │
│ QQuery 28 │        60.07 / 61.30 ±1.57 / 64.38 ms │       56.69 / 60.13 ±1.74 / 61.31 ms │     no change │
│ QQuery 29 │        96.65 / 97.73 ±0.61 / 98.51 ms │     97.02 / 101.00 ±4.96 / 110.59 ms │     no change │
│ QQuery 30 │        32.20 / 32.39 ±0.12 / 32.57 ms │       32.72 / 33.01 ±0.27 / 33.40 ms │     no change │
│ QQuery 31 │     110.01 / 111.73 ±2.69 / 117.08 ms │    109.70 / 111.67 ±2.81 / 117.20 ms │     no change │
│ QQuery 32 │        20.11 / 20.36 ±0.15 / 20.58 ms │       20.08 / 20.37 ±0.25 / 20.81 ms │     no change │
│ QQuery 33 │        37.19 / 38.01 ±0.81 / 39.49 ms │       37.73 / 38.68 ±0.90 / 40.32 ms │     no change │
│ QQuery 34 │         9.94 / 10.14 ±0.20 / 10.49 ms │       10.00 / 10.20 ±0.24 / 10.68 ms │     no change │
│ QQuery 35 │        72.54 / 72.79 ±0.20 / 73.11 ms │       72.22 / 72.97 ±0.77 / 74.14 ms │     no change │
│ QQuery 36 │           5.76 / 6.35 ±0.92 / 8.17 ms │          5.84 / 5.94 ±0.15 / 6.24 ms │ +1.07x faster │
│ QQuery 37 │           6.75 / 6.79 ±0.04 / 6.86 ms │          6.85 / 6.93 ±0.05 / 7.01 ms │     no change │
│ QQuery 38 │        61.93 / 62.57 ±0.44 / 63.04 ms │       61.43 / 62.57 ±1.69 / 65.91 ms │     no change │
│ QQuery 39 │        89.36 / 90.74 ±1.35 / 93.17 ms │       90.46 / 91.38 ±1.25 / 93.79 ms │     no change │
│ QQuery 40 │        23.51 / 23.86 ±0.22 / 24.17 ms │       23.84 / 24.07 ±0.21 / 24.45 ms │     no change │
│ QQuery 41 │        11.07 / 11.18 ±0.10 / 11.35 ms │       11.16 / 11.32 ±0.17 / 11.55 ms │     no change │
│ QQuery 42 │        23.66 / 24.27 ±0.68 / 25.46 ms │       23.53 / 23.85 ±0.20 / 24.14 ms │     no change │
│ QQuery 43 │           5.28 / 5.38 ±0.13 / 5.62 ms │          5.19 / 5.30 ±0.14 / 5.57 ms │     no change │
│ QQuery 44 │           9.41 / 9.51 ±0.07 / 9.61 ms │        9.46 / 11.01 ±2.64 / 16.29 ms │  1.16x slower │
│ QQuery 45 │        37.22 / 38.03 ±0.47 / 38.63 ms │       38.31 / 39.13 ±0.57 / 40.04 ms │     no change │
│ QQuery 46 │        11.92 / 12.49 ±0.92 / 14.32 ms │       12.33 / 12.65 ±0.30 / 13.16 ms │     no change │
│ QQuery 47 │     223.24 / 225.64 ±1.32 / 227.12 ms │    226.41 / 228.41 ±1.47 / 230.46 ms │     no change │
│ QQuery 48 │        95.17 / 95.80 ±0.49 / 96.47 ms │       92.14 / 92.81 ±0.35 / 93.21 ms │     no change │
│ QQuery 49 │        70.80 / 71.41 ±0.37 / 71.81 ms │       71.36 / 72.94 ±1.76 / 76.19 ms │     no change │
│ QQuery 50 │        59.00 / 60.05 ±1.47 / 62.96 ms │       60.01 / 60.82 ±0.87 / 62.48 ms │     no change │
│ QQuery 51 │       93.58 / 95.94 ±3.07 / 101.61 ms │       92.75 / 94.13 ±1.21 / 96.12 ms │     no change │
│ QQuery 52 │        24.53 / 24.64 ±0.09 / 24.78 ms │       24.26 / 24.71 ±0.42 / 25.39 ms │     no change │
│ QQuery 53 │        29.18 / 29.75 ±0.71 / 31.14 ms │       31.88 / 32.35 ±0.41 / 33.02 ms │  1.09x slower │
│ QQuery 54 │        53.95 / 54.18 ±0.17 / 54.32 ms │       54.26 / 54.73 ±0.62 / 55.90 ms │     no change │
│ QQuery 55 │        23.11 / 23.26 ±0.12 / 23.47 ms │       23.28 / 23.68 ±0.31 / 24.05 ms │     no change │
│ QQuery 56 │        38.63 / 40.41 ±2.12 / 44.48 ms │       38.84 / 38.98 ±0.12 / 39.21 ms │     no change │
│ QQuery 57 │     175.43 / 176.43 ±1.08 / 178.32 ms │    174.74 / 177.56 ±2.29 / 181.63 ms │     no change │
│ QQuery 58 │     111.56 / 112.38 ±0.84 / 113.82 ms │    112.14 / 114.25 ±1.89 / 117.64 ms │     no change │
│ QQuery 59 │     117.33 / 118.95 ±2.20 / 123.30 ms │    117.88 / 118.23 ±0.26 / 118.55 ms │     no change │
│ QQuery 60 │        38.70 / 39.70 ±1.02 / 41.59 ms │       39.28 / 41.09 ±2.27 / 45.53 ms │     no change │
│ QQuery 61 │        12.08 / 12.35 ±0.22 / 12.74 ms │       12.17 / 12.38 ±0.17 / 12.67 ms │     no change │
│ QQuery 62 │        46.23 / 47.12 ±0.87 / 48.25 ms │       46.08 / 46.50 ±0.38 / 47.19 ms │     no change │
│ QQuery 63 │        29.06 / 29.23 ±0.12 / 29.44 ms │       31.83 / 32.25 ±0.25 / 32.53 ms │  1.10x slower │
│ QQuery 64 │     364.38 / 368.93 ±2.36 / 370.73 ms │    245.26 / 247.59 ±2.38 / 252.00 ms │ +1.49x faster │
│ QQuery 65 │     124.05 / 124.80 ±0.82 / 126.36 ms │    126.01 / 127.64 ±1.59 / 130.18 ms │     no change │
│ QQuery 66 │        81.80 / 82.96 ±1.12 / 84.99 ms │       80.69 / 80.93 ±0.13 / 81.06 ms │     no change │
│ QQuery 67 │     237.32 / 243.67 ±3.83 / 247.17 ms │    239.06 / 243.96 ±4.03 / 249.75 ms │     no change │
│ QQuery 68 │        11.82 / 12.01 ±0.17 / 12.33 ms │       12.01 / 12.34 ±0.33 / 12.97 ms │     no change │
│ QQuery 69 │        57.18 / 58.64 ±1.72 / 61.96 ms │       56.82 / 57.17 ±0.19 / 57.36 ms │     no change │
│ QQuery 70 │     106.53 / 108.60 ±3.12 / 114.83 ms │    105.60 / 106.23 ±0.47 / 106.80 ms │     no change │
│ QQuery 71 │        35.30 / 36.29 ±1.57 / 39.39 ms │       34.96 / 37.39 ±3.13 / 43.59 ms │     no change │
│ QQuery 72 │ 1853.47 / 1927.54 ±55.42 / 2025.17 ms │ 1910.35 / 1919.44 ±6.70 / 1929.71 ms │     no change │
│ QQuery 73 │         9.95 / 10.24 ±0.38 / 10.98 ms │        9.92 / 10.37 ±0.35 / 10.72 ms │     no change │
│ QQuery 74 │     177.41 / 180.98 ±3.39 / 186.85 ms │    170.51 / 171.78 ±0.65 / 172.29 ms │ +1.05x faster │
│ QQuery 75 │     147.11 / 148.75 ±0.90 / 149.73 ms │    145.29 / 146.25 ±0.69 / 147.39 ms │     no change │
│ QQuery 76 │        35.68 / 36.54 ±0.52 / 37.09 ms │       35.10 / 35.43 ±0.25 / 35.82 ms │     no change │
│ QQuery 77 │        62.48 / 63.78 ±2.07 / 67.91 ms │       60.52 / 60.86 ±0.29 / 61.25 ms │     no change │
│ QQuery 78 │     221.66 / 226.09 ±3.43 / 231.86 ms │    216.28 / 221.68 ±3.88 / 227.12 ms │     no change │
│ QQuery 79 │        66.74 / 69.53 ±3.46 / 76.29 ms │       66.33 / 69.00 ±3.72 / 76.32 ms │     no change │
│ QQuery 80 │     100.54 / 102.35 ±1.15 / 103.74 ms │     98.96 / 101.38 ±2.22 / 104.27 ms │     no change │
│ QQuery 81 │        26.21 / 26.40 ±0.13 / 26.63 ms │       25.88 / 26.15 ±0.20 / 26.43 ms │     no change │
│ QQuery 82 │        16.54 / 16.82 ±0.29 / 17.35 ms │       16.06 / 16.28 ±0.15 / 16.50 ms │     no change │
│ QQuery 83 │        34.78 / 36.53 ±3.11 / 42.75 ms │       34.43 / 36.42 ±3.70 / 43.82 ms │     no change │
│ QQuery 84 │        30.04 / 30.36 ±0.51 / 31.38 ms │       28.93 / 29.75 ±0.64 / 30.90 ms │     no change │
│ QQuery 85 │     103.21 / 105.61 ±1.66 / 107.48 ms │    101.89 / 103.00 ±0.88 / 104.05 ms │     no change │
│ QQuery 86 │        25.01 / 25.43 ±0.22 / 25.62 ms │       25.04 / 25.39 ±0.40 / 26.16 ms │     no change │
│ QQuery 87 │        61.57 / 63.62 ±2.60 / 68.46 ms │       61.19 / 63.74 ±2.81 / 69.04 ms │     no change │
│ QQuery 88 │        62.98 / 63.61 ±0.42 / 64.09 ms │       63.63 / 64.24 ±0.64 / 65.40 ms │     no change │
│ QQuery 89 │        35.05 / 35.72 ±0.49 / 36.52 ms │       35.13 / 35.72 ±0.33 / 36.02 ms │     no change │
│ QQuery 90 │        17.00 / 17.20 ±0.21 / 17.60 ms │       17.06 / 17.24 ±0.19 / 17.56 ms │     no change │
│ QQuery 91 │        44.77 / 44.96 ±0.35 / 45.66 ms │       44.73 / 46.68 ±3.11 / 52.87 ms │     no change │
│ QQuery 92 │        28.78 / 30.89 ±3.28 / 37.41 ms │       29.06 / 29.69 ±0.34 / 30.02 ms │     no change │
│ QQuery 93 │        49.68 / 50.24 ±0.60 / 51.21 ms │       50.54 / 51.32 ±0.74 / 52.50 ms │     no change │
│ QQuery 94 │        37.95 / 39.12 ±2.03 / 43.17 ms │       37.58 / 38.31 ±0.65 / 39.30 ms │     no change │
│ QQuery 95 │        80.35 / 81.01 ±0.44 / 81.68 ms │       79.97 / 81.54 ±2.35 / 86.22 ms │     no change │
│ QQuery 96 │        23.88 / 24.13 ±0.27 / 24.48 ms │       23.89 / 24.77 ±1.31 / 27.35 ms │     no change │
│ QQuery 97 │        53.21 / 54.17 ±1.31 / 56.73 ms │       52.54 / 53.45 ±0.61 / 54.13 ms │     no change │
│ QQuery 98 │        42.83 / 44.21 ±1.23 / 46.42 ms │       42.30 / 42.84 ±0.61 / 43.87 ms │     no change │
│ QQuery 99 │        69.86 / 70.32 ±0.27 / 70.70 ms │       69.87 / 71.61 ±3.05 / 77.70 ms │     no change │
└───────────┴───────────────────────────────────────┴──────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary                       ┃           ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD)                       │ 9533.63ms │
│ Total Time (feat_fk-join-elimination)   │ 9380.89ms │
│ Average Time (HEAD)                     │   96.30ms │
│ Average Time (feat_fk-join-elimination) │   94.76ms │
│ Queries Faster                          │         4 │
│ Queries Slower                          │         3 │
│ Queries with No Change                  │        92 │
│ Queries with Failure                    │         0 │
└─────────────────────────────────────────┴───────────┘

Resource Usage

tpcds — base (merge-base)

Metric Value
Wall time 50.0s
Peak memory 2.0 GiB
Avg memory 1.3 GiB
CPU user 207.2s
CPU sys 5.2s
Peak spill 0 B

tpcds — branch

Metric Value
Wall time 50.0s
Peak memory 2.1 GiB
Avg memory 1.3 GiB
CPU user 210.3s
CPU sys 5.4s
Peak spill 0 B

File an issue against this benchmark runner

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

Labels

auto detected api change Auto detected API change common Related to common crate datasource Changes to the datasource crate optimizer Optimizer rules physical-expr Changes to the physical-expr crates proto Related to proto crate sql SQL Planner sqllogictest SQL Logic Tests (.slt)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants