Skip to content

[Bench] Avoid concat_batches in hash join#20944

Draft
Dandandan wants to merge 27 commits intoapache:mainfrom
Dandandan:avoid_concat
Draft

[Bench] Avoid concat_batches in hash join#20944
Dandandan wants to merge 27 commits intoapache:mainfrom
Dandandan:avoid_concat

Conversation

@Dandandan
Copy link
Contributor

@Dandandan Dandandan commented Mar 14, 2026

Which issue does this PR close?

  • Closes #.

Rationale for this change

Hash join (and other joins/operators as well - those can be refactored in a similar way ) currently concatenates the full build side.
When it is relatively large (and perhaps larger than the probe side), this has a few downsides

  • It copies all of the data (both keys and other columns), both slow and creating a temporary copy.
  • If it contains > 2GB StringArray data it will fail

What changes are included in this PR?

This PR changes it to use Vec<RecordBatch> and use a composite (u64) index to index into both batches / batch index.

Are these changes tested?

Are there any user-facing changes?

@Dandandan
Copy link
Contributor Author

run benchmarks

@github-actions github-actions bot added the physical-plan Changes to the physical-plan crate label Mar 14, 2026
@adriangbot
Copy link

🤖 Benchmark running (GKE) | trigger
Linux bench-c4060599747-234-kcjvq 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing avoid_concat (aa1abae) to 9c3c01a (merge-base) diff using: tpch
Results will be posted here when complete

@adriangbot
Copy link

🤖 Benchmark running (GKE) | trigger
Linux bench-c4060599747-232-pwl4n 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing avoid_concat (aa1abae) to 9c3c01a (merge-base) diff using: clickbench_partitioned
Results will be posted here when complete

@adriangbot
Copy link

🤖 Benchmark running (GKE) | trigger
Linux bench-c4060599747-233-p5mpj 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing avoid_concat (aa1abae) to 9c3c01a (merge-base) diff using: tpcds
Results will be posted here when complete

@adriangbot
Copy link

🤖 Benchmark completed (GKE) | trigger

Details

Comparing HEAD and avoid_concat
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
┃ Query     ┃                           HEAD ┃                   avoid_concat ┃       Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━┩
│ QQuery 1  │ 46.95 / 47.47 ±0.66 / 48.76 ms │ 47.08 / 47.98 ±1.16 / 50.26 ms │    no change │
│ QQuery 2  │ 24.99 / 26.12 ±1.52 / 29.09 ms │ 26.28 / 26.65 ±0.26 / 26.97 ms │    no change │
│ QQuery 3  │ 33.85 / 34.07 ±0.25 / 34.51 ms │ 34.59 / 34.84 ±0.23 / 35.18 ms │    no change │
│ QQuery 4  │ 23.27 / 23.66 ±0.32 / 24.05 ms │ 22.48 / 23.23 ±0.64 / 23.98 ms │    no change │
│ QQuery 5  │ 52.18 / 54.23 ±1.13 / 55.58 ms │ 52.65 / 54.93 ±1.67 / 56.88 ms │    no change │
│ QQuery 6  │ 17.69 / 17.80 ±0.11 / 18.00 ms │ 18.17 / 18.86 ±1.04 / 20.92 ms │ 1.06x slower │
│ QQuery 7  │ 58.87 / 59.84 ±1.03 / 61.47 ms │ 60.17 / 61.50 ±0.71 / 62.13 ms │    no change │
│ QQuery 8  │ 52.10 / 52.88 ±0.43 / 53.44 ms │ 52.66 / 53.23 ±0.36 / 53.71 ms │    no change │
│ QQuery 9  │ 57.70 / 58.30 ±0.51 / 59.20 ms │ 57.54 / 59.47 ±1.47 / 61.58 ms │    no change │
│ QQuery 10 │ 75.27 / 75.64 ±0.31 / 75.99 ms │ 75.29 / 76.34 ±0.82 / 77.47 ms │    no change │
│ QQuery 11 │ 17.03 / 17.36 ±0.26 / 17.80 ms │ 18.28 / 18.58 ±0.33 / 19.20 ms │ 1.07x slower │
│ QQuery 12 │ 29.28 / 29.95 ±0.51 / 30.61 ms │ 29.61 / 29.87 ±0.17 / 30.11 ms │    no change │
│ QQuery 13 │ 41.04 / 41.65 ±0.63 / 42.47 ms │ 41.55 / 42.77 ±0.97 / 44.36 ms │    no change │
│ QQuery 14 │ 29.53 / 29.94 ±0.34 / 30.47 ms │ 29.96 / 30.29 ±0.29 / 30.82 ms │    no change │
│ QQuery 15 │ 36.69 / 36.91 ±0.23 / 37.31 ms │ 37.98 / 38.43 ±0.58 / 39.57 ms │    no change │
│ QQuery 16 │ 18.22 / 18.70 ±0.53 / 19.67 ms │ 18.62 / 18.90 ±0.21 / 19.22 ms │    no change │
│ QQuery 17 │ 77.79 / 79.03 ±0.91 / 80.55 ms │ 78.76 / 79.58 ±0.47 / 80.07 ms │    no change │
│ QQuery 18 │ 83.65 / 84.50 ±0.67 / 85.62 ms │ 87.86 / 89.25 ±1.15 / 91.00 ms │ 1.06x slower │
│ QQuery 19 │ 39.65 / 40.41 ±0.67 / 41.59 ms │ 39.75 / 41.84 ±1.66 / 44.10 ms │    no change │
│ QQuery 20 │ 44.20 / 44.87 ±0.70 / 46.20 ms │ 45.24 / 46.66 ±1.14 / 48.73 ms │    no change │
│ QQuery 21 │ 70.46 / 71.51 ±0.99 / 72.84 ms │ 74.18 / 75.93 ±1.52 / 78.53 ms │ 1.06x slower │
│ QQuery 22 │ 20.36 / 20.74 ±0.21 / 21.00 ms │ 20.62 / 21.14 ±0.36 / 21.67 ms │    no change │
└───────────┴────────────────────────────────┴────────────────────────────────┴──────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Benchmark Summary           ┃          ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ Total Time (HEAD)           │ 965.58ms │
│ Total Time (avoid_concat)   │ 990.27ms │
│ Average Time (HEAD)         │  43.89ms │
│ Average Time (avoid_concat) │  45.01ms │
│ Queries Faster              │        0 │
│ Queries Slower              │        4 │
│ Queries with No Change      │       18 │
│ Queries with Failure        │        0 │
└─────────────────────────────┴──────────┘

Resource Usage

tpch — base (merge-base)

Metric Value
Wall time 5.1s
Peak memory 4.0 GiB
Avg memory 3.5 GiB
CPU user 34.4s
CPU sys 3.2s
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.5s
CPU sys 3.2s
Disk read 0 B
Disk write 68.0 KiB

@adriangbot
Copy link

🤖 Benchmark completed (GKE) | trigger

Details

Comparing HEAD and avoid_concat
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┓
┃ Query     ┃                                     HEAD ┃                          avoid_concat ┃         Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━┩
│ QQuery 1  │           49.24 / 50.04 ±0.60 / 51.09 ms │                                  FAIL │   incomparable │
│ QQuery 2  │        154.53 / 156.00 ±1.35 / 158.36 ms │     159.09 / 160.31 ±0.90 / 161.67 ms │      no change │
│ QQuery 3  │        119.04 / 119.60 ±0.36 / 119.97 ms │     120.98 / 121.95 ±0.51 / 122.41 ms │      no change │
│ QQuery 4  │    1350.64 / 1363.74 ±14.37 / 1382.24 ms │ 1539.58 / 1556.81 ±11.05 / 1567.38 ms │   1.14x slower │
│ QQuery 5  │        184.67 / 186.23 ±1.15 / 187.97 ms │     185.67 / 187.33 ±1.63 / 189.41 ms │      no change │
│ QQuery 6  │    1004.81 / 1028.89 ±19.17 / 1054.07 ms │     305.07 / 319.63 ±9.82 / 333.23 ms │  +3.22x faster │
│ QQuery 7  │        360.11 / 362.70 ±2.85 / 367.19 ms │     355.59 / 358.41 ±2.81 / 363.29 ms │      no change │
│ QQuery 8  │        123.88 / 124.69 ±0.62 / 125.50 ms │     123.33 / 123.55 ±0.11 / 123.65 ms │      no change │
│ QQuery 9  │        112.26 / 120.94 ±9.15 / 138.70 ms │     111.55 / 116.63 ±2.58 / 118.60 ms │      no change │
│ QQuery 10 │        115.96 / 116.61 ±0.59 / 117.50 ms │     114.93 / 116.81 ±1.47 / 118.43 ms │      no change │
│ QQuery 11 │    1010.75 / 1023.82 ±11.14 / 1037.76 ms │ 1093.20 / 1111.44 ±10.46 / 1122.23 ms │   1.09x slower │
│ QQuery 12 │           47.93 / 48.84 ±0.79 / 49.89 ms │        49.18 / 50.68 ±1.53 / 53.62 ms │      no change │
│ QQuery 13 │        410.15 / 413.99 ±2.96 / 418.50 ms │     400.46 / 406.02 ±2.85 / 408.57 ms │      no change │
│ QQuery 14 │     1084.96 / 1097.34 ±7.29 / 1105.35 ms │  1165.47 / 1176.39 ±6.37 / 1184.59 ms │   1.07x slower │
│ QQuery 15 │           18.24 / 19.78 ±1.30 / 21.69 ms │        17.18 / 18.20 ±1.20 / 20.47 ms │  +1.09x faster │
│ QQuery 16 │           46.92 / 47.54 ±0.92 / 49.36 ms │                                  FAIL │   incomparable │
│ QQuery 17 │        250.15 / 253.01 ±2.11 / 255.50 ms │     246.44 / 249.02 ±1.94 / 251.68 ms │      no change │
│ QQuery 18 │        133.69 / 135.81 ±1.07 / 136.56 ms │     132.75 / 133.70 ±1.02 / 135.36 ms │      no change │
│ QQuery 19 │        164.59 / 166.20 ±1.33 / 168.60 ms │     163.94 / 165.27 ±1.34 / 167.67 ms │      no change │
│ QQuery 20 │           16.30 / 16.71 ±0.37 / 17.28 ms │        16.52 / 16.94 ±0.47 / 17.84 ms │      no change │
│ QQuery 21 │           23.54 / 24.14 ±0.55 / 25.14 ms │        24.86 / 25.59 ±0.73 / 26.98 ms │   1.06x slower │
│ QQuery 22 │        520.68 / 524.32 ±1.99 / 526.70 ms │     541.16 / 548.87 ±4.87 / 555.66 ms │      no change │
│ QQuery 23 │        943.25 / 952.29 ±6.61 / 961.99 ms │   974.87 / 990.60 ±12.14 / 1010.27 ms │      no change │
│ QQuery 24 │        432.46 / 434.03 ±1.22 / 435.82 ms │                                  FAIL │   incomparable │
│ QQuery 25 │        362.61 / 365.52 ±2.52 / 369.94 ms │     368.42 / 370.33 ±2.34 / 374.73 ms │      no change │
│ QQuery 26 │           86.10 / 87.10 ±0.75 / 88.35 ms │        86.07 / 87.88 ±1.27 / 89.76 ms │      no change │
│ QQuery 27 │        353.56 / 355.56 ±2.00 / 358.87 ms │     354.03 / 356.38 ±1.67 / 359.10 ms │      no change │
│ QQuery 28 │        153.33 / 154.95 ±1.20 / 156.59 ms │     153.41 / 154.50 ±1.44 / 157.18 ms │      no change │
│ QQuery 29 │        306.55 / 310.84 ±2.52 / 313.91 ms │     308.13 / 310.26 ±1.78 / 312.33 ms │      no change │
│ QQuery 30 │           49.33 / 50.88 ±0.91 / 51.88 ms │        47.08 / 49.12 ±1.79 / 52.33 ms │      no change │
│ QQuery 31 │        180.34 / 185.49 ±3.03 / 189.80 ms │     181.81 / 185.55 ±2.60 / 189.78 ms │      no change │
│ QQuery 32 │           60.94 / 62.35 ±1.20 / 63.85 ms │        61.73 / 62.90 ±0.87 / 63.92 ms │      no change │
│ QQuery 33 │        148.44 / 150.82 ±1.53 / 152.80 ms │     149.75 / 151.69 ±1.37 / 153.90 ms │      no change │
│ QQuery 34 │        110.48 / 111.96 ±0.84 / 113.04 ms │     112.83 / 113.71 ±0.61 / 114.58 ms │      no change │
│ QQuery 35 │        115.81 / 118.02 ±1.39 / 119.85 ms │     117.25 / 119.53 ±1.86 / 121.86 ms │      no change │
│ QQuery 36 │        218.96 / 224.99 ±4.28 / 232.29 ms │     222.82 / 226.09 ±3.06 / 229.78 ms │      no change │
│ QQuery 37 │        183.62 / 185.21 ±1.51 / 187.83 ms │     190.15 / 191.91 ±1.06 / 193.41 ms │      no change │
│ QQuery 38 │           94.51 / 96.85 ±1.80 / 99.38 ms │       92.91 / 98.14 ±3.47 / 102.95 ms │      no change │
│ QQuery 39 │        135.20 / 138.08 ±1.77 / 140.32 ms │     145.61 / 148.44 ±1.87 / 150.73 ms │   1.08x slower │
│ QQuery 40 │        113.92 / 120.20 ±4.52 / 127.64 ms │     110.60 / 114.35 ±2.36 / 118.03 ms │      no change │
│ QQuery 41 │           17.47 / 19.37 ±1.61 / 22.03 ms │        17.33 / 18.02 ±0.72 / 19.35 ms │  +1.07x faster │
│ QQuery 42 │        110.92 / 113.04 ±1.20 / 114.36 ms │     112.81 / 115.02 ±1.71 / 117.43 ms │      no change │
│ QQuery 43 │           87.16 / 88.08 ±0.49 / 88.53 ms │        89.46 / 90.07 ±0.49 / 90.83 ms │      no change │
│ QQuery 44 │           17.13 / 17.77 ±0.47 / 18.28 ms │        17.73 / 17.92 ±0.15 / 18.10 ms │      no change │
│ QQuery 45 │           55.06 / 56.49 ±1.10 / 58.29 ms │        57.13 / 58.40 ±0.95 / 59.93 ms │      no change │
│ QQuery 46 │        234.32 / 237.24 ±1.83 / 239.49 ms │                                  FAIL │   incomparable │
│ QQuery 47 │        721.47 / 731.17 ±5.13 / 736.66 ms │     823.35 / 831.64 ±5.40 / 837.87 ms │   1.14x slower │
│ QQuery 48 │        289.23 / 296.74 ±4.25 / 300.58 ms │     285.55 / 291.53 ±4.07 / 296.24 ms │      no change │
│ QQuery 49 │        262.13 / 263.52 ±1.44 / 266.16 ms │     264.43 / 266.45 ±1.46 / 268.43 ms │      no change │
│ QQuery 50 │        235.25 / 243.37 ±6.67 / 251.78 ms │     230.90 / 236.38 ±3.37 / 241.35 ms │      no change │
│ QQuery 51 │        189.69 / 192.15 ±2.40 / 195.71 ms │     191.06 / 193.02 ±1.89 / 196.02 ms │      no change │
│ QQuery 52 │        111.85 / 113.25 ±1.47 / 115.15 ms │     112.05 / 112.81 ±0.66 / 113.78 ms │      no change │
│ QQuery 53 │        107.25 / 108.40 ±0.89 / 109.86 ms │     109.35 / 110.27 ±1.06 / 111.92 ms │      no change │
│ QQuery 54 │        153.53 / 155.31 ±1.07 / 156.65 ms │     155.06 / 156.15 ±1.33 / 157.77 ms │      no change │
│ QQuery 55 │        111.10 / 112.38 ±2.24 / 116.84 ms │     110.43 / 111.71 ±0.87 / 112.48 ms │      no change │
│ QQuery 56 │        149.33 / 150.19 ±0.68 / 151.10 ms │     151.08 / 151.88 ±0.49 / 152.59 ms │      no change │
│ QQuery 57 │        187.80 / 190.41 ±1.65 / 192.55 ms │     200.41 / 203.01 ±1.85 / 205.16 ms │   1.07x slower │
│ QQuery 58 │        308.25 / 314.90 ±4.75 / 321.88 ms │     315.92 / 320.67 ±4.26 / 327.37 ms │      no change │
│ QQuery 59 │        210.27 / 211.60 ±1.29 / 213.97 ms │     210.27 / 212.64 ±3.30 / 218.76 ms │      no change │
│ QQuery 60 │        151.41 / 155.02 ±2.32 / 157.54 ms │     153.82 / 155.77 ±1.54 / 157.67 ms │      no change │
│ QQuery 61 │        177.02 / 179.74 ±1.44 / 181.36 ms │     178.57 / 181.00 ±1.68 / 182.99 ms │      no change │
│ QQuery 62 │       907.39 / 929.81 ±13.44 / 943.96 ms │     190.87 / 195.70 ±7.01 / 209.43 ms │  +4.75x faster │
│ QQuery 63 │        108.63 / 111.53 ±2.44 / 115.47 ms │     109.34 / 112.66 ±3.94 / 120.37 ms │      no change │
│ QQuery 64 │        712.50 / 719.00 ±4.63 / 726.29 ms │     706.64 / 712.28 ±3.26 / 716.00 ms │      no change │
│ QQuery 65 │        256.31 / 259.94 ±3.25 / 265.51 ms │     260.52 / 265.58 ±4.30 / 271.19 ms │      no change │
│ QQuery 66 │       244.92 / 262.10 ±16.03 / 289.94 ms │    238.16 / 255.87 ±10.31 / 266.79 ms │      no change │
│ QQuery 67 │        339.49 / 343.62 ±3.69 / 348.41 ms │     349.18 / 351.85 ±1.49 / 353.61 ms │      no change │
│ QQuery 68 │        282.35 / 286.80 ±3.75 / 292.41 ms │                                  FAIL │   incomparable │
│ QQuery 69 │        114.29 / 115.63 ±1.13 / 117.41 ms │     113.54 / 114.64 ±1.26 / 116.73 ms │      no change │
│ QQuery 70 │       349.34 / 359.61 ±10.75 / 380.38 ms │    349.68 / 369.49 ±12.88 / 390.01 ms │      no change │
│ QQuery 71 │        137.40 / 140.26 ±1.66 / 142.21 ms │     139.81 / 142.45 ±2.89 / 148.05 ms │      no change │
│ QQuery 72 │        713.97 / 726.35 ±9.09 / 742.30 ms │    803.80 / 834.11 ±20.20 / 866.52 ms │   1.15x slower │
│ QQuery 73 │        105.65 / 107.66 ±1.15 / 108.83 ms │     108.08 / 110.64 ±2.20 / 114.29 ms │      no change │
│ QQuery 74 │        573.39 / 585.06 ±6.77 / 592.27 ms │     659.38 / 669.46 ±8.39 / 681.72 ms │   1.14x slower │
│ QQuery 75 │        293.63 / 295.02 ±1.05 / 296.08 ms │     297.45 / 300.13 ±1.55 / 301.81 ms │      no change │
│ QQuery 76 │        136.63 / 138.02 ±1.50 / 140.54 ms │     140.08 / 141.31 ±1.21 / 143.27 ms │      no change │
│ QQuery 77 │        200.94 / 203.22 ±1.54 / 205.62 ms │     203.05 / 204.92 ±1.24 / 206.87 ms │      no change │
│ QQuery 78 │        357.12 / 364.97 ±4.04 / 368.11 ms │     364.26 / 369.60 ±3.33 / 373.96 ms │      no change │
│ QQuery 79 │        237.94 / 240.95 ±2.64 / 245.13 ms │     239.62 / 243.09 ±3.10 / 247.74 ms │      no change │
│ QQuery 80 │        338.81 / 342.01 ±2.58 / 345.70 ms │     343.23 / 346.24 ±1.98 / 348.72 ms │      no change │
│ QQuery 81 │           30.69 / 31.80 ±1.19 / 34.03 ms │        30.29 / 31.40 ±0.88 / 32.49 ms │      no change │
│ QQuery 82 │        205.79 / 209.07 ±1.73 / 210.83 ms │     209.14 / 211.41 ±2.24 / 215.53 ms │      no change │
│ QQuery 83 │           47.53 / 48.86 ±1.18 / 51.02 ms │        48.46 / 48.91 ±0.36 / 49.42 ms │      no change │
│ QQuery 84 │           52.12 / 53.39 ±1.08 / 54.86 ms │        52.45 / 53.42 ±0.91 / 54.98 ms │      no change │
│ QQuery 85 │        152.96 / 154.42 ±0.75 / 155.02 ms │     154.61 / 155.96 ±1.02 / 157.53 ms │      no change │
│ QQuery 86 │           42.15 / 43.24 ±1.12 / 45.11 ms │        42.44 / 42.89 ±0.32 / 43.38 ms │      no change │
│ QQuery 87 │          91.83 / 94.86 ±4.11 / 102.94 ms │       96.42 / 98.59 ±2.94 / 104.41 ms │      no change │
│ QQuery 88 │        111.53 / 112.89 ±1.07 / 114.82 ms │     114.90 / 115.74 ±0.70 / 116.70 ms │      no change │
│ QQuery 89 │        122.94 / 125.63 ±1.52 / 127.22 ms │     126.56 / 127.93 ±0.79 / 128.72 ms │      no change │
│ QQuery 90 │           28.41 / 28.85 ±0.36 / 29.29 ms │        27.88 / 28.75 ±0.67 / 29.96 ms │      no change │
│ QQuery 91 │           65.77 / 67.23 ±1.17 / 69.19 ms │        64.18 / 65.43 ±0.71 / 66.12 ms │      no change │
│ QQuery 92 │           61.68 / 62.64 ±0.76 / 63.70 ms │        62.65 / 63.18 ±0.69 / 64.54 ms │      no change │
│ QQuery 93 │        192.15 / 195.95 ±2.67 / 199.64 ms │     197.39 / 198.67 ±0.96 / 200.37 ms │      no change │
│ QQuery 94 │           65.62 / 67.51 ±1.29 / 69.57 ms │        65.43 / 67.00 ±0.87 / 67.87 ms │      no change │
│ QQuery 95 │        141.02 / 143.24 ±1.69 / 145.90 ms │     155.27 / 159.69 ±3.55 / 165.88 ms │   1.11x slower │
│ QQuery 96 │           79.23 / 80.42 ±1.18 / 82.50 ms │        80.60 / 81.04 ±0.44 / 81.72 ms │      no change │
│ QQuery 97 │        134.19 / 135.89 ±1.64 / 138.78 ms │     134.44 / 140.55 ±3.70 / 144.33 ms │      no change │
│ QQuery 98 │        154.31 / 157.78 ±2.26 / 160.56 ms │     168.48 / 169.85 ±1.06 / 171.32 ms │   1.08x slower │
│ QQuery 99 │ 10721.95 / 10774.34 ±32.19 / 10821.75 ms │    297.50 / 323.08 ±20.65 / 357.12 ms │ +33.35x faster │
└───────────┴──────────────────────────────────────────┴───────────────────────────────────────┴────────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary           ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)           │ 33520.14ms │
│ Total Time (avoid_concat)   │ 22452.79ms │
│ Average Time (HEAD)         │   356.60ms │
│ Average Time (avoid_concat) │   238.86ms │
│ Queries Faster              │          5 │
│ Queries Slower              │         11 │
│ Queries with No Change      │         78 │
│ Queries with Failure        │          5 │
└─────────────────────────────┴────────────┘

Resource Usage

tpcds — base (merge-base)

Metric Value
Wall time 173.2s
Peak memory 5.6 GiB
Avg memory 4.5 GiB
CPU user 274.3s
CPU sys 20.8s
Disk read 0 B
Disk write 636.1 MiB

tpcds — branch

Metric Value
Wall time 113.4s
Peak memory 4.8 GiB
Avg memory 4.0 GiB
CPU user 218.3s
CPU sys 18.6s
Disk read 0 B
Disk write 156.0 KiB

@adriangbot
Copy link

🤖 Benchmark completed (GKE) | trigger

Details

Comparing HEAD and avoid_concat
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                                  HEAD ┃                          avoid_concat ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0  │          1.65 / 4.93 ±6.39 / 17.71 ms │          1.63 / 5.00 ±6.54 / 18.09 ms │     no change │
│ QQuery 1  │        15.50 / 16.01 ±0.32 / 16.36 ms │        14.86 / 15.42 ±0.30 / 15.69 ms │     no change │
│ QQuery 2  │        56.57 / 57.32 ±0.69 / 58.15 ms │        56.28 / 56.55 ±0.23 / 56.86 ms │     no change │
│ QQuery 3  │        46.62 / 49.05 ±1.71 / 51.45 ms │        47.17 / 50.75 ±3.05 / 55.08 ms │     no change │
│ QQuery 4  │     335.26 / 346.56 ±6.10 / 353.75 ms │    323.79 / 337.47 ±12.17 / 354.80 ms │     no change │
│ QQuery 5  │     391.31 / 395.48 ±3.66 / 401.37 ms │    354.11 / 364.84 ±11.96 / 387.89 ms │ +1.08x faster │
│ QQuery 6  │           5.88 / 6.55 ±0.58 / 7.55 ms │           5.55 / 6.33 ±0.72 / 7.53 ms │     no change │
│ QQuery 7  │        19.05 / 19.46 ±0.33 / 19.84 ms │        17.96 / 19.21 ±0.98 / 20.19 ms │     no change │
│ QQuery 8  │    473.27 / 497.16 ±15.89 / 522.87 ms │     458.30 / 465.92 ±7.90 / 480.88 ms │ +1.07x faster │
│ QQuery 9  │    717.16 / 758.20 ±34.10 / 795.26 ms │    678.75 / 716.01 ±24.07 / 753.97 ms │ +1.06x faster │
│ QQuery 10 │      99.21 / 101.12 ±1.21 / 102.48 ms │      92.19 / 101.13 ±8.10 / 114.93 ms │     no change │
│ QQuery 11 │     107.37 / 109.97 ±1.44 / 111.62 ms │     107.38 / 110.23 ±3.67 / 117.42 ms │     no change │
│ QQuery 12 │    356.53 / 370.08 ±11.22 / 382.91 ms │    356.00 / 367.81 ±13.54 / 392.05 ms │     no change │
│ QQuery 13 │    480.53 / 498.96 ±18.27 / 532.95 ms │    478.11 / 491.90 ±10.19 / 505.82 ms │     no change │
│ QQuery 14 │    370.81 / 386.32 ±13.62 / 405.63 ms │    363.98 / 385.33 ±15.89 / 407.81 ms │     no change │
│ QQuery 15 │    395.50 / 407.02 ±11.75 / 429.70 ms │    378.60 / 417.29 ±34.05 / 476.89 ms │     no change │
│ QQuery 16 │    791.43 / 811.05 ±14.21 / 830.94 ms │    770.32 / 814.51 ±37.50 / 871.08 ms │     no change │
│ QQuery 17 │    780.71 / 805.75 ±17.12 / 826.06 ms │    753.13 / 774.74 ±11.74 / 784.73 ms │     no change │
│ QQuery 18 │ 1504.02 / 1568.85 ±39.28 / 1625.64 ms │ 1516.80 / 1567.00 ±48.29 / 1638.01 ms │     no change │
│ QQuery 19 │        35.04 / 37.49 ±1.98 / 40.88 ms │        37.10 / 37.64 ±0.51 / 38.35 ms │     no change │
│ QQuery 20 │    709.13 / 731.55 ±17.98 / 761.95 ms │    732.77 / 743.56 ±14.04 / 770.22 ms │     no change │
│ QQuery 21 │     756.74 / 766.99 ±8.13 / 777.57 ms │    770.08 / 789.62 ±21.32 / 829.66 ms │     no change │
│ QQuery 22 │  1139.02 / 1144.14 ±4.41 / 1149.54 ms │ 1126.99 / 1143.90 ±10.22 / 1157.61 ms │     no change │
│ QQuery 23 │ 3246.15 / 3300.27 ±39.54 / 3360.55 ms │ 3241.35 / 3276.43 ±28.29 / 3320.84 ms │     no change │
│ QQuery 24 │     108.56 / 111.12 ±3.43 / 117.76 ms │     101.75 / 105.61 ±3.26 / 110.70 ms │     no change │
│ QQuery 25 │     144.32 / 145.80 ±1.09 / 147.39 ms │     139.26 / 144.02 ±3.23 / 148.49 ms │     no change │
│ QQuery 26 │     108.78 / 109.68 ±0.89 / 111.36 ms │     104.28 / 108.00 ±2.97 / 110.45 ms │     no change │
│ QQuery 27 │     849.84 / 863.07 ±8.87 / 877.22 ms │    851.94 / 861.99 ±12.44 / 886.47 ms │     no change │
│ QQuery 28 │ 7759.14 / 7812.45 ±28.25 / 7837.23 ms │ 7734.04 / 7829.83 ±60.96 / 7902.13 ms │     no change │
│ QQuery 29 │    331.97 / 340.32 ±11.91 / 364.01 ms │    329.98 / 337.41 ±13.32 / 364.03 ms │     no change │
│ QQuery 30 │     382.55 / 391.37 ±7.07 / 402.47 ms │    376.28 / 389.10 ±10.60 / 407.79 ms │     no change │
│ QQuery 31 │     391.01 / 398.60 ±6.47 / 407.19 ms │    380.42 / 394.77 ±10.91 / 412.52 ms │     no change │
│ QQuery 32 │ 1066.56 / 1117.43 ±29.17 / 1146.25 ms │ 1257.38 / 1310.86 ±56.27 / 1404.97 ms │  1.17x slower │
│ QQuery 33 │ 1608.60 / 1628.34 ±17.10 / 1655.01 ms │ 1536.62 / 1588.01 ±47.36 / 1676.64 ms │     no change │
│ QQuery 34 │ 1551.52 / 1606.82 ±44.40 / 1685.69 ms │ 1541.52 / 1566.82 ±21.29 / 1597.54 ms │     no change │
│ QQuery 35 │    413.01 / 445.74 ±26.22 / 475.26 ms │    407.60 / 428.87 ±21.70 / 466.17 ms │     no change │
│ QQuery 36 │     121.20 / 126.34 ±4.42 / 133.01 ms │     121.26 / 126.68 ±3.79 / 131.65 ms │     no change │
│ QQuery 37 │        50.26 / 54.00 ±2.86 / 58.52 ms │        48.99 / 50.66 ±1.29 / 52.22 ms │ +1.07x faster │
│ QQuery 38 │        78.31 / 79.87 ±1.39 / 81.63 ms │        75.54 / 77.61 ±1.79 / 80.76 ms │     no change │
│ QQuery 39 │     227.54 / 232.82 ±4.44 / 238.41 ms │    229.32 / 244.04 ±13.19 / 264.05 ms │     no change │
│ QQuery 40 │        26.24 / 28.26 ±1.64 / 29.89 ms │        25.73 / 26.50 ±0.62 / 27.17 ms │ +1.07x faster │
│ QQuery 41 │        20.47 / 22.44 ±2.05 / 26.26 ms │        19.97 / 21.28 ±1.35 / 23.59 ms │ +1.05x faster │
│ QQuery 42 │        21.33 / 22.91 ±1.36 / 24.93 ms │        19.50 / 20.52 ±0.72 / 21.41 ms │ +1.12x faster │
└───────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary           ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)           │ 28727.65ms │
│ Total Time (avoid_concat)   │ 28691.14ms │
│ Average Time (HEAD)         │   668.08ms │
│ Average Time (avoid_concat) │   667.24ms │
│ Queries Faster              │          7 │
│ Queries Slower              │          1 │
│ Queries with No Change      │         35 │
│ Queries with Failure        │          0 │
└─────────────────────────────┴────────────┘

Resource Usage

clickbench_partitioned — base (merge-base)

Metric Value
Wall time 144.8s
Peak memory 38.1 GiB
Avg memory 28.2 GiB
CPU user 1359.2s
CPU sys 95.3s
Disk read 0 B
Disk write 3.4 GiB

clickbench_partitioned — branch

Metric Value
Wall time 144.5s
Peak memory 38.7 GiB
Avg memory 29.2 GiB
CPU user 1344.6s
CPU sys 105.4s
Disk read 0 B
Disk write 116.0 KiB

@Dandandan
Copy link
Contributor Author

run benchmarks

@adriangbot
Copy link

🤖 Benchmark running (GKE) | trigger
Linux bench-c4060652003-237-8w995 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing avoid_concat (d99cf53) to 9c3c01a (merge-base) diff using: tpch
Results will be posted here when complete

@adriangbot
Copy link

🤖 Benchmark running (GKE) | trigger
Linux bench-c4060652003-235-ttwqj 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing avoid_concat (d99cf53) to 9c3c01a (merge-base) diff using: clickbench_partitioned
Results will be posted here when complete

@adriangbot
Copy link

🤖 Benchmark running (GKE) | trigger
Linux bench-c4060652003-236-hg9xq 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing avoid_concat (d99cf53) to 9c3c01a (merge-base) diff using: tpcds
Results will be posted here when complete

@adriangbot
Copy link

🤖 Benchmark completed (GKE) | trigger

Details

Comparing HEAD and avoid_concat
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                           HEAD ┃                   avoid_concat ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1  │ 46.24 / 47.36 ±0.76 / 48.62 ms │ 46.36 / 46.93 ±1.01 / 48.94 ms │     no change │
│ QQuery 2  │ 25.01 / 25.39 ±0.31 / 25.79 ms │ 24.97 / 25.51 ±0.45 / 26.15 ms │     no change │
│ QQuery 3  │ 33.58 / 34.11 ±0.35 / 34.67 ms │ 34.07 / 34.22 ±0.17 / 34.52 ms │     no change │
│ QQuery 4  │ 22.01 / 22.95 ±0.84 / 24.03 ms │ 22.07 / 22.68 ±0.58 / 23.68 ms │     no change │
│ QQuery 5  │ 50.92 / 53.51 ±2.15 / 56.42 ms │ 53.96 / 55.00 ±0.83 / 56.31 ms │     no change │
│ QQuery 6  │ 17.84 / 17.94 ±0.10 / 18.12 ms │ 17.59 / 18.03 ±0.44 / 18.81 ms │     no change │
│ QQuery 7  │ 57.38 / 58.74 ±1.78 / 62.11 ms │ 60.00 / 60.74 ±0.41 / 61.18 ms │     no change │
│ QQuery 8  │ 50.95 / 51.40 ±0.36 / 52.04 ms │ 51.38 / 52.38 ±0.72 / 53.37 ms │     no change │
│ QQuery 9  │ 57.84 / 58.55 ±0.64 / 59.76 ms │ 57.39 / 58.50 ±0.83 / 59.95 ms │     no change │
│ QQuery 10 │ 72.74 / 73.51 ±1.01 / 75.47 ms │ 73.44 / 74.74 ±0.79 / 75.68 ms │     no change │
│ QQuery 11 │ 16.84 / 17.15 ±0.34 / 17.79 ms │ 17.19 / 17.96 ±0.70 / 19.20 ms │     no change │
│ QQuery 12 │ 29.31 / 29.58 ±0.19 / 29.84 ms │ 28.79 / 30.20 ±1.50 / 33.11 ms │     no change │
│ QQuery 13 │ 39.35 / 40.69 ±0.75 / 41.48 ms │ 39.89 / 40.27 ±0.35 / 40.76 ms │     no change │
│ QQuery 14 │ 29.30 / 29.78 ±0.37 / 30.43 ms │ 29.53 / 29.88 ±0.34 / 30.47 ms │     no change │
│ QQuery 15 │ 36.15 / 36.70 ±0.38 / 37.16 ms │ 36.30 / 36.60 ±0.29 / 37.15 ms │     no change │
│ QQuery 16 │ 18.11 / 18.50 ±0.29 / 18.99 ms │ 17.88 / 18.21 ±0.24 / 18.57 ms │     no change │
│ QQuery 17 │ 74.85 / 76.18 ±1.50 / 78.41 ms │ 74.83 / 76.49 ±1.18 / 78.47 ms │     no change │
│ QQuery 18 │ 80.79 / 82.86 ±1.68 / 85.16 ms │ 84.32 / 86.58 ±1.37 / 88.06 ms │     no change │
│ QQuery 19 │ 38.90 / 41.37 ±2.56 / 46.06 ms │ 38.68 / 39.16 ±0.36 / 39.63 ms │ +1.06x faster │
│ QQuery 20 │ 43.53 / 45.36 ±1.83 / 48.63 ms │ 43.46 / 45.32 ±1.44 / 47.56 ms │     no change │
│ QQuery 21 │ 70.85 / 72.02 ±0.88 / 73.52 ms │ 71.43 / 73.39 ±1.99 / 76.16 ms │     no change │
│ QQuery 22 │ 20.10 / 20.51 ±0.37 / 21.00 ms │ 20.01 / 20.46 ±0.38 / 20.93 ms │     no change │
└───────────┴────────────────────────────────┴────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Benchmark Summary           ┃          ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ Total Time (HEAD)           │ 954.18ms │
│ Total Time (avoid_concat)   │ 963.24ms │
│ Average Time (HEAD)         │  43.37ms │
│ Average Time (avoid_concat) │  43.78ms │
│ Queries Faster              │        1 │
│ Queries Slower              │        0 │
│ Queries with No Change      │       21 │
│ Queries with Failure        │        0 │
└─────────────────────────────┴──────────┘

Resource Usage

tpch — base (merge-base)

Metric Value
Wall time 5.1s
Peak memory 4.0 GiB
Avg memory 3.5 GiB
CPU user 34.0s
CPU sys 3.1s
Disk read 0 B
Disk write 148.0 KiB

tpch — branch

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

@adriangbot
Copy link

🤖 Benchmark completed (GKE) | trigger

Details

Comparing HEAD and avoid_concat
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┓
┃ Query     ┃                                     HEAD ┃                          avoid_concat ┃         Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━┩
│ QQuery 1  │           48.55 / 49.19 ±0.63 / 50.29 ms │                                  FAIL │   incomparable │
│ QQuery 2  │        154.98 / 156.25 ±0.87 / 157.43 ms │     160.75 / 162.08 ±0.90 / 163.31 ms │      no change │
│ QQuery 3  │        118.68 / 119.22 ±0.70 / 120.61 ms │     122.11 / 122.67 ±0.60 / 123.54 ms │      no change │
│ QQuery 4  │    1322.80 / 1344.58 ±19.13 / 1371.35 ms │ 1478.68 / 1499.61 ±19.88 / 1529.92 ms │   1.12x slower │
│ QQuery 5  │        183.92 / 185.47 ±1.71 / 188.60 ms │     186.42 / 187.52 ±1.14 / 189.51 ms │      no change │
│ QQuery 6  │     987.78 / 1025.88 ±35.78 / 1080.38 ms │     296.91 / 302.30 ±4.21 / 307.53 ms │  +3.39x faster │
│ QQuery 7  │        353.06 / 356.43 ±2.16 / 359.25 ms │     356.58 / 361.11 ±2.36 / 362.94 ms │      no change │
│ QQuery 8  │        121.47 / 122.30 ±0.62 / 123.25 ms │     121.23 / 122.53 ±0.67 / 123.10 ms │      no change │
│ QQuery 9  │        110.81 / 114.87 ±3.24 / 117.93 ms │     113.17 / 117.28 ±2.30 / 120.23 ms │      no change │
│ QQuery 10 │        113.42 / 115.25 ±1.32 / 117.13 ms │     114.35 / 116.06 ±1.24 / 118.19 ms │      no change │
│ QQuery 11 │        905.91 / 910.24 ±3.56 / 916.42 ms │  1060.27 / 1066.94 ±7.93 / 1080.73 ms │   1.17x slower │
│ QQuery 12 │           46.02 / 48.34 ±1.44 / 50.24 ms │        49.10 / 50.76 ±1.36 / 52.90 ms │   1.05x slower │
│ QQuery 13 │        404.27 / 407.28 ±2.28 / 410.21 ms │     405.81 / 406.84 ±0.99 / 408.61 ms │      no change │
│ QQuery 14 │     1078.88 / 1089.81 ±8.85 / 1103.86 ms │  1171.22 / 1183.39 ±6.48 / 1188.53 ms │   1.09x slower │
│ QQuery 15 │           17.78 / 18.40 ±0.80 / 19.93 ms │        17.83 / 19.18 ±0.91 / 20.44 ms │      no change │
│ QQuery 16 │           44.67 / 45.73 ±0.91 / 46.72 ms │                                  FAIL │   incomparable │
│ QQuery 17 │        249.79 / 251.12 ±0.93 / 252.64 ms │     250.30 / 251.23 ±1.06 / 252.82 ms │      no change │
│ QQuery 18 │        133.26 / 134.94 ±1.48 / 136.96 ms │     134.29 / 135.14 ±0.94 / 136.95 ms │      no change │
│ QQuery 19 │        161.87 / 164.00 ±1.39 / 165.42 ms │     163.67 / 165.64 ±1.17 / 166.83 ms │      no change │
│ QQuery 20 │           15.03 / 16.11 ±0.61 / 16.86 ms │        15.35 / 16.13 ±0.70 / 17.27 ms │      no change │
│ QQuery 21 │           23.31 / 23.67 ±0.25 / 23.96 ms │        23.45 / 24.28 ±0.50 / 24.96 ms │      no change │
│ QQuery 22 │        513.13 / 517.59 ±2.94 / 520.46 ms │     538.98 / 542.10 ±2.75 / 546.85 ms │      no change │
│ QQuery 23 │        935.37 / 946.49 ±8.12 / 960.34 ms │     974.94 / 991.20 ±8.35 / 998.04 ms │      no change │
│ QQuery 24 │        430.98 / 432.76 ±1.28 / 434.52 ms │                                  FAIL │   incomparable │
│ QQuery 25 │        360.86 / 363.91 ±2.12 / 367.29 ms │     365.35 / 368.15 ±2.91 / 373.54 ms │      no change │
│ QQuery 26 │           83.64 / 86.85 ±2.47 / 89.34 ms │        84.91 / 87.91 ±2.23 / 91.14 ms │      no change │
│ QQuery 27 │        350.25 / 353.33 ±2.06 / 356.01 ms │     350.81 / 355.33 ±2.62 / 358.05 ms │      no change │
│ QQuery 28 │        153.65 / 155.74 ±1.84 / 158.72 ms │     154.13 / 155.64 ±0.85 / 156.56 ms │      no change │
│ QQuery 29 │        306.56 / 308.06 ±2.07 / 312.13 ms │     308.66 / 313.24 ±3.85 / 318.19 ms │      no change │
│ QQuery 30 │           46.54 / 49.26 ±2.42 / 53.26 ms │        46.32 / 49.06 ±1.69 / 51.53 ms │      no change │
│ QQuery 31 │        181.79 / 183.40 ±1.18 / 184.80 ms │     182.40 / 184.68 ±1.21 / 185.89 ms │      no change │
│ QQuery 32 │         61.59 / 70.81 ±16.13 / 103.02 ms │        61.84 / 62.78 ±0.84 / 64.07 ms │  +1.13x faster │
│ QQuery 33 │        148.63 / 149.84 ±1.10 / 151.23 ms │     150.62 / 152.23 ±1.25 / 153.88 ms │      no change │
│ QQuery 34 │        109.77 / 111.59 ±1.31 / 113.07 ms │     114.13 / 114.95 ±0.79 / 116.20 ms │      no change │
│ QQuery 35 │        116.37 / 118.28 ±1.10 / 119.65 ms │     118.21 / 119.65 ±0.94 / 120.64 ms │      no change │
│ QQuery 36 │        223.32 / 227.91 ±2.51 / 229.79 ms │     217.06 / 225.62 ±5.29 / 231.17 ms │      no change │
│ QQuery 37 │        185.39 / 186.66 ±1.21 / 188.21 ms │     188.34 / 192.09 ±2.11 / 194.83 ms │      no change │
│ QQuery 38 │          96.63 / 98.07 ±1.14 / 100.08 ms │       95.90 / 98.96 ±2.55 / 102.76 ms │      no change │
│ QQuery 39 │        136.64 / 139.15 ±1.58 / 140.80 ms │     142.65 / 143.45 ±0.80 / 144.76 ms │      no change │
│ QQuery 40 │        116.03 / 121.33 ±4.46 / 126.95 ms │     112.41 / 114.90 ±2.59 / 119.76 ms │  +1.06x faster │
│ QQuery 41 │           17.68 / 18.95 ±0.79 / 20.04 ms │        17.45 / 18.97 ±1.41 / 21.65 ms │      no change │
│ QQuery 42 │        110.45 / 112.22 ±1.44 / 113.86 ms │     111.01 / 112.92 ±1.66 / 115.39 ms │      no change │
│ QQuery 43 │           87.09 / 88.36 ±0.86 / 89.53 ms │        88.89 / 89.61 ±0.80 / 90.83 ms │      no change │
│ QQuery 44 │           16.66 / 17.12 ±0.68 / 18.46 ms │        17.17 / 18.04 ±0.54 / 18.72 ms │   1.05x slower │
│ QQuery 45 │           55.83 / 56.72 ±0.98 / 58.28 ms │        55.94 / 56.74 ±0.57 / 57.54 ms │      no change │
│ QQuery 46 │        236.08 / 238.00 ±2.36 / 242.60 ms │                                  FAIL │   incomparable │
│ QQuery 47 │        718.73 / 721.50 ±2.99 / 727.28 ms │     788.02 / 791.98 ±5.66 / 803.09 ms │   1.10x slower │
│ QQuery 48 │        285.76 / 293.09 ±4.14 / 296.85 ms │     286.47 / 291.40 ±3.61 / 297.62 ms │      no change │
│ QQuery 49 │        262.36 / 264.81 ±2.00 / 266.79 ms │     263.16 / 265.81 ±3.02 / 271.66 ms │      no change │
│ QQuery 50 │        237.63 / 244.65 ±3.91 / 249.44 ms │     235.07 / 238.30 ±1.92 / 240.02 ms │      no change │
│ QQuery 51 │        189.30 / 190.92 ±1.59 / 193.38 ms │     194.13 / 196.37 ±2.64 / 201.44 ms │      no change │
│ QQuery 52 │        110.94 / 112.32 ±1.11 / 113.66 ms │     113.00 / 114.27 ±0.98 / 115.68 ms │      no change │
│ QQuery 53 │        108.02 / 109.13 ±0.96 / 110.93 ms │     109.69 / 111.21 ±1.76 / 114.44 ms │      no change │
│ QQuery 54 │        154.33 / 156.10 ±2.26 / 160.55 ms │     155.39 / 156.57 ±0.87 / 157.76 ms │      no change │
│ QQuery 55 │        109.80 / 111.81 ±1.97 / 114.70 ms │     110.95 / 112.90 ±2.02 / 116.73 ms │      no change │
│ QQuery 56 │        148.54 / 150.27 ±1.28 / 151.96 ms │     152.74 / 153.61 ±0.98 / 154.88 ms │      no change │
│ QQuery 57 │        186.99 / 189.79 ±1.97 / 191.65 ms │     192.70 / 198.14 ±2.82 / 200.74 ms │      no change │
│ QQuery 58 │        308.15 / 311.52 ±2.18 / 315.02 ms │     316.08 / 319.03 ±2.32 / 322.11 ms │      no change │
│ QQuery 59 │        209.86 / 212.01 ±2.43 / 216.64 ms │     208.56 / 211.53 ±1.64 / 213.58 ms │      no change │
│ QQuery 60 │        152.90 / 153.71 ±0.94 / 155.51 ms │     154.74 / 156.13 ±0.83 / 157.27 ms │      no change │
│ QQuery 61 │        177.21 / 179.10 ±1.00 / 180.12 ms │     178.15 / 180.99 ±1.53 / 182.78 ms │      no change │
│ QQuery 62 │      889.44 / 935.50 ±44.77 / 1021.27 ms │     179.46 / 189.41 ±8.90 / 200.97 ms │  +4.94x faster │
│ QQuery 63 │        108.35 / 111.30 ±2.67 / 116.16 ms │     110.13 / 113.54 ±2.60 / 117.52 ms │      no change │
│ QQuery 64 │        714.71 / 717.32 ±2.79 / 722.43 ms │     705.26 / 709.55 ±3.23 / 715.00 ms │      no change │
│ QQuery 65 │        258.59 / 262.20 ±4.16 / 268.23 ms │     260.23 / 263.69 ±2.04 / 266.05 ms │      no change │
│ QQuery 66 │        251.44 / 258.63 ±5.39 / 264.57 ms │    217.93 / 235.51 ±15.99 / 263.91 ms │  +1.10x faster │
│ QQuery 67 │        338.04 / 342.44 ±4.25 / 349.97 ms │     345.12 / 351.26 ±4.21 / 357.81 ms │      no change │
│ QQuery 68 │        282.37 / 286.93 ±2.81 / 291.03 ms │                                  FAIL │   incomparable │
│ QQuery 69 │        113.70 / 115.36 ±1.96 / 119.06 ms │     112.51 / 115.88 ±3.38 / 122.33 ms │      no change │
│ QQuery 70 │        355.49 / 362.26 ±5.26 / 368.63 ms │    354.00 / 366.05 ±10.69 / 384.82 ms │      no change │
│ QQuery 71 │        138.88 / 141.26 ±2.36 / 145.71 ms │     140.89 / 143.14 ±2.24 / 146.98 ms │      no change │
│ QQuery 72 │        726.51 / 733.45 ±6.19 / 742.58 ms │     819.05 / 826.85 ±7.08 / 839.72 ms │   1.13x slower │
│ QQuery 73 │        106.79 / 108.05 ±1.23 / 110.03 ms │     108.62 / 109.40 ±0.84 / 110.81 ms │      no change │
│ QQuery 74 │        561.02 / 571.66 ±6.45 / 580.42 ms │     643.53 / 650.43 ±5.65 / 656.30 ms │   1.14x slower │
│ QQuery 75 │        290.33 / 293.30 ±1.96 / 296.31 ms │     297.32 / 301.53 ±3.18 / 306.19 ms │      no change │
│ QQuery 76 │        137.05 / 139.50 ±1.83 / 141.83 ms │     139.35 / 139.97 ±0.97 / 141.87 ms │      no change │
│ QQuery 77 │        199.79 / 201.52 ±1.18 / 203.47 ms │     202.70 / 205.42 ±1.68 / 206.76 ms │      no change │
│ QQuery 78 │        356.04 / 359.82 ±2.17 / 361.70 ms │     366.94 / 370.03 ±3.17 / 374.38 ms │      no change │
│ QQuery 79 │        238.68 / 240.27 ±1.07 / 241.42 ms │     240.34 / 242.76 ±1.83 / 244.69 ms │      no change │
│ QQuery 80 │        339.97 / 340.86 ±0.85 / 342.39 ms │     343.32 / 349.52 ±4.70 / 355.23 ms │      no change │
│ QQuery 81 │           30.20 / 31.68 ±1.37 / 33.87 ms │        30.86 / 32.81 ±2.13 / 36.89 ms │      no change │
│ QQuery 82 │        206.88 / 211.28 ±3.36 / 215.11 ms │     211.66 / 213.87 ±1.34 / 215.54 ms │      no change │
│ QQuery 83 │           46.34 / 46.89 ±0.45 / 47.70 ms │        48.89 / 49.43 ±0.49 / 50.21 ms │   1.05x slower │
│ QQuery 84 │           50.61 / 52.21 ±1.36 / 54.49 ms │        52.45 / 53.42 ±0.94 / 54.64 ms │      no change │
│ QQuery 85 │        152.95 / 153.67 ±0.84 / 155.25 ms │     152.87 / 155.67 ±2.17 / 159.04 ms │      no change │
│ QQuery 86 │           40.37 / 41.78 ±1.02 / 43.23 ms │        41.33 / 42.38 ±0.93 / 44.08 ms │      no change │
│ QQuery 87 │           92.62 / 94.84 ±2.42 / 99.13 ms │       93.20 / 96.61 ±3.07 / 101.92 ms │      no change │
│ QQuery 88 │        111.99 / 113.08 ±0.87 / 114.50 ms │     114.38 / 115.60 ±0.98 / 116.81 ms │      no change │
│ QQuery 89 │        125.64 / 126.19 ±0.32 / 126.55 ms │     128.15 / 130.08 ±1.66 / 132.12 ms │      no change │
│ QQuery 90 │           27.62 / 28.31 ±0.54 / 29.18 ms │        28.67 / 29.15 ±0.29 / 29.58 ms │      no change │
│ QQuery 91 │           66.41 / 67.25 ±0.57 / 68.15 ms │        64.04 / 65.02 ±0.82 / 66.21 ms │      no change │
│ QQuery 92 │           61.85 / 62.57 ±0.65 / 63.66 ms │        62.60 / 62.98 ±0.35 / 63.55 ms │      no change │
│ QQuery 93 │        193.78 / 196.88 ±3.09 / 201.33 ms │     198.91 / 201.27 ±1.82 / 203.89 ms │      no change │
│ QQuery 94 │           65.62 / 66.47 ±0.49 / 66.94 ms │        66.33 / 68.15 ±1.49 / 70.04 ms │      no change │
│ QQuery 95 │        141.63 / 143.52 ±1.93 / 147.12 ms │     159.37 / 161.68 ±1.67 / 164.40 ms │   1.13x slower │
│ QQuery 96 │           75.91 / 78.94 ±1.53 / 80.07 ms │        77.90 / 80.76 ±1.77 / 83.22 ms │      no change │
│ QQuery 97 │        132.42 / 136.68 ±3.39 / 142.61 ms │     139.97 / 142.20 ±1.99 / 145.11 ms │      no change │
│ QQuery 98 │        155.69 / 157.90 ±1.64 / 160.66 ms │     166.49 / 169.01 ±1.85 / 171.67 ms │   1.07x slower │
│ QQuery 99 │ 10769.32 / 10797.80 ±40.43 / 10877.74 ms │    294.06 / 312.42 ±18.78 / 343.33 ms │ +34.56x faster │
└───────────┴──────────────────────────────────────────┴───────────────────────────────────────┴────────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary           ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)           │ 33329.17ms │
│ Total Time (avoid_concat)   │ 22243.56ms │
│ Average Time (HEAD)         │   354.57ms │
│ Average Time (avoid_concat) │   236.63ms │
│ Queries Faster              │          6 │
│ Queries Slower              │         11 │
│ Queries with No Change      │         77 │
│ Queries with Failure        │          5 │
└─────────────────────────────┴────────────┘

