Skip to content

[pull] main from apache:main#105

Merged
pull[bot] merged 5 commits intoburaksenn:mainfrom
apache:main
Apr 15, 2026
Merged

[pull] main from apache:main#105
pull[bot] merged 5 commits intoburaksenn:mainfrom
apache:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull bot commented Apr 15, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

theirix and others added 5 commits April 14, 2026 17:30
## Which issue does this PR close?

- Refers to #21409 and #21409.

## Rationale for this change

Reliable benchmarks for GroupsAccumulator operations for FIRST_VALUE,
LAST_VALUE

## What changes are included in this PR?

1. As discussed in
#21383 (comment),
it's better to remove noisy fast benchmarks - done

2. Added bench for Accumulator (allows for measuring one of the
improvements in the "perf" PR) - reliable measurement

3. Added initial benchmarks for update_batch, merge_batch - they test
heavy paths in first_last, but still unpredictable in performance. The
gain ranges from -20% to 20%, while statistical significance is good
(p=0.0), the running time is higher (on the order of microseconds), and
the variance is low (less than 10% with microseconds).

I would suggest dropping bench (3), while keeping it in this PR for
future reference.

## Are these changes tested?

- Manual comparison of the optimised version in #21383 with the
baseline.

Raw output:
<details>
Benchmarking first_value evaluate_bench nulls=0%, filter=false,
first(2): Collecting 100 samples in estimated 8.1994 s (10k ite
first_value evaluate_bench nulls=0%, filter=false, first(2)
                        time:   [7.1169 µs 7.4442 µs 7.8068 µs]
change: [−59.076% −56.116% −53.288%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 7 outliers among 100 measurements (7.00%)
  2 (2.00%) low mild
  2 (2.00%) high mild
  3 (3.00%) high severe

Benchmarking first_value evaluate_bench nulls=0%, filter=false, all:
Collecting 100 samples in estimated 8.8861 s (10k iteratio
first_value evaluate_bench nulls=0%, filter=false, all
                        time:   [61.417 µs 62.884 µs 64.445 µs]
change: [+16.139% +18.982% +21.955%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 3 outliers among 100 measurements (3.00%)
  2 (2.00%) high mild
  1 (1.00%) high severe

Benchmarking first_value update_bench nulls=0%, filter=false: Warming up
for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to
increase target time to 8.5s, enable flat sampling, or reduce sample
count to 50.
first_value update_bench nulls=0%, filter=false
                        time:   [698.62 µs 715.94 µs 734.97 µs]
change: [+14.291% +18.719% +23.681%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 11 outliers among 100 measurements (11.00%)
  8 (8.00%) high mild
  3 (3.00%) high severe

Benchmarking first_value merge_bench nulls=0%, filter=false: Warming up
for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to
increase target time to 7.9s, enable flat sampling, or reduce sample
count to 50.
first_value merge_bench nulls=0%, filter=false
                        time:   [790.57 µs 803.35 µs 816.87 µs]
change: [+21.098% +22.993% +24.543%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 14 outliers among 100 measurements (14.00%)
  11 (11.00%) low mild
  2 (2.00%) high mild
  1 (1.00%) high severe

Benchmarking first_value evaluate_bench nulls=0%, filter=true, first(2):
Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to
increase target time to 5.5s, enable flat sampling, or reduce sample
count to 60.
Benchmarking first_value evaluate_bench nulls=0%, filter=true, first(2):
Collecting 100 samples in estimated 5.5210 s (5050 ite
first_value evaluate_bench nulls=0%, filter=true, first(2)
                        time:   [6.9505 µs 7.2537 µs 7.5774 µs]
change: [−58.159% −56.529% −54.753%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 6 outliers among 100 measurements (6.00%)
  1 (1.00%) low mild
  5 (5.00%) high mild

Benchmarking first_value evaluate_bench nulls=0%, filter=true, all:
Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to
increase target time to 6.2s, enable flat sampling, or reduce sample
count to 60.
Benchmarking first_value evaluate_bench nulls=0%, filter=true, all:
Collecting 100 samples in estimated 6.1760 s (5050 iteratio
first_value evaluate_bench nulls=0%, filter=true, all
                        time:   [61.186 µs 62.361 µs 63.591 µs]
change: [+22.124% +25.679% +29.909%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 6 outliers among 100 measurements (6.00%)
  2 (2.00%) high mild
  4 (4.00%) high severe

Benchmarking first_value update_bench nulls=0%, filter=true: Warming up
for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to
increase target time to 8.5s, enable flat sampling, or reduce sample
count to 50.
first_value update_bench nulls=0%, filter=true
                        time:   [1.0514 ms 1.0802 ms 1.1132 ms]
change: [+7.1670% +10.215% +13.276%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 7 outliers among 100 measurements (7.00%)
  7 (7.00%) high mild

first_value merge_bench nulls=0%, filter=true
                        time:   [1.0923 ms 1.1098 ms 1.1277 ms]
change: [+3.0074% +5.0368% +7.0955%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild

Benchmarking first_value trivial_update_bench nulls=0%,
ignore_nulls=false: Collecting 100 samples in estimated 5.0097 s (2.2M
first_value trivial_update_bench nulls=0%, ignore_nulls=false
                        time:   [622.71 ns 631.10 ns 640.70 ns]
change: [−50.114% −49.416% −48.705%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 8 outliers among 100 measurements (8.00%)
  8 (8.00%) high mild

Benchmarking first_value trivial_update_bench nulls=0%,
ignore_nulls=true: Collecting 100 samples in estimated 5.0045 s (2.2M i
first_value trivial_update_bench nulls=0%, ignore_nulls=true
                        time:   [679.38 ns 694.90 ns 712.37 ns]
change: [−43.205% −41.668% −39.912%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high mild

Benchmarking first_value evaluate_bench nulls=90%, filter=false,
first(2): Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to
increase target time to 5.2s, enable flat sampling, or reduce sample
count to 60.
Benchmarking first_value evaluate_bench nulls=90%, filter=false,
first(2): Collecting 100 samples in estimated 5.2118 s (5050 i
first_value evaluate_bench nulls=90%, filter=false, first(2)
                        time:   [7.4166 µs 7.8253 µs 8.2654 µs]
change: [−48.325% −45.555% −42.419%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild

Benchmarking first_value evaluate_bench nulls=90%, filter=false, all:
Collecting 100 samples in estimated 9.9570 s (10k iterati
first_value evaluate_bench nulls=90%, filter=false, all
                        time:   [58.517 µs 59.706 µs 60.970 µs]
change: [−15.981% −11.746% −7.7891%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high mild

Benchmarking first_value update_bench nulls=90%, filter=false: Warming
up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to
increase target time to 8.4s, enable flat sampling, or reduce sample
count to 50.
first_value update_bench nulls=90%, filter=false
                        time:   [780.07 µs 791.71 µs 804.95 µs]
change: [+5.9470% +8.0014% +10.066%] (p = 0.00 < 0.05)
                        Performance has regressed.

Benchmarking first_value merge_bench nulls=90%, filter=false: Warming up
for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to
increase target time to 9.1s, enable flat sampling, or reduce sample
count to 50.
first_value merge_bench nulls=90%, filter=false
                        time:   [958.86 µs 970.42 µs 981.14 µs]
change: [+18.439% +20.316% +22.356%] (p = 0.00 < 0.05)
                        Performance has regressed.

Benchmarking first_value evaluate_bench nulls=90%, filter=true,
first(2): Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to
increase target time to 6.0s, enable flat sampling, or reduce sample
count to 60.
Benchmarking first_value evaluate_bench nulls=90%, filter=true,
first(2): Collecting 100 samples in estimated 6.0288 s (5050 it
first_value evaluate_bench nulls=90%, filter=true, first(2)
                        time:   [6.8537 µs 7.1723 µs 7.5444 µs]
change: [−56.908% −54.593% −52.231%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 7 outliers among 100 measurements (7.00%)
  1 (1.00%) low mild
  4 (4.00%) high mild
  2 (2.00%) high severe

Benchmarking first_value evaluate_bench nulls=90%, filter=true, all:
Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to
increase target time to 5.9s, enable flat sampling, or reduce sample
count to 60.
Benchmarking first_value evaluate_bench nulls=90%, filter=true, all:
Collecting 100 samples in estimated 5.8762 s (5050 iterati
first_value evaluate_bench nulls=90%, filter=true, all
                        time:   [63.052 µs 64.334 µs 65.771 µs]
change: [−7.9370% −3.3294% +1.2769%] (p = 0.18 > 0.05)
                        No change in performance detected.
Found 6 outliers among 100 measurements (6.00%)
  1 (1.00%) low mild
  3 (3.00%) high mild
  2 (2.00%) high severe

Benchmarking first_value update_bench nulls=90%, filter=true: Warming up
for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to
increase target time to 8.5s, enable flat sampling, or reduce sample
count to 50.
first_value update_bench nulls=90%, filter=true
                        time:   [973.31 µs 987.93 µs 1.0051 ms]
change: [−14.982% −13.123% −11.211%] (p = 0.00 < 0.05)
                        Performance has improved.

first_value merge_bench nulls=90%, filter=true
                        time:   [1.0484 ms 1.0733 ms 1.1015 ms]
change: [−13.327% −8.5896% −4.0916%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 12 outliers among 100 measurements (12.00%)
  7 (7.00%) high mild
  5 (5.00%) high severe

Benchmarking first_value trivial_update_bench nulls=90%,
ignore_nulls=false: Collecting 100 samples in estimated 5.0029 s (2.2M
first_value trivial_update_bench nulls=90%, ignore_nulls=false
                        time:   [531.48 ns 540.09 ns 549.00 ns]
change: [−53.396% −51.782% −50.199%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 4 outliers among 100 measurements (4.00%)
  4 (4.00%) high mild

Benchmarking first_value trivial_update_bench nulls=90%,
ignore_nulls=true: Collecting 100 samples in estimated 5.0038 s (2.2M
first_value trivial_update_bench nulls=90%, ignore_nulls=true
                        time:   [915.47 ns 940.51 ns 964.57 ns]
change: [−42.061% −40.291% −38.529%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 5 outliers among 100 measurements (5.00%)
  5 (5.00%) high mild

Benchmarking last_value evaluate_bench nulls=0%, filter=false, first(2):
Collecting 100 samples in estimated 9.3836 s (10k iter
last_value evaluate_bench nulls=0%, filter=false, first(2)
                        time:   [7.0199 µs 7.3045 µs 7.6053 µs]
change: [−77.228% −67.635% −58.431%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 6 outliers among 100 measurements (6.00%)
  4 (4.00%) high mild
  2 (2.00%) high severe

Benchmarking last_value evaluate_bench nulls=0%, filter=false, all:
Collecting 100 samples in estimated 8.4206 s (10k iteration
last_value evaluate_bench nulls=0%, filter=false, all
                        time:   [59.921 µs 61.048 µs 62.232 µs]
change: [+4.8794% +8.3094% +11.439%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high severe

Benchmarking last_value update_bench nulls=0%, filter=false: Warming up
for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to
increase target time to 7.9s, enable flat sampling, or reduce sample
count to 50.
last_value update_bench nulls=0%, filter=false
                        time:   [700.36 µs 713.46 µs 726.83 µs]
change: [+9.3963% +11.898% +14.265%] (p = 0.00 < 0.05)
                        Performance has regressed.

Benchmarking last_value merge_bench nulls=0%, filter=false: Warming up
for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to
increase target time to 8.9s, enable flat sampling, or reduce sample
count to 50.
last_value merge_bench nulls=0%, filter=false
                        time:   [836.97 µs 858.80 µs 884.97 µs]
change: [+23.796% +29.496% +37.261%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 19 outliers among 100 measurements (19.00%)
  8 (8.00%) high mild
  11 (11.00%) high severe

Benchmarking last_value evaluate_bench nulls=0%, filter=true, first(2):
Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to
increase target time to 6.3s, enable flat sampling, or reduce sample
count to 60.
Benchmarking last_value evaluate_bench nulls=0%, filter=true, first(2):
Collecting 100 samples in estimated 6.3338 s (5050 iter
last_value evaluate_bench nulls=0%, filter=true, first(2)
                        time:   [7.3937 µs 7.8961 µs 8.4694 µs]
change: [−50.815% −47.152% −43.605%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 10 outliers among 100 measurements (10.00%)
  6 (6.00%) high mild
  4 (4.00%) high severe

Benchmarking last_value evaluate_bench nulls=0%, filter=true, all:
Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to
increase target time to 6.5s, enable flat sampling, or reduce sample
count to 60.
Benchmarking last_value evaluate_bench nulls=0%, filter=true, all:
Collecting 100 samples in estimated 6.4877 s (5050 iteration
last_value evaluate_bench nulls=0%, filter=true, all
                        time:   [68.529 µs 72.235 µs 76.626 µs]
change: [−10.658% −4.0677% +2.9060%] (p = 0.26 > 0.05)
                        No change in performance detected.
Found 3 outliers among 100 measurements (3.00%)
  1 (1.00%) high mild
  2 (2.00%) high severe

last_value update_bench nulls=0%, filter=true
                        time:   [1.0699 ms 1.0877 ms 1.1064 ms]
change: [−10.966% −8.9078% −6.9281%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 10 outliers among 100 measurements (10.00%)
  4 (4.00%) low mild
  4 (4.00%) high mild
  2 (2.00%) high severe

last_value merge_bench nulls=0%, filter=true
                        time:   [1.2981 ms 1.3350 ms 1.3750 ms]
change: [+3.5348% +7.0744% +10.890%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 6 outliers among 100 measurements (6.00%)
  6 (6.00%) high mild

Benchmarking last_value trivial_update_bench nulls=0%,
ignore_nulls=false: Collecting 100 samples in estimated 5.0073 s (2.3M i
last_value trivial_update_bench nulls=0%, ignore_nulls=false
                        time:   [675.96 ns 691.10 ns 707.11 ns]
change: [−52.010% −51.201% −50.366%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 17 outliers among 100 measurements (17.00%)
  1 (1.00%) low severe
  11 (11.00%) low mild
  4 (4.00%) high mild
  1 (1.00%) high severe

Benchmarking last_value trivial_update_bench nulls=0%,
ignore_nulls=true: Collecting 100 samples in estimated 5.0026 s (2.5M it
last_value trivial_update_bench nulls=0%, ignore_nulls=true
                        time:   [722.68 ns 752.73 ns 786.26 ns]
change: [−47.665% −45.601% −43.316%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 3 outliers among 100 measurements (3.00%)
  2 (2.00%) high mild
  1 (1.00%) high severe

Benchmarking last_value evaluate_bench nulls=90%, filter=false,
first(2): Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to
increase target time to 6.4s, enable flat sampling, or reduce sample
count to 60.
Benchmarking last_value evaluate_bench nulls=90%, filter=false,
first(2): Collecting 100 samples in estimated 6.4252 s (5050 it
last_value evaluate_bench nulls=90%, filter=false, first(2)
                        time:   [7.1491 µs 7.5298 µs 7.9733 µs]
change: [−58.264% −56.205% −53.750%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 5 outliers among 100 measurements (5.00%)
  4 (4.00%) high mild
  1 (1.00%) high severe

Benchmarking last_value evaluate_bench nulls=90%, filter=false, all:
Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to
increase target time to 6.7s, enable flat sampling, or reduce sample
count to 60.
Benchmarking last_value evaluate_bench nulls=90%, filter=false, all:
Collecting 100 samples in estimated 6.6840 s (5050 iterati
last_value evaluate_bench nulls=90%, filter=false, all
                        time:   [61.176 µs 63.371 µs 65.812 µs]
change: [−6.7601% −3.4004% +0.0769%] (p = 0.05 > 0.05)
                        No change in performance detected.
Found 22 outliers among 100 measurements (22.00%)
  11 (11.00%) low mild
  3 (3.00%) high mild
  8 (8.00%) high severe

Benchmarking last_value update_bench nulls=90%, filter=false: Warming up
for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to
increase target time to 8.3s, enable flat sampling, or reduce sample
count to 50.
last_value update_bench nulls=90%, filter=false
                        time:   [998.11 µs 1.0286 ms 1.0609 ms]
change: [+6.6045% +9.8044% +13.224%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 7 outliers among 100 measurements (7.00%)
  7 (7.00%) high mild

Benchmarking last_value merge_bench nulls=90%, filter=false: Warming up
for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to
increase target time to 8.9s, enable flat sampling, or reduce sample
count to 50.
last_value merge_bench nulls=90%, filter=false
                        time:   [1.1076 ms 1.1214 ms 1.1338 ms]
change: [+5.6096% +9.2265% +12.860%] (p = 0.00 < 0.05)
                        Performance has regressed.

Benchmarking last_value evaluate_bench nulls=90%, filter=true, first(2):
Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to
increase target time to 6.7s, enable flat sampling, or reduce sample
count to 60.
Benchmarking last_value evaluate_bench nulls=90%, filter=true, first(2):
Collecting 100 samples in estimated 6.7049 s (5050 ite
last_value evaluate_bench nulls=90%, filter=true, first(2)
                        time:   [7.3496 µs 7.7714 µs 8.2713 µs]
change: [−58.463% −54.783% −50.403%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 9 outliers among 100 measurements (9.00%)
  6 (6.00%) high mild
  3 (3.00%) high severe

Benchmarking last_value evaluate_bench nulls=90%, filter=true, all:
Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to
increase target time to 6.6s, enable flat sampling, or reduce sample
count to 60.
Benchmarking last_value evaluate_bench nulls=90%, filter=true, all:
Collecting 100 samples in estimated 6.6016 s (5050 iteratio
last_value evaluate_bench nulls=90%, filter=true, all
                        time:   [58.656 µs 59.702 µs 60.853 µs]
change: [+0.5598% +3.4200% +6.1524%] (p = 0.01 < 0.05)
                        Change within noise threshold.
Found 3 outliers among 100 measurements (3.00%)
  3 (3.00%) high mild

last_value update_bench nulls=90%, filter=true
                        time:   [1.2175 ms 1.2303 ms 1.2426 ms]
change: [−0.2830% +1.3593% +3.0630%] (p = 0.12 > 0.05)
                        No change in performance detected.
Found 26 outliers among 100 measurements (26.00%)
  13 (13.00%) low severe
  1 (1.00%) low mild
  8 (8.00%) high mild
  4 (4.00%) high severe

last_value merge_bench nulls=90%, filter=true
                        time:   [1.3002 ms 1.3176 ms 1.3346 ms]
change: [−10.464% −7.8770% −5.2989%] (p = 0.00 < 0.05)
                        Performance has improved.

Benchmarking last_value trivial_update_bench nulls=90%,
ignore_nulls=false: Collecting 100 samples in estimated 5.0064 s (2.3M
last_value trivial_update_bench nulls=90%, ignore_nulls=false
                        time:   [533.70 ns 539.66 ns 545.06 ns]
change: [−63.723% −62.553% −61.383%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 19 outliers among 100 measurements (19.00%)
  4 (4.00%) low severe
  5 (5.00%) low mild
  7 (7.00%) high mild
  3 (3.00%) high severe

Benchmarking last_value trivial_update_bench nulls=90%,
ignore_nulls=true: Collecting 100 samples in estimated 5.0065 s (1.6M i
last_value trivial_update_bench nulls=90%, ignore_nulls=true
                        time:   [1.4710 µs 1.4893 µs 1.5120 µs]
change: [−34.994% −33.485% −31.932%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild

cargo bench --bench first_last -- --baseline main4 1158.42s user 40.19s
system 140% cpu 14:11.29 total
</details>

## Are there any user-facing changes?

<!--
If there are user-facing changes then we may require documentation to be
updated before approving the PR.
-->

<!--
If there are any breaking changes to public APIs, please add the `api
change` label.
-->
## Which issue does this PR close?

<!--
We generally require a GitHub issue to be filed for all bug fixes and
enhancements and this helps us generate change logs for our releases.
You can link an issue to this PR using the GitHub syntax. For example
`Closes #123` indicates that this PR will close issue #123.
-->

- Closes #.

## Rationale for this change

NestedLoopJoinExec currently fails with an OOM error when the left
(build) side exceeds the memory budget. This PR adds a spill-to-disk
fallback so the query can complete instead of crashing.

## What changes are included in this PR?

When collect_left_input via OnceFut fails with ResourcesExhausted, each
partition independently falls back to a memory-limited multi-pass
strategy:

1. Re-executes the left child to get a fresh stream
2. Buffers left data in memory-sized chunks
3. Spills the right side to disk on the first pass, re-reads it for
subsequent passes

The fallback is transparent — if memory is sufficient, the existing
OnceFut path is used with zero overhead. It is currently gated to join
types that don't require global right-side bitmap tracking (INNER, LEFT,
LEFT SEMI, LEFT ANTI, LEFT MARK). RIGHT/FULL joins retain the existing
OOM behavior until adding a cross-chunk right bitmap.

## Are these changes tested?

<!--
We typically require tests for all PRs in order to:
1. Prevent the code from being accidentally broken by subsequent changes
2. Serve as another way to document the expected behavior of the code

If tests are not included in your PR, please explain why (for example,
are they covered by existing tests)?
-->

Unit tests

## Are there any user-facing changes?

<!--
If there are user-facing changes then we may require documentation to be
updated before approving the PR.
-->

No

<!--
If there are any breaking changes to public APIs, please add the `api
change` label.
-->
## Which issue does this PR close?
- Closes #21494.

## Rationale for this change
There are typo problems on following source-files and some of them were
being highlighted by IntelliJ (CLion). It is useful to fix them:
```
datafusion/
     benchmarks/bench.sh
     benchmarks/lineprotocol.py
     core/src/execution/context/mod.rs
     expr/src/udf.rs
     functions-nested/src/range.rs
     optimizer/src/optimizer.rs
     optimizer/src/optimizer.rs
     physical-plan/src/joins/nested_loop_join.rs
     sqllogictest/src/engines/datafusion_engine/normalize.rs
     sqllogictest/test_files/repartition.slt
```

## What changes are included in this PR?
This PR aims to fix found typo problems.

## Are these changes tested?
Not required.

## Are there any user-facing changes?
No
… >=0.17.0,<1 in /docs (#21609)

Updates the requirements on
[pydata-sphinx-theme](https://github.com/pydata/pydata-sphinx-theme) to
permit the latest version.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pydata/pydata-sphinx-theme/releases">pydata-sphinx-theme's
releases</a>.</em></p>
<blockquote>
<h2>v0.17.0</h2>
<h2>What's Changed</h2>
<ul>
<li>BUG - Add <code>--pst-color-heading</code> fallback by <a
href="https://github.com/trallard"><code>@​trallard</code></a> in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2082">pydata/pydata-sphinx-theme#2082</a></li>
<li>[pre-commit.ci] pre-commit autoupdate hooks by <a
href="https://github.com/pre-commit-ci"><code>@​pre-commit-ci</code></a>[bot]
in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2091">pydata/pydata-sphinx-theme#2091</a></li>
<li>Add search-as-you-type (inline search results) feature by <a
href="https://github.com/kaycebasques"><code>@​kaycebasques</code></a>
in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2093">pydata/pydata-sphinx-theme#2093</a></li>
<li>update ReadTheDocs settings file by <a
href="https://github.com/drammock"><code>@​drammock</code></a> in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2083">pydata/pydata-sphinx-theme#2083</a></li>
<li>Strip whitespace from announcement file before processing. by <a
href="https://github.com/AAriam"><code>@​AAriam</code></a> in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2105">pydata/pydata-sphinx-theme#2105</a></li>
<li>Add support for versionremoved directive by <a
href="https://github.com/stevepiercy"><code>@​stevepiercy</code></a> in
<a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2087">pydata/pydata-sphinx-theme#2087</a></li>
<li>BUG - center search dialog on wide screens by <a
href="https://github.com/gabalafou"><code>@​gabalafou</code></a> in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2085">pydata/pydata-sphinx-theme#2085</a></li>
<li>Fix brand color example by <a
href="https://github.com/drammock"><code>@​drammock</code></a> in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2104">pydata/pydata-sphinx-theme#2104</a></li>
<li>FIX - Pin Astroid to fix Read the Docs by <a
href="https://github.com/gabalafou"><code>@​gabalafou</code></a> in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2126">pydata/pydata-sphinx-theme#2126</a></li>
<li>FIX - Remove broken Plotly example until fixed by <a
href="https://github.com/gabalafou"><code>@​gabalafou</code></a> in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2124">pydata/pydata-sphinx-theme#2124</a></li>
<li>FIX - const reassignment by <a
href="https://github.com/gabalafou"><code>@​gabalafou</code></a> in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2121">pydata/pydata-sphinx-theme#2121</a></li>
<li>DOC - clearer logo recommendation by <a
href="https://github.com/gabalafou"><code>@​gabalafou</code></a> in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2120">pydata/pydata-sphinx-theme#2120</a></li>
<li>[pre-commit.ci] pre-commit autoupdate hooks by <a
href="https://github.com/pre-commit-ci"><code>@​pre-commit-ci</code></a>[bot]
in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2118">pydata/pydata-sphinx-theme#2118</a></li>
<li>Upload Playwright trace if test fails by <a
href="https://github.com/gabalafou"><code>@​gabalafou</code></a> in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2122">pydata/pydata-sphinx-theme#2122</a></li>
<li>Highlight headings when the user navigates to them by <a
href="https://github.com/gabalafou"><code>@​gabalafou</code></a> in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2132">pydata/pydata-sphinx-theme#2132</a></li>
<li>fix missing paren in example code by <a
href="https://github.com/drammock"><code>@​drammock</code></a> in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2134">pydata/pydata-sphinx-theme#2134</a></li>
<li>Updates for file
src/pydata_sphinx_theme/locale/en/LC_MESSAGES/sphinx.po in de by <a
href="https://github.com/transifex-integration"><code>@​transifex-integration</code></a>[bot]
in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2136">pydata/pydata-sphinx-theme#2136</a></li>
<li>[MAINT] Bump version to 0.16.2dev0 by <a
href="https://github.com/peytondmurray"><code>@​peytondmurray</code></a>
in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2137">pydata/pydata-sphinx-theme#2137</a></li>
<li>MAINT - Update release instructions by <a
href="https://github.com/trallard"><code>@​trallard</code></a> in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2138">pydata/pydata-sphinx-theme#2138</a></li>
<li>[DOC] Create accessibility statement by <a
href="https://github.com/isabela-pf"><code>@​isabela-pf</code></a> in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2135">pydata/pydata-sphinx-theme#2135</a></li>
<li>Reposition the admonition title icon to the top of the paragraph in
m… by <a
href="https://github.com/stevepiercy"><code>@​stevepiercy</code></a> in
<a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2100">pydata/pydata-sphinx-theme#2100</a></li>
<li>cleanup UX inspiration page by <a
href="https://github.com/drammock"><code>@​drammock</code></a> in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2141">pydata/pydata-sphinx-theme#2141</a></li>
<li>MAINT - CI improvements (security and maintenance) by <a
href="https://github.com/trallard"><code>@​trallard</code></a> in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2077">pydata/pydata-sphinx-theme#2077</a></li>
<li>Fix error during linkcheck when trying to write pygments.css by <a
href="https://github.com/s-weigand"><code>@​s-weigand</code></a> in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2097">pydata/pydata-sphinx-theme#2097</a></li>
<li>[pre-commit.ci] pre-commit autoupdate hooks by <a
href="https://github.com/pre-commit-ci"><code>@​pre-commit-ci</code></a>[bot]
in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2143">pydata/pydata-sphinx-theme#2143</a></li>
<li>Bump readthedocs/actions from 1.2 to 1.5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2148">pydata/pydata-sphinx-theme#2148</a></li>
<li>Bump actions/setup-python from 5.3.0 to 5.4.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2147">pydata/pydata-sphinx-theme#2147</a></li>
<li>Bump hynek/build-and-inspect-python-package from 2.11.0 to 2.12.0 by
<a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2146">pydata/pydata-sphinx-theme#2146</a></li>
<li>Bump actions/upload-artifact from 4.6.0 to 4.6.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2144">pydata/pydata-sphinx-theme#2144</a></li>
<li>MAINT - Update actions/workflows SHAs by <a
href="https://github.com/trallard"><code>@​trallard</code></a> in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2151">pydata/pydata-sphinx-theme#2151</a></li>
<li>Do not add HTML mixin if not building html by <a
href="https://github.com/simonspa"><code>@​simonspa</code></a> in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2076">pydata/pydata-sphinx-theme#2076</a></li>
<li>FIX - Two small bug fixes to search-as-you-type by <a
href="https://github.com/gabalafou"><code>@​gabalafou</code></a> in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2111">pydata/pydata-sphinx-theme#2111</a></li>
<li>Use Playwright expect() for code block tab stop tests by <a
href="https://github.com/gabalafou"><code>@​gabalafou</code></a> in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2160">pydata/pydata-sphinx-theme#2160</a></li>
<li>Unique Playwright trace names to avoid collisions by <a
href="https://github.com/gabalafou"><code>@​gabalafou</code></a> in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2161">pydata/pydata-sphinx-theme#2161</a></li>
<li>BUG - Update release workflow permissions by <a
href="https://github.com/trallard"><code>@​trallard</code></a> in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2162">pydata/pydata-sphinx-theme#2162</a></li>
<li>BUG - Fix sphinx-design cards borders by <a
href="https://github.com/trallard"><code>@​trallard</code></a> in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2170">pydata/pydata-sphinx-theme#2170</a></li>
<li>MAINT - Ensure Playwright tests use test sites and are run in CI by
<a href="https://github.com/trallard"><code>@​trallard</code></a> in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2133">pydata/pydata-sphinx-theme#2133</a></li>
<li>Fix miscellaneous issues with CI by <a
href="https://github.com/trallard"><code>@​trallard</code></a> in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2169">pydata/pydata-sphinx-theme#2169</a></li>
<li>MAINT - Update actions SHA by <a
href="https://github.com/trallard"><code>@​trallard</code></a> in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2173">pydata/pydata-sphinx-theme#2173</a></li>
<li>MAINT - Workflows updates by <a
href="https://github.com/trallard"><code>@​trallard</code></a> in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2174">pydata/pydata-sphinx-theme#2174</a></li>
<li>Collapsible sidebar by <a
href="https://github.com/gabalafou"><code>@​gabalafou</code></a> in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2159">pydata/pydata-sphinx-theme#2159</a></li>
<li>Use a different CSS class to mark TOC levels as visible by <a
href="https://github.com/gabalafou"><code>@​gabalafou</code></a> in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2163">pydata/pydata-sphinx-theme#2163</a></li>
<li>[ENH] Implement new scrollspy by <a
href="https://github.com/peytondmurray"><code>@​peytondmurray</code></a>
in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2119">pydata/pydata-sphinx-theme#2119</a></li>
<li>Updates for file
src/pydata_sphinx_theme/locale/en/LC_MESSAGES/sphinx.po in ca by <a
href="https://github.com/transifex-integration"><code>@​transifex-integration</code></a>[bot]
in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2177">pydata/pydata-sphinx-theme#2177</a></li>
<li>[pre-commit.ci] pre-commit autoupdate hooks by <a
href="https://github.com/pre-commit-ci"><code>@​pre-commit-ci</code></a>[bot]
in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2186">pydata/pydata-sphinx-theme#2186</a></li>
<li>Bump scientific-python/upload-nightly-action from 0.6.1 to 0.6.2 by
<a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2181">pydata/pydata-sphinx-theme#2181</a></li>
<li>Bump actions/setup-python from 5.4.0 to 5.5.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2183">pydata/pydata-sphinx-theme#2183</a></li>
<li>Bump actions/download-artifact from 4.1.8 to 4.2.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2184">pydata/pydata-sphinx-theme#2184</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pydata/pydata-sphinx-theme/commit/cd00a86a87aba3903543c00c5ce5f009c436e0b1"><code>cd00a86</code></a>
bump: 0.16.2.dev0 -&gt; 0.17.0</li>
<li><a
href="https://github.com/pydata/pydata-sphinx-theme/commit/da72168a643714cc12c1f4939b37568960c93d33"><code>da72168</code></a>
typo in release.md</li>
<li><a
href="https://github.com/pydata/pydata-sphinx-theme/commit/15d17c9320341afadee54f107d0c8463f0112156"><code>15d17c9</code></a>
Bump lodash from 4.17.23 to 4.18.1 (<a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/issues/2339">#2339</a>)</li>
<li><a
href="https://github.com/pydata/pydata-sphinx-theme/commit/7acfe53f9b2734a6899a7e25869effeffab4974f"><code>7acfe53</code></a>
allow workflow dispatch</li>
<li><a
href="https://github.com/pydata/pydata-sphinx-theme/commit/794a957427e3df7afb87839c8bbfdeaabf52cecb"><code>794a957</code></a>
Bump action and limit Python for build, split release from
nightly-release (#...</li>
<li><a
href="https://github.com/pydata/pydata-sphinx-theme/commit/49b8b55ad6b0e77fab27d8909e21db17490568bf"><code>49b8b55</code></a>
Increase linkcheck timeout (<a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/issues/2336">#2336</a>)</li>
<li><a
href="https://github.com/pydata/pydata-sphinx-theme/commit/ef175335b09232acb6555419a3839e1d590ef341"><code>ef17533</code></a>
Bump action and limit Python for build (<a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/issues/2335">#2335</a>)</li>
<li><a
href="https://github.com/pydata/pydata-sphinx-theme/commit/526d122607271b9842a842bd17d98a1c2c11b11c"><code>526d122</code></a>
Unpin sphinx 9 (<a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/issues/2334">#2334</a>)</li>
<li><a
href="https://github.com/pydata/pydata-sphinx-theme/commit/83098ba319c488175b1ac4b1af4b73d4cf61bdfe"><code>83098ba</code></a>
Bump actions/checkout from 5.0.0 to 6.0.2 (<a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/issues/2323">#2323</a>)</li>
<li><a
href="https://github.com/pydata/pydata-sphinx-theme/commit/7c4193493f10cbb099eca8cae53807dbc3e7bc6e"><code>7c41934</code></a>
Bump actions/upload-artifact from 6.0.0 to 7.0.0 (<a
href="https://redirect.github.com/pydata/pydata-sphinx-theme/issues/2322">#2322</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/pydata/pydata-sphinx-theme/compare/v0.16.0...v0.17.0">compare
view</a></li>
</ul>
</details>
<br />

<details>
<summary>Most Recent Ignore Conditions Applied to This Pull
Request</summary>

| Dependency Name | Ignore Conditions |
| --- | --- |
| pydata-sphinx-theme | [>= 0.16.dev0, < 0.17] |
</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…fusion/wasmtest/datafusion-wasm-app (#21601)

Bumps
[follow-redirects](https://github.com/follow-redirects/follow-redirects)
from 1.15.6 to 1.16.0.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/follow-redirects/follow-redirects/commit/0c23a223067201c368035e82954c11eb2578a33b"><code>0c23a22</code></a>
Release version 1.16.0 of the npm package.</li>
<li><a
href="https://github.com/follow-redirects/follow-redirects/commit/844c4d302ac963d29bdb5dc1754ec7df3d70d7f9"><code>844c4d3</code></a>
Add sensitiveHeaders option.</li>
<li><a
href="https://github.com/follow-redirects/follow-redirects/commit/5e8b8d024e2c76f804a284258e585ecb49a575be"><code>5e8b8d0</code></a>
ci: add Node.js 24.x to the CI matrix</li>
<li><a
href="https://github.com/follow-redirects/follow-redirects/commit/7953e2255aa0b93602eed3804f3bc5e6923a03af"><code>7953e22</code></a>
ci: upgrade GitHub Actions to use setup-node@v6 and checkout@v6</li>
<li><a
href="https://github.com/follow-redirects/follow-redirects/commit/86dc1f86e4b56bcd642c78384d51f10f123aea75"><code>86dc1f8</code></a>
Sanitizing input.</li>
<li><a
href="https://github.com/follow-redirects/follow-redirects/commit/21ef28a544c5e57f4c34b8476d75f2144609a1eb"><code>21ef28a</code></a>
Release version 1.15.11 of the npm package.</li>
<li><a
href="https://github.com/follow-redirects/follow-redirects/commit/7c88135da3bd0681a7e156ee66b16b2f6f98b480"><code>7c88135</code></a>
Roll back tree shaking.</li>
<li><a
href="https://github.com/follow-redirects/follow-redirects/commit/6e389ba094beec211a8847788a146917a16c1bdb"><code>6e389ba</code></a>
Release version 1.15.10 of the npm package.</li>
<li><a
href="https://github.com/follow-redirects/follow-redirects/commit/5bc496e0229abda823221e0c6267926a3f93f262"><code>5bc496e</code></a>
Shake me up before you go-go.</li>
<li><a
href="https://github.com/follow-redirects/follow-redirects/commit/694d6b47a42bc8377e5ef1480394de451e16bd5b"><code>694d6b4</code></a>
Bump minimist from 1.2.5 to 1.2.8</li>
<li>Additional commits viewable in <a
href="https://github.com/follow-redirects/follow-redirects/compare/v1.15.6...v1.16.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=follow-redirects&package-manager=npm_and_yarn&previous-version=1.15.6&new-version=1.16.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/apache/datafusion/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
@pull pull bot locked and limited conversation to collaborators Apr 15, 2026
@pull pull bot added the ⤵️ pull label Apr 15, 2026
@pull pull bot merged commit dc973cc into buraksenn:main Apr 15, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants