Repository navigation
Commit adbb3ce
Prune hash join probe side via a build-side key range bitmap
Map the build side's keys onto a fixed-size bitmap over their range and
test container min/max against it, so a scan can skip containers whose
values fall in the gaps between keys.
The bitmap is bounded at 128 KiB regardless of build side size, and one
whose buckets are all set is discarded, so a contiguous key set costs
nothing. The key range and distinct count already exist for the bounds
predicate, so a dense key set is ruled out before allocating.
Integer keys only; other types go unpruned.
Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>1 parent 714956b commit adbb3ce
10 files changed
Lines changed: 673 additions & 41 deletions
File tree
- datafusion
- physical-plan/src/joins
- hash_join
- proto/tests/cases/plans
- pruning/src
- sqllogictest/test_files
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
| 43 | + | |
43 | 44 | | |
44 | 45 | | |
45 | 46 | | |
| |||
3094 | 3095 | | |
3095 | 3096 | | |
3096 | 3097 | | |
3097 | | - | |
3098 | | - | |
3099 | | - | |
3100 | | - | |
3101 | | - | |
| 3098 | + | |
| 3099 | + | |
| 3100 | + | |
| 3101 | + | |
| 3102 | + | |
| 3103 | + | |
3102 | 3104 | | |
3103 | | - | |
| 3105 | + | |
| 3106 | + | |
| 3107 | + | |
| 3108 | + | |
3104 | 3109 | | |
3105 | | - | |
3106 | | - | |
3107 | 3110 | | |
3108 | 3111 | | |
3109 | | - | |
| 3112 | + | |
| 3113 | + | |
| 3114 | + | |
| 3115 | + | |
| 3116 | + | |
| 3117 | + | |
| 3118 | + | |
| 3119 | + | |
| 3120 | + | |
| 3121 | + | |
| 3122 | + | |
| 3123 | + | |
| 3124 | + | |
| 3125 | + | |
| 3126 | + | |
| 3127 | + | |
| 3128 | + | |
| 3129 | + | |
| 3130 | + | |
| 3131 | + | |
| 3132 | + | |
3110 | 3133 | | |
3111 | 3134 | | |
3112 | 3135 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
| 37 | + | |
37 | 38 | | |
38 | 39 | | |
39 | 40 | | |
| |||
284 | 285 | | |
285 | 286 | | |
286 | 287 | | |
| 288 | + | |
| 289 | + | |
287 | 290 | | |
288 | 291 | | |
289 | 292 | | |
| |||
293 | 296 | | |
294 | 297 | | |
295 | 298 | | |
| 299 | + | |
296 | 300 | | |
297 | 301 | | |
298 | 302 | | |
| |||
303 | 307 | | |
304 | 308 | | |
305 | 309 | | |
| 310 | + | |
306 | 311 | | |
307 | 312 | | |
308 | 313 | | |
309 | 314 | | |
310 | 315 | | |
311 | 316 | | |
| 317 | + | |
312 | 318 | | |
313 | 319 | | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
314 | 325 | | |
315 | 326 | | |
316 | 327 | | |
| |||
374 | 385 | | |
375 | 386 | | |
376 | 387 | | |
377 | | - | |
378 | | - | |
379 | | - | |
380 | | - | |
381 | | - | |
382 | | - | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
383 | 395 | | |
384 | 396 | | |
385 | 397 | | |
| |||
425 | 437 | | |
426 | 438 | | |
427 | 439 | | |
| 440 | + | |
428 | 441 | | |
429 | 442 | | |
430 | 443 | | |
| |||
471 | 484 | | |
472 | 485 | | |
473 | 486 | | |
| 487 | + | |
474 | 488 | | |
475 | 489 | | |
476 | 490 | | |
| |||
481 | 495 | | |
482 | 496 | | |
483 | 497 | | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
484 | 528 | | |
485 | 529 | | |
486 | 530 | | |
| |||
759 | 803 | | |
760 | 804 | | |
761 | 805 | | |
| 806 | + | |
762 | 807 | | |
763 | 808 | | |
764 | 809 | | |
765 | 810 | | |
766 | 811 | | |
767 | 812 | | |
768 | 813 | | |
| 814 | + | |
769 | 815 | | |
770 | 816 | | |
771 | 817 | | |
| |||
784 | 830 | | |
785 | 831 | | |
786 | 832 | | |
| 833 | + | |
787 | 834 | | |
788 | 835 | | |
789 | 836 | | |
790 | 837 | | |
791 | 838 | | |
792 | 839 | | |
793 | 840 | | |
| 841 | + | |
794 | 842 | | |
795 | 843 | | |
796 | 844 | | |
| |||
807 | 855 | | |
808 | 856 | | |
809 | 857 | | |
| 858 | + | |
810 | 859 | | |
811 | 860 | | |
812 | 861 | | |
813 | 862 | | |
814 | 863 | | |
815 | 864 | | |
816 | 865 | | |
| 866 | + | |
817 | 867 | | |
818 | 868 | | |
819 | 869 | | |
| |||
833 | 883 | | |
834 | 884 | | |
835 | 885 | | |
| 886 | + | |
836 | 887 | | |
837 | 888 | | |
838 | 889 | | |
839 | 890 | | |
840 | 891 | | |
841 | 892 | | |
842 | 893 | | |
| 894 | + | |
843 | 895 | | |
844 | 896 | | |
845 | 897 | | |
| |||
857 | 909 | | |
858 | 910 | | |
859 | 911 | | |
| 912 | + | |
860 | 913 | | |
861 | 914 | | |
862 | 915 | | |
863 | 916 | | |
864 | 917 | | |
865 | 918 | | |
866 | 919 | | |
| 920 | + | |
867 | 921 | | |
868 | 922 | | |
869 | 923 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| 34 | + | |
34 | 35 | | |
35 | 36 | | |
36 | 37 | | |
| |||
136 | 137 | | |
137 | 138 | | |
138 | 139 | | |
139 | | - | |
140 | | - | |
141 | | - | |
142 | | - | |
143 | | - | |
144 | | - | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
145 | 149 | | |
146 | 150 | | |
147 | 151 | | |
| |||
277 | 281 | | |
278 | 282 | | |
279 | 283 | | |
280 | | - | |
281 | | - | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
282 | 287 | | |
283 | 288 | | |
284 | 289 | | |
| |||
0 commit comments