Resource Usage

tpcds — base (merge-base)

Metric Value
Wall time 172.2s
Peak memory 5.7 GiB
Avg memory 4.6 GiB
CPU user 272.8s
CPU sys 20.8s
Disk read 0 B
Disk write 636.0 MiB

tpcds — branch

Metric Value
Wall time 112.3s
Peak memory 4.8 GiB
Avg memory 4.0 GiB
CPU user 216.3s
CPU sys 18.9s
Disk read 0 B
Disk write 148.0 KiB

@adriangbot
Copy link

🤖 Benchmark completed (GKE) | trigger

Details

Comparing HEAD and avoid_concat
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
┃ Query     ┃                                  HEAD ┃                          avoid_concat ┃       Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━┩
│ QQuery 0  │          1.61 / 4.92 ±6.48 / 17.87 ms │          1.66 / 5.01 ±6.54 / 18.08 ms │    no change │
│ QQuery 1  │        14.81 / 15.30 ±0.26 / 15.59 ms │        15.86 / 16.16 ±0.20 / 16.41 ms │ 1.06x slower │
│ QQuery 2  │        56.49 / 56.71 ±0.21 / 56.98 ms │        57.47 / 57.94 ±0.31 / 58.42 ms │    no change │
│ QQuery 3  │        50.05 / 50.85 ±0.63 / 51.73 ms │        50.32 / 52.54 ±1.67 / 54.18 ms │    no change │
│ QQuery 4  │     310.29 / 313.92 ±4.37 / 321.71 ms │     316.16 / 324.07 ±6.18 / 332.83 ms │    no change │
│ QQuery 5  │     354.53 / 358.92 ±2.78 / 361.73 ms │     367.15 / 371.78 ±3.94 / 376.52 ms │    no change │
│ QQuery 6  │           5.28 / 5.98 ±0.64 / 6.81 ms │          5.83 / 7.04 ±1.55 / 10.03 ms │ 1.18x slower │
│ QQuery 7  │        17.44 / 17.71 ±0.32 / 18.30 ms │        18.97 / 19.67 ±1.11 / 21.88 ms │ 1.11x slower │
│ QQuery 8  │     445.79 / 452.32 ±3.42 / 455.76 ms │    461.93 / 470.83 ±10.07 / 489.66 ms │    no change │
│ QQuery 9  │     693.42 / 705.67 ±7.12 / 714.08 ms │    714.20 / 731.43 ±16.19 / 759.09 ms │    no change │
│ QQuery 10 │       96.01 / 99.56 ±3.38 / 105.81 ms │       96.54 / 98.87 ±3.10 / 104.97 ms │    no change │
│ QQuery 11 │     110.46 / 112.84 ±2.31 / 117.09 ms │     110.73 / 112.98 ±3.21 / 119.23 ms │    no change │
│ QQuery 12 │     352.08 / 358.75 ±6.39 / 370.14 ms │    363.23 / 423.91 ±45.22 / 481.27 ms │ 1.18x slower │
│ QQuery 13 │     473.77 / 489.49 ±9.68 / 499.19 ms │    485.12 / 499.45 ±12.27 / 520.98 ms │    no change │
│ QQuery 14 │     362.14 / 373.82 ±8.74 / 384.62 ms │     373.73 / 377.83 ±2.58 / 380.71 ms │    no change │
│ QQuery 15 │    375.81 / 397.84 ±19.27 / 432.87 ms │    385.21 / 413.83 ±25.16 / 460.13 ms │    no change │
│ QQuery 16 │    750.10 / 768.37 ±12.67 / 787.68 ms │    770.25 / 784.36 ±16.84 / 816.82 ms │    no change │
│ QQuery 17 │     744.02 / 754.71 ±5.69 / 761.06 ms │     770.18 / 781.76 ±7.93 / 791.00 ms │    no change │
│ QQuery 18 │  1426.83 / 1437.49 ±6.44 / 1444.63 ms │ 1540.89 / 1563.37 ±29.87 / 1622.07 ms │ 1.09x slower │
│ QQuery 19 │        35.68 / 36.87 ±1.17 / 38.90 ms │        37.86 / 39.46 ±1.09 / 40.95 ms │ 1.07x slower │
│ QQuery 20 │    702.79 / 714.59 ±13.77 / 739.89 ms │    714.33 / 730.34 ±16.09 / 761.18 ms │    no change │
│ QQuery 21 │     750.53 / 753.64 ±2.12 / 755.81 ms │     762.96 / 768.64 ±6.48 / 778.09 ms │    no change │
│ QQuery 22 │  1131.88 / 1136.88 ±4.13 / 1143.84 ms │  1135.41 / 1143.65 ±5.25 / 1151.76 ms │    no change │
│ QQuery 23 │ 3198.53 / 3235.27 ±21.31 / 3255.62 ms │ 3218.31 / 3320.84 ±71.91 / 3429.12 ms │    no change │
│ QQuery 24 │     105.68 / 109.00 ±4.35 / 117.58 ms │     107.96 / 111.85 ±2.38 / 115.12 ms │    no change │
│ QQuery 25 │     140.88 / 143.99 ±1.64 / 145.54 ms │     143.78 / 146.73 ±1.88 / 148.86 ms │    no change │
│ QQuery 26 │     105.68 / 106.89 ±1.09 / 108.39 ms │     104.61 / 108.40 ±2.86 / 111.71 ms │    no change │
│ QQuery 27 │     848.43 / 853.26 ±5.47 / 863.43 ms │    862.65 / 871.80 ±10.31 / 888.51 ms │    no change │
│ QQuery 28 │ 7728.27 / 7794.53 ±35.93 / 7831.84 ms │ 7817.05 / 7870.14 ±28.09 / 7891.35 ms │    no change │
│ QQuery 29 │     330.62 / 336.13 ±9.16 / 354.39 ms │    334.15 / 339.61 ±10.48 / 360.57 ms │    no change │
│ QQuery 30 │     368.45 / 375.96 ±7.62 / 389.71 ms │     372.34 / 385.01 ±6.93 / 391.22 ms │    no change │
│ QQuery 31 │    374.42 / 386.41 ±12.25 / 404.18 ms │    379.22 / 396.49 ±13.11 / 415.45 ms │    no change │
│ QQuery 32 │ 1072.51 / 1093.97 ±13.31 / 1113.58 ms │ 1275.14 / 1318.92 ±50.52 / 1417.38 ms │ 1.21x slower │
│ QQuery 33 │  1519.16 / 1530.10 ±8.02 / 1543.67 ms │ 1513.64 / 1554.28 ±42.84 / 1634.91 ms │    no change │
│ QQuery 34 │ 1508.64 / 1533.91 ±14.91 / 1553.34 ms │ 1537.55 / 1561.41 ±15.47 / 1579.63 ms │    no change │
│ QQuery 35 │     426.45 / 432.04 ±4.17 / 439.24 ms │     430.19 / 436.63 ±4.00 / 440.90 ms │    no change │
│ QQuery 36 │     124.09 / 127.63 ±2.50 / 131.19 ms │     118.04 / 125.62 ±5.53 / 132.26 ms │    no change │
│ QQuery 37 │        49.75 / 51.92 ±1.60 / 54.73 ms │        53.20 / 54.93 ±1.04 / 55.93 ms │ 1.06x slower │
│ QQuery 38 │        75.51 / 76.64 ±0.81 / 77.60 ms │        78.24 / 80.02 ±1.10 / 81.54 ms │    no change │
│ QQuery 39 │     229.25 / 236.25 ±5.71 / 241.74 ms │     227.11 / 236.95 ±7.19 / 247.17 ms │    no change │
│ QQuery 40 │        26.13 / 27.48 ±1.22 / 29.64 ms │        25.67 / 28.62 ±2.64 / 32.30 ms │    no change │
│ QQuery 41 │        21.66 / 23.12 ±1.24 / 25.35 ms │        22.59 / 24.18 ±1.29 / 26.06 ms │    no change │
│ QQuery 42 │        21.73 / 21.94 ±0.18 / 22.23 ms │        22.50 / 22.61 ±0.12 / 22.82 ms │    no change │
└───────────┴───────────────────────────────────────┴───────────────────────────────────────┴──────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary           ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)           │ 27913.57ms │
│ Total Time (avoid_concat)   │ 28789.98ms │
│ Average Time (HEAD)         │   649.15ms │
│ Average Time (avoid_concat) │   669.53ms │
│ Queries Faster              │          0 │
│ Queries Slower              │          8 │
│ Queries with No Change      │         35 │
│ Queries with Failure        │          0 │
└─────────────────────────────┴────────────┘

Resource Usage

clickbench_partitioned — base (merge-base)

Metric Value
Wall time 140.7s
Peak memory 41.9 GiB
Avg memory 34.0 GiB
CPU user 1329.2s
CPU sys 84.3s
Disk read 0 B
Disk write 1.3 GiB

clickbench_partitioned — branch

Metric Value
Wall time 145.1s
Peak memory 40.7 GiB
Avg memory 29.7 GiB
CPU user 1344.8s
CPU sys 106.0s
Disk read 0 B
Disk write 116.0 KiB

@Dandandan
Copy link
Contributor Author

run benchmarks

@adriangbot
Copy link

🤖 Benchmark running (GKE) | trigger
Linux bench-c4060781168-240-bxzpr 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing avoid_concat (b808be6) to 6d3a846 (merge-base) diff using: tpch
Results will be posted here when complete

@adriangbot
Copy link

🤖 Benchmark running (GKE) | trigger
Linux bench-c4060781168-239-xh55s 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing avoid_concat (b808be6) to 6d3a846 (merge-base) diff using: tpcds
Results will be posted here when complete

@adriangbot
Copy link

🤖 Benchmark running (GKE) | trigger
Linux bench-c4060781168-238-lhgg5 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing avoid_concat (b808be6) to 6d3a846 (merge-base) diff using: clickbench_partitioned
Results will be posted here when complete

@adriangbot
Copy link

🤖 Benchmark completed (GKE) | trigger

Details

Comparing HEAD and avoid_concat
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
┃ Query     ┃                           HEAD ┃                   avoid_concat ┃       Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━┩
│ QQuery 1  │ 46.68 / 47.25 ±0.64 / 48.47 ms │ 46.91 / 47.65 ±1.29 / 50.23 ms │    no change │
│ QQuery 2  │ 24.49 / 24.91 ±0.61 / 26.14 ms │ 25.88 / 26.23 ±0.43 / 27.04 ms │ 1.05x slower │
│ QQuery 3  │ 33.85 / 34.35 ±0.46 / 34.92 ms │ 34.19 / 34.32 ±0.12 / 34.49 ms │    no change │
│ QQuery 4  │ 22.17 / 22.73 ±0.54 / 23.64 ms │ 22.21 / 22.89 ±0.63 / 23.77 ms │    no change │
│ QQuery 5  │ 51.02 / 52.57 ±1.54 / 55.03 ms │ 52.42 / 54.47 ±1.66 / 56.90 ms │    no change │
│ QQuery 6  │ 17.62 / 18.01 ±0.39 / 18.75 ms │ 17.96 / 18.06 ±0.12 / 18.29 ms │    no change │
│ QQuery 7  │ 57.86 / 58.67 ±0.57 / 59.38 ms │ 59.98 / 60.82 ±0.55 / 61.42 ms │    no change │
│ QQuery 8  │ 51.97 / 52.42 ±0.57 / 53.51 ms │ 52.41 / 52.67 ±0.26 / 53.02 ms │    no change │
│ QQuery 9  │ 55.95 / 58.38 ±1.90 / 61.82 ms │ 57.38 / 58.97 ±1.17 / 60.86 ms │    no change │
│ QQuery 10 │ 74.37 / 74.83 ±0.38 / 75.39 ms │ 75.04 / 75.51 ±0.39 / 76.03 ms │    no change │
│ QQuery 11 │ 16.98 / 18.96 ±1.79 / 21.78 ms │ 18.05 / 18.62 ±0.85 / 20.31 ms │    no change │
│ QQuery 12 │ 28.93 / 29.10 ±0.22 / 29.53 ms │ 29.25 / 29.90 ±0.46 / 30.46 ms │    no change │
│ QQuery 13 │ 40.14 / 40.74 ±0.41 / 41.15 ms │ 41.51 / 42.38 ±1.06 / 44.39 ms │    no change │
│ QQuery 14 │ 29.47 / 29.81 ±0.35 / 30.38 ms │ 29.90 / 30.46 ±0.57 / 31.50 ms │    no change │
│ QQuery 15 │ 36.01 / 36.31 ±0.20 / 36.56 ms │ 36.98 / 37.69 ±0.71 / 38.95 ms │    no change │
│ QQuery 16 │ 17.85 / 18.02 ±0.17 / 18.34 ms │ 18.37 / 18.71 ±0.22 / 19.03 ms │    no change │
│ QQuery 17 │ 76.13 / 76.96 ±0.74 / 78.34 ms │ 78.38 / 80.16 ±0.94 / 81.10 ms │    no change │
│ QQuery 18 │ 81.74 / 83.19 ±1.75 / 86.32 ms │ 88.60 / 89.89 ±1.23 / 92.14 ms │ 1.08x slower │
│ QQuery 19 │ 38.63 / 39.82 ±1.10 / 41.84 ms │ 39.45 / 40.17 ±0.69 / 41.09 ms │    no change │
│ QQuery 20 │ 43.29 / 44.29 ±0.63 / 45.03 ms │ 44.57 / 45.24 ±0.77 / 46.66 ms │    no change │
│ QQuery 21 │ 70.16 / 71.10 ±0.51 / 71.59 ms │ 73.87 / 76.43 ±1.65 / 78.86 ms │ 1.07x slower │
│ QQuery 22 │ 19.83 / 20.19 ±0.27 / 20.65 ms │ 20.69 / 21.04 ±0.24 / 21.38 ms │    no change │
└───────────┴────────────────────────────────┴────────────────────────────────┴──────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Benchmark Summary           ┃          ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ Total Time (HEAD)           │ 952.61ms │
│ Total Time (avoid_concat)   │ 982.28ms │
│ Average Time (HEAD)         │  43.30ms │
│ Average Time (avoid_concat) │  44.65ms │
│ Queries Faster              │        0 │
│ Queries Slower              │        3 │
│ Queries with No Change      │       19 │
│ Queries with Failure        │        0 │
└─────────────────────────────┴──────────┘

