Skip to content

fix: avoid FixedSizeList overflow in hash join build materialization#21023

Open
kumarUjjawal wants to merge 2 commits intoapache:mainfrom
kumarUjjawal:fix/#20673
Open

fix: avoid FixedSizeList overflow in hash join build materialization#21023
kumarUjjawal wants to merge 2 commits intoapache:mainfrom
kumarUjjawal:fix/#20673

Conversation

@kumarUjjawal
Copy link
Contributor

Which issue does this PR close?

Rationale for this change

Issue #20673 describes a panic in FULL OUTER JOIN when the build side includes a FixedSizeList column and the total element count exceeds u32::MAX.

The problem was caused by HashJoinExec concatenating the entire build side into a single batch. For FixedSizeList, this leads to take() hitting Arrow’s internal u32 indexing limit and panicking.

The fix removes the single-batch assumption. Instead, the build side remains batched, and logical row indices are mapped back to their original batches. This avoids creating oversized FixedSizeListArray instances and prevents the panic.

What changes are included in this PR?

Fix this by keeping the build side in logical batch order instead of materializing one giant RecordBatch. Add batch-aware helpers for build-side row materialization, join-key equality checks, join filters, and final unmatched-row output, while preserving existing join semantics.

Also add regression coverage for large FixedSizeList build-side indices and unmatched-row output, unit tests for the new batch helpers.

Are these changes tested?

Yes

Are there any user-facing changes?

@github-actions github-actions bot added the physical-plan Changes to the physical-plan crate label Mar 18, 2026
@Dandandan
Copy link
Contributor

run benchmarks

@adriangbot
Copy link

🤖 Benchmark running (GKE) | trigger
Linux bench-c4087852060-447-x7jrc 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing fix/#20673 (3ec2baa) to 6ab16cc (merge-base) diff using: tpcds
Results will be posted here when complete

@adriangbot
Copy link

🤖 Benchmark running (GKE) | trigger
Linux bench-c4087852060-448-gbrqf 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing fix/#20673 (3ec2baa) to 6ab16cc (merge-base) diff using: tpch
Results will be posted here when complete

@adriangbot
Copy link

🤖 Benchmark running (GKE) | trigger
Linux bench-c4087852060-446-xmp4x 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing fix/#20673 (3ec2baa) to 6ab16cc (merge-base) diff using: clickbench_partitioned
Results will be posted here when complete

@adriangbot
Copy link

🤖 Benchmark completed (GKE) | trigger

Details

Comparing HEAD and fix_#20673
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                           HEAD ┃                        fix_#20673 ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1  │ 45.72 / 46.72 ±1.08 / 48.22 ms │    45.73 / 46.21 ±0.68 / 47.56 ms │     no change │
│ QQuery 2  │ 25.71 / 26.04 ±0.28 / 26.48 ms │    25.37 / 25.63 ±0.38 / 26.38 ms │     no change │
│ QQuery 3  │ 33.92 / 34.15 ±0.22 / 34.54 ms │    33.22 / 33.46 ±0.14 / 33.67 ms │     no change │
│ QQuery 4  │ 21.67 / 22.72 ±0.88 / 23.74 ms │    21.60 / 22.40 ±0.44 / 22.85 ms │     no change │
│ QQuery 5  │ 50.42 / 53.15 ±2.64 / 57.87 ms │    50.30 / 51.54 ±1.35 / 53.53 ms │     no change │
│ QQuery 6  │ 18.02 / 19.10 ±1.21 / 20.76 ms │    17.45 / 17.78 ±0.26 / 18.23 ms │ +1.07x faster │
│ QQuery 7  │ 56.81 / 58.16 ±1.05 / 59.55 ms │    60.09 / 61.66 ±1.34 / 63.60 ms │  1.06x slower │
│ QQuery 8  │ 51.57 / 52.32 ±0.64 / 53.28 ms │    50.28 / 50.78 ±0.33 / 51.16 ms │     no change │
│ QQuery 9  │ 57.10 / 58.12 ±0.78 / 59.50 ms │    55.66 / 57.32 ±1.41 / 59.86 ms │     no change │
│ QQuery 10 │ 73.37 / 75.03 ±1.44 / 77.37 ms │    73.40 / 74.05 ±0.54 / 74.75 ms │     no change │
│ QQuery 11 │ 17.30 / 17.74 ±0.29 / 18.20 ms │    17.74 / 18.54 ±0.90 / 20.18 ms │     no change │
│ QQuery 12 │ 28.77 / 28.93 ±0.17 / 29.22 ms │    28.62 / 29.46 ±0.94 / 31.12 ms │     no change │
│ QQuery 13 │ 40.13 / 40.70 ±0.55 / 41.45 ms │    39.60 / 40.90 ±0.82 / 41.60 ms │     no change │
│ QQuery 14 │ 29.53 / 29.79 ±0.28 / 30.32 ms │    29.26 / 29.39 ±0.14 / 29.57 ms │     no change │
│ QQuery 15 │ 37.12 / 37.61 ±0.40 / 38.17 ms │    35.82 / 36.44 ±0.47 / 37.27 ms │     no change │
│ QQuery 16 │ 17.87 / 18.41 ±0.49 / 19.31 ms │    17.83 / 18.04 ±0.14 / 18.24 ms │     no change │
│ QQuery 17 │ 74.02 / 75.10 ±0.95 / 76.56 ms │    73.82 / 76.08 ±1.69 / 78.98 ms │     no change │
│ QQuery 18 │ 79.05 / 81.24 ±1.35 / 83.14 ms │ 101.34 / 103.00 ±1.04 / 103.89 ms │  1.27x slower │
│ QQuery 19 │ 38.73 / 39.59 ±0.84 / 41.01 ms │    38.88 / 39.50 ±0.43 / 40.04 ms │     no change │
│ QQuery 20 │ 43.18 / 44.64 ±1.24 / 46.44 ms │    43.34 / 43.80 ±0.36 / 44.18 ms │     no change │
│ QQuery 21 │ 68.69 / 71.10 ±1.33 / 72.77 ms │    72.93 / 75.54 ±1.33 / 76.49 ms │  1.06x slower │
│ QQuery 22 │ 21.15 / 21.33 ±0.18 / 21.66 ms │    20.18 / 20.55 ±0.26 / 20.94 ms │     no change │
└───────────┴────────────────────────────────┴───────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Benchmark Summary         ┃          ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ Total Time (HEAD)         │ 951.68ms │
│ Total Time (fix_#20673)   │ 972.05ms │
│ Average Time (HEAD)       │  43.26ms │
│ Average Time (fix_#20673) │  44.18ms │
│ Queries Faster            │        1 │
│ Queries Slower            │        3 │
│ Queries with No Change    │       18 │
│ Queries with Failure      │        0 │
└───────────────────────────┴──────────┘

Resource Usage

tpch — base (merge-base)

Metric Value
Wall time 5.0s
Peak memory 4.0 GiB
Avg memory 3.6 GiB
CPU user 33.1s
CPU sys 3.4s
Disk read 0 B
Disk write 148.0 KiB

tpch — branch

Metric Value
Wall time 5.1s
Peak memory 4.1 GiB
Avg memory 3.6 GiB
CPU user 35.4s
CPU sys 3.1s
Disk read 0 B
Disk write 56.0 KiB

@Dandandan
Copy link
Contributor

Dandandan commented Mar 19, 2026

#20944

there is an alternative approach here (still a bit messy code as I was experimenting around)

Key points:

  • we can pack / compose indices as e.g. (u32, u32) for batch index + offset to avoid "finding" the batch offset again
  • for the single batch cases (small left side) we can use take instead of interleave

That at least avoids regressing TPC-H, still some small regressions on TPC-DS

@adriangbot
Copy link

🤖 Benchmark completed (GKE) | trigger

Details

Comparing HEAD and fix_#20673
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┓
┃ Query     ┃                                     HEAD ┃                            fix_#20673 ┃         Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━┩
│ QQuery 1  │           47.81 / 48.47 ±0.66 / 49.55 ms │        47.53 / 48.21 ±0.60 / 48.95 ms │      no change │
│ QQuery 2  │        151.59 / 153.39 ±1.09 / 154.47 ms │     197.96 / 198.95 ±0.91 / 200.42 ms │   1.30x slower │
│ QQuery 3  │        115.66 / 117.06 ±1.38 / 119.71 ms │     121.39 / 122.07 ±0.66 / 123.19 ms │      no change │
│ QQuery 4  │    1320.69 / 1343.93 ±14.18 / 1362.42 ms │ 1735.23 / 1752.45 ±14.03 / 1775.12 ms │   1.30x slower │
│ QQuery 5  │        182.56 / 185.42 ±2.24 / 188.06 ms │     180.81 / 183.29 ±1.45 / 184.76 ms │      no change │
│ QQuery 6  │     993.30 / 1033.30 ±24.19 / 1055.82 ms │     392.18 / 395.59 ±3.77 / 402.84 ms │  +2.61x faster │
│ QQuery 7  │        354.77 / 359.88 ±4.64 / 366.68 ms │     356.03 / 359.79 ±1.98 / 361.17 ms │      no change │
│ QQuery 8  │        118.63 / 120.24 ±1.09 / 121.63 ms │     116.27 / 118.17 ±1.20 / 119.85 ms │      no change │
│ QQuery 9  │       112.34 / 119.10 ±10.08 / 139.10 ms │     111.40 / 117.12 ±3.15 / 120.92 ms │      no change │
│ QQuery 10 │        111.88 / 114.20 ±1.24 / 115.34 ms │     112.00 / 113.45 ±1.50 / 116.25 ms │      no change │
│ QQuery 11 │       906.51 / 923.43 ±10.83 / 940.06 ms │ 1310.96 / 1330.96 ±15.30 / 1346.37 ms │   1.44x slower │
│ QQuery 12 │           48.01 / 49.24 ±0.80 / 50.40 ms │        53.67 / 54.99 ±1.00 / 56.48 ms │   1.12x slower │
│ QQuery 13 │        403.95 / 409.62 ±3.05 / 412.56 ms │     403.50 / 405.71 ±1.75 / 408.54 ms │      no change │
│ QQuery 14 │     1076.84 / 1084.49 ±6.62 / 1095.60 ms │ 1361.54 / 1375.57 ±10.21 / 1389.13 ms │   1.27x slower │
│ QQuery 15 │           18.34 / 20.08 ±1.20 / 21.28 ms │        18.93 / 19.24 ±0.28 / 19.74 ms │      no change │
│ QQuery 16 │           44.58 / 45.54 ±0.67 / 46.45 ms │        43.96 / 45.30 ±0.75 / 46.09 ms │      no change │
│ QQuery 17 │        242.62 / 247.47 ±3.26 / 251.37 ms │     246.58 / 247.52 ±1.09 / 249.26 ms │      no change │
│ QQuery 18 │        133.92 / 134.89 ±1.12 / 136.74 ms │     133.80 / 134.70 ±0.82 / 136.00 ms │      no change │
│ QQuery 19 │        157.21 / 158.67 ±1.18 / 160.64 ms │     157.80 / 158.96 ±0.96 / 160.57 ms │      no change │
│ QQuery 20 │           16.46 / 16.88 ±0.31 / 17.29 ms │        16.33 / 16.69 ±0.34 / 17.13 ms │      no change │
│ QQuery 21 │           24.08 / 25.08 ±0.65 / 25.70 ms │        23.83 / 24.54 ±0.60 / 25.30 ms │      no change │
│ QQuery 22 │        489.64 / 494.71 ±4.50 / 501.66 ms │     546.70 / 551.37 ±2.72 / 554.60 ms │   1.11x slower │
│ QQuery 23 │        928.69 / 939.75 ±6.61 / 945.95 ms │  1006.16 / 1013.87 ±7.68 / 1025.24 ms │   1.08x slower │
│ QQuery 24 │        430.71 / 433.51 ±2.75 / 438.08 ms │     424.46 / 426.17 ±1.18 / 427.74 ms │      no change │
│ QQuery 25 │        359.35 / 361.97 ±2.27 / 366.20 ms │     356.70 / 359.65 ±1.84 / 361.99 ms │      no change │
│ QQuery 26 │           86.11 / 87.79 ±1.56 / 89.92 ms │        84.95 / 86.42 ±1.24 / 88.14 ms │      no change │
│ QQuery 27 │        351.29 / 353.83 ±1.70 / 356.59 ms │     350.72 / 353.39 ±3.76 / 360.79 ms │      no change │
│ QQuery 28 │        154.12 / 156.70 ±1.96 / 158.91 ms │     153.80 / 154.87 ±1.36 / 157.44 ms │      no change │
│ QQuery 29 │        304.15 / 306.78 ±2.48 / 309.91 ms │     297.96 / 300.94 ±2.12 / 304.45 ms │      no change │
│ QQuery 30 │           48.63 / 49.76 ±1.26 / 52.23 ms │        46.55 / 49.14 ±2.15 / 51.71 ms │      no change │
│ QQuery 31 │        180.02 / 181.44 ±1.32 / 183.57 ms │     174.68 / 176.37 ±1.18 / 178.20 ms │      no change │
│ QQuery 32 │         61.76 / 70.79 ±17.49 / 105.75 ms │        59.63 / 60.86 ±1.21 / 63.16 ms │  +1.16x faster │
│ QQuery 33 │        148.55 / 151.15 ±1.94 / 152.96 ms │     147.03 / 149.20 ±1.43 / 151.00 ms │      no change │
│ QQuery 34 │        109.66 / 110.79 ±0.77 / 111.71 ms │     109.82 / 111.46 ±1.03 / 112.91 ms │      no change │
│ QQuery 35 │        114.87 / 116.15 ±0.97 / 117.58 ms │     114.88 / 116.25 ±1.50 / 119.09 ms │      no change │
│ QQuery 36 │        220.81 / 223.55 ±2.77 / 228.10 ms │     223.34 / 227.99 ±2.92 / 230.97 ms │      no change │
│ QQuery 37 │        181.87 / 184.53 ±2.68 / 188.94 ms │     180.12 / 181.36 ±1.31 / 183.84 ms │      no change │
│ QQuery 38 │           91.21 / 94.56 ±1.75 / 96.08 ms │        92.42 / 95.30 ±1.68 / 97.52 ms │      no change │
│ QQuery 39 │        142.58 / 143.66 ±0.67 / 144.31 ms │     139.99 / 142.88 ±1.69 / 145.19 ms │      no change │
│ QQuery 40 │        115.01 / 122.24 ±7.68 / 136.10 ms │     112.40 / 114.55 ±1.81 / 117.59 ms │  +1.07x faster │
│ QQuery 41 │           17.76 / 18.53 ±0.71 / 19.68 ms │        18.09 / 18.50 ±0.35 / 18.96 ms │      no change │
│ QQuery 42 │        111.08 / 112.36 ±0.97 / 113.93 ms │     108.96 / 110.99 ±1.10 / 111.97 ms │      no change │
│ QQuery 43 │           86.61 / 87.57 ±0.61 / 88.42 ms │        85.42 / 85.92 ±0.51 / 86.55 ms │      no change │
│ QQuery 44 │           17.42 / 17.98 ±0.50 / 18.83 ms │        17.56 / 18.22 ±0.84 / 19.77 ms │      no change │
│ QQuery 45 │           56.46 / 57.61 ±1.00 / 59.37 ms │        56.25 / 57.24 ±0.76 / 58.54 ms │      no change │
│ QQuery 46 │        238.67 / 241.30 ±1.79 / 243.63 ms │     235.21 / 237.60 ±2.84 / 242.98 ms │      no change │
│ QQuery 47 │       730.38 / 755.97 ±22.82 / 787.41 ms │     816.82 / 823.23 ±5.90 / 833.06 ms │   1.09x slower │
│ QQuery 48 │        299.59 / 303.25 ±2.87 / 308.32 ms │     283.63 / 287.38 ±3.01 / 291.17 ms │  +1.06x faster │
│ QQuery 49 │        262.96 / 267.75 ±3.58 / 271.08 ms │     260.99 / 263.71 ±2.13 / 267.22 ms │      no change │
│ QQuery 50 │        246.40 / 251.48 ±4.27 / 258.21 ms │     237.67 / 242.71 ±2.74 / 245.62 ms │      no change │
│ QQuery 51 │        187.11 / 191.45 ±2.38 / 194.09 ms │     187.28 / 191.87 ±2.79 / 195.94 ms │      no change │
│ QQuery 52 │        109.86 / 110.69 ±0.57 / 111.64 ms │     108.82 / 110.38 ±0.93 / 111.38 ms │      no change │
│ QQuery 53 │        106.81 / 108.09 ±1.24 / 110.22 ms │     107.42 / 109.14 ±1.86 / 112.03 ms │      no change │
│ QQuery 54 │        155.41 / 156.58 ±1.52 / 159.40 ms │     152.18 / 153.71 ±0.98 / 155.19 ms │      no change │
│ QQuery 55 │        110.46 / 112.33 ±1.51 / 114.82 ms │     108.08 / 109.90 ±2.08 / 113.41 ms │      no change │
│ QQuery 56 │        151.95 / 152.40 ±0.57 / 153.52 ms │     147.90 / 149.33 ±0.97 / 150.28 ms │      no change │
│ QQuery 57 │        184.36 / 188.94 ±4.32 / 196.91 ms │     199.21 / 201.01 ±1.02 / 202.26 ms │   1.06x slower │
│ QQuery 58 │        300.64 / 310.60 ±8.16 / 323.44 ms │     315.21 / 318.88 ±2.60 / 323.14 ms │      no change │
│ QQuery 59 │        207.95 / 210.01 ±1.71 / 212.23 ms │     243.19 / 245.34 ±1.22 / 246.82 ms │   1.17x slower │
│ QQuery 60 │        153.95 / 155.49 ±1.31 / 157.31 ms │     151.32 / 152.96 ±1.00 / 154.44 ms │      no change │
│ QQuery 61 │        176.66 / 179.61 ±1.96 / 181.86 ms │     178.16 / 179.23 ±0.69 / 180.16 ms │      no change │
│ QQuery 62 │       894.31 / 931.41 ±25.22 / 973.17 ms │     230.94 / 246.64 ±7.99 / 252.68 ms │  +3.78x faster │
│ QQuery 63 │        107.94 / 110.67 ±2.24 / 114.26 ms │     106.43 / 109.11 ±1.89 / 112.35 ms │      no change │
│ QQuery 64 │        723.81 / 728.85 ±3.25 / 733.42 ms │     708.63 / 714.38 ±4.26 / 720.89 ms │      no change │
│ QQuery 65 │        256.99 / 261.30 ±3.20 / 265.32 ms │     250.93 / 256.81 ±4.01 / 261.72 ms │      no change │
│ QQuery 66 │        260.51 / 263.72 ±4.65 / 272.87 ms │     262.87 / 272.82 ±9.88 / 287.49 ms │      no change │
│ QQuery 67 │        314.16 / 323.40 ±7.96 / 336.19 ms │     328.27 / 333.14 ±3.55 / 337.83 ms │      no change │
│ QQuery 68 │        285.26 / 289.19 ±3.75 / 294.73 ms │     279.05 / 284.88 ±3.95 / 291.03 ms │      no change │
│ QQuery 69 │        108.52 / 109.24 ±0.61 / 109.90 ms │     107.48 / 108.18 ±0.66 / 109.21 ms │      no change │
│ QQuery 70 │        348.75 / 357.00 ±9.49 / 375.47 ms │     352.32 / 360.56 ±4.26 / 364.62 ms │      no change │
│ QQuery 71 │        137.88 / 140.23 ±1.99 / 142.78 ms │     138.96 / 142.18 ±3.61 / 148.56 ms │      no change │
│ QQuery 72 │       708.98 / 736.40 ±14.36 / 748.42 ms │    936.33 / 957.78 ±13.58 / 977.33 ms │   1.30x slower │
│ QQuery 73 │        106.26 / 108.49 ±1.72 / 110.88 ms │     105.67 / 107.59 ±1.83 / 110.82 ms │      no change │
│ QQuery 74 │        560.16 / 565.49 ±6.84 / 578.54 ms │    748.46 / 766.88 ±15.57 / 785.84 ms │   1.36x slower │
│ QQuery 75 │        289.17 / 291.76 ±1.44 / 293.23 ms │     303.17 / 304.38 ±0.74 / 305.26 ms │      no change │
│ QQuery 76 │        136.65 / 139.25 ±2.58 / 143.85 ms │     137.78 / 138.82 ±1.13 / 140.63 ms │      no change │
│ QQuery 77 │        200.92 / 202.25 ±1.67 / 205.38 ms │     201.15 / 203.01 ±1.41 / 204.38 ms │      no change │
│ QQuery 78 │        357.68 / 362.94 ±3.19 / 367.61 ms │     365.27 / 368.78 ±3.15 / 374.39 ms │      no change │
│ QQuery 79 │        239.21 / 241.59 ±1.77 / 244.34 ms │     236.65 / 238.73 ±2.56 / 243.63 ms │      no change │
│ QQuery 80 │        341.93 / 345.24 ±2.67 / 350.00 ms │     343.95 / 348.04 ±2.24 / 350.15 ms │      no change │
│ QQuery 81 │           32.06 / 33.09 ±1.19 / 35.40 ms │        31.95 / 32.94 ±0.75 / 33.78 ms │      no change │
│ QQuery 82 │        206.01 / 208.30 ±1.75 / 210.75 ms │     205.03 / 206.81 ±1.61 / 209.08 ms │      no change │
│ QQuery 83 │           46.90 / 47.75 ±0.59 / 48.75 ms │        50.11 / 52.53 ±2.84 / 57.92 ms │   1.10x slower │
│ QQuery 84 │           50.83 / 51.96 ±0.89 / 53.16 ms │        52.29 / 52.61 ±0.26 / 53.07 ms │      no change │
│ QQuery 85 │        152.61 / 155.34 ±1.74 / 157.65 ms │     154.39 / 157.42 ±3.24 / 163.37 ms │      no change │
│ QQuery 86 │           40.74 / 41.93 ±0.84 / 42.73 ms │        42.03 / 43.34 ±1.37 / 45.97 ms │      no change │
│ QQuery 87 │           91.97 / 94.43 ±2.11 / 98.18 ms │       94.06 / 96.69 ±3.47 / 103.24 ms │      no change │
│ QQuery 88 │        112.86 / 113.88 ±0.90 / 115.48 ms │     114.44 / 114.83 ±0.25 / 115.15 ms │      no change │
│ QQuery 89 │        121.78 / 122.51 ±0.71 / 123.78 ms │     128.89 / 130.57 ±0.88 / 131.33 ms │   1.07x slower │
│ QQuery 90 │           28.02 / 29.24 ±0.92 / 30.61 ms │        28.62 / 29.33 ±0.53 / 30.07 ms │      no change │
│ QQuery 91 │           65.85 / 67.66 ±1.02 / 68.76 ms │        64.15 / 65.94 ±1.19 / 67.11 ms │      no change │
│ QQuery 92 │           59.83 / 60.60 ±0.47 / 61.12 ms │        62.31 / 62.59 ±0.22 / 62.90 ms │      no change │
│ QQuery 93 │        193.22 / 195.82 ±1.94 / 199.14 ms │     194.93 / 197.17 ±2.84 / 202.62 ms │      no change │
│ QQuery 94 │           65.14 / 66.71 ±1.00 / 68.16 ms │        64.98 / 66.18 ±0.76 / 67.23 ms │      no change │
│ QQuery 95 │        138.38 / 141.90 ±2.31 / 145.62 ms │     160.17 / 164.15 ±2.58 / 167.70 ms │   1.16x slower │
│ QQuery 96 │           76.45 / 77.85 ±1.58 / 80.91 ms │        74.45 / 75.98 ±1.02 / 77.24 ms │      no change │
│ QQuery 97 │        133.64 / 135.69 ±1.30 / 137.52 ms │     132.87 / 135.15 ±2.36 / 139.37 ms │      no change │
│ QQuery 98 │        155.22 / 157.55 ±1.75 / 160.25 ms │     187.25 / 187.82 ±0.46 / 188.55 ms │   1.19x slower │
│ QQuery 99 │ 10675.10 / 10712.39 ±31.29 / 10756.61 ms │    433.28 / 448.17 ±17.29 / 480.54 ms │ +23.90x faster │
└───────────┴──────────────────────────────────────────┴───────────────────────────────────────┴────────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary         ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)         │ 34307.06ms │
│ Total Time (fix_#20673)   │ 24545.51ms │
│ Average Time (HEAD)       │   346.54ms │
│ Average Time (fix_#20673) │   247.93ms │
│ Queries Faster            │          6 │
│ Queries Slower            │         16 │
│ Queries with No Change    │         77 │
│ Queries with Failure      │          0 │
└───────────────────────────┴────────────┘

Resource Usage

tpcds — base (merge-base)

Metric Value
Wall time 171.9s
Peak memory 5.6 GiB
Avg memory 4.6 GiB
CPU user 272.0s
CPU sys 21.4s
Disk read 0 B
Disk write 572.4 MiB

tpcds — branch

Metric Value
Wall time 123.0s
Peak memory 4.7 GiB
Avg memory 4.1 GiB
CPU user 239.0s
CPU sys 19.4s
Disk read 0 B
Disk write 188.0 KiB

@adriangbot
Copy link

🤖 Benchmark completed (GKE) | trigger

Details

Comparing HEAD and fix_#20673
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                                  HEAD ┃                            fix_#20673 ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0  │          1.63 / 4.85 ±6.34 / 17.53 ms │          1.66 / 4.86 ±6.32 / 17.51 ms │     no change │
│ QQuery 1  │        14.78 / 15.20 ±0.28 / 15.61 ms │        15.53 / 15.85 ±0.19 / 16.08 ms │     no change │
│ QQuery 2  │        56.55 / 57.14 ±0.38 / 57.57 ms │        56.72 / 57.17 ±0.58 / 58.32 ms │     no change │
│ QQuery 3  │        50.64 / 51.13 ±0.36 / 51.46 ms │        48.27 / 50.74 ±1.25 / 51.58 ms │     no change │
│ QQuery 4  │    291.34 / 304.80 ±10.37 / 319.06 ms │     287.11 / 295.56 ±5.89 / 305.37 ms │     no change │
│ QQuery 5  │     348.00 / 351.22 ±2.14 / 353.68 ms │     347.02 / 349.22 ±2.02 / 352.58 ms │     no change │
│ QQuery 6  │          5.08 / 7.76 ±3.50 / 14.67 ms │           5.54 / 6.12 ±0.46 / 6.96 ms │ +1.27x faster │
│ QQuery 7  │        17.05 / 17.33 ±0.19 / 17.58 ms │        17.86 / 18.43 ±0.45 / 19.18 ms │  1.06x slower │
│ QQuery 8  │     416.79 / 426.09 ±6.78 / 434.47 ms │    412.53 / 436.46 ±18.74 / 466.67 ms │     no change │
│ QQuery 9  │     641.05 / 648.36 ±6.99 / 658.94 ms │     647.55 / 657.17 ±6.85 / 665.14 ms │     no change │
│ QQuery 10 │       92.51 / 96.28 ±3.60 / 102.33 ms │        90.86 / 95.10 ±2.78 / 98.28 ms │     no change │
│ QQuery 11 │     104.11 / 105.23 ±0.80 / 106.05 ms │     104.63 / 105.63 ±0.96 / 106.82 ms │     no change │
│ QQuery 12 │     347.63 / 353.85 ±4.23 / 360.17 ms │     348.22 / 353.32 ±3.74 / 357.99 ms │     no change │
│ QQuery 13 │    444.92 / 467.05 ±17.34 / 495.52 ms │    451.94 / 468.95 ±11.45 / 485.56 ms │     no change │
│ QQuery 14 │     348.33 / 353.97 ±6.29 / 365.96 ms │     348.45 / 359.65 ±9.46 / 373.76 ms │     no change │
│ QQuery 15 │    355.08 / 382.52 ±23.40 / 412.80 ms │     353.64 / 366.04 ±9.17 / 375.60 ms │     no change │
│ QQuery 16 │    718.70 / 734.28 ±14.21 / 760.66 ms │     732.79 / 748.04 ±9.59 / 759.74 ms │     no change │
│ QQuery 17 │    709.75 / 731.26 ±15.42 / 753.89 ms │     713.70 / 723.40 ±6.85 / 732.03 ms │     no change │
│ QQuery 18 │ 1382.59 / 1447.05 ±35.02 / 1477.46 ms │ 1422.43 / 1492.19 ±38.67 / 1533.84 ms │     no change │
│ QQuery 19 │        36.55 / 37.92 ±1.97 / 41.73 ms │       36.37 / 43.53 ±13.32 / 70.14 ms │  1.15x slower │
│ QQuery 20 │    716.09 / 735.60 ±21.96 / 771.40 ms │    716.25 / 730.11 ±14.38 / 757.01 ms │     no change │
│ QQuery 21 │     760.08 / 766.79 ±3.81 / 771.37 ms │    764.96 / 779.09 ±16.34 / 810.91 ms │     no change │
│ QQuery 22 │ 1123.21 / 1140.13 ±15.88 / 1164.65 ms │  1122.65 / 1127.49 ±4.20 / 1134.52 ms │     no change │
│ QQuery 23 │ 3167.88 / 3194.12 ±23.07 / 3225.14 ms │  3163.87 / 3177.78 ±9.13 / 3190.32 ms │     no change │
│ QQuery 24 │      99.23 / 103.80 ±5.33 / 113.29 ms │     100.80 / 104.44 ±2.05 / 107.09 ms │     no change │
│ QQuery 25 │     138.95 / 141.41 ±1.95 / 144.73 ms │     140.81 / 142.54 ±0.92 / 143.27 ms │     no change │
│ QQuery 26 │      99.32 / 104.22 ±2.75 / 106.69 ms │     102.92 / 104.00 ±0.64 / 104.76 ms │     no change │
│ QQuery 27 │     844.78 / 848.13 ±2.85 / 852.97 ms │     845.71 / 850.81 ±4.49 / 856.86 ms │     no change │
│ QQuery 28 │ 7693.99 / 7748.31 ±35.41 / 7790.05 ms │ 7702.50 / 7732.24 ±25.53 / 7777.30 ms │     no change │
│ QQuery 29 │        57.97 / 60.92 ±3.40 / 66.78 ms │        56.69 / 62.07 ±4.28 / 68.87 ms │     no change │
│ QQuery 30 │     356.94 / 365.61 ±6.08 / 372.29 ms │     364.50 / 368.60 ±3.75 / 375.17 ms │     no change │
│ QQuery 31 │    357.70 / 378.33 ±15.53 / 400.39 ms │     369.91 / 380.58 ±6.76 / 389.55 ms │     no change │
│ QQuery 32 │ 1265.50 / 1308.94 ±31.84 / 1363.30 ms │ 1205.79 / 1276.67 ±36.96 / 1314.34 ms │     no change │
│ QQuery 33 │ 1443.11 / 1544.70 ±65.69 / 1640.80 ms │ 1504.77 / 1587.22 ±45.57 / 1635.84 ms │     no change │
│ QQuery 34 │ 1442.54 / 1455.15 ±12.59 / 1475.31 ms │ 1521.89 / 1594.99 ±47.08 / 1654.04 ms │  1.10x slower │
│ QQuery 35 │     375.80 / 382.31 ±3.94 / 386.60 ms │    412.99 / 431.83 ±11.86 / 442.44 ms │  1.13x slower │
│ QQuery 36 │     112.84 / 122.88 ±5.71 / 128.85 ms │    118.73 / 134.79 ±12.49 / 156.67 ms │  1.10x slower │
│ QQuery 37 │        47.60 / 50.62 ±2.11 / 53.56 ms │        50.67 / 51.33 ±0.56 / 52.23 ms │     no change │
│ QQuery 38 │        76.39 / 77.55 ±0.95 / 79.01 ms │        81.13 / 85.44 ±2.23 / 87.29 ms │  1.10x slower │
│ QQuery 39 │     208.53 / 224.01 ±9.81 / 233.90 ms │     224.61 / 229.99 ±4.06 / 236.81 ms │     no change │
│ QQuery 40 │        23.44 / 26.67 ±2.57 / 31.17 ms │        23.35 / 27.12 ±2.86 / 31.43 ms │     no change │
│ QQuery 41 │        21.05 / 21.67 ±0.33 / 22.03 ms │        20.57 / 21.93 ±1.33 / 24.42 ms │     no change │
│ QQuery 42 │        20.05 / 20.96 ±1.31 / 23.55 ms │        20.79 / 22.18 ±1.28 / 24.54 ms │  1.06x slower │
└───────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary         ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)         │ 27416.13ms │
│ Total Time (fix_#20673)   │ 27670.65ms │
│ Average Time (HEAD)       │   637.58ms │
│ Average Time (fix_#20673) │   643.50ms │
│ Queries Faster            │          1 │
│ Queries Slower            │          7 │
│ Queries with No Change    │         35 │
│ Queries with Failure      │          0 │
└───────────────────────────┴────────────┘

Resource Usage

clickbench_partitioned — base (merge-base)

Metric Value
Wall time 138.2s
Peak memory 40.5 GiB
Avg memory 29.2 GiB
CPU user 1280.2s
CPU sys 105.0s
Disk read 0 B
Disk write 4.0 GiB

clickbench_partitioned — branch

Metric Value
Wall time 138.9s
Peak memory 39.6 GiB
Avg memory 29.4 GiB
CPU user 1282.1s
CPU sys 111.1s
Disk read 0 B
Disk write 116.0 KiB

@kumarUjjawal
Copy link
Contributor Author

@Dandandan made the changes based on your feedback. The clickbench test seems to have a determinism issue, should I handle it here?

@Dandandan
Copy link
Contributor

run benchmarks

@Dandandan
Copy link
Contributor

@Dandandan made the changes based on your feedback. The clickbench test seems to have a determinism issue, should I handle it here?

Don't worry about clickbench - it does sometimes finish a bit more quickly than in other cases. But it doesn't have any joins.

The regressions in tpcds_sf1 I also saw in my branch, would be nice to find out if we can minimize them (although I think it would be acceptable to have some low % losses for improving Query 99

@adriangbot
Copy link

🤖 Benchmark running (GKE) | trigger
Linux bench-c4089463110-454-qb82g 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing fix/#20673 (1afa018) to 6ab16cc (merge-base) diff using: tpcds
Results will be posted here when complete

@adriangbot
Copy link

🤖 Benchmark running (GKE) | trigger
Linux bench-c4089463110-455-wp5r7 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing fix/#20673 (1afa018) to 6ab16cc (merge-base) diff using: tpch
Results will be posted here when complete

@adriangbot
Copy link

🤖 Benchmark running (GKE) | trigger
Linux bench-c4089463110-453-7mqcw 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing fix/#20673 (1afa018) to 6ab16cc (merge-base) diff using: clickbench_partitioned
Results will be posted here when complete

@adriangbot
Copy link

🤖 Benchmark completed (GKE) | trigger

Details

Comparing HEAD and fix_#20673
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                           HEAD ┃                     fix_#20673 ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1  │ 47.33 / 48.29 ±1.46 / 51.20 ms │ 47.16 / 48.17 ±1.20 / 50.16 ms │     no change │
│ QQuery 2  │ 26.23 / 26.51 ±0.28 / 27.02 ms │ 26.49 / 26.65 ±0.13 / 26.86 ms │     no change │
│ QQuery 3  │ 35.15 / 35.38 ±0.13 / 35.49 ms │ 35.46 / 36.18 ±1.23 / 38.63 ms │     no change │
│ QQuery 4  │ 22.44 / 23.35 ±0.72 / 24.37 ms │ 22.36 / 22.90 ±0.43 / 23.41 ms │     no change │
│ QQuery 5  │ 53.58 / 55.32 ±1.19 / 56.78 ms │ 53.37 / 54.68 ±1.69 / 57.96 ms │     no change │
│ QQuery 6  │ 18.45 / 18.91 ±0.61 / 20.11 ms │ 17.62 / 17.88 ±0.21 / 18.18 ms │ +1.06x faster │
│ QQuery 7  │ 60.75 / 61.79 ±0.77 / 63.11 ms │ 60.92 / 62.48 ±1.03 / 63.82 ms │     no change │
│ QQuery 8  │ 52.76 / 53.46 ±0.57 / 54.39 ms │ 51.22 / 52.53 ±1.05 / 53.46 ms │     no change │
│ QQuery 9  │ 58.10 / 59.58 ±1.27 / 61.71 ms │ 57.84 / 59.94 ±1.11 / 61.18 ms │     no change │
│ QQuery 10 │ 76.38 / 78.02 ±1.46 / 79.91 ms │ 72.47 / 74.51 ±1.13 / 75.59 ms │     no change │
│ QQuery 11 │ 18.08 / 18.53 ±0.27 / 18.85 ms │ 17.99 / 18.09 ±0.11 / 18.30 ms │     no change │
│ QQuery 12 │ 29.45 / 30.19 ±0.77 / 31.66 ms │ 28.47 / 29.22 ±0.75 / 30.57 ms │     no change │
│ QQuery 13 │ 41.58 / 42.27 ±0.76 / 43.59 ms │ 41.88 / 42.59 ±0.40 / 43.01 ms │     no change │
│ QQuery 14 │ 30.60 / 30.86 ±0.25 / 31.21 ms │ 30.63 / 30.83 ±0.19 / 31.17 ms │     no change │
│ QQuery 15 │ 38.62 / 38.85 ±0.17 / 39.13 ms │ 36.04 / 36.73 ±0.63 / 37.59 ms │ +1.06x faster │
│ QQuery 16 │ 18.56 / 19.01 ±0.52 / 19.99 ms │ 17.61 / 18.00 ±0.20 / 18.14 ms │ +1.06x faster │
│ QQuery 17 │ 80.81 / 82.04 ±0.79 / 83.24 ms │ 74.51 / 77.08 ±2.86 / 82.41 ms │ +1.06x faster │
│ QQuery 18 │ 82.26 / 85.70 ±2.97 / 90.33 ms │ 90.73 / 95.73 ±2.74 / 99.14 ms │  1.12x slower │
│ QQuery 19 │ 40.24 / 41.14 ±0.61 / 41.88 ms │ 38.29 / 39.00 ±0.57 / 39.93 ms │ +1.05x faster │
│ QQuery 20 │ 44.69 / 45.74 ±0.93 / 47.17 ms │ 43.07 / 43.75 ±1.06 / 45.85 ms │     no change │
│ QQuery 21 │ 71.26 / 72.77 ±1.14 / 74.75 ms │ 77.59 / 80.98 ±2.39 / 83.70 ms │  1.11x slower │
│ QQuery 22 │ 20.23 / 20.62 ±0.36 / 21.07 ms │ 20.64 / 21.61 ±1.10 / 23.69 ms │     no change │
└───────────┴────────────────────────────────┴────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Benchmark Summary         ┃          ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ Total Time (HEAD)         │ 988.33ms │
│ Total Time (fix_#20673)   │ 989.53ms │
│ Average Time (HEAD)       │  44.92ms │
│ Average Time (fix_#20673) │  44.98ms │
│ Queries Faster            │        5 │
│ Queries Slower            │        2 │
│ Queries with No Change    │       15 │
│ Queries with Failure      │        0 │
└───────────────────────────┴──────────┘

Resource Usage

tpch — base (merge-base)

Metric Value
Wall time 5.3s
Peak memory 4.0 GiB
Avg memory 3.5 GiB
CPU user 35.0s
CPU sys 3.4s
Disk read 0 B
Disk write 148.0 KiB

tpch — branch

Metric Value
Wall time 5.2s
Peak memory 3.9 GiB
Avg memory 3.5 GiB
CPU user 35.8s
CPU sys 3.3s
Disk read 0 B
Disk write 56.0 KiB

@adriangbot
Copy link

🤖 Benchmark completed (GKE) | trigger

Details

Comparing HEAD and fix_#20673
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┓
┃ Query     ┃                                     HEAD ┃                            fix_#20673 ┃         Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━┩
│ QQuery 1  │           47.64 / 48.95 ±0.74 / 49.75 ms │        47.09 / 47.94 ±0.71 / 49.14 ms │      no change │
│ QQuery 2  │        152.03 / 152.89 ±0.60 / 153.68 ms │     198.65 / 199.98 ±0.89 / 201.14 ms │   1.31x slower │
│ QQuery 3  │        117.02 / 117.99 ±0.80 / 119.29 ms │     125.14 / 126.07 ±0.94 / 127.81 ms │   1.07x slower │
│ QQuery 4  │     1387.85 / 1398.55 ±7.72 / 1408.04 ms │  1597.42 / 1607.85 ±8.75 / 1621.06 ms │   1.15x slower │
│ QQuery 5  │        182.88 / 184.57 ±1.14 / 186.30 ms │     181.10 / 184.02 ±1.60 / 185.71 ms │      no change │
│ QQuery 6  │     998.40 / 1035.59 ±25.49 / 1069.38 ms │     384.42 / 391.02 ±3.64 / 394.62 ms │  +2.65x faster │
│ QQuery 7  │        356.00 / 359.14 ±1.72 / 361.29 ms │     353.32 / 359.60 ±4.42 / 365.94 ms │      no change │
│ QQuery 8  │        120.75 / 122.01 ±1.21 / 124.13 ms │     119.11 / 120.27 ±1.61 / 123.41 ms │      no change │
│ QQuery 9  │        113.24 / 117.75 ±3.79 / 122.01 ms │     110.89 / 112.75 ±2.63 / 117.93 ms │      no change │
│ QQuery 10 │        110.92 / 113.59 ±2.29 / 117.86 ms │     112.50 / 115.28 ±2.11 / 118.84 ms │      no change │
│ QQuery 11 │       959.45 / 973.52 ±10.52 / 989.77 ms │ 1170.16 / 1188.63 ±12.85 / 1202.66 ms │   1.22x slower │
│ QQuery 12 │           47.66 / 48.28 ±0.76 / 49.63 ms │        50.18 / 51.03 ±0.74 / 52.20 ms │   1.06x slower │
│ QQuery 13 │        410.81 / 413.52 ±1.49 / 415.26 ms │     402.84 / 405.12 ±2.21 / 408.51 ms │      no change │
│ QQuery 14 │     1078.59 / 1090.98 ±8.14 / 1101.43 ms │  1217.73 / 1224.62 ±4.38 / 1231.13 ms │   1.12x slower │
│ QQuery 15 │           21.24 / 22.26 ±0.76 / 23.43 ms │        17.30 / 18.48 ±0.92 / 19.73 ms │  +1.20x faster │
│ QQuery 16 │           45.38 / 46.57 ±1.12 / 48.20 ms │        45.09 / 45.57 ±0.34 / 46.05 ms │      no change │
│ QQuery 17 │        245.77 / 249.20 ±3.06 / 253.73 ms │     240.06 / 242.02 ±1.54 / 243.68 ms │      no change │
│ QQuery 18 │        131.15 / 133.91 ±1.52 / 135.74 ms │     132.09 / 134.86 ±1.77 / 136.72 ms │      no change │
│ QQuery 19 │        158.27 / 159.73 ±0.80 / 160.57 ms │     158.74 / 159.70 ±1.19 / 162.04 ms │      no change │
│ QQuery 20 │           15.04 / 15.89 ±0.59 / 16.84 ms │        15.83 / 16.49 ±0.58 / 17.14 ms │      no change │
│ QQuery 21 │           24.08 / 24.89 ±0.62 / 25.92 ms │        23.96 / 24.64 ±0.38 / 25.04 ms │      no change │
│ QQuery 22 │        492.87 / 496.59 ±2.96 / 500.79 ms │     516.59 / 520.12 ±2.76 / 525.07 ms │      no change │
│ QQuery 23 │        948.85 / 957.92 ±7.52 / 967.54 ms │ 1012.12 / 1027.77 ±13.90 / 1047.70 ms │   1.07x slower │
│ QQuery 24 │        430.16 / 432.66 ±3.07 / 438.61 ms │     423.99 / 427.87 ±2.47 / 431.44 ms │      no change │
│ QQuery 25 │        362.44 / 363.82 ±1.38 / 365.93 ms │     356.20 / 358.62 ±1.68 / 360.99 ms │      no change │
│ QQuery 26 │           83.21 / 85.79 ±1.42 / 87.25 ms │        85.19 / 87.11 ±1.42 / 89.12 ms │      no change │
│ QQuery 27 │        351.96 / 357.14 ±3.99 / 364.28 ms │     351.60 / 354.49 ±2.50 / 357.59 ms │      no change │
│ QQuery 28 │        153.68 / 155.02 ±1.20 / 156.84 ms │     154.29 / 155.77 ±1.51 / 158.07 ms │      no change │
│ QQuery 29 │        304.78 / 306.22 ±2.12 / 310.42 ms │     297.13 / 302.44 ±2.99 / 306.31 ms │      no change │
│ QQuery 30 │           50.97 / 51.90 ±1.14 / 54.08 ms │        46.89 / 49.64 ±2.30 / 53.58 ms │      no change │
│ QQuery 31 │        176.90 / 179.33 ±1.56 / 181.39 ms │     175.89 / 177.79 ±1.83 / 181.13 ms │      no change │
│ QQuery 32 │           60.97 / 62.10 ±0.73 / 63.09 ms │        60.61 / 61.89 ±0.83 / 63.03 ms │      no change │
│ QQuery 33 │        148.43 / 150.73 ±1.37 / 152.16 ms │     148.48 / 152.08 ±2.10 / 154.57 ms │      no change │
│ QQuery 34 │        109.36 / 110.52 ±0.67 / 111.35 ms │     110.82 / 112.14 ±1.66 / 115.38 ms │      no change │
│ QQuery 35 │        112.88 / 115.34 ±1.56 / 117.72 ms │     114.58 / 117.04 ±1.27 / 118.21 ms │      no change │
│ QQuery 36 │        220.76 / 224.90 ±2.72 / 228.15 ms │     216.44 / 222.76 ±4.78 / 228.85 ms │      no change │
│ QQuery 37 │        181.52 / 185.48 ±3.20 / 190.29 ms │     180.19 / 184.04 ±2.54 / 187.12 ms │      no change │
│ QQuery 38 │           92.76 / 95.66 ±2.36 / 99.60 ms │        91.46 / 93.34 ±1.75 / 96.24 ms │      no change │
│ QQuery 39 │        137.95 / 140.93 ±2.22 / 144.18 ms │     142.47 / 144.32 ±1.18 / 145.84 ms │      no change │
│ QQuery 40 │        118.21 / 122.18 ±3.73 / 128.40 ms │     109.77 / 111.40 ±1.25 / 113.23 ms │  +1.10x faster │
│ QQuery 41 │           17.85 / 18.48 ±0.35 / 18.86 ms │        17.13 / 18.60 ±1.63 / 21.40 ms │      no change │
│ QQuery 42 │        109.29 / 110.79 ±1.21 / 112.34 ms │     112.48 / 112.94 ±0.31 / 113.32 ms │      no change │
│ QQuery 43 │           86.54 / 87.26 ±0.49 / 87.78 ms │        86.36 / 87.14 ±0.67 / 87.96 ms │      no change │
│ QQuery 44 │           17.58 / 18.12 ±0.36 / 18.48 ms │        16.93 / 17.64 ±0.68 / 18.95 ms │      no change │
│ QQuery 45 │           58.21 / 58.71 ±0.55 / 59.77 ms │        56.03 / 57.27 ±1.23 / 59.33 ms │      no change │
│ QQuery 46 │        236.94 / 239.49 ±1.97 / 242.32 ms │     238.21 / 239.93 ±1.11 / 241.09 ms │      no change │
│ QQuery 47 │       722.31 / 737.61 ±15.59 / 766.05 ms │     805.59 / 812.62 ±5.99 / 819.58 ms │   1.10x slower │
│ QQuery 48 │        289.76 / 298.46 ±6.55 / 308.13 ms │     279.43 / 286.80 ±3.96 / 290.97 ms │      no change │
│ QQuery 49 │        263.94 / 267.02 ±2.34 / 269.45 ms │     260.31 / 264.21 ±2.80 / 267.67 ms │      no change │
│ QQuery 50 │        237.48 / 241.66 ±3.72 / 247.39 ms │     227.35 / 230.56 ±2.11 / 233.27 ms │      no change │
│ QQuery 51 │        188.37 / 190.04 ±1.25 / 191.50 ms │     187.16 / 190.52 ±2.10 / 193.10 ms │      no change │
│ QQuery 52 │        109.56 / 111.96 ±1.59 / 114.18 ms │     110.39 / 112.61 ±1.64 / 115.44 ms │      no change │
│ QQuery 53 │        108.06 / 109.00 ±1.02 / 110.43 ms │     107.86 / 109.65 ±1.24 / 111.13 ms │      no change │
│ QQuery 54 │        155.31 / 156.18 ±0.82 / 157.33 ms │     155.39 / 156.40 ±0.70 / 157.43 ms │      no change │
│ QQuery 55 │        110.80 / 111.85 ±1.16 / 114.06 ms │     109.68 / 111.16 ±1.78 / 113.45 ms │      no change │
│ QQuery 56 │        150.62 / 154.89 ±3.42 / 159.02 ms │     149.74 / 150.70 ±0.68 / 151.61 ms │      no change │
│ QQuery 57 │        185.14 / 188.69 ±2.99 / 192.87 ms │     193.06 / 196.25 ±2.26 / 198.88 ms │      no change │
│ QQuery 58 │        299.20 / 307.42 ±7.03 / 318.72 ms │     317.76 / 321.61 ±3.91 / 327.33 ms │      no change │
│ QQuery 59 │        204.79 / 206.59 ±1.76 / 209.03 ms │     252.43 / 255.55 ±2.91 / 259.06 ms │   1.24x slower │
│ QQuery 60 │        151.69 / 153.28 ±1.34 / 155.03 ms │     152.30 / 153.05 ±0.49 / 153.59 ms │      no change │
│ QQuery 61 │        178.60 / 179.15 ±0.32 / 179.46 ms │     178.79 / 179.95 ±1.10 / 181.71 ms │      no change │
│ QQuery 62 │      888.99 / 933.33 ±51.69 / 1027.22 ms │    197.84 / 211.26 ±10.48 / 225.12 ms │  +4.42x faster │
│ QQuery 63 │        106.28 / 109.99 ±5.18 / 120.26 ms │     106.82 / 110.42 ±2.59 / 113.07 ms │      no change │
│ QQuery 64 │        711.30 / 716.83 ±4.17 / 722.63 ms │     702.96 / 706.89 ±2.07 / 708.76 ms │      no change │
│ QQuery 65 │        258.11 / 259.37 ±1.15 / 261.39 ms │     259.24 / 262.04 ±1.82 / 264.75 ms │      no change │
│ QQuery 66 │       246.65 / 261.70 ±12.93 / 283.56 ms │    232.42 / 248.01 ±13.14 / 270.25 ms │  +1.06x faster │
│ QQuery 67 │        313.66 / 321.49 ±6.04 / 329.39 ms │     323.98 / 326.44 ±2.31 / 330.80 ms │      no change │
│ QQuery 68 │        282.34 / 285.79 ±1.78 / 287.34 ms │     286.96 / 291.73 ±3.36 / 295.92 ms │      no change │
│ QQuery 69 │        107.58 / 108.89 ±1.21 / 110.91 ms │     109.69 / 111.44 ±1.60 / 113.99 ms │      no change │
│ QQuery 70 │       339.89 / 353.23 ±10.30 / 371.77 ms │    337.19 / 351.41 ±10.96 / 362.60 ms │      no change │
│ QQuery 71 │        137.15 / 138.80 ±1.45 / 140.72 ms │     138.23 / 140.94 ±1.49 / 142.43 ms │      no change │
│ QQuery 72 │        718.91 / 734.26 ±8.41 / 742.16 ms │    890.93 / 934.14 ±25.99 / 969.74 ms │   1.27x slower │
│ QQuery 73 │        104.40 / 107.33 ±1.48 / 108.41 ms │     105.14 / 108.47 ±2.11 / 110.84 ms │      no change │
│ QQuery 74 │        582.28 / 593.56 ±9.66 / 606.46 ms │     738.21 / 748.86 ±9.72 / 766.65 ms │   1.26x slower │
│ QQuery 75 │        289.02 / 289.82 ±0.73 / 291.00 ms │     296.75 / 297.90 ±1.22 / 300.14 ms │      no change │
│ QQuery 76 │        136.83 / 138.70 ±1.17 / 140.28 ms │     137.37 / 139.26 ±1.26 / 140.66 ms │      no change │
│ QQuery 77 │        200.65 / 201.75 ±1.02 / 203.45 ms │     201.24 / 202.99 ±1.57 / 205.64 ms │      no change │
│ QQuery 78 │        358.95 / 363.89 ±3.39 / 367.94 ms │     357.89 / 364.98 ±4.19 / 369.74 ms │      no change │
│ QQuery 79 │        236.35 / 241.50 ±3.35 / 245.74 ms │     243.20 / 246.06 ±2.14 / 249.23 ms │      no change │
│ QQuery 80 │        340.04 / 341.33 ±0.90 / 342.38 ms │     339.71 / 342.41 ±2.50 / 346.86 ms │      no change │
│ QQuery 81 │           31.97 / 33.17 ±1.11 / 35.03 ms │        30.44 / 31.61 ±0.80 / 32.67 ms │      no change │
│ QQuery 82 │        207.35 / 210.40 ±2.51 / 213.05 ms │     207.04 / 208.34 ±1.00 / 209.93 ms │      no change │
│ QQuery 83 │           47.25 / 48.05 ±0.75 / 49.12 ms │        50.29 / 50.71 ±0.41 / 51.47 ms │   1.06x slower │
│ QQuery 84 │           51.64 / 52.01 ±0.28 / 52.47 ms │        51.41 / 52.60 ±0.90 / 54.13 ms │      no change │
│ QQuery 85 │        154.58 / 156.15 ±1.19 / 158.21 ms │     152.61 / 154.86 ±1.99 / 158.35 ms │      no change │
│ QQuery 86 │           40.81 / 41.97 ±0.81 / 43.24 ms │        41.95 / 42.59 ±0.65 / 43.70 ms │      no change │
│ QQuery 87 │           92.36 / 95.73 ±2.46 / 98.09 ms │        91.12 / 94.70 ±3.22 / 98.80 ms │      no change │
│ QQuery 88 │        111.73 / 112.96 ±0.83 / 114.28 ms │     111.39 / 112.39 ±0.82 / 113.52 ms │      no change │
│ QQuery 89 │        121.90 / 124.55 ±1.50 / 126.21 ms │     123.89 / 125.06 ±1.25 / 127.34 ms │      no change │
│ QQuery 90 │           27.94 / 29.08 ±1.15 / 31.11 ms │        27.76 / 29.25 ±1.26 / 31.48 ms │      no change │
│ QQuery 91 │           66.34 / 69.04 ±2.15 / 70.92 ms │        64.44 / 65.69 ±0.93 / 66.98 ms │      no change │
│ QQuery 92 │           61.87 / 62.48 ±0.62 / 63.45 ms │        61.60 / 62.17 ±0.38 / 62.55 ms │      no change │
│ QQuery 93 │        194.29 / 195.45 ±1.14 / 197.39 ms │     192.37 / 196.56 ±2.37 / 199.49 ms │      no change │
│ QQuery 94 │           66.03 / 66.85 ±0.66 / 67.70 ms │        65.64 / 67.19 ±0.94 / 68.28 ms │      no change │
│ QQuery 95 │        141.16 / 141.65 ±0.41 / 142.26 ms │     168.57 / 171.36 ±1.46 / 172.56 ms │   1.21x slower │
│ QQuery 96 │           73.54 / 76.45 ±1.78 / 79.00 ms │        74.66 / 76.39 ±0.98 / 77.67 ms │      no change │
│ QQuery 97 │        131.16 / 133.14 ±1.26 / 134.91 ms │     131.12 / 134.66 ±2.04 / 137.16 ms │      no change │
│ QQuery 98 │        154.92 / 159.30 ±2.94 / 163.52 ms │     168.87 / 171.79 ±1.82 / 173.55 ms │   1.08x slower │
│ QQuery 99 │ 10711.17 / 10761.18 ±32.18 / 10806.23 ms │    340.94 / 365.96 ±13.50 / 381.15 ms │ +29.41x faster │
└───────────┴──────────────────────────────────────────┴───────────────────────────────────────┴────────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary         ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)         │ 34441.81ms │
│ Total Time (fix_#20673)   │ 23861.30ms │
│ Average Time (HEAD)       │   347.90ms │
│ Average Time (fix_#20673) │   241.02ms │
│ Queries Faster            │          6 │
│ Queries Slower            │         14 │
│ Queries with No Change    │         79 │
│ Queries with Failure      │          0 │
└───────────────────────────┴────────────┘

Resource Usage

tpcds — base (merge-base)

Metric Value
Wall time 172.5s
Peak memory 5.5 GiB
Avg memory 4.5 GiB
CPU user 273.1s
CPU sys 21.5s
Disk read 0 B
Disk write 636.2 MiB

tpcds — branch

Metric Value
Wall time 119.6s
Peak memory 4.7 GiB
Avg memory 4.1 GiB
CPU user 233.9s
CPU sys 18.9s
Disk read 0 B
Disk write 852.0 KiB

@adriangbot
Copy link

🤖 Benchmark completed (GKE) | trigger

Details

Comparing HEAD and fix_#20673
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                                   HEAD ┃                             fix_#20673 ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0  │           1.61 / 4.78 ±6.27 / 17.33 ms │           1.66 / 4.91 ±6.38 / 17.67 ms │     no change │
│ QQuery 1  │         14.59 / 15.00 ±0.23 / 15.25 ms │         14.83 / 15.02 ±0.14 / 15.27 ms │     no change │
│ QQuery 2  │         55.88 / 56.40 ±0.32 / 56.84 ms │         56.60 / 57.11 ±0.44 / 57.70 ms │     no change │
│ QQuery 3  │         48.88 / 50.04 ±1.05 / 51.90 ms │         49.20 / 50.43 ±1.05 / 51.95 ms │     no change │
│ QQuery 4  │      284.13 / 292.53 ±5.42 / 297.66 ms │      290.21 / 298.43 ±6.76 / 309.41 ms │     no change │
│ QQuery 5  │      341.96 / 345.92 ±3.64 / 351.44 ms │      342.38 / 347.26 ±2.91 / 350.35 ms │     no change │
│ QQuery 6  │           5.46 / 8.36 ±1.76 / 10.62 ms │            5.68 / 6.11 ±0.43 / 6.73 ms │ +1.37x faster │
│ QQuery 7  │         16.98 / 17.19 ±0.24 / 17.65 ms │         17.50 / 17.62 ±0.09 / 17.76 ms │     no change │
│ QQuery 8  │      424.35 / 427.52 ±4.69 / 436.79 ms │     415.15 / 435.13 ±10.30 / 444.28 ms │     no change │
│ QQuery 9  │     641.30 / 653.74 ±13.56 / 678.98 ms │      675.46 / 683.17 ±7.88 / 698.41 ms │     no change │
│ QQuery 10 │        90.75 / 94.40 ±4.04 / 102.09 ms │        91.30 / 94.74 ±3.58 / 100.67 ms │     no change │
│ QQuery 11 │      103.75 / 104.83 ±1.28 / 106.84 ms │      103.39 / 104.68 ±1.38 / 107.37 ms │     no change │
│ QQuery 12 │      339.28 / 343.08 ±3.27 / 348.81 ms │      339.59 / 347.85 ±6.13 / 353.23 ms │     no change │
│ QQuery 13 │      455.34 / 461.25 ±8.23 / 476.82 ms │      446.20 / 458.67 ±9.26 / 469.73 ms │     no change │
│ QQuery 14 │      343.59 / 351.89 ±4.99 / 358.25 ms │      349.03 / 354.42 ±3.42 / 358.81 ms │     no change │
│ QQuery 15 │     352.20 / 385.31 ±28.88 / 428.82 ms │     349.12 / 374.21 ±20.83 / 411.98 ms │     no change │
│ QQuery 16 │     721.29 / 741.19 ±14.71 / 764.90 ms │     714.54 / 745.90 ±16.14 / 760.46 ms │     no change │
│ QQuery 17 │     712.56 / 725.58 ±10.58 / 742.52 ms │      704.79 / 710.72 ±5.45 / 718.79 ms │     no change │
│ QQuery 18 │  1375.45 / 1448.58 ±51.77 / 1530.29 ms │  1435.32 / 1479.98 ±41.04 / 1554.38 ms │     no change │
│ QQuery 19 │         35.91 / 37.20 ±0.92 / 38.48 ms │        36.23 / 49.92 ±24.50 / 98.88 ms │  1.34x slower │
│ QQuery 20 │     707.15 / 719.51 ±16.60 / 749.89 ms │     717.31 / 729.42 ±17.28 / 762.80 ms │     no change │
│ QQuery 21 │      748.25 / 755.46 ±5.10 / 761.82 ms │      755.62 / 760.19 ±3.83 / 765.82 ms │     no change │
│ QQuery 22 │   1122.45 / 1127.90 ±4.87 / 1135.16 ms │   1125.86 / 1128.78 ±2.58 / 1133.21 ms │     no change │
│ QQuery 23 │  3163.06 / 3176.11 ±10.88 / 3194.36 ms │  3139.96 / 3172.42 ±24.16 / 3211.33 ms │     no change │
│ QQuery 24 │      101.12 / 102.82 ±1.15 / 104.26 ms │      102.05 / 104.17 ±1.85 / 106.74 ms │     no change │
│ QQuery 25 │      139.08 / 139.95 ±0.66 / 140.75 ms │      139.10 / 141.21 ±2.57 / 146.25 ms │     no change │
│ QQuery 26 │      101.31 / 102.87 ±0.85 / 103.88 ms │       99.15 / 103.51 ±2.61 / 106.21 ms │     no change │
│ QQuery 27 │      839.51 / 846.59 ±4.94 / 854.85 ms │      846.59 / 853.10 ±5.77 / 861.26 ms │     no change │
│ QQuery 28 │  7670.49 / 7716.94 ±28.28 / 7750.73 ms │  7659.05 / 7731.14 ±40.54 / 7784.48 ms │     no change │
│ QQuery 29 │         56.53 / 60.04 ±3.12 / 64.67 ms │         56.73 / 61.66 ±5.30 / 70.43 ms │     no change │
│ QQuery 30 │      355.56 / 360.90 ±4.97 / 369.72 ms │      354.51 / 365.99 ±6.33 / 370.74 ms │     no change │
│ QQuery 31 │     357.73 / 374.69 ±11.77 / 393.12 ms │      361.30 / 369.43 ±5.30 / 377.05 ms │     no change │
│ QQuery 32 │ 1054.05 / 1163.23 ±155.17 / 1461.99 ms │ 1125.87 / 1275.08 ±117.64 / 1488.39 ms │  1.10x slower │
│ QQuery 33 │  1428.57 / 1444.20 ±12.07 / 1462.97 ms │  1437.38 / 1477.68 ±42.38 / 1552.99 ms │     no change │
│ QQuery 34 │  1431.45 / 1454.79 ±15.50 / 1471.22 ms │  1449.06 / 1476.03 ±14.84 / 1491.08 ms │     no change │
│ QQuery 35 │      383.47 / 386.93 ±4.02 / 394.50 ms │      380.08 / 388.86 ±6.95 / 400.79 ms │     no change │
│ QQuery 36 │      114.08 / 122.02 ±4.32 / 126.64 ms │      116.71 / 122.08 ±3.53 / 127.21 ms │     no change │
│ QQuery 37 │         50.09 / 51.46 ±0.98 / 52.34 ms │         48.39 / 50.67 ±1.52 / 52.41 ms │     no change │
│ QQuery 38 │         75.13 / 76.39 ±1.33 / 78.69 ms │         76.35 / 77.91 ±1.72 / 80.74 ms │     no change │
│ QQuery 39 │      203.15 / 214.37 ±7.47 / 223.51 ms │      210.31 / 217.37 ±4.97 / 223.69 ms │     no change │
│ QQuery 40 │         24.23 / 24.93 ±0.61 / 25.98 ms │         24.79 / 25.94 ±0.60 / 26.47 ms │     no change │
│ QQuery 41 │         21.04 / 21.93 ±0.57 / 22.74 ms │         20.52 / 21.07 ±0.39 / 21.74 ms │     no change │
│ QQuery 42 │         19.89 / 20.46 ±0.58 / 21.46 ms │         19.48 / 20.47 ±0.61 / 21.05 ms │     no change │
└───────────┴────────────────────────────────────────┴────────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary         ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)         │ 27029.28ms │
│ Total Time (fix_#20673)   │ 27310.48ms │
│ Average Time (HEAD)       │   628.59ms │
│ Average Time (fix_#20673) │   635.13ms │
│ Queries Faster            │          1 │
│ Queries Slower            │          2 │
│ Queries with No Change    │         40 │
│ Queries with Failure      │          0 │
└───────────────────────────┴────────────┘

Resource Usage

clickbench_partitioned — base (merge-base)

Metric Value
Wall time 136.3s
Peak memory 42.7 GiB
Avg memory 32.8 GiB
CPU user 1280.7s
CPU sys 88.2s
Disk read 0 B
Disk write 3.0 GiB

clickbench_partitioned — branch

Metric Value
Wall time 137.7s
Peak memory 41.2 GiB
Avg memory 31.9 GiB
CPU user 1282.8s
CPU sys 97.7s
Disk read 0 B
Disk write 116.0 KiB

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

Labels

physical-plan Changes to the physical-plan crate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Panic in FULL OUTER JOIN with schema of (u32, FSL) when number of rows and size of FSL exceed u32::MAX and target_partition=1

3 participants