Resource Usage

tpch — base (merge-base)

Metric Value
Wall time 5.0s
Peak memory 4.0 GiB
Avg memory 3.5 GiB
CPU user 34.4s
CPU sys 2.9s
Disk read 0 B
Disk write 136.0 KiB

tpch — branch

Metric Value
Wall time 5.2s
Peak memory 4.0 GiB
Avg memory 3.5 GiB
CPU user 35.6s
CPU sys 3.2s
Disk read 0 B
Disk write 240.0 KiB

- Remove left_index_to_row closure parameter (only single-batch uses
  element-wise path, where packed == row index)
- Hoist fallback row_indices and il_indices outside the key loop
  (lazy-allocated, computed once, reused across keys)
- Replace scalar bitmap AND loop with word-level byte-slice AND
  via and_bitmap_with_boolean_buffer helper

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@Dandandan
Copy link
Contributor Author

run benchmarks

@adriangbot
Copy link

🤖 Benchmark running (GKE) | trigger
Linux bench-c4073207771-347-tsftv 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing avoid_concat (97b0203) to 6d3a846 (merge-base) diff using: tpch
Results will be posted here when complete

@adriangbot
Copy link

🤖 Benchmark running (GKE) | trigger
Linux bench-c4073207771-345-c54vd 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing avoid_concat (97b0203) to 6d3a846 (merge-base) diff using: clickbench_partitioned
Results will be posted here when complete

@adriangbot
Copy link

🤖 Benchmark running (GKE) | trigger
Linux bench-c4073207771-346-kdwth 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing avoid_concat (97b0203) to 6d3a846 (merge-base) diff using: tpcds
Results will be posted here when complete

@adriangbot
Copy link

Benchmark for this request failed.

Last 20 lines of output:

Click to expand
     |
 654 |             let result = build_batch_empty_build_side(
     |                          ---------------------------- arguments to this function are incorrect
 655 |                 &self.schema,
 656 |                 &build_side.left_data.batch(),
     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `&Schema`, found `&RecordBatch`
     |
     = note: expected reference `&arrow_schema::Schema`
                found reference `&arrow::array::RecordBatch`
note: function defined here
    --> datafusion/physical-plan/src/joins/utils.rs:1138:15
     |
1138 | pub(crate) fn build_batch_empty_build_side(
     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1139 |     schema: &Schema,
1140 |     left_schema: &Schema,
     |     --------------------

For more information about this error, try `rustc --explain E0308`.
error: could not compile `datafusion-physical-plan` (lib) due to 1 previous error

2 similar comments
@adriangbot
Copy link

Benchmark for this request failed.

Last 20 lines of output:

Click to expand
     |
 654 |             let result = build_batch_empty_build_side(
     |                          ---------------------------- arguments to this function are incorrect
 655 |                 &self.schema,
 656 |                 &build_side.left_data.batch(),
     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `&Schema`, found `&RecordBatch`
     |
     = note: expected reference `&arrow_schema::Schema`
                found reference `&arrow::array::RecordBatch`
note: function defined here
    --> datafusion/physical-plan/src/joins/utils.rs:1138:15
     |
1138 | pub(crate) fn build_batch_empty_build_side(
     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1139 |     schema: &Schema,
1140 |     left_schema: &Schema,
     |     --------------------

For more information about this error, try `rustc --explain E0308`.
error: could not compile `datafusion-physical-plan` (lib) due to 1 previous error

@adriangbot
Copy link

Benchmark for this request failed.

Last 20 lines of output:

Click to expand
     |
 654 |             let result = build_batch_empty_build_side(
     |                          ---------------------------- arguments to this function are incorrect
 655 |                 &self.schema,
 656 |                 &build_side.left_data.batch(),
     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `&Schema`, found `&RecordBatch`
     |
     = note: expected reference `&arrow_schema::Schema`
                found reference `&arrow::array::RecordBatch`
note: function defined here
    --> datafusion/physical-plan/src/joins/utils.rs:1138:15
     |
1138 | pub(crate) fn build_batch_empty_build_side(
     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1139 |     schema: &Schema,
1140 |     left_schema: &Schema,
     |     --------------------

For more information about this error, try `rustc --explain E0308`.
error: could not compile `datafusion-physical-plan` (lib) due to 1 previous error

@Dandandan
Copy link
Contributor Author

run benchmarks

@adriangbot
Copy link

🤖 Benchmark running (GKE) | trigger
Linux bench-c4073264121-349-9dh4w 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing avoid_concat (9986fb0) to 6d3a846 (merge-base) diff using: tpcds
Results will be posted here when complete

@adriangbot
Copy link

🤖 Benchmark running (GKE) | trigger
Linux bench-c4073264121-350-p2s9b 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing avoid_concat (9986fb0) to 6d3a846 (merge-base) diff using: tpch
Results will be posted here when complete

@adriangbot
Copy link

🤖 Benchmark running (GKE) | trigger
Linux bench-c4073264121-348-42zsb 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing avoid_concat (9986fb0) to 6d3a846 (merge-base) diff using: clickbench_partitioned
Results will be posted here when complete

@adriangbot
Copy link

🤖 Benchmark completed (GKE) | trigger

Details

Comparing HEAD and avoid_concat
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Query     ┃                           HEAD ┃                   avoid_concat ┃    Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ QQuery 1  │ 46.88 / 47.50 ±0.81 / 49.06 ms │ 46.81 / 47.42 ±0.80 / 48.87 ms │ no change │
│ QQuery 2  │ 25.88 / 26.07 ±0.12 / 26.20 ms │ 25.66 / 25.88 ±0.13 / 26.03 ms │ no change │
│ QQuery 3  │ 34.56 / 35.00 ±0.56 / 36.09 ms │ 33.66 / 34.31 ±0.56 / 35.36 ms │ no change │
│ QQuery 4  │ 22.06 / 23.45 ±0.78 / 24.19 ms │ 22.20 / 22.70 ±0.58 / 23.84 ms │ no change │
│ QQuery 5  │ 53.13 / 54.70 ±0.97 / 56.12 ms │ 51.71 / 54.37 ±1.39 / 55.74 ms │ no change │
│ QQuery 6  │ 18.01 / 18.73 ±0.98 / 20.64 ms │ 17.68 / 18.42 ±1.01 / 20.40 ms │ no change │
│ QQuery 7  │ 57.90 / 58.98 ±0.59 / 59.56 ms │ 59.15 / 61.69 ±2.18 / 65.49 ms │ no change │
│ QQuery 8  │ 52.77 / 53.20 ±0.40 / 53.83 ms │ 52.21 / 52.95 ±0.48 / 53.39 ms │ no change │
│ QQuery 9  │ 58.52 / 59.77 ±0.80 / 60.72 ms │ 57.52 / 58.29 ±0.61 / 59.18 ms │ no change │
│ QQuery 10 │ 75.44 / 76.04 ±0.69 / 77.15 ms │ 75.20 / 75.81 ±0.50 / 76.26 ms │ no change │
│ QQuery 11 │ 17.81 / 18.67 ±0.78 / 20.03 ms │ 17.70 / 17.88 ±0.09 / 17.97 ms │ no change │
│ QQuery 12 │ 29.30 / 29.86 ±0.42 / 30.50 ms │ 28.72 / 29.01 ±0.16 / 29.16 ms │ no change │
│ QQuery 13 │ 40.50 / 41.57 ±0.93 / 43.19 ms │ 40.61 / 42.33 ±1.00 / 43.43 ms │ no change │
│ QQuery 14 │ 30.03 / 30.26 ±0.23 / 30.67 ms │ 29.62 / 30.13 ±0.47 / 31.01 ms │ no change │
│ QQuery 15 │ 37.66 / 37.74 ±0.08 / 37.88 ms │ 36.86 / 37.55 ±0.62 / 38.57 ms │ no change │
│ QQuery 16 │ 18.32 / 19.10 ±0.93 / 20.91 ms │ 18.15 / 18.74 ±0.47 / 19.27 ms │ no change │
│ QQuery 17 │ 77.18 / 78.30 ±1.60 / 81.48 ms │ 76.00 / 76.86 ±0.82 / 78.29 ms │ no change │
│ QQuery 18 │ 84.49 / 85.16 ±0.44 / 85.89 ms │ 87.77 / 88.78 ±0.81 / 89.75 ms │ no change │
│ QQuery 19 │ 39.96 / 40.63 ±0.67 / 41.51 ms │ 38.81 / 39.49 ±0.49 / 40.02 ms │ no change │
│ QQuery 20 │ 43.92 / 45.04 ±0.67 / 45.65 ms │ 43.98 / 44.99 ±0.72 / 46.21 ms │ no change │
│ QQuery 21 │ 70.98 / 76.05 ±2.85 / 79.03 ms │ 74.40 / 76.08 ±0.90 / 77.02 ms │ no change │
│ QQuery 22 │ 20.46 / 21.00 ±0.53 / 21.85 ms │ 20.67 / 21.01 ±0.26 / 21.24 ms │ no change │
└───────────┴────────────────────────────────┴────────────────────────────────┴───────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Benchmark Summary           ┃          ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ Total Time (HEAD)           │ 976.81ms │
│ Total Time (avoid_concat)   │ 974.68ms │
│ Average Time (HEAD)         │  44.40ms │
│ Average Time (avoid_concat) │  44.30ms │
│ Queries Faster              │        0 │
│ Queries Slower              │        0 │
│ Queries with No Change      │       22 │
│ Queries with Failure        │        0 │
└─────────────────────────────┴──────────┘

Resource Usage

tpch — base (merge-base)

Metric Value
Wall time 5.1s
Peak memory 4.0 GiB
Avg memory 3.5 GiB
CPU user 34.5s
CPU sys 3.2s
Disk read 0 B
Disk write 136.0 KiB

tpch — branch

Metric Value
Wall time 5.1s
Peak memory 4.0 GiB
Avg memory 3.5 GiB
CPU user 35.0s
CPU sys 3.2s
Disk read 0 B
Disk write 56.0 KiB

@adriangbot
Copy link

🤖 Benchmark completed (GKE) | trigger

Details

Comparing HEAD and avoid_concat
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┓
┃ Query     ┃                                     HEAD ┃                          avoid_concat ┃         Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━┩
│ QQuery 1  │           49.28 / 50.32 ±0.85 / 51.57 ms │        50.43 / 51.23 ±0.69 / 52.16 ms │      no change │
│ QQuery 2  │        154.20 / 154.99 ±0.89 / 156.62 ms │     166.56 / 167.74 ±0.85 / 168.53 ms │   1.08x slower │
│ QQuery 3  │        118.44 / 119.60 ±0.72 / 120.46 ms │     123.23 / 124.25 ±0.51 / 124.58 ms │      no change │
│ QQuery 4  │    1327.94 / 1359.31 ±19.27 / 1382.67 ms │ 1519.59 / 1538.48 ±13.66 / 1550.37 ms │   1.13x slower │
│ QQuery 5  │        184.07 / 186.67 ±1.62 / 188.58 ms │     185.47 / 187.46 ±1.24 / 188.88 ms │      no change │
│ QQuery 6  │    1002.06 / 1037.09 ±18.97 / 1057.97 ms │     313.68 / 328.91 ±7.98 / 336.53 ms │  +3.15x faster │
│ QQuery 7  │        356.66 / 360.39 ±2.33 / 362.87 ms │     354.08 / 359.82 ±3.15 / 363.34 ms │      no change │
│ QQuery 8  │        122.71 / 123.58 ±0.73 / 124.54 ms │     121.02 / 122.68 ±0.90 / 123.68 ms │      no change │
│ QQuery 9  │        113.58 / 118.30 ±2.46 / 120.36 ms │     116.06 / 122.79 ±5.10 / 131.77 ms │      no change │
│ QQuery 10 │        114.37 / 115.40 ±0.57 / 116.07 ms │     115.26 / 116.15 ±1.02 / 117.87 ms │      no change │
│ QQuery 11 │       905.11 / 924.40 ±14.20 / 942.22 ms │  1088.39 / 1096.90 ±5.02 / 1102.56 ms │   1.19x slower │
│ QQuery 12 │           46.23 / 49.05 ±1.80 / 51.26 ms │        49.72 / 51.12 ±0.85 / 52.38 ms │      no change │
│ QQuery 13 │        403.13 / 409.95 ±4.18 / 415.91 ms │     400.63 / 404.06 ±2.02 / 406.24 ms │      no change │
│ QQuery 14 │     1086.82 / 1094.57 ±4.74 / 1100.58 ms │  1216.65 / 1221.03 ±2.38 / 1223.76 ms │   1.12x slower │
│ QQuery 15 │           17.76 / 18.88 ±0.80 / 20.22 ms │        17.45 / 18.11 ±0.62 / 19.20 ms │      no change │
│ QQuery 16 │           45.36 / 46.15 ±0.74 / 47.50 ms │        46.03 / 46.95 ±0.58 / 47.58 ms │      no change │
│ QQuery 17 │        249.92 / 251.57 ±1.73 / 254.16 ms │     250.01 / 252.00 ±1.37 / 253.54 ms │      no change │
│ QQuery 18 │        132.56 / 133.31 ±0.59 / 134.07 ms │     133.36 / 134.64 ±1.14 / 136.34 ms │      no change │
│ QQuery 19 │        162.65 / 164.39 ±0.99 / 165.63 ms │     162.23 / 163.68 ±1.28 / 165.16 ms │      no change │
│ QQuery 20 │           15.71 / 16.19 ±0.37 / 16.77 ms │        15.98 / 16.89 ±0.64 / 17.93 ms │      no change │
│ QQuery 21 │           23.89 / 24.75 ±0.82 / 25.73 ms │        24.93 / 26.20 ±0.67 / 26.83 ms │   1.06x slower │
│ QQuery 22 │        522.83 / 527.63 ±2.74 / 531.14 ms │     543.41 / 546.13 ±2.15 / 548.93 ms │      no change │
│ QQuery 23 │        946.49 / 951.07 ±3.88 / 956.30 ms │    992.55 / 998.44 ±6.14 / 1007.88 ms │      no change │
│ QQuery 24 │        430.99 / 436.58 ±4.24 / 443.66 ms │     435.29 / 440.68 ±4.12 / 446.65 ms │      no change │
│ QQuery 25 │        366.13 / 367.70 ±1.58 / 370.72 ms │     363.92 / 368.14 ±2.20 / 370.32 ms │      no change │
│ QQuery 26 │           84.82 / 86.90 ±1.50 / 88.45 ms │        84.58 / 87.24 ±1.52 / 89.30 ms │      no change │
│ QQuery 27 │        351.35 / 352.71 ±0.84 / 354.00 ms │     352.13 / 355.98 ±2.46 / 358.67 ms │      no change │
│ QQuery 28 │        153.09 / 154.38 ±1.37 / 156.80 ms │     154.20 / 155.18 ±0.97 / 156.56 ms │      no change │
│ QQuery 29 │        308.16 / 310.82 ±1.89 / 313.40 ms │     307.51 / 312.10 ±3.72 / 318.06 ms │      no change │
│ QQuery 30 │           47.34 / 50.29 ±2.30 / 53.97 ms │        49.68 / 50.26 ±0.58 / 51.37 ms │      no change │
│ QQuery 31 │        184.17 / 186.28 ±2.00 / 190.01 ms │     183.37 / 185.41 ±1.59 / 188.21 ms │      no change │
│ QQuery 32 │           61.92 / 63.35 ±0.95 / 64.36 ms │        62.63 / 63.21 ±0.42 / 63.88 ms │      no change │
│ QQuery 33 │        150.94 / 152.53 ±2.36 / 157.19 ms │     151.70 / 152.61 ±0.59 / 153.53 ms │      no change │
│ QQuery 34 │        111.61 / 112.42 ±0.64 / 113.47 ms │     113.45 / 115.00 ±0.86 / 115.96 ms │      no change │
│ QQuery 35 │        117.52 / 118.06 ±0.37 / 118.41 ms │     117.54 / 119.16 ±0.92 / 120.10 ms │      no change │
│ QQuery 36 │        219.91 / 222.06 ±1.76 / 224.50 ms │     219.24 / 227.72 ±4.51 / 231.68 ms │      no change │
│ QQuery 37 │        186.53 / 189.12 ±1.78 / 191.09 ms │     191.49 / 194.04 ±2.74 / 199.00 ms │      no change │
│ QQuery 38 │           93.46 / 95.80 ±1.50 / 97.64 ms │       94.85 / 97.49 ±1.80 / 100.37 ms │      no change │
│ QQuery 39 │        135.86 / 140.08 ±2.39 / 143.11 ms │     148.97 / 151.42 ±1.75 / 154.23 ms │   1.08x slower │
│ QQuery 40 │        117.94 / 123.35 ±5.47 / 133.86 ms │     112.45 / 113.00 ±0.50 / 113.92 ms │  +1.09x faster │
│ QQuery 41 │           18.06 / 18.45 ±0.30 / 18.78 ms │        17.59 / 18.62 ±0.80 / 20.01 ms │      no change │
│ QQuery 42 │        112.92 / 114.53 ±1.21 / 115.76 ms │     111.40 / 113.32 ±1.30 / 115.36 ms │      no change │
│ QQuery 43 │           88.25 / 88.62 ±0.23 / 88.90 ms │        89.95 / 90.57 ±0.45 / 91.32 ms │      no change │
│ QQuery 44 │           17.21 / 17.59 ±0.24 / 17.86 ms │        18.09 / 18.73 ±0.42 / 19.37 ms │   1.06x slower │
│ QQuery 45 │           55.59 / 57.28 ±1.09 / 58.97 ms │        57.07 / 57.66 ±0.45 / 58.41 ms │      no change │
│ QQuery 46 │        236.35 / 238.93 ±1.94 / 240.98 ms │     240.69 / 242.60 ±1.13 / 244.05 ms │      no change │
│ QQuery 47 │        718.97 / 723.01 ±3.32 / 728.07 ms │     809.66 / 811.72 ±1.62 / 814.05 ms │   1.12x slower │
│ QQuery 48 │        292.67 / 296.62 ±3.70 / 301.65 ms │     287.48 / 291.98 ±3.38 / 297.20 ms │      no change │
│ QQuery 49 │        262.40 / 265.54 ±1.86 / 267.70 ms │     268.41 / 270.40 ±1.61 / 272.84 ms │      no change │
│ QQuery 50 │        240.78 / 244.32 ±2.52 / 247.98 ms │     234.97 / 237.88 ±1.92 / 240.69 ms │      no change │
│ QQuery 51 │        191.40 / 194.65 ±1.69 / 196.04 ms │     192.26 / 196.14 ±3.35 / 200.70 ms │      no change │
│ QQuery 52 │        111.65 / 113.33 ±1.30 / 114.54 ms │     111.08 / 113.80 ±2.00 / 117.15 ms │      no change │
│ QQuery 53 │        109.46 / 110.04 ±0.52 / 110.80 ms │     109.31 / 109.66 ±0.27 / 109.93 ms │      no change │
│ QQuery 54 │        156.30 / 157.23 ±0.56 / 158.01 ms │     156.62 / 158.40 ±1.03 / 159.64 ms │      no change │
│ QQuery 55 │        111.21 / 112.43 ±0.98 / 114.10 ms │     110.97 / 112.19 ±1.30 / 114.57 ms │      no change │
│ QQuery 56 │        150.31 / 151.71 ±0.88 / 152.94 ms │     151.90 / 153.61 ±1.31 / 155.04 ms │      no change │
│ QQuery 57 │        188.23 / 191.80 ±1.82 / 193.15 ms │     204.58 / 205.92 ±0.94 / 207.14 ms │   1.07x slower │
│ QQuery 58 │        310.05 / 316.56 ±3.82 / 320.16 ms │     320.44 / 324.02 ±3.70 / 328.67 ms │      no change │
│ QQuery 59 │        209.05 / 211.65 ±1.80 / 213.41 ms │     216.05 / 219.45 ±2.42 / 222.55 ms │      no change │
│ QQuery 60 │        154.92 / 156.79 ±1.07 / 157.86 ms │     156.45 / 157.48 ±0.65 / 158.20 ms │      no change │
│ QQuery 61 │        180.95 / 181.94 ±0.81 / 182.65 ms │     181.20 / 183.55 ±1.85 / 186.41 ms │      no change │
│ QQuery 62 │       904.97 / 941.34 ±33.08 / 986.22 ms │     177.68 / 193.71 ±8.18 / 199.55 ms │  +4.86x faster │
│ QQuery 63 │        108.99 / 111.34 ±1.23 / 112.49 ms │     108.79 / 112.62 ±2.63 / 115.88 ms │      no change │
│ QQuery 64 │        713.50 / 717.45 ±3.25 / 722.27 ms │     702.48 / 707.67 ±4.58 / 715.20 ms │      no change │
│ QQuery 65 │        259.91 / 263.91 ±3.28 / 268.28 ms │     263.29 / 267.81 ±3.38 / 272.26 ms │      no change │
│ QQuery 66 │       241.25 / 262.85 ±14.16 / 275.95 ms │    224.48 / 240.49 ±13.51 / 265.13 ms │  +1.09x faster │
│ QQuery 67 │        336.54 / 348.22 ±8.30 / 360.63 ms │     349.98 / 354.69 ±4.45 / 363.02 ms │      no change │
│ QQuery 68 │        283.62 / 287.44 ±2.89 / 290.91 ms │     287.79 / 290.96 ±2.58 / 294.80 ms │      no change │
│ QQuery 69 │        112.26 / 113.32 ±0.87 / 114.36 ms │     112.98 / 115.02 ±1.66 / 117.62 ms │      no change │
│ QQuery 70 │        349.34 / 360.32 ±6.65 / 368.35 ms │     349.91 / 366.80 ±9.81 / 380.34 ms │      no change │
│ QQuery 71 │        142.76 / 144.91 ±2.79 / 150.36 ms │     141.23 / 143.38 ±1.28 / 145.03 ms │      no change │
│ QQuery 72 │       711.19 / 730.01 ±18.12 / 758.84 ms │    834.54 / 856.71 ±14.74 / 878.60 ms │   1.17x slower │
│ QQuery 73 │        106.37 / 107.66 ±1.34 / 109.80 ms │     108.05 / 110.40 ±2.36 / 114.12 ms │      no change │
│ QQuery 74 │        579.65 / 583.25 ±3.74 / 588.55 ms │     670.52 / 679.94 ±9.10 / 695.64 ms │   1.17x slower │
│ QQuery 75 │        293.47 / 295.92 ±1.47 / 298.01 ms │     300.76 / 303.27 ±1.71 / 305.55 ms │      no change │
│ QQuery 76 │        136.14 / 139.34 ±2.04 / 142.38 ms │     138.39 / 141.09 ±1.57 / 143.19 ms │      no change │
│ QQuery 77 │        201.87 / 204.33 ±1.67 / 206.30 ms │     205.19 / 208.47 ±1.85 / 210.17 ms │      no change │
│ QQuery 78 │        359.75 / 369.48 ±5.91 / 375.42 ms │     363.66 / 371.28 ±5.01 / 378.27 ms │      no change │
│ QQuery 79 │        239.38 / 243.71 ±3.83 / 250.36 ms │     238.50 / 240.65 ±1.72 / 243.69 ms │      no change │
│ QQuery 80 │        347.50 / 351.75 ±3.16 / 355.89 ms │     344.95 / 346.88 ±1.33 / 348.24 ms │      no change │
│ QQuery 81 │           31.49 / 33.14 ±1.50 / 35.15 ms │        32.52 / 33.49 ±0.74 / 34.47 ms │      no change │
│ QQuery 82 │        209.76 / 211.97 ±1.27 / 213.36 ms │     213.19 / 215.41 ±1.69 / 217.54 ms │      no change │
│ QQuery 83 │           48.92 / 49.79 ±1.44 / 52.65 ms │        49.62 / 51.28 ±1.33 / 53.60 ms │      no change │
│ QQuery 84 │           51.94 / 52.85 ±0.55 / 53.48 ms │        52.28 / 53.90 ±1.25 / 56.08 ms │      no change │
│ QQuery 85 │        155.20 / 156.31 ±0.86 / 157.49 ms │     153.46 / 155.43 ±1.54 / 157.08 ms │      no change │
│ QQuery 86 │           42.06 / 43.27 ±1.06 / 45.24 ms │        41.69 / 42.99 ±0.92 / 44.33 ms │      no change │
│ QQuery 87 │          95.80 / 97.67 ±1.77 / 100.52 ms │       93.48 / 96.37 ±2.31 / 100.53 ms │      no change │
│ QQuery 88 │        114.97 / 116.25 ±0.86 / 117.26 ms │     116.91 / 118.61 ±1.26 / 120.77 ms │      no change │
│ QQuery 89 │        127.85 / 128.42 ±0.31 / 128.79 ms │     128.78 / 129.38 ±0.58 / 130.48 ms │      no change │
│ QQuery 90 │           29.47 / 29.89 ±0.29 / 30.25 ms │        29.77 / 30.29 ±0.30 / 30.63 ms │      no change │
│ QQuery 91 │           68.24 / 69.27 ±0.70 / 70.44 ms │        63.23 / 64.29 ±0.76 / 65.49 ms │  +1.08x faster │
│ QQuery 92 │           62.82 / 63.79 ±0.51 / 64.21 ms │        62.79 / 63.84 ±1.18 / 66.08 ms │      no change │
│ QQuery 93 │        194.48 / 198.06 ±2.41 / 202.02 ms │     197.55 / 200.81 ±1.86 / 202.53 ms │      no change │
│ QQuery 94 │           66.16 / 67.30 ±0.78 / 68.40 ms │        67.37 / 67.92 ±0.33 / 68.36 ms │      no change │
│ QQuery 95 │        143.07 / 144.57 ±1.02 / 145.86 ms │     157.48 / 161.77 ±3.73 / 168.24 ms │   1.12x slower │
│ QQuery 96 │           77.18 / 80.19 ±1.75 / 82.56 ms │        77.42 / 79.95 ±1.36 / 81.23 ms │      no change │
│ QQuery 97 │        133.85 / 135.89 ±2.49 / 140.51 ms │     144.16 / 145.72 ±2.25 / 150.19 ms │   1.07x slower │
│ QQuery 98 │        154.69 / 158.14 ±2.03 / 160.39 ms │     168.42 / 171.64 ±2.04 / 174.23 ms │   1.09x slower │
│ QQuery 99 │ 10700.31 / 10746.18 ±36.01 / 10795.82 ms │    305.64 / 324.13 ±13.75 / 345.98 ms │ +33.15x faster │
└───────────┴──────────────────────────────────────────┴───────────────────────────────────────┴────────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary           ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)           │ 34522.53ms │
│ Total Time (avoid_concat)   │ 23631.08ms │
│ Average Time (HEAD)         │   348.71ms │
│ Average Time (avoid_concat) │   238.70ms │
│ 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 173.0s
Peak memory 5.6 GiB
Avg memory 4.7 GiB
CPU user 273.8s
CPU sys 21.0s
Disk read 0 B
Disk write 636.1 MiB

tpcds — branch

Metric Value
Wall time 118.5s
Peak memory 4.9 GiB
Avg memory 4.1 GiB
CPU user 228.4s
CPU sys 19.5s
Disk read 0 B
Disk write 144.0 KiB

@adriangbot
Copy link

🤖 Benchmark completed (GKE) | trigger

Details

Comparing HEAD and avoid_concat
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                                  HEAD ┃                          avoid_concat ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0  │          1.67 / 4.89 ±6.36 / 17.61 ms │          1.63 / 4.97 ±6.49 / 17.95 ms │     no change │
│ QQuery 1  │        15.95 / 16.14 ±0.21 / 16.44 ms │        15.48 / 15.77 ±0.18 / 15.99 ms │     no change │
│ QQuery 2  │        57.32 / 57.73 ±0.32 / 58.24 ms │        57.18 / 57.60 ±0.32 / 58.14 ms │     no change │
│ QQuery 3  │        50.25 / 51.11 ±0.92 / 52.68 ms │        49.16 / 50.76 ±0.92 / 51.84 ms │     no change │
│ QQuery 4  │     308.47 / 313.31 ±3.62 / 317.92 ms │     308.28 / 317.84 ±8.54 / 330.76 ms │     no change │
│ QQuery 5  │     349.36 / 355.16 ±4.71 / 362.21 ms │     357.64 / 360.62 ±2.21 / 363.80 ms │     no change │
│ QQuery 6  │          5.80 / 8.01 ±3.11 / 14.17 ms │           5.03 / 5.71 ±0.44 / 6.24 ms │ +1.40x faster │
│ QQuery 7  │        18.36 / 19.18 ±1.10 / 21.29 ms │        18.08 / 20.03 ±1.95 / 22.70 ms │     no change │
│ QQuery 8  │     433.96 / 441.28 ±7.55 / 453.56 ms │    449.43 / 467.58 ±15.05 / 490.01 ms │  1.06x slower │
│ QQuery 9  │     681.36 / 696.50 ±9.27 / 708.83 ms │    682.41 / 706.29 ±13.68 / 724.98 ms │     no change │
│ QQuery 10 │       94.07 / 95.97 ±3.13 / 102.20 ms │       93.92 / 96.81 ±4.17 / 105.02 ms │     no change │
│ QQuery 11 │     107.48 / 108.30 ±0.56 / 109.10 ms │     107.32 / 109.44 ±1.17 / 110.49 ms │     no change │
│ QQuery 12 │     344.91 / 351.51 ±3.92 / 356.89 ms │     358.95 / 364.35 ±3.59 / 368.31 ms │     no change │
│ QQuery 13 │     470.62 / 483.49 ±9.42 / 497.44 ms │     475.67 / 483.58 ±7.73 / 497.29 ms │     no change │
│ QQuery 14 │     366.71 / 369.11 ±1.90 / 371.45 ms │     362.20 / 369.34 ±4.92 / 375.98 ms │     no change │
│ QQuery 15 │     374.21 / 384.79 ±7.40 / 393.61 ms │    394.32 / 430.32 ±29.47 / 462.10 ms │  1.12x slower │
│ QQuery 16 │     751.07 / 760.97 ±6.51 / 769.90 ms │    751.02 / 781.52 ±19.98 / 811.69 ms │     no change │
│ QQuery 17 │     743.44 / 759.18 ±9.48 / 769.51 ms │    752.87 / 771.74 ±20.51 / 809.00 ms │     no change │
│ QQuery 18 │ 1417.36 / 1437.97 ±14.14 / 1454.39 ms │ 1587.52 / 1620.00 ±37.53 / 1686.32 ms │  1.13x slower │
│ QQuery 19 │        36.77 / 37.71 ±0.84 / 39.12 ms │        38.63 / 40.75 ±1.93 / 43.57 ms │  1.08x slower │
│ QQuery 20 │    702.11 / 715.05 ±12.74 / 736.69 ms │    722.78 / 738.34 ±19.96 / 775.14 ms │     no change │
│ QQuery 21 │     750.23 / 755.11 ±3.12 / 758.92 ms │     755.63 / 761.66 ±3.36 / 765.91 ms │     no change │
│ QQuery 22 │  1124.15 / 1132.81 ±9.86 / 1151.51 ms │  1140.35 / 1144.85 ±3.41 / 1150.28 ms │     no change │
│ QQuery 23 │ 3167.75 / 3200.94 ±28.79 / 3248.62 ms │ 3210.52 / 3232.22 ±16.10 / 3256.12 ms │     no change │
│ QQuery 24 │      99.67 / 105.98 ±3.48 / 110.04 ms │     104.48 / 107.61 ±2.20 / 110.15 ms │     no change │
│ QQuery 25 │     142.73 / 143.94 ±0.89 / 145.16 ms │     142.49 / 144.07 ±1.27 / 146.07 ms │     no change │
│ QQuery 26 │     103.50 / 105.09 ±0.93 / 105.87 ms │     103.20 / 105.58 ±1.47 / 107.81 ms │     no change │
│ QQuery 27 │    859.13 / 869.92 ±12.68 / 890.99 ms │     849.26 / 856.52 ±5.18 / 865.17 ms │     no change │
│ QQuery 28 │ 7696.98 / 7756.49 ±33.38 / 7783.29 ms │ 7752.77 / 7806.21 ±34.03 / 7859.44 ms │     no change │
│ QQuery 29 │        57.24 / 62.37 ±4.87 / 70.49 ms │        57.32 / 60.93 ±4.91 / 70.32 ms │     no change │
│ QQuery 30 │     375.67 / 384.09 ±7.75 / 398.47 ms │     376.91 / 383.15 ±5.71 / 390.99 ms │     no change │
│ QQuery 31 │    372.37 / 387.29 ±10.39 / 400.33 ms │    363.66 / 385.81 ±18.31 / 408.53 ms │     no change │
│ QQuery 32 │ 1077.49 / 1105.27 ±27.29 / 1148.61 ms │ 1095.51 / 1119.73 ±28.22 / 1171.40 ms │     no change │
│ QQuery 33 │ 1488.53 / 1549.63 ±75.22 / 1696.02 ms │  1501.73 / 1514.24 ±9.51 / 1528.13 ms │     no change │
│ QQuery 34 │ 1522.19 / 1538.32 ±17.64 / 1569.71 ms │ 1516.29 / 1530.26 ±11.34 / 1546.35 ms │     no change │
│ QQuery 35 │     422.65 / 431.30 ±7.78 / 444.15 ms │     420.77 / 426.42 ±5.07 / 435.75 ms │     no change │
│ QQuery 36 │     129.37 / 130.56 ±0.89 / 131.99 ms │     125.24 / 128.18 ±2.63 / 132.76 ms │     no change │
│ QQuery 37 │        50.83 / 52.32 ±0.86 / 53.08 ms │        50.84 / 53.25 ±2.07 / 56.92 ms │     no change │
│ QQuery 38 │        77.56 / 79.48 ±1.49 / 81.26 ms │        78.06 / 79.57 ±1.37 / 82.12 ms │     no change │
│ QQuery 39 │     232.32 / 240.79 ±5.62 / 246.91 ms │     219.69 / 236.76 ±8.96 / 244.73 ms │     no change │
│ QQuery 40 │        25.41 / 28.13 ±1.43 / 29.44 ms │        23.98 / 27.44 ±2.04 / 29.99 ms │     no change │
│ QQuery 41 │        22.27 / 23.23 ±0.76 / 24.11 ms │        21.26 / 23.01 ±1.32 / 24.85 ms │     no change │
│ QQuery 42 │        22.01 / 22.71 ±0.39 / 23.06 ms │        22.16 / 23.02 ±0.55 / 23.83 ms │     no change │
└───────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary           ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)           │ 27573.17ms │
│ Total Time (avoid_concat)   │ 27963.85ms │
│ Average Time (HEAD)         │   641.24ms │
│ Average Time (avoid_concat) │   650.32ms │
│ Queries Faster              │          1 │
│ Queries Slower              │          4 │
│ Queries with No Change      │         38 │
│ Queries with Failure        │          0 │
└─────────────────────────────┴────────────┘

Resource Usage

clickbench_partitioned — base (merge-base)

Metric Value
Wall time 139.0s
Peak memory 42.2 GiB
Avg memory 33.5 GiB
CPU user 1314.7s
CPU sys 82.3s
Disk read 0 B
Disk write 3.9 GiB

clickbench_partitioned — branch

Metric Value
Wall time 141.0s
Peak memory 41.5 GiB
Avg memory 32.5 GiB
CPU user 1319.7s
CPU sys 92.7s
Disk read 0 B
Disk write 756.0 KiB

Dandandan and others added 2 commits March 17, 2026 10:23
The multi-batch path in equal_rows_arr was using interleave() to
materialize intermediate arrays, which is slower than the old
take()-on-concatenated-keys approach. This adds compare_rows_elementwise_multi
which decodes packed indices (batch_idx << 32 | row_idx) and compares
values directly from per-batch arrays, avoiding all intermediate
allocation for common key types.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…atch API

- Extract duplicated DataType match block into dispatch_elementwise! macro
  used by both single-batch and multi-batch comparison functions
- Change compare_rows_elementwise_multi to take &[&ArrayRef] instead of
  leaking (left_arrays_per_batch, key_idx) internal structure
- Pre-compute left null buffers per batch outside the hot loop in
  do_compare_elementwise_multi

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@Dandandan
Copy link
Contributor Author

run benchmarks

@adriangbot
Copy link

🤖 Benchmark running (GKE) | trigger
Linux bench-c4073527433-351-95kkw 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing avoid_concat (7f5db8a) to 6d3a846 (merge-base) diff using: clickbench_partitioned
Results will be posted here when complete

@adriangbot
Copy link

🤖 Benchmark running (GKE) | trigger
Linux bench-c4073527433-352-rmrlq 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing avoid_concat (7f5db8a) to 6d3a846 (merge-base) diff using: tpcds
Results will be posted here when complete

@adriangbot
Copy link

🤖 Benchmark running (GKE) | trigger
Linux bench-c4073527433-353-dhpwp 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing avoid_concat (7f5db8a) to 6d3a846 (merge-base) diff using: tpch
Results will be posted here when complete

When merging multiple partitions, CoalescePartitionsExec now coalesces
small batches into larger ones (target_batch_size from session config).
This benefits downstream operators like hash join whose build side
receives fewer, larger batches — enabling the fast single-batch take()
path instead of the slower multi-batch interleave() path in
build_batch_from_indices.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@adriangbot
Copy link

🤖 Benchmark completed (GKE) | trigger

Details

Comparing HEAD and avoid_concat
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
┃ Query     ┃                           HEAD ┃                   avoid_concat ┃       Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━┩
│ QQuery 1  │ 46.20 / 46.86 ±0.72 / 48.27 ms │ 46.52 / 47.38 ±1.01 / 48.86 ms │    no change │
│ QQuery 2  │ 24.45 / 24.69 ±0.38 / 25.44 ms │ 25.28 / 26.00 ±1.07 / 28.14 ms │ 1.05x slower │
│ QQuery 3  │ 33.72 / 34.06 ±0.48 / 34.98 ms │ 33.28 / 33.41 ±0.12 / 33.64 ms │    no change │
│ QQuery 4  │ 21.66 / 21.93 ±0.23 / 22.32 ms │ 22.33 / 22.96 ±0.45 / 23.48 ms │    no change │
│ QQuery 5  │ 50.29 / 52.41 ±1.70 / 54.47 ms │ 51.47 / 53.50 ±1.12 / 54.79 ms │    no change │
│ QQuery 6  │ 17.63 / 17.80 ±0.16 / 18.01 ms │ 17.80 / 17.97 ±0.32 / 18.60 ms │    no change │
│ QQuery 7  │ 56.32 / 57.83 ±1.55 / 60.36 ms │ 58.94 / 60.50 ±1.31 / 62.50 ms │    no change │
│ QQuery 8  │ 50.89 / 51.62 ±0.67 / 52.67 ms │ 51.70 / 52.65 ±1.07 / 54.59 ms │    no change │
│ QQuery 9  │ 56.16 / 57.37 ±0.72 / 58.25 ms │ 55.91 / 57.18 ±0.81 / 58.24 ms │    no change │
│ QQuery 10 │ 73.47 / 74.51 ±1.46 / 77.39 ms │ 72.83 / 74.77 ±2.24 / 79.17 ms │    no change │
│ QQuery 11 │ 16.36 / 16.68 ±0.34 / 17.27 ms │ 17.47 / 17.62 ±0.16 / 17.88 ms │ 1.06x slower │
│ QQuery 12 │ 28.56 / 29.55 ±1.19 / 31.88 ms │ 28.86 / 29.36 ±0.52 / 30.20 ms │    no change │
│ QQuery 13 │ 39.10 / 39.93 ±0.49 / 40.52 ms │ 39.74 / 41.74 ±1.04 / 42.61 ms │    no change │
│ QQuery 14 │ 29.20 / 29.46 ±0.23 / 29.89 ms │ 29.40 / 29.72 ±0.28 / 30.20 ms │    no change │
│ QQuery 15 │ 36.28 / 36.93 ±0.57 / 37.99 ms │ 36.31 / 36.96 ±0.88 / 38.70 ms │    no change │
│ QQuery 16 │ 17.57 / 18.01 ±0.41 / 18.68 ms │ 17.76 / 18.07 ±0.36 / 18.72 ms │    no change │
│ QQuery 17 │ 75.27 / 76.42 ±0.79 / 77.58 ms │ 74.00 / 75.83 ±1.39 / 78.28 ms │    no change │
│ QQuery 18 │ 80.59 / 82.01 ±0.79 / 82.89 ms │ 85.94 / 86.72 ±0.82 / 88.23 ms │ 1.06x slower │
│ QQuery 19 │ 38.05 / 38.96 ±0.53 / 39.55 ms │ 38.21 / 39.22 ±0.90 / 40.84 ms │    no change │
│ QQuery 20 │ 43.02 / 43.83 ±0.59 / 44.52 ms │ 43.32 / 44.28 ±0.78 / 44.99 ms │    no change │
│ QQuery 21 │ 67.89 / 69.90 ±2.06 / 73.37 ms │ 76.11 / 78.55 ±1.66 / 80.25 ms │ 1.12x slower │
│ QQuery 22 │ 19.64 / 19.86 ±0.19 / 20.21 ms │ 20.87 / 21.25 ±0.31 / 21.77 ms │ 1.07x slower │
└───────────┴────────────────────────────────┴────────────────────────────────┴──────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Benchmark Summary           ┃          ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ Total Time (HEAD)           │ 940.61ms │
│ Total Time (avoid_concat)   │ 965.66ms │
│ Average Time (HEAD)         │  42.75ms │
│ Average Time (avoid_concat) │  43.89ms │
│ Queries Faster              │        0 │
│ Queries Slower              │        5 │
│ Queries with No Change      │       17 │
│ Queries with Failure        │        0 │
└─────────────────────────────┴──────────┘

Resource Usage

tpch — base (merge-base)

Metric Value
Wall time 5.0s
Peak memory 4.0 GiB
Avg memory 3.5 GiB
CPU user 33.6s
CPU sys 3.2s
Disk read 0 B
Disk write 136.0 KiB

tpch — branch

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

@adriangbot
Copy link

🤖 Benchmark completed (GKE) | trigger

Details

Comparing HEAD and avoid_concat
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┓
┃ Query     ┃                                     HEAD ┃                          avoid_concat ┃         Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━┩
│ QQuery 1  │           48.90 / 50.20 ±0.99 / 51.65 ms │        48.94 / 50.02 ±0.68 / 51.05 ms │      no change │
│ QQuery 2  │        155.93 / 157.06 ±0.93 / 158.17 ms │     164.19 / 165.17 ±1.34 / 167.71 ms │   1.05x slower │
│ QQuery 3  │        121.01 / 121.33 ±0.23 / 121.64 ms │     122.12 / 122.97 ±0.95 / 124.78 ms │      no change │
│ QQuery 4  │    1386.64 / 1410.26 ±14.84 / 1425.76 ms │ 1575.77 / 1590.65 ±12.53 / 1607.75 ms │   1.13x slower │
│ QQuery 5  │        186.95 / 187.77 ±0.89 / 189.39 ms │     183.32 / 185.56 ±1.66 / 187.88 ms │      no change │
│ QQuery 6  │     982.86 / 1031.40 ±49.58 / 1096.72 ms │    329.39 / 340.21 ±12.58 / 363.92 ms │  +3.03x faster │
│ QQuery 7  │        358.48 / 361.73 ±2.57 / 364.93 ms │     356.03 / 359.57 ±3.52 / 366.26 ms │      no change │
│ QQuery 8  │        125.22 / 125.66 ±0.48 / 126.58 ms │     120.77 / 122.01 ±0.73 / 122.74 ms │      no change │
│ QQuery 9  │        115.12 / 117.68 ±2.58 / 121.33 ms │     116.84 / 121.00 ±6.17 / 133.22 ms │      no change │
│ QQuery 10 │        116.11 / 117.83 ±1.00 / 118.80 ms │     113.54 / 114.20 ±0.61 / 115.31 ms │      no change │
│ QQuery 11 │      968.18 / 989.60 ±13.59 / 1004.47 ms │  1154.93 / 1161.69 ±5.04 / 1168.80 ms │   1.17x slower │
│ QQuery 12 │           49.82 / 50.67 ±0.70 / 51.90 ms │        49.22 / 51.11 ±1.80 / 54.31 ms │      no change │
│ QQuery 13 │        411.67 / 413.63 ±1.97 / 416.90 ms │     404.09 / 407.04 ±2.32 / 410.89 ms │      no change │
│ QQuery 14 │     1103.89 / 1113.05 ±8.76 / 1127.44 ms │  1187.71 / 1197.45 ±6.25 / 1206.04 ms │   1.08x slower │
│ QQuery 15 │           17.68 / 19.78 ±1.49 / 21.42 ms │        17.88 / 18.95 ±0.89 / 20.11 ms │      no change │
│ QQuery 16 │           46.50 / 47.29 ±0.81 / 48.37 ms │        46.01 / 46.98 ±0.63 / 47.73 ms │      no change │
│ QQuery 17 │        251.02 / 253.48 ±2.45 / 257.93 ms │     248.74 / 251.20 ±1.46 / 253.21 ms │      no change │
│ QQuery 18 │        132.83 / 135.24 ±2.18 / 138.74 ms │     131.63 / 133.51 ±1.41 / 135.04 ms │      no change │
│ QQuery 19 │        163.35 / 165.48 ±1.27 / 166.77 ms │     160.73 / 163.19 ±1.87 / 166.15 ms │      no change │
│ QQuery 20 │           15.93 / 16.57 ±0.57 / 17.26 ms │        16.17 / 16.38 ±0.26 / 16.88 ms │      no change │
│ QQuery 21 │           23.71 / 24.63 ±0.54 / 25.28 ms │        25.08 / 25.71 ±0.53 / 26.59 ms │      no change │
│ QQuery 22 │        526.02 / 532.13 ±3.93 / 536.41 ms │     545.68 / 550.39 ±4.69 / 559.30 ms │      no change │
│ QQuery 23 │        957.48 / 966.83 ±8.86 / 982.87 ms │  984.72 / 1002.62 ±14.12 / 1023.92 ms │      no change │
│ QQuery 24 │        437.45 / 440.14 ±1.68 / 441.82 ms │     436.39 / 439.74 ±3.23 / 445.92 ms │      no change │
│ QQuery 25 │        365.83 / 367.85 ±1.20 / 369.49 ms │     364.31 / 367.72 ±2.38 / 370.74 ms │      no change │
│ QQuery 26 │           86.21 / 88.22 ±1.63 / 90.92 ms │        85.39 / 86.81 ±0.95 / 88.15 ms │      no change │
│ QQuery 27 │        355.36 / 357.13 ±2.01 / 360.91 ms │     351.81 / 354.30 ±3.33 / 360.84 ms │      no change │
│ QQuery 28 │        154.98 / 156.96 ±2.88 / 162.69 ms │     154.07 / 155.87 ±1.38 / 157.98 ms │      no change │
│ QQuery 29 │        311.00 / 312.68 ±1.83 / 316.15 ms │     308.19 / 309.97 ±1.70 / 312.21 ms │      no change │
│ QQuery 30 │           49.05 / 50.49 ±1.10 / 52.44 ms │        48.06 / 50.22 ±1.40 / 52.40 ms │      no change │
│ QQuery 31 │        187.56 / 189.06 ±1.17 / 190.45 ms │     183.41 / 185.75 ±1.89 / 187.98 ms │      no change │
│ QQuery 32 │           63.35 / 64.00 ±0.93 / 65.82 ms │        62.79 / 63.49 ±0.47 / 64.11 ms │      no change │
│ QQuery 33 │        151.72 / 154.23 ±2.32 / 157.82 ms │     150.51 / 153.61 ±1.69 / 155.53 ms │      no change │
│ QQuery 34 │        112.12 / 114.06 ±1.21 / 115.65 ms │     111.98 / 113.73 ±0.93 / 114.78 ms │      no change │
│ QQuery 35 │        115.77 / 118.73 ±1.77 / 120.92 ms │     117.46 / 118.96 ±1.20 / 120.95 ms │      no change │
│ QQuery 36 │        227.12 / 229.70 ±2.30 / 232.62 ms │     225.24 / 228.05 ±3.77 / 235.47 ms │      no change │
│ QQuery 37 │        188.89 / 192.63 ±3.99 / 198.64 ms │     184.12 / 188.42 ±3.44 / 192.90 ms │      no change │
│ QQuery 38 │           94.70 / 96.81 ±1.55 / 98.84 ms │        92.41 / 95.43 ±1.89 / 98.35 ms │      no change │
│ QQuery 39 │        141.20 / 142.82 ±1.25 / 144.62 ms │     145.99 / 148.81 ±2.38 / 151.66 ms │      no change │
│ QQuery 40 │        117.36 / 122.60 ±7.60 / 137.71 ms │     109.20 / 111.65 ±2.29 / 115.83 ms │  +1.10x faster │
│ QQuery 41 │           18.11 / 19.19 ±1.01 / 20.98 ms │        16.96 / 17.63 ±0.40 / 18.09 ms │  +1.09x faster │
│ QQuery 42 │        112.81 / 114.33 ±1.01 / 115.54 ms │     110.85 / 112.94 ±1.69 / 115.39 ms │      no change │
│ QQuery 43 │           88.79 / 90.37 ±0.98 / 91.68 ms │        90.08 / 90.78 ±0.77 / 92.27 ms │      no change │
│ QQuery 44 │           17.50 / 18.05 ±0.53 / 19.07 ms │        17.27 / 17.74 ±0.47 / 18.63 ms │      no change │
│ QQuery 45 │           56.96 / 57.96 ±0.65 / 58.89 ms │        56.59 / 57.03 ±0.47 / 57.91 ms │      no change │
│ QQuery 46 │        238.23 / 242.01 ±2.51 / 244.82 ms │     241.44 / 242.74 ±1.22 / 244.46 ms │      no change │
│ QQuery 47 │        743.69 / 756.89 ±7.23 / 764.28 ms │     799.98 / 812.92 ±8.49 / 824.96 ms │   1.07x slower │
│ QQuery 48 │        290.91 / 295.55 ±3.78 / 300.38 ms │     285.07 / 290.68 ±3.56 / 295.14 ms │      no change │
│ QQuery 49 │        265.63 / 268.53 ±2.31 / 272.36 ms │     264.50 / 264.90 ±0.36 / 265.45 ms │      no change │
│ QQuery 50 │        236.10 / 243.29 ±5.33 / 252.06 ms │     234.00 / 237.49 ±2.60 / 242.06 ms │      no change │
│ QQuery 51 │        192.15 / 195.82 ±3.26 / 200.78 ms │     191.53 / 193.87 ±2.61 / 198.09 ms │      no change │
│ QQuery 52 │        113.19 / 115.25 ±1.80 / 117.63 ms │     111.74 / 112.91 ±1.07 / 114.77 ms │      no change │
│ QQuery 53 │        109.04 / 110.09 ±1.03 / 112.06 ms │     107.87 / 109.22 ±0.95 / 110.72 ms │      no change │
│ QQuery 54 │        155.88 / 158.11 ±1.63 / 160.80 ms │     154.85 / 156.23 ±1.22 / 158.30 ms │      no change │
│ QQuery 55 │        111.26 / 113.55 ±1.35 / 114.89 ms │     110.93 / 112.66 ±1.69 / 115.61 ms │      no change │
│ QQuery 56 │        152.27 / 154.08 ±1.47 / 156.22 ms │     150.87 / 153.78 ±2.11 / 157.04 ms │      no change │
│ QQuery 57 │        191.71 / 195.37 ±2.04 / 198.00 ms │     199.41 / 202.10 ±2.23 / 205.05 ms │      no change │
│ QQuery 58 │        308.92 / 317.10 ±5.34 / 323.73 ms │     319.99 / 322.76 ±1.67 / 324.24 ms │      no change │
│ QQuery 59 │        209.30 / 212.36 ±2.52 / 216.98 ms │     213.02 / 214.89 ±1.47 / 216.79 ms │      no change │
│ QQuery 60 │        154.56 / 155.82 ±0.65 / 156.32 ms │     154.03 / 156.14 ±1.48 / 158.08 ms │      no change │
│ QQuery 61 │        180.80 / 182.16 ±1.33 / 184.37 ms │     181.39 / 182.56 ±1.43 / 185.10 ms │      no change │
│ QQuery 62 │       883.51 / 905.63 ±23.93 / 947.66 ms │    177.09 / 193.71 ±12.07 / 210.62 ms │  +4.68x faster │
│ QQuery 63 │        111.09 / 111.89 ±0.71 / 112.94 ms │     109.13 / 111.21 ±1.15 / 112.28 ms │      no change │
│ QQuery 64 │        717.97 / 724.83 ±6.76 / 736.16 ms │     705.66 / 709.25 ±3.37 / 713.51 ms │      no change │
│ QQuery 65 │        263.58 / 268.95 ±5.29 / 278.63 ms │     260.54 / 263.70 ±2.15 / 266.58 ms │      no change │
│ QQuery 66 │        261.82 / 273.69 ±8.67 / 284.00 ms │     223.86 / 234.07 ±9.45 / 249.01 ms │  +1.17x faster │
│ QQuery 67 │        345.57 / 349.66 ±2.75 / 352.59 ms │     345.23 / 355.21 ±5.38 / 361.22 ms │      no change │
│ QQuery 68 │        287.50 / 291.22 ±3.45 / 297.16 ms │     282.49 / 288.53 ±4.72 / 296.87 ms │      no change │
│ QQuery 69 │        112.95 / 114.65 ±1.13 / 116.32 ms │     110.08 / 112.46 ±1.58 / 114.21 ms │      no change │
│ QQuery 70 │       358.45 / 374.44 ±12.02 / 395.08 ms │     358.91 / 367.83 ±6.73 / 378.97 ms │      no change │
│ QQuery 71 │        141.23 / 142.99 ±1.00 / 144.23 ms │     141.00 / 143.39 ±1.32 / 144.89 ms │      no change │
│ QQuery 72 │       726.17 / 740.49 ±13.10 / 763.47 ms │    846.89 / 862.68 ±13.31 / 886.38 ms │   1.17x slower │
│ QQuery 73 │        108.27 / 110.05 ±2.06 / 114.04 ms │     106.48 / 109.87 ±1.84 / 111.62 ms │      no change │
│ QQuery 74 │        605.57 / 609.90 ±4.13 / 617.67 ms │     702.08 / 708.42 ±6.10 / 719.52 ms │   1.16x slower │
│ QQuery 75 │        295.37 / 296.48 ±1.07 / 298.16 ms │     299.42 / 303.14 ±2.56 / 306.76 ms │      no change │
│ QQuery 76 │        139.97 / 142.01 ±1.93 / 145.47 ms │     139.07 / 140.59 ±0.82 / 141.29 ms │      no change │
│ QQuery 77 │        204.41 / 206.95 ±1.76 / 209.74 ms │     202.13 / 203.73 ±1.70 / 206.38 ms │      no change │
│ QQuery 78 │        366.41 / 369.11 ±2.60 / 372.99 ms │     364.61 / 366.43 ±1.47 / 368.85 ms │      no change │
│ QQuery 79 │        238.34 / 244.76 ±3.65 / 249.07 ms │     237.99 / 241.07 ±2.43 / 244.58 ms │      no change │
│ QQuery 80 │        346.55 / 348.61 ±1.53 / 351.32 ms │     342.72 / 345.33 ±1.93 / 347.72 ms │      no change │
│ QQuery 81 │           31.45 / 33.31 ±1.22 / 34.50 ms │        31.27 / 32.07 ±0.65 / 32.87 ms │      no change │
│ QQuery 82 │        212.59 / 213.70 ±0.95 / 215.44 ms │     206.84 / 210.24 ±2.02 / 212.37 ms │      no change │
│ QQuery 83 │           47.09 / 48.65 ±1.65 / 51.50 ms │        49.94 / 50.97 ±1.18 / 53.18 ms │      no change │
│ QQuery 84 │           53.75 / 54.36 ±0.49 / 55.00 ms │        52.49 / 53.81 ±1.30 / 55.54 ms │      no change │
│ QQuery 85 │        152.80 / 155.52 ±1.88 / 158.26 ms │     152.13 / 154.72 ±2.21 / 158.78 ms │      no change │
│ QQuery 86 │           42.74 / 43.67 ±0.52 / 44.24 ms │        41.91 / 42.99 ±0.74 / 44.15 ms │      no change │
│ QQuery 87 │         97.75 / 100.00 ±1.72 / 102.49 ms │        91.63 / 95.52 ±2.62 / 99.78 ms │      no change │
│ QQuery 88 │        115.63 / 116.23 ±0.52 / 117.13 ms │     114.53 / 115.10 ±0.61 / 116.19 ms │      no change │
│ QQuery 89 │        125.56 / 128.43 ±2.40 / 132.71 ms │     126.28 / 128.83 ±3.10 / 134.76 ms │      no change │
│ QQuery 90 │           28.57 / 29.29 ±0.41 / 29.68 ms │        28.16 / 29.06 ±0.61 / 29.79 ms │      no change │
│ QQuery 91 │           67.00 / 68.05 ±0.84 / 69.56 ms │        63.50 / 63.94 ±0.62 / 65.15 ms │  +1.06x faster │
│ QQuery 92 │           62.85 / 64.40 ±1.47 / 67.20 ms │        61.97 / 62.81 ±0.57 / 63.66 ms │      no change │
│ QQuery 93 │        198.75 / 200.02 ±1.05 / 201.15 ms │     194.20 / 198.79 ±2.99 / 202.99 ms │      no change │
│ QQuery 94 │           67.66 / 67.97 ±0.26 / 68.27 ms │        66.91 / 68.05 ±1.28 / 70.11 ms │      no change │
│ QQuery 95 │        145.73 / 149.41 ±3.18 / 154.59 ms │     156.17 / 158.48 ±1.69 / 160.62 ms │   1.06x slower │
│ QQuery 96 │           78.33 / 80.67 ±1.22 / 81.88 ms │        78.03 / 79.45 ±1.23 / 81.59 ms │      no change │
│ QQuery 97 │        136.25 / 138.60 ±1.22 / 139.50 ms │     138.91 / 141.35 ±1.65 / 143.64 ms │      no change │
│ QQuery 98 │        156.00 / 158.79 ±1.47 / 160.23 ms │     168.33 / 172.15 ±2.12 / 174.34 ms │   1.08x slower │
│ QQuery 99 │ 10737.17 / 10789.50 ±35.08 / 10832.91 ms │    291.22 / 316.99 ±20.41 / 351.32 ms │ +34.04x faster │
└───────────┴──────────────────────────────────────────┴───────────────────────────────────────┴────────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary           ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)           │ 34890.20ms │
│ Total Time (avoid_concat)   │ 23668.02ms │
│ Average Time (HEAD)         │   352.43ms │
│ Average Time (avoid_concat) │   239.07ms │
│ Queries Faster              │          7 │
│ Queries Slower              │          9 │
│ Queries with No Change      │         83 │
│ Queries with Failure        │          0 │
└─────────────────────────────┴────────────┘

Resource Usage

tpcds — base (merge-base)

Metric Value
Wall time 174.8s
Peak memory 6.0 GiB
Avg memory 4.5 GiB
CPU user 277.7s
CPU sys 21.0s
Disk read 0 B
Disk write 636.2 MiB

tpcds — branch

Metric Value
Wall time 118.6s
Peak memory 4.7 GiB
Avg memory 4.1 GiB
CPU user 229.3s
CPU sys 18.8s
Disk read 0 B
Disk write 144.0 KiB

@adriangbot
Copy link

🤖 Benchmark completed (GKE) | trigger

Details

Comparing HEAD and avoid_concat
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                                  HEAD ┃                          avoid_concat ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0  │          1.60 / 4.82 ±6.33 / 17.48 ms │          1.60 / 4.81 ±6.34 / 17.48 ms │     no change │
│ QQuery 1  │        15.40 / 15.94 ±0.48 / 16.80 ms │        14.74 / 14.97 ±0.13 / 15.11 ms │ +1.07x faster │
│ QQuery 2  │        57.48 / 57.85 ±0.44 / 58.70 ms │        56.10 / 56.49 ±0.34 / 57.10 ms │     no change │
│ QQuery 3  │        50.50 / 51.72 ±1.25 / 53.93 ms │        48.13 / 52.60 ±3.44 / 55.92 ms │     no change │
│ QQuery 4  │     304.10 / 312.65 ±5.85 / 320.82 ms │     305.50 / 315.89 ±7.92 / 325.80 ms │     no change │
│ QQuery 5  │     350.40 / 353.51 ±2.91 / 358.75 ms │     350.66 / 357.84 ±4.16 / 363.31 ms │     no change │
│ QQuery 6  │           5.31 / 5.76 ±0.57 / 6.87 ms │           4.90 / 5.53 ±0.64 / 6.75 ms │     no change │
│ QQuery 7  │        18.01 / 18.40 ±0.48 / 19.18 ms │        16.71 / 18.13 ±1.44 / 20.24 ms │     no change │
│ QQuery 8  │     439.30 / 445.20 ±5.71 / 455.58 ms │     440.25 / 448.67 ±7.41 / 459.45 ms │     no change │
│ QQuery 9  │     671.13 / 678.98 ±5.97 / 685.72 ms │     667.94 / 676.23 ±6.33 / 687.35 ms │     no change │
│ QQuery 10 │       93.44 / 96.82 ±3.13 / 102.09 ms │       92.56 / 96.63 ±3.56 / 102.65 ms │     no change │
│ QQuery 11 │     108.89 / 109.67 ±0.71 / 110.73 ms │     107.16 / 109.45 ±2.07 / 112.89 ms │     no change │
│ QQuery 12 │     349.01 / 352.63 ±2.77 / 355.71 ms │     350.73 / 354.58 ±3.18 / 359.43 ms │     no change │
│ QQuery 13 │     473.05 / 478.14 ±4.60 / 486.47 ms │     460.24 / 476.27 ±8.36 / 483.61 ms │     no change │
│ QQuery 14 │     357.85 / 361.21 ±2.45 / 365.22 ms │     357.68 / 367.13 ±8.63 / 378.79 ms │     no change │
│ QQuery 15 │    366.88 / 393.31 ±22.53 / 428.43 ms │    377.03 / 402.72 ±21.54 / 432.68 ms │     no change │
│ QQuery 16 │    753.79 / 778.19 ±17.93 / 805.54 ms │     755.25 / 766.58 ±7.43 / 778.37 ms │     no change │
│ QQuery 17 │     744.87 / 750.86 ±4.17 / 756.39 ms │     750.19 / 757.70 ±4.72 / 762.57 ms │     no change │
│ QQuery 18 │ 1464.49 / 1525.53 ±37.14 / 1577.33 ms │ 1397.61 / 1413.39 ±10.00 / 1426.39 ms │ +1.08x faster │
│ QQuery 19 │        35.14 / 41.63 ±8.99 / 59.19 ms │        35.41 / 36.48 ±0.87 / 38.01 ms │ +1.14x faster │
│ QQuery 20 │    711.00 / 723.19 ±16.09 / 754.76 ms │     705.33 / 710.06 ±4.76 / 718.89 ms │     no change │
│ QQuery 21 │     759.31 / 764.09 ±3.59 / 769.15 ms │     753.82 / 756.04 ±1.65 / 758.19 ms │     no change │
│ QQuery 22 │  1138.48 / 1142.99 ±3.71 / 1149.45 ms │  1123.70 / 1126.86 ±2.32 / 1130.56 ms │     no change │
│ QQuery 23 │ 3141.44 / 3170.79 ±25.20 / 3200.38 ms │ 3138.02 / 3162.53 ±13.94 / 3178.39 ms │     no change │
│ QQuery 24 │     101.76 / 106.44 ±4.11 / 114.04 ms │      99.93 / 101.52 ±1.72 / 104.85 ms │     no change │
│ QQuery 25 │     138.56 / 141.38 ±1.72 / 143.51 ms │     136.26 / 139.87 ±2.06 / 142.62 ms │     no change │
│ QQuery 26 │     102.85 / 103.34 ±0.39 / 103.83 ms │     100.84 / 101.76 ±0.71 / 102.60 ms │     no change │
│ QQuery 27 │     847.46 / 854.29 ±7.41 / 868.37 ms │    842.65 / 854.71 ±12.00 / 875.42 ms │     no change │
│ QQuery 28 │ 7672.02 / 7743.73 ±37.57 / 7782.72 ms │ 7699.33 / 7777.81 ±40.63 / 7813.21 ms │     no change │
│ QQuery 29 │        57.09 / 61.94 ±3.86 / 68.43 ms │        55.76 / 63.42 ±7.43 / 77.04 ms │     no change │
│ QQuery 30 │     365.78 / 375.83 ±6.05 / 384.38 ms │     363.98 / 373.78 ±5.90 / 382.43 ms │     no change │
│ QQuery 31 │    375.21 / 389.38 ±15.23 / 415.84 ms │    372.12 / 386.23 ±10.96 / 402.73 ms │     no change │
│ QQuery 32 │ 1081.10 / 1109.61 ±33.65 / 1163.39 ms │ 1060.16 / 1079.33 ±13.07 / 1099.12 ms │     no change │
│ QQuery 33 │  1481.90 / 1491.27 ±7.13 / 1501.16 ms │  1478.50 / 1487.35 ±7.39 / 1495.18 ms │     no change │
│ QQuery 34 │ 1468.60 / 1487.89 ±12.05 / 1503.70 ms │ 1481.75 / 1517.31 ±22.74 / 1548.73 ms │     no change │
│ QQuery 35 │     404.73 / 412.03 ±3.80 / 414.99 ms │     400.80 / 410.63 ±8.73 / 426.39 ms │     no change │
│ QQuery 36 │     121.07 / 126.04 ±4.20 / 132.19 ms │     123.93 / 125.55 ±1.03 / 126.95 ms │     no change │
│ QQuery 37 │        51.48 / 53.81 ±2.22 / 56.78 ms │        50.19 / 52.83 ±1.62 / 54.58 ms │     no change │
│ QQuery 38 │        75.06 / 78.25 ±1.68 / 79.44 ms │        76.59 / 77.16 ±0.47 / 78.00 ms │     no change │
│ QQuery 39 │     222.33 / 234.34 ±9.63 / 244.61 ms │    211.66 / 227.18 ±10.54 / 240.23 ms │     no change │
│ QQuery 40 │        25.11 / 27.71 ±2.95 / 33.43 ms │        23.45 / 26.98 ±2.92 / 30.00 ms │     no change │
│ QQuery 41 │        20.56 / 23.01 ±1.97 / 25.10 ms │        21.28 / 21.86 ±0.55 / 22.80 ms │     no change │
│ QQuery 42 │        21.03 / 21.94 ±0.52 / 22.52 ms │        19.93 / 20.39 ±0.32 / 20.82 ms │ +1.08x faster │
└───────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary           ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)           │ 27476.10ms │
│ Total Time (avoid_concat)   │ 27333.27ms │
│ Average Time (HEAD)         │   638.98ms │
│ Average Time (avoid_concat) │   635.66ms │
│ Queries Faster              │          4 │
│ Queries Slower              │          0 │
│ Queries with No Change      │         39 │
│ Queries with Failure        │          0 │
└─────────────────────────────┴────────────┘

Resource Usage

clickbench_partitioned — base (merge-base)

Metric Value
Wall time 138.5s
Peak memory 42.9 GiB
Avg memory 31.2 GiB
CPU user 1302.0s
CPU sys 88.0s
Disk read 0 B
Disk write 5.2 GiB

clickbench_partitioned — branch

Metric Value
Wall time 137.7s
Peak memory 39.5 GiB
Avg memory 33.0 GiB
CPU user 1299.1s
CPU sys 86.0s
Disk read 0 B
Disk write 116.0 KiB

@Dandandan
Copy link
Contributor Author

run benchmarks

@adriangbot
Copy link

🤖 Benchmark running (GKE) | trigger
Linux bench-c4073799545-354-fxrg4 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing avoid_concat (37531f6) to 6d3a846 (merge-base) diff using: clickbench_partitioned
Results will be posted here when complete

@adriangbot
Copy link

🤖 Benchmark running (GKE) | trigger
Linux bench-c4073799545-355-zbkss 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing avoid_concat (37531f6) to 6d3a846 (merge-base) diff using: tpcds
Results will be posted here when complete

@adriangbot
Copy link

🤖 Benchmark running (GKE) | trigger
Linux bench-c4073799545-356-nxfzq 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing avoid_concat (37531f6) to 6d3a846 (merge-base) diff using: tpch
Results will be posted here when complete

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.

2 participants