Skip to content

perf: Optimize range partitioning across multi-key and asymmetric joins - #6342

Merged
stuhood merged 7 commits into
mainfrom
stuhood.range-fixes
Sep 19, 2026
Merged

stuhood merged 7 commits into
mainfrom
stuhood.range-fixes

Conversation

@stuhood

@stuhood stuhood commented Sep 15, 2026 •

Copy link
Copy Markdown
Collaborator

What

Coordinates range partitioning across MPP joins, prioritizing large relations and multi-key bridge tables, enables 1-sided asymmetric range adaptation, and incorporates upstream DataFusion improvements.

Why

How

  • RangePartitioningRule: Ranks candidate join edges globally by data volume (min(left_rows, right_rows)). Stamps asymmetric anchors only when strictly larger than their partner or when the partner is already committed to another key.
  • RangeCoPartitionedJoinRule: Placed before EnsureRequirements to flip CollectLeft back to Partitioned for range co-partitioned inputs and peel unnecessary repartition nodes.
  • Session config: Disabled optimizer.enable_round_robin_repartition in planner and worker sessions.

Tests

  • Added pg_search/tests/pg_regress/sql/mpp_range_partitioning.sql exercising 2-table co-partitioning, multi-key bridge joins, aggregations, and asymmetric joins.
  • Benchmarks show up to 70% improvement on some range partitioned joins.

@stuhood stuhood added Do Not Cherry Pick PR should not be cherry-picked to other branches benchmark-stackoverflow Add this label to a PR to run the StackOverflow benchmark. Automatically removed. labels Sep 15, 2026
@github-actions github-actions Bot removed the benchmark-stackoverflow Add this label to a PR to run the StackOverflow benchmark. Automatically removed. label Sep 15, 2026

@github-actions github-actions Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pg_search 'stackoverflow (bm25)' (100k rows)

Details
Benchmark suite Current: c573b54 Previous: 4a5c755 Ratio
stackoverflow_posts_idx build time 0.018230676233333333 min 0.017996317683333332 min 1.01
stackoverflow_posts_idx index size 91 MB 91 MB 1
badges_idx build time 0.08307807128333335 min 0.08300460861666667 min 1.00
badges_idx index size 250 MB 249 MB 1.00
comments_idx build time 0.007302803516666666 min 0.007224093716666667 min 1.01
comments_idx index size 37 MB 37 MB 1
users_idx build time 0.004238789816666667 min 0.004229809683333334 min 1.00
users_idx index size 19 MB 19 MB 1
aggregate_topk_count 32.8085006 mean ms (±0.053 ms) 32.7371741 mean ms (±0.055 ms) 1.00
aggregate_topk_count - alternative 1 21.8788358 mean ms (±0.064 ms) 21.9315784 mean ms (±0.027 ms) 1.00
bucket-expr-filter 4.3807096 mean ms (±0.013 ms) 4.518117500000001 mean ms (±0.026 ms) 0.97
bucket-expr-filter - alternative 1 4.4618768 mean ms (±0.038 ms) 4.600910900000001 mean ms (±0.015 ms) 0.97
bucket-numeric-filter 3.2267686000000007 mean ms (±0.016 ms) 3.3453069999999996 mean ms (±0.019 ms) 0.96
bucket-numeric-filter - alternative 1 7.4268602999999995 mean ms (±0.116 ms) 7.445074199999999 mean ms (±0.084 ms) 1.00
bucket-numeric-filter - alternative 2 7.5020421 mean ms (±0.061 ms) 7.5213342 mean ms (±0.054 ms) 1.00
bucket-numeric-filter - alternative 3 7.3805669 mean ms (±0.048 ms) 7.497744300000001 mean ms (±0.040 ms) 0.98
bucket-numeric-nofilter 14.799789700000002 mean ms (±0.046 ms) 14.736449000000002 mean ms (±0.048 ms) 1.00
bucket-numeric-nofilter - alternative 1 6.9451891 mean ms (±0.074 ms) 7.036254700000001 mean ms (±0.079 ms) 0.99
bucket-numeric-nofilter - alternative 2 7.286337800000001 mean ms (±0.090 ms) 7.3515125999999995 mean ms (±0.073 ms) 0.99
bucket-numeric-nofilter - alternative 3 7.0624647 mean ms (±0.095 ms) 7.1102704 mean ms (±0.105 ms) 0.99
bucket-string-filter 78.4901657 mean ms (±0.162 ms) 77.98853499999998 mean ms (±0.393 ms) 1.01
bucket-string-filter - alternative 1 13.3448205 mean ms (±0.070 ms) 13.3361613 mean ms (±0.067 ms) 1.00
bucket-string-filter - alternative 2 15.929091399999999 mean ms (±0.058 ms) 15.8576758 mean ms (±0.027 ms) 1.00
bucket-string-filter - alternative 3 11.637903699999999 mean ms (±0.096 ms) 11.728643200000002 mean ms (±0.052 ms) 0.99
bucket-string-nofilter 180.1100734 mean ms (±0.321 ms) 184.19156610000002 mean ms (±0.445 ms) 0.98
bucket-string-nofilter - alternative 1 42.4458855 mean ms (±0.081 ms) 42.0312465 mean ms (±0.078 ms) 1.01
bucket-string-nofilter - alternative 2 69.0245686 mean ms (±0.546 ms) 68.92100459999999 mean ms (±0.121 ms) 1.00
bucket-string-nofilter - alternative 3 67.9496687 mean ms (±0.239 ms) 66.69934239999999 mean ms (±0.058 ms) 1.02
cardinality 3.3942285000000005 mean ms (±0.221 ms) 3.2241738 mean ms (±0.117 ms) 1.05
cardinality - alternative 1 3.4253309 mean ms (±0.253 ms) 3.3221989 mean ms (±0.033 ms) 1.03
cardinality - alternative 2 7.4448678 mean ms (±0.079 ms) 7.518910199999999 mean ms (±0.048 ms) 0.99
cardinality - alternative 3 7.480012100000001 mean ms (±0.060 ms) 7.356114700000001 mean ms (±0.058 ms) 1.02
cardinality - alternative 4 7.2609138 mean ms (±0.039 ms) 7.4523019 mean ms (±0.078 ms) 0.97
cardinality - alternative 5 7.848817600000001 mean ms (±0.019 ms) 7.8971931 mean ms (±0.017 ms) 0.99
cardinality - alternative 6 13.9758851 mean ms (±0.060 ms) 14.2332313 mean ms (±0.040 ms) 0.98
cardinality - alternative 7 33.0121735 mean ms (±0.164 ms) 34.320024000000004 mean ms (±0.222 ms) 0.96
cardinality - alternative 8 7.8416501 mean ms (±0.078 ms) 7.860877599999999 mean ms (±0.047 ms) 1.00
cardinality - alternative 9 7.7348044 mean ms (±0.044 ms) 7.795840200000001 mean ms (±0.055 ms) 0.99
count-filter 2.9590126 mean ms (±0.018 ms) 2.9853457 mean ms (±0.023 ms) 0.99
count-filter - alternative 1 7.3202902000000005 mean ms (±0.057 ms) 7.366059000000002 mean ms (±0.070 ms) 0.99
count-filter - alternative 2 7.372130600000001 mean ms (±0.089 ms) 7.4187058 mean ms (±0.103 ms) 0.99
count-filter - alternative 3 2.1171045000000004 mean ms (±0.010 ms) 2.1567494 mean ms (±0.009 ms) 0.98
count-nofilter 6.3328159 mean ms (±0.067 ms) 6.2716301 mean ms (±0.062 ms) 1.01
count-nofilter - alternative 1 6.434376499999999 mean ms (±0.250 ms) 6.3087439000000005 mean ms (±0.060 ms) 1.02
count-nofilter - alternative 2 6.339448299999999 mean ms (±0.047 ms) 6.3565567000000005 mean ms (±0.059 ms) 1.00
count-nofilter - alternative 3 0.5763270000000001 mean ms (±0.006 ms) 0.5755303 mean ms (±0.008 ms) 1.00
filtered-highcard 3.0894544 mean ms (±0.022 ms) 3.1224385 mean ms (±0.015 ms) 0.99
filtered-lowcard 3.1158405 mean ms (±0.018 ms) 3.1570608000000004 mean ms (±0.027 ms) 0.99
highlighting 3.9350343000000008 mean ms (±0.017 ms) 3.9700286999999994 mean ms (±0.014 ms) 0.99
join_aggregate_count 21.4674577 mean ms (±0.055 ms) 21.822885 mean ms (±0.047 ms) 0.98
join_aggregate_count - alternative 1 15.434596099999998 mean ms (±0.043 ms) 15.633073300000001 mean ms (±0.033 ms) 0.99
join_aggregate_count - alternative 2 15.360291799999999 mean ms (±0.052 ms) 16.812032000000002 mean ms (±0.019 ms) 0.91
join_aggregate_date_histogram 42.5777691 mean ms (±0.115 ms) 42.6735972 mean ms (±0.119 ms) 1.00
join_aggregate_date_histogram - alternative 1 42.834565299999994 mean ms (±0.056 ms) 42.98838640000001 mean ms (±0.051 ms) 1.00
join_aggregate_date_histogram - alternative 2 42.63552120000001 mean ms (±0.100 ms) 42.97832819999999 mean ms (±0.120 ms) 0.99
join_aggregate_disjunctive_count 530.9013625 mean ms (±0.447 ms) 541.1531476 mean ms (±0.624 ms) 0.98
join_aggregate_disjunctive_count - alternative 1 31.366117100000004 mean ms (±0.336 ms) 32.1310417 mean ms (±0.062 ms) 0.98
join_aggregate_disjunctive_count - alternative 2 31.496333800000002 mean ms (±0.121 ms) 34.6007522 mean ms (±0.137 ms) 0.91
join_aggregate_groupby 24.466309799999998 mean ms (±0.052 ms) 24.6695042 mean ms (±0.110 ms) 0.99
join_aggregate_groupby - alternative 1 18.316254200000003 mean ms (±0.034 ms) 18.6298544 mean ms (±0.047 ms) 0.98
join_aggregate_groupby - alternative 2 18.4830469 mean ms (±0.249 ms) 19.813290099999996 mean ms (±0.041 ms) 0.93
join_aggregate_multi 22.258736300000002 mean ms (±0.083 ms) 22.472356499999997 mean ms (±0.083 ms) 0.99
join_aggregate_multi - alternative 1 16.7382925 mean ms (±0.041 ms) 16.960998699999998 mean ms (±0.049 ms) 0.99
join_aggregate_multi - alternative 2 16.635711 mean ms (±0.040 ms) 18.2697802 mean ms (±0.032 ms) 0.91
join_aggregate_sort 59.932849 mean ms (±0.103 ms) 61.368149100000004 mean ms (±0.092 ms) 0.98
join_aggregate_sort - alternative 1 37.559225600000005 mean ms (±0.082 ms) 38.16300570000001 mean ms (±0.036 ms) 0.98
join_aggregate_sort - alternative 2 37.363503 mean ms (±0.050 ms) 40.5976583 mean ms (±0.051 ms) 0.92
join_aggregate_topk_count 335.72058419999996 mean ms (±2.344 ms) 341.6623132 mean ms (±2.781 ms) 0.98
join_aggregate_topk_count - alternative 1 108.41669670000002 mean ms (±1.635 ms) 202.4199795 mean ms (±87.178 ms) 0.54
join_aggregate_topk_count - alternative 2 118.05069369999998 mean ms (±23.557 ms) 205.6209096 mean ms (±88.812 ms) 0.57
join_aggregate_window_facet 100.24856100000001 mean ms (±0.114 ms) 100.31437120000001 mean ms (±0.076 ms) 1.00
join_aggregate_window_facet - alternative 1 100.46589370000001 mean ms (±0.052 ms) 100.5253726 mean ms (±0.105 ms) 1.00
join_aggregate_window_facet - alternative 2 100.4653237 mean ms (±0.146 ms) 101.07705519999999 mean ms (±0.112 ms) 0.99
join_conjunctive_score_sort 16.325080200000002 mean ms (±0.040 ms) 16.2108318 mean ms (±0.037 ms) 1.01
join_conjunctive_score_sort - alternative 1 16.407139400000002 mean ms (±0.047 ms) 16.2166465 mean ms (±0.047 ms) 1.01
join_conjunctive_score_sort - alternative 2 16.3592888 mean ms (±0.030 ms) 20.3417968 mean ms (±0.039 ms) 0.80
join_disjunctive_local_sort 443.31936299999995 mean ms (±0.546 ms) 446.18672150000003 mean ms (±0.591 ms) 0.99
join_disjunctive_local_sort - alternative 1 29.5150882 mean ms (±0.061 ms) 29.645719800000002 mean ms (±0.062 ms) 1.00
join_disjunctive_local_sort - alternative 2 30.7630985 mean ms (±0.660 ms) 35.7479226 mean ms (±0.226 ms) 0.86
join_disjunctive_score_sort 33.732409800000006 mean ms (±0.688 ms) 32.9873443 mean ms (±0.050 ms) 1.02
join_disjunctive_score_sort - alternative 1 32.633098700000005 mean ms (±0.053 ms) 33.5918919 mean ms (±0.585 ms) 0.97
join_disjunctive_score_sort - alternative 2 32.6435175 mean ms (±0.056 ms) 41.002531 mean ms (±0.430 ms) 0.80
join_distinct_parent_sort 65.6041831 mean ms (±0.119 ms) 66.4369848 mean ms (±0.072 ms) 0.99
join_distinct_parent_sort - alternative 1 70.2240873 mean ms (±0.075 ms) 70.7362189 mean ms (±0.084 ms) 0.99
join_distinct_parent_sort - alternative 2 70.1960493 mean ms (±0.077 ms) 74.7754194 mean ms (±0.123 ms) 0.94
join_foreign_filter_local_sort 19.5848138 mean ms (±0.120 ms) 19.8590136 mean ms (±0.124 ms) 0.99
join_foreign_filter_local_sort - alternative 1 9.079477699999998 mean ms (±0.025 ms) 8.9657646 mean ms (±0.042 ms) 1.01
join_foreign_filter_local_sort - alternative 2 9.037454 mean ms (±0.030 ms) 10.9811139 mean ms (±0.025 ms) 0.82
join_permissioned_search 21.2967894 mean ms (±0.126 ms) 21.724330000000002 mean ms (±0.100 ms) 0.98
join_permissioned_search - alternative 1 16.3394749 mean ms (±0.023 ms) 16.240582399999997 mean ms (±0.189 ms) 1.01
join_permissioned_search - alternative 2 16.232913 mean ms (±0.175 ms) 18.249287900000002 mean ms (±0.046 ms) 0.89
join_semi_filter 11.1277902 mean ms (±0.098 ms) 11.1501366 mean ms (±0.028 ms) 1.00
join_semi_filter - alternative 1 12.2015244 mean ms (±0.055 ms) 11.9158681 mean ms (±0.036 ms) 1.02
join_semi_filter - alternative 2 12.1782612 mean ms (±0.046 ms) 14.5694266 mean ms (±0.039 ms) 0.84
join_semi_filter - alternative 3 12.634392299999998 mean ms (±0.061 ms) 12.667959300000001 mean ms (±0.072 ms) 1.00
join_top_k-score-desc-high-selectivity 22.532514399999997 mean ms (±0.112 ms) 22.9857793 mean ms (±0.117 ms) 0.98
join_top_k-score-desc-high-selectivity - alternative 1 13.024794599999998 mean ms (±0.027 ms) 12.985913900000003 mean ms (±0.009 ms) 1.00
join_top_k-score-desc-high-selectivity - alternative 2 13.0459109 mean ms (±0.022 ms) 15.8540916 mean ms (±0.021 ms) 0.82
paging-string-max 7.231325000000001 mean ms (±0.127 ms) 7.203415 mean ms (±0.102 ms) 1.00
paging-string-median 7.1265816 mean ms (±0.060 ms) 7.181971200000001 mean ms (±0.055 ms) 0.99
paging-string-min 7.1341939 mean ms (±0.092 ms) 7.196726600000001 mean ms (±0.077 ms) 0.99
regex-and-heap 20.3232092 mean ms (±0.112 ms) 20.1198243 mean ms (±0.037 ms) 1.01
sum-int-filter 4.710827799999999 mean ms (±0.317 ms) 4.9243261 mean ms (±0.316 ms) 0.96
sum-int-filter - alternative 1 7.489295000000001 mean ms (±0.067 ms) 7.495469700000001 mean ms (±0.055 ms) 1.00
sum-numeric15-filter 7.6896232 mean ms (±0.022 ms) 7.7903756 mean ms (±0.021 ms) 0.99
sum-numeric15-filter - alternative 1 4.6970236 mean ms (±0.029 ms) 4.7812871999999995 mean ms (±0.181 ms) 0.98
sum-numeric78-filter 13.6319254 mean ms (±0.064 ms) 13.500883199999999 mean ms (±0.029 ms) 1.01
sum-numeric78-filter - alternative 1 7.7523399 mean ms (±0.017 ms) 8.005379600000001 mean ms (±0.029 ms) 0.97
top_k-agg-avg 2.9474626 mean ms (±0.008 ms) 3.0008915000000003 mean ms (±0.033 ms) 0.98
top_k-agg-bucket-string 2.9195921 mean ms (±0.014 ms) 2.9529297 mean ms (±0.013 ms) 0.99
top_k-agg-count 2.9064103 mean ms (±0.020 ms) 2.9471907999999996 mean ms (±0.024 ms) 0.99
top_k-compound 3.1969197000000005 mean ms (±0.012 ms) 3.2370266 mean ms (±0.009 ms) 0.99
top_k-numeric-highcard 3.0302549 mean ms (±0.019 ms) 3.0681724000000004 mean ms (±0.014 ms) 0.99
top_k-numeric-lowcard 3.0196951 mean ms (±0.011 ms) 3.0605692 mean ms (±0.025 ms) 0.99
top_k-score-asc-high-selectivity 3.480335 mean ms (±0.028 ms) 3.4937011 mean ms (±0.041 ms) 1.00
top_k-score-asc-high-selectivity - alternative 1 3.4987924999999995 mean ms (±0.023 ms) 3.4776295 mean ms (±0.015 ms) 1.01
top_k-score-asc-medium-selectivity 3.346818999999999 mean ms (±0.011 ms) 3.3863494000000003 mean ms (±0.010 ms) 0.99
top_k-score-asc-medium-selectivity - alternative 1 3.3362879 mean ms (±0.012 ms) 3.3606112 mean ms (±0.011 ms) 0.99
top_k-score-asc 3.1727701 mean ms (±0.012 ms) 3.1999637 mean ms (±0.010 ms) 0.99
top_k-score-asc - alternative 1 3.1392738000000002 mean ms (±0.017 ms) 3.1897506 mean ms (±0.015 ms) 0.98
top_k-score-desc-high-selectivity 3.0014849000000003 mean ms (±0.010 ms) 3.0527599000000003 mean ms (±0.011 ms) 0.98
top_k-score-desc-high-selectivity - alternative 1 2.9955030999999996 mean ms (±0.010 ms) 3.0468170999999997 mean ms (±0.014 ms) 0.98
top_k-score-desc-medium-selectivity 2.9024091 mean ms (±0.011 ms) 2.9039895 mean ms (±0.013 ms) 1.00
top_k-score-desc-medium-selectivity - alternative 1 2.8957878 mean ms (±0.011 ms) 2.8874558 mean ms (±0.010 ms) 1.00
top_k-score-desc-tiebreaker 3.2883796 mean ms (±0.014 ms) 3.2948414 mean ms (±0.009 ms) 1.00
top_k-score-desc-tiebreaker - alternative 1 3.2888286 mean ms (±0.012 ms) 3.2913859000000003 mean ms (±0.013 ms) 1.00
top_k-score-desc 2.8561468999999997 mean ms (±0.013 ms) 2.8909018 mean ms (±0.014 ms) 0.99
top_k-score-desc - alternative 1 2.8515412 mean ms (±0.012 ms) 2.8651188 mean ms (±0.008 ms) 1.00
top_k-score-multi-term-asc 9.2463996 mean ms (±0.010 ms) 9.2958003 mean ms (±0.015 ms) 0.99
top_k-score-multi-term-asc - alternative 1 9.249543399999997 mean ms (±0.014 ms) 9.2456403 mean ms (±0.026 ms) 1.00
top_k-score-multi-term-desc 8.9299047 mean ms (±0.018 ms) 8.9404572 mean ms (±0.012 ms) 1.00
top_k-score-multi-term-desc - alternative 1 8.930781200000002 mean ms (±0.012 ms) 8.946182099999998 mean ms (±0.020 ms) 1.00
top_k-string 3.0644716 mean ms (±0.019 ms) 3.0609091999999998 mean ms (±0.018 ms) 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions github-actions Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pg_search 'stackoverflow (bm25)' (1m rows)

Details
Benchmark suite Current: c573b54 Previous: 4a5c755 Ratio
stackoverflow_posts_idx build time 0.16863369883333332 min 0.16731718001666665 min 1.01
stackoverflow_posts_idx index size 805 MB 805 MB 1
badges_idx build time 0.22034028351666668 min 0.21783284308333334 min 1.01
badges_idx index size 548 MB 548 MB 1
comments_idx build time 0.0608889346 min 0.060582696283333334 min 1.01
comments_idx index size 279 MB 279 MB 1
users_idx build time 0.014048521783333334 min 0.014266724216666667 min 0.98
users_idx index size 49 MB 49 MB 1
aggregate_topk_count 271.2485069 mean ms (±2.370 ms) 274.54330079999994 mean ms (±2.873 ms) 0.99
aggregate_topk_count - alternative 1 68.36918510000001 mean ms (±0.335 ms) 65.45452519999999 mean ms (±0.784 ms) 1.04
bucket-expr-filter 26.384073100000002 mean ms (±0.179 ms) 25.8685026 mean ms (±0.146 ms) 1.02
bucket-expr-filter - alternative 1 26.399568799999997 mean ms (±0.183 ms) 26.118489899999997 mean ms (±0.112 ms) 1.01
bucket-numeric-filter 9.4628941 mean ms (±0.035 ms) 9.539823 mean ms (±0.045 ms) 0.99
bucket-numeric-filter - alternative 1 7.6105171 mean ms (±0.063 ms) 7.681620499999999 mean ms (±0.068 ms) 0.99
bucket-numeric-filter - alternative 2 7.8841623 mean ms (±0.048 ms) 7.873989999999999 mean ms (±0.096 ms) 1.00
bucket-numeric-filter - alternative 3 7.6824438 mean ms (±0.054 ms) 7.610064599999999 mean ms (±0.087 ms) 1.01
bucket-numeric-nofilter 42.737068799999996 mean ms (±0.053 ms) 42.4311517 mean ms (±0.045 ms) 1.01
bucket-numeric-nofilter - alternative 1 9.7072901 mean ms (±0.045 ms) 9.7830081 mean ms (±0.081 ms) 0.99
bucket-numeric-nofilter - alternative 2 11.103444399999999 mean ms (±0.086 ms) 10.9451662 mean ms (±0.069 ms) 1.01
bucket-numeric-nofilter - alternative 3 8.7506102 mean ms (±0.061 ms) 8.6841471 mean ms (±0.081 ms) 1.01
bucket-string-filter 194.3191577 mean ms (±0.353 ms) 190.1574404 mean ms (±0.172 ms) 1.02
bucket-string-filter - alternative 1 23.252162199999997 mean ms (±0.071 ms) 23.1409615 mean ms (±0.054 ms) 1.00
bucket-string-filter - alternative 2 29.715676299999995 mean ms (±0.048 ms) 29.511589800000003 mean ms (±0.058 ms) 1.01
bucket-string-filter - alternative 3 18.299165000000002 mean ms (±0.045 ms) 18.2996532 mean ms (±0.064 ms) 1.00
bucket-string-nofilter 455.33440520000005 mean ms (±1.764 ms) 436.56313600000004 mean ms (±1.447 ms) 1.04
bucket-string-nofilter - alternative 1 71.4272856 mean ms (±0.081 ms) 70.40387770000001 mean ms (±0.144 ms) 1.01
bucket-string-nofilter - alternative 2 111.8019746 mean ms (±0.155 ms) 110.7363402 mean ms (±0.122 ms) 1.01
bucket-string-nofilter - alternative 3 97.07794090000002 mean ms (±0.916 ms) 95.9642623 mean ms (±0.233 ms) 1.01
cardinality 8.589525599999998 mean ms (±0.015 ms) 8.669181300000002 mean ms (±0.046 ms) 0.99
cardinality - alternative 1 9.313461100000001 mean ms (±0.183 ms) 9.2101277 mean ms (±0.026 ms) 1.01
cardinality - alternative 2 7.618463700000001 mean ms (±0.057 ms) 7.6131221 mean ms (±0.114 ms) 1.00
cardinality - alternative 3 7.7710943000000015 mean ms (±0.107 ms) 7.5633766 mean ms (±0.093 ms) 1.03
cardinality - alternative 4 7.4594821 mean ms (±0.075 ms) 7.4216584 mean ms (±0.070 ms) 1.01
cardinality - alternative 5 34.644339800000004 mean ms (±0.097 ms) 34.862990499999995 mean ms (±0.037 ms) 0.99
cardinality - alternative 6 176.5938825 mean ms (±1.059 ms) 175.72920249999999 mean ms (±1.253 ms) 1.00
cardinality - alternative 7 389.46301129999995 mean ms (±2.014 ms) 357.2707388 mean ms (±4.225 ms) 1.09
cardinality - alternative 8 9.902428 mean ms (±0.073 ms) 9.887984800000002 mean ms (±0.083 ms) 1.00
cardinality - alternative 9 9.667676799999999 mean ms (±0.104 ms) 9.531093600000002 mean ms (±0.077 ms) 1.01
count-filter 9.2013233 mean ms (±0.016 ms) 9.2585666 mean ms (±0.022 ms) 0.99
count-filter - alternative 1 7.797511900000001 mean ms (±0.066 ms) 8.089104 mean ms (±0.634 ms) 0.96
count-filter - alternative 2 7.8036496 mean ms (±0.062 ms) 7.8085182999999985 mean ms (±0.094 ms) 1.00
count-filter - alternative 3 2.1566056 mean ms (±0.010 ms) 2.1572795 mean ms (±0.013 ms) 1.00
count-nofilter 12.5277195 mean ms (±0.057 ms) 12.4877402 mean ms (±0.077 ms) 1.00
count-nofilter - alternative 1 8.9736777 mean ms (±0.113 ms) 8.784440100000001 mean ms (±0.052 ms) 1.02
count-nofilter - alternative 2 8.8858852 mean ms (±0.035 ms) 8.901136900000001 mean ms (±0.059 ms) 1.00
count-nofilter - alternative 3 0.5564307000000001 mean ms (±0.007 ms) 0.5545602000000001 mean ms (±0.007 ms) 1.00
filtered-highcard 3.3956702 mean ms (±0.015 ms) 3.4156491000000004 mean ms (±0.016 ms) 0.99
filtered-lowcard 3.3391372000000006 mean ms (±0.013 ms) 3.3471788000000005 mean ms (±0.022 ms) 1.00
highlighting 4.3895666 mean ms (±0.021 ms) 4.383555200000001 mean ms (±0.014 ms) 1.00
join_aggregate_count 134.41295580000002 mean ms (±0.410 ms) 134.8667543 mean ms (±0.423 ms) 1.00
join_aggregate_count - alternative 1 59.2141635 mean ms (±0.248 ms) 57.47709679999999 mean ms (±0.851 ms) 1.03
join_aggregate_count - alternative 2 64.74406189999999 mean ms (±0.069 ms) 62.505883499999996 mean ms (±0.091 ms) 1.04
join_aggregate_date_histogram 324.1044756 mean ms (±0.924 ms) 322.3392538 mean ms (±0.339 ms) 1.01
join_aggregate_date_histogram - alternative 1 323.1593391 mean ms (±1.320 ms) 322.3464726 mean ms (±1.423 ms) 1.00
join_aggregate_date_histogram - alternative 2 322.5034833 mean ms (±0.469 ms) 320.83978829999995 mean ms (±0.528 ms) 1.01
join_aggregate_disjunctive_count 5175.905337800001 mean ms (±7.128 ms) 5157.3075177 mean ms (±3.747 ms) 1.00
join_aggregate_disjunctive_count - alternative 1 95.8611015 mean ms (±0.802 ms) 91.4615636 mean ms (±0.784 ms) 1.05
join_aggregate_disjunctive_count - alternative 2 110.25291699999998 mean ms (±0.332 ms) 122.1808669 mean ms (±0.495 ms) 0.90
join_aggregate_groupby 155.97284919999998 mean ms (±0.278 ms) 155.3019949 mean ms (±0.660 ms) 1.00
join_aggregate_groupby - alternative 1 77.1609062 mean ms (±0.807 ms) 75.0170935 mean ms (±0.786 ms) 1.03
join_aggregate_groupby - alternative 2 75.7245993 mean ms (±0.410 ms) 73.43255560000001 mean ms (±0.361 ms) 1.03
join_aggregate_multi 140.47281850000002 mean ms (±0.292 ms) 139.9351756 mean ms (±0.606 ms) 1.00
join_aggregate_multi - alternative 1 65.0834485 mean ms (±0.782 ms) 62.70289180000001 mean ms (±0.348 ms) 1.04
join_aggregate_multi - alternative 2 67.79159489999999 mean ms (±0.104 ms) 65.3861643 mean ms (±0.093 ms) 1.04
join_aggregate_sort 856.2996346 mean ms (±4.745 ms) 824.0093987 mean ms (±1.342 ms) 1.04
join_aggregate_sort - alternative 1 138.92634660000004 mean ms (±0.278 ms) 135.7563852 mean ms (±1.394 ms) 1.02
join_aggregate_sort - alternative 2 126.0405913 mean ms (±0.140 ms) 123.0281583 mean ms (±0.122 ms) 1.02
join_aggregate_topk_count 1063.8804768000002 mean ms (±4.333 ms) 1044.7514231999999 mean ms (±2.568 ms) 1.02
join_aggregate_topk_count - alternative 1 472.94242219999995 mean ms (±228.953 ms) 259.90028470000004 mean ms (±135.225 ms) 1.82
join_aggregate_topk_count - alternative 2 442.4886434 mean ms (±227.706 ms) 350.35174199999994 mean ms (±195.994 ms) 1.26
join_aggregate_window_facet 916.7465757999998 mean ms (±0.887 ms) 915.1055481999999 mean ms (±0.788 ms) 1.00
join_aggregate_window_facet - alternative 1 917.9012102 mean ms (±1.133 ms) 914.7648886000001 mean ms (±0.460 ms) 1.00
join_aggregate_window_facet - alternative 2 917.9030845999999 mean ms (±1.655 ms) 916.0096756 mean ms (±0.739 ms) 1.00
join_conjunctive_score_sort 26.917026900000003 mean ms (±0.178 ms) 26.6068127 mean ms (±0.228 ms) 1.01
join_conjunctive_score_sort - alternative 1 26.5622569 mean ms (±0.034 ms) 26.527587500000003 mean ms (±0.158 ms) 1.00
join_conjunctive_score_sort - alternative 2 26.6034541 mean ms (±0.156 ms) 31.4073303 mean ms (±0.140 ms) 0.85
join_disjunctive_local_sort 3681.1447823000003 mean ms (±12.812 ms) 3697.8075017 mean ms (±7.624 ms) 1.00
join_disjunctive_local_sort - alternative 1 261.21121300000004 mean ms (±0.915 ms) 257.93330210000005 mean ms (±1.896 ms) 1.01
join_disjunctive_local_sort - alternative 2 120.95398349999998 mean ms (±0.692 ms) 290.5560418 mean ms (±0.456 ms) 0.42
join_disjunctive_score_sort 275.9753821 mean ms (±0.602 ms) 271.04769650000003 mean ms (±1.631 ms) 1.02
join_disjunctive_score_sort - alternative 1 276.3834701 mean ms (±0.633 ms) 271.83876 mean ms (±2.015 ms) 1.02
join_disjunctive_score_sort - alternative 2 138.4177876 mean ms (±0.255 ms) 306.2201899 mean ms (±1.082 ms) 0.45
join_distinct_parent_sort 386.59866840000007 mean ms (±81.180 ms) 364.11751949999996 mean ms (±69.543 ms) 1.06
join_distinct_parent_sort - alternative 1 1103.6148778 mean ms (±186.663 ms) 1167.6988364000001 mean ms (±161.822 ms) 0.95
join_distinct_parent_sort - alternative 2 303.7180075 mean ms (±32.686 ms) 321.3840626 mean ms (±6.702 ms) 0.95
join_foreign_filter_local_sort 60.1091898 mean ms (±0.420 ms) 60.0501383 mean ms (±0.506 ms) 1.00
join_foreign_filter_local_sort - alternative 1 20.1604401 mean ms (±0.070 ms) 19.667134799999996 mean ms (±0.089 ms) 1.03
join_foreign_filter_local_sort - alternative 2 20.110896699999998 mean ms (±0.083 ms) 21.8795191 mean ms (±0.186 ms) 0.92
join_permissioned_search 65.595204 mean ms (±0.313 ms) 64.7282307 mean ms (±0.433 ms) 1.01
join_permissioned_search - alternative 1 25.790731 mean ms (±0.032 ms) 25.4394938 mean ms (±0.039 ms) 1.01
join_permissioned_search - alternative 2 25.7978564 mean ms (±0.041 ms) 28.124988600000002 mean ms (±0.087 ms) 0.92
join_semi_filter 38.2300974 mean ms (±0.042 ms) 37.6245879 mean ms (±0.054 ms) 1.02
join_semi_filter - alternative 1 40.2520765 mean ms (±3.173 ms) 34.5464631 mean ms (±0.833 ms) 1.17
join_semi_filter - alternative 2 48.216874700000005 mean ms (±0.201 ms) 51.7268883 mean ms (±1.688 ms) 0.93
join_semi_filter - alternative 3 15.4043025 mean ms (±0.252 ms) 15.3502872 mean ms (±0.306 ms) 1.00
join_top_k-score-desc-high-selectivity 129.1007444 mean ms (±0.322 ms) 126.6116514 mean ms (±0.177 ms) 1.02
join_top_k-score-desc-high-selectivity - alternative 1 38.66499689999999 mean ms (±0.934 ms) 38.540283099999996 mean ms (±1.053 ms) 1.00
join_top_k-score-desc-high-selectivity - alternative 2 55.537465899999994 mean ms (±0.050 ms) 52.930315199999995 mean ms (±0.111 ms) 1.05
paging-string-max 7.212918200000002 mean ms (±0.047 ms) 7.0754306 mean ms (±0.061 ms) 1.02
paging-string-median 8.317193399999999 mean ms (±0.912 ms) 7.876817600000001 mean ms (±0.873 ms) 1.06
paging-string-min 7.2722032 mean ms (±0.090 ms) 7.3037310999999985 mean ms (±0.155 ms) 1.00
regex-and-heap 126.27504609999998 mean ms (±0.163 ms) 125.7044137 mean ms (±0.095 ms) 1.00
sum-int-filter 14.8172481 mean ms (±0.044 ms) 14.878478999999999 mean ms (±0.023 ms) 1.00
sum-int-filter - alternative 1 7.9997335 mean ms (±0.100 ms) 7.945231099999999 mean ms (±0.102 ms) 1.01
sum-numeric15-filter 48.9550117 mean ms (±0.096 ms) 49.5796294 mean ms (±0.093 ms) 0.99
sum-numeric15-filter - alternative 1 10.6033217 mean ms (±0.062 ms) 10.6068089 mean ms (±0.053 ms) 1.00
sum-numeric78-filter 107.49041180000002 mean ms (±0.127 ms) 102.57947670000001 mean ms (±0.138 ms) 1.05
sum-numeric78-filter - alternative 1 34.1716963 mean ms (±0.060 ms) 33.4703373 mean ms (±0.021 ms) 1.02
top_k-agg-avg 5.4521511 mean ms (±0.014 ms) 5.4137416 mean ms (±0.022 ms) 1.01
top_k-agg-bucket-string 5.0457805 mean ms (±0.023 ms) 5.0059831 mean ms (±0.019 ms) 1.01
top_k-agg-count 5.4641462 mean ms (±0.018 ms) 5.4203617 mean ms (±0.016 ms) 1.01
top_k-compound 3.4518472999999994 mean ms (±0.013 ms) 3.4571853000000003 mean ms (±0.016 ms) 1.00
top_k-numeric-highcard 3.2821042 mean ms (±0.011 ms) 3.2618551999999994 mean ms (±0.013 ms) 1.01
top_k-numeric-lowcard 3.2570680000000003 mean ms (±0.012 ms) 3.232262 mean ms (±0.016 ms) 1.01
top_k-score-asc-high-selectivity 4.6544663 mean ms (±0.021 ms) 4.6377986 mean ms (±0.014 ms) 1.00
top_k-score-asc-high-selectivity - alternative 1 4.641784900000001 mean ms (±0.016 ms) 4.619860999999999 mean ms (±0.012 ms) 1.00
top_k-score-asc-medium-selectivity 4.276547299999999 mean ms (±0.018 ms) 4.2624029 mean ms (±0.011 ms) 1.00
top_k-score-asc-medium-selectivity - alternative 1 4.2899894 mean ms (±0.018 ms) 4.2637901 mean ms (±0.013 ms) 1.01
top_k-score-asc 3.8319066 mean ms (±0.006 ms) 3.8066458000000005 mean ms (±0.011 ms) 1.01
top_k-score-asc - alternative 1 3.8095499999999993 mean ms (±0.011 ms) 3.7825940000000005 mean ms (±0.010 ms) 1.01
top_k-score-desc-high-selectivity 3.3319423 mean ms (±0.009 ms) 3.3409052000000004 mean ms (±0.009 ms) 1.00
top_k-score-desc-high-selectivity - alternative 1 3.3281705 mean ms (±0.011 ms) 3.3222187999999995 mean ms (±0.016 ms) 1.00
top_k-score-desc-medium-selectivity 3.2894272 mean ms (±0.008 ms) 3.2491075 mean ms (±0.013 ms) 1.01
top_k-score-desc-medium-selectivity - alternative 1 3.3017971000000004 mean ms (±0.011 ms) 3.2519609000000003 mean ms (±0.010 ms) 1.02
top_k-score-desc-tiebreaker 4.2508163 mean ms (±0.014 ms) 4.215494700000001 mean ms (±0.010 ms) 1.01
top_k-score-desc-tiebreaker - alternative 1 4.2419185 mean ms (±0.013 ms) 4.2261940000000005 mean ms (±0.011 ms) 1.00
top_k-score-desc 3.1606835 mean ms (±0.009 ms) 3.1122731999999997 mean ms (±0.012 ms) 1.02
top_k-score-desc - alternative 1 3.1653573 mean ms (±0.013 ms) 3.1181487 mean ms (±0.013 ms) 1.02
top_k-score-multi-term-asc 10.5125693 mean ms (±0.020 ms) 10.4521902 mean ms (±0.015 ms) 1.01
top_k-score-multi-term-asc - alternative 1 10.4920094 mean ms (±0.017 ms) 10.4789986 mean ms (±0.021 ms) 1.00
top_k-score-multi-term-desc 9.4852831 mean ms (±0.014 ms) 9.446962 mean ms (±0.017 ms) 1.00
top_k-score-multi-term-desc - alternative 1 9.492226500000001 mean ms (±0.031 ms) 9.4359824 mean ms (±0.022 ms) 1.01
top_k-string 3.4279526 mean ms (±0.016 ms) 3.3978678 mean ms (±0.021 ms) 1.01

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions github-actions Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark 'pg_search 'stackoverflow (bm25)' (1m rows)'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.15.

Benchmark suite Current: c573b54 Previous: 4a5c755 Ratio
join_aggregate_topk_count - alternative 1 472.94242219999995 mean ms (±228.953 ms) 259.90028470000004 mean ms (±135.225 ms) 1.82
join_aggregate_topk_count - alternative 2 442.4886434 mean ms (±227.706 ms) 350.35174199999994 mean ms (±195.994 ms) 1.26
join_semi_filter - alternative 1 40.2520765 mean ms (±3.173 ms) 34.5464631 mean ms (±0.833 ms) 1.17

This comment was automatically generated by workflow using github-action-benchmark.

CC: @stuhood

@codecov

codecov Bot commented Sep 15, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 93.23944% with 24 lines in your changes missing coverage. Please review.
✅ Project coverage is 78.49%. Comparing base (8325b0b) to head (c74a6cf).
⚠️ Report is 7 commits behind head on main.

Files with missing lines Patch % Lines
...res/customscan/joinscan/range_partitioning_rule.rs 88.46% 24 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #6342      +/-   ##
==========================================
+ Coverage   78.47%   78.49%   +0.01%     
==========================================
  Files         254      254              
  Lines       75826    76069     +243     
==========================================
+ Hits        59507    59711     +204     
- Misses      16319    16358      +39     
Files with missing lines Coverage Δ
pg_search/src/gucs.rs 79.37% <100.00%> (+0.66%) ⬆️
...stgres/customscan/aggregatescan/datafusion_exec.rs 91.00% <100.00%> (+0.03%) ⬆️
...earch/src/postgres/customscan/aggregatescan/mod.rs 93.11% <100.00%> (+0.20%) ⬆️
.../postgres/customscan/datafusion/cardinality_agg.rs 73.21% <ø> (-0.70%) ⬇️
...g_search/src/postgres/customscan/datafusion/mod.rs 92.50% <100.00%> (+3.61%) ⬆️
.../src/postgres/customscan/datafusion/numeric_agg.rs 92.96% <ø> (-0.14%) ⬇️
pg_search/src/postgres/customscan/joinscan/mod.rs 91.30% <100.00%> (-0.02%) ⬇️
...rch/src/postgres/customscan/joinscan/scan_state.rs 78.77% <100.00%> (+0.94%) ⬆️
..._search/src/postgres/customscan/mpp/exec_worker.rs 82.60% <100.00%> (+0.05%) ⬆️
pg_search/src/postgres/pdb_owned_value.rs 73.26% <ø> (ø)
... and 7 more

... and 60 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@github-actions github-actions Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pg_search 'stackoverflow (bm25)' (20m rows)

Details
Benchmark suite Current: c573b54 Previous: 4a5c755 Ratio
stackoverflow_posts_idx build time 4.233131381733333 min 4.213099873566667 min 1.00
stackoverflow_posts_idx index size 15513 MB 15513 MB 1
badges_idx build time 0.4256649023333334 min 0.41695182813333337 min 1.02
badges_idx index size 980 MB 980 MB 1
comments_idx build time 1.17255075405 min 1.1799833412166667 min 0.99
comments_idx index size 4946 MB 4946 MB 1
users_idx build time 0.05385618038333333 min 0.05507195928333333 min 0.98
users_idx index size 155 MB 155 MB 1
aggregate_topk_count 4232.758864199999 mean ms (±70.233 ms) 4342.8336183 mean ms (±109.288 ms) 0.97
aggregate_topk_count - alternative 1 1069.8730672 mean ms (±38.437 ms) 1073.8994696 mean ms (±36.966 ms) 1.00
bucket-expr-filter 218.7181913 mean ms (±0.166 ms) 218.64386130000003 mean ms (±0.123 ms) 1.00
bucket-expr-filter - alternative 1 219.04273640000002 mean ms (±0.079 ms) 219.42774630000002 mean ms (±0.200 ms) 1.00
bucket-numeric-filter 41.3844265 mean ms (±0.138 ms) 41.203333300000004 mean ms (±0.054 ms) 1.00
bucket-numeric-filter - alternative 1 12.661499 mean ms (±0.092 ms) 12.830719499999997 mean ms (±0.058 ms) 0.99
bucket-numeric-filter - alternative 2 14.997704000000002 mean ms (±0.041 ms) 15.285258900000002 mean ms (±0.048 ms) 0.98
bucket-numeric-filter - alternative 3 11.4702055 mean ms (±0.081 ms) 11.569884599999998 mean ms (±0.050 ms) 0.99
bucket-numeric-nofilter 361.76553690000003 mean ms (±0.140 ms) 359.92036269999994 mean ms (±0.082 ms) 1.01
bucket-numeric-nofilter - alternative 1 73.7542474 mean ms (±0.101 ms) 73.72320479999999 mean ms (±0.075 ms) 1.00
bucket-numeric-nofilter - alternative 2 101.11147159999999 mean ms (±0.099 ms) 100.95398170000001 mean ms (±0.091 ms) 1.00
bucket-numeric-nofilter - alternative 3 48.96236570000001 mean ms (±0.054 ms) 48.8038698 mean ms (±0.035 ms) 1.00
bucket-string-filter 301.6128549 mean ms (±2.013 ms) 300.48979080000004 mean ms (±0.334 ms) 1.00
bucket-string-filter - alternative 1 33.220136 mean ms (±0.061 ms) 32.6485746 mean ms (±0.051 ms) 1.02
bucket-string-filter - alternative 2 43.19612390000001 mean ms (±0.075 ms) 42.778606 mean ms (±0.035 ms) 1.01
bucket-string-filter - alternative 3 24.468059699999998 mean ms (±0.039 ms) 24.793469100000003 mean ms (±0.046 ms) 0.99
bucket-string-nofilter 830.6083752000001 mean ms (±1.558 ms) 818.1466819999999 mean ms (±2.528 ms) 1.02
bucket-string-nofilter - alternative 1 104.88396550000002 mean ms (±0.115 ms) 103.2186783 mean ms (±0.242 ms) 1.02
bucket-string-nofilter - alternative 2 158.90617830000002 mean ms (±0.093 ms) 158.98221259999997 mean ms (±0.126 ms) 1.00
bucket-string-nofilter - alternative 3 122.0176084 mean ms (±0.469 ms) 122.5968098 mean ms (±0.267 ms) 1.00
cardinality 120.9111867 mean ms (±0.070 ms) 120.84688940000001 mean ms (±0.068 ms) 1.00
cardinality - alternative 1 40.08658960000001 mean ms (±0.110 ms) 40.1811603 mean ms (±0.096 ms) 1.00
cardinality - alternative 2 12.7472246 mean ms (±0.073 ms) 12.780491699999999 mean ms (±0.064 ms) 1.00
cardinality - alternative 3 12.6227446 mean ms (±0.056 ms) 12.889119499999998 mean ms (±0.222 ms) 0.98
cardinality - alternative 4 9.231767399999999 mean ms (±0.050 ms) 9.410831400000001 mean ms (±0.065 ms) 0.98
cardinality - alternative 5 212.0698375 mean ms (±0.746 ms) 215.58630440000002 mean ms (±1.578 ms) 0.98
cardinality - alternative 6 4521.938285300001 mean ms (±6.441 ms) 4729.7602264 mean ms (±14.383 ms) 0.96
cardinality - alternative 7 5647.0791869 mean ms (±22.252 ms) 5574.275733400001 mean ms (±10.585 ms) 1.01
cardinality - alternative 8 40.1942377 mean ms (±0.059 ms) 40.14035440000001 mean ms (±0.078 ms) 1.00
cardinality - alternative 9 36.939792499999996 mean ms (±0.070 ms) 37.073458 mean ms (±0.101 ms) 1.00
count-filter 25.9447384 mean ms (±0.045 ms) 25.917952300000003 mean ms (±0.027 ms) 1.00
count-filter - alternative 1 16.9923664 mean ms (±0.058 ms) 17.072698 mean ms (±0.074 ms) 1.00
count-filter - alternative 2 17.046680000000002 mean ms (±0.067 ms) 17.0915722 mean ms (±0.045 ms) 1.00
count-filter - alternative 3 2.7995061000000003 mean ms (±0.024 ms) 2.8107205 mean ms (±0.013 ms) 1.00
count-nofilter 138.6749941 mean ms (±0.077 ms) 138.83778349999997 mean ms (±0.505 ms) 1.00
count-nofilter - alternative 1 71.7433891 mean ms (±0.064 ms) 71.5918457 mean ms (±0.054 ms) 1.00
count-nofilter - alternative 2 71.71136520000002 mean ms (±0.056 ms) 71.54388420000001 mean ms (±0.055 ms) 1.00
count-nofilter - alternative 3 0.5671175999999999 mean ms (±0.005 ms) 0.565574 mean ms (±0.007 ms) 1.00
filtered-highcard 2.0162845999999996 mean ms (±0.023 ms) 2.0608302000000003 mean ms (±0.012 ms) 0.98
filtered-lowcard 1.7845735000000005 mean ms (±0.010 ms) 1.7774268 mean ms (±0.009 ms) 1.00
highlighting 4.3644093 mean ms (±0.019 ms) 4.391984299999999 mean ms (±0.021 ms) 0.99
join_aggregate_count 2999.2193889 mean ms (±10.661 ms) 2993.3066443 mean ms (±3.615 ms) 1.00
join_aggregate_count - alternative 1 616.1483230000001 mean ms (±4.705 ms) 586.1675941 mean ms (±17.472 ms) 1.05
join_aggregate_count - alternative 2 580.5594753 mean ms (±1.122 ms) 576.7347700999999 mean ms (±0.662 ms) 1.01
join_aggregate_date_histogram 8302.8199427 mean ms (±33.631 ms) 8192.460596 mean ms (±15.548 ms) 1.01
join_aggregate_date_histogram - alternative 1 8282.023232000003 mean ms (±14.866 ms) 8152.9888696 mean ms (±17.950 ms) 1.02
join_aggregate_date_histogram - alternative 2 8272.1521989 mean ms (±18.517 ms) 8120.8640268 mean ms (±9.728 ms) 1.02
join_aggregate_disjunctive_count 124550.9301197 mean ms (±107.105 ms) 123539.59400879999 mean ms (±105.430 ms) 1.01
join_aggregate_disjunctive_count - alternative 1 979.1960365000001 mean ms (±4.907 ms) 968.5475819 mean ms (±10.097 ms) 1.01
join_aggregate_disjunctive_count - alternative 2 1251.4551113 mean ms (±44.660 ms) 1310.7182306 mean ms (±5.374 ms) 0.95
join_aggregate_groupby 3379.0227185999997 mean ms (±12.705 ms) 3339.0280966 mean ms (±6.223 ms) 1.01
join_aggregate_groupby - alternative 1 790.5503424 mean ms (±21.746 ms) 781.7473536 mean ms (±20.746 ms) 1.01
join_aggregate_groupby - alternative 2 730.7969124000001 mean ms (±1.061 ms) 724.0995850999999 mean ms (±0.933 ms) 1.01
join_aggregate_multi 3108.6649062 mean ms (±11.482 ms) 3062.419621 mean ms (±5.583 ms) 1.02
join_aggregate_multi - alternative 1 679.4653617 mean ms (±29.278 ms) 692.3138507 mean ms (±2.615 ms) 0.98
join_aggregate_multi - alternative 2 625.3616575 mean ms (±0.849 ms) 618.3731789999999 mean ms (±1.179 ms) 1.01
join_aggregate_sort 24891.211271499997 mean ms (±27.854 ms) 24077.345413500003 mean ms (±7.975 ms) 1.03
join_aggregate_sort - alternative 1 1940.6234090000003 mean ms (±29.815 ms) 1950.2416441999999 mean ms (±28.039 ms) 1.00
join_aggregate_sort - alternative 2 2263.8843544 mean ms (±4.716 ms) 2237.1177368 mean ms (±1.582 ms) 1.01
join_aggregate_topk_count 6489.727122 mean ms (±41.518 ms) 6367.466799100001 mean ms (±19.123 ms) 1.02
join_aggregate_topk_count - alternative 1 1559.6844793 mean ms (±42.205 ms) 1561.9933072000001 mean ms (±29.425 ms) 1.00
join_aggregate_topk_count - alternative 2 1532.6991302000001 mean ms (±47.692 ms) 1557.0431562999997 mean ms (±34.444 ms) 0.98
join_aggregate_window_facet 19739.6903528 mean ms (±19.026 ms) 19639.7702047 mean ms (±13.440 ms) 1.01
join_aggregate_window_facet - alternative 1 19707.970577599997 mean ms (±24.193 ms) 19638.8872772 mean ms (±15.269 ms) 1.00
join_aggregate_window_facet - alternative 2 19701.482270599998 mean ms (±16.874 ms) 19628.4574118 mean ms (±10.507 ms) 1.00
join_conjunctive_score_sort 140.95074639999999 mean ms (±24.659 ms) 119.837551 mean ms (±5.071 ms) 1.18
join_conjunctive_score_sort - alternative 1 136.69822280000002 mean ms (±24.095 ms) 129.20735870000001 mean ms (±10.216 ms) 1.06
join_conjunctive_score_sort - alternative 2 155.7845371 mean ms (±7.626 ms) 150.1036663 mean ms (±14.110 ms) 1.04
join_disjunctive_local_sort 123974.72961659997 mean ms (±98.951 ms) 122779.81636029998 mean ms (±93.691 ms) 1.01
join_disjunctive_local_sort - alternative 1 1758.9326396999998 mean ms (±63.658 ms) 1698.5715291000001 mean ms (±15.601 ms) 1.04
join_disjunctive_local_sort - alternative 2 1187.4368124999999 mean ms (±1.713 ms) 2093.9392505 mean ms (±71.314 ms) 0.57
join_disjunctive_score_sort 1793.0040729 mean ms (±36.850 ms) 1823.4131119 mean ms (±17.401 ms) 0.98
join_disjunctive_score_sort - alternative 1 1824.1753821999998 mean ms (±63.586 ms) 1815.0240435 mean ms (±23.583 ms) 1.01
join_disjunctive_score_sort - alternative 2 1537.4733981999998 mean ms (±8.946 ms) 2177.1614057 mean ms (±7.826 ms) 0.71
join_distinct_parent_sort 2205.7374605 mean ms (±49.593 ms) 2209.291623 mean ms (±35.385 ms) 1.00
join_distinct_parent_sort - alternative 1 3354.9000723 mean ms (±26.285 ms) 3374.5635046999996 mean ms (±32.657 ms) 0.99
join_distinct_parent_sort - alternative 2 3184.2517792000003 mean ms (±12.403 ms) 3431.177252799999 mean ms (±66.453 ms) 0.93
join_foreign_filter_local_sort 198.3402726 mean ms (±2.908 ms) 194.161856 mean ms (±1.674 ms) 1.02
join_foreign_filter_local_sort - alternative 1 80.1740994 mean ms (±0.088 ms) 80.550956 mean ms (±0.110 ms) 1.00
join_foreign_filter_local_sort - alternative 2 80.41746730000001 mean ms (±0.128 ms) 81.820194 mean ms (±0.095 ms) 0.98
join_permissioned_search 543.0419017 mean ms (±1.241 ms) 541.3058713 mean ms (±0.814 ms) 1.00
join_permissioned_search - alternative 1 381.3167069 mean ms (±17.679 ms) 397.9863669 mean ms (±23.062 ms) 0.96
join_permissioned_search - alternative 2 96.3493236 mean ms (±0.077 ms) 93.80786839999999 mean ms (±0.138 ms) 1.03
join_semi_filter 543.2468699 mean ms (±2.166 ms) 544.7203218 mean ms (±1.312 ms) 1.00
join_semi_filter - alternative 1 66.5495263 mean ms (±8.648 ms) 55.9662811 mean ms (±2.360 ms) 1.19
join_semi_filter - alternative 2 88.87129459999998 mean ms (±0.105 ms) 86.0853352 mean ms (±0.123 ms) 1.03
join_semi_filter - alternative 3 26.141642399999995 mean ms (±0.022 ms) 26.217425299999995 mean ms (±0.264 ms) 1.00
join_top_k-score-desc-high-selectivity 4056.7245791 mean ms (±7.991 ms) 4004.815311199999 mean ms (±17.412 ms) 1.01
join_top_k-score-desc-high-selectivity - alternative 1 51.28387789999999 mean ms (±0.928 ms) 55.8958019 mean ms (±4.833 ms) 0.92
join_top_k-score-desc-high-selectivity - alternative 2 201.38299979999996 mean ms (±0.156 ms) 198.24104340000002 mean ms (±0.147 ms) 1.02
paging-string-max 7.2350171 mean ms (±0.111 ms) 7.3169882 mean ms (±0.083 ms) 0.99
paging-string-median 15.353786200000002 mean ms (±1.128 ms) 14.5904531 mean ms (±0.029 ms) 1.05
paging-string-min 14.8366005 mean ms (±0.559 ms) 14.9303666 mean ms (±0.966 ms) 0.99
regex-and-heap 4607.1461083 mean ms (±63.716 ms) 4604.388350499999 mean ms (±23.594 ms) 1.00
sum-int-filter 39.8247433 mean ms (±0.607 ms) 39.9365086 mean ms (±0.568 ms) 1.00
sum-int-filter - alternative 1 18.0598993 mean ms (±0.058 ms) 17.888846299999997 mean ms (±0.054 ms) 1.01
sum-numeric15-filter 141.5122537 mean ms (±1.229 ms) 140.6836832 mean ms (±1.100 ms) 1.01
sum-numeric15-filter - alternative 1 45.4678069 mean ms (±0.078 ms) 43.510787500000006 mean ms (±0.389 ms) 1.04
sum-numeric78-filter 306.8999304000001 mean ms (±0.194 ms) 305.68449439999995 mean ms (±0.402 ms) 1.00
sum-numeric78-filter - alternative 1 109.44753080000001 mean ms (±0.121 ms) 108.29541750000001 mean ms (±0.458 ms) 1.01
top_k-agg-avg 16.3075895 mean ms (±0.087 ms) 16.316333300000004 mean ms (±0.264 ms) 1.00
top_k-agg-bucket-string 15.260087500000001 mean ms (±0.096 ms) 15.254195300000001 mean ms (±0.054 ms) 1.00
top_k-agg-count 16.694679100000002 mean ms (±0.067 ms) 16.6116645 mean ms (±0.089 ms) 1.00
top_k-compound 6.070410600000001 mean ms (±0.040 ms) 5.896605500000001 mean ms (±0.020 ms) 1.03
top_k-numeric-highcard 5.697388 mean ms (±0.027 ms) 5.7112887 mean ms (±0.025 ms) 1.00
top_k-numeric-lowcard 5.5884198000000005 mean ms (±0.020 ms) 5.557905000000001 mean ms (±0.023 ms) 1.01
top_k-score-asc-high-selectivity 13.900424899999999 mean ms (±0.087 ms) 13.7936644 mean ms (±0.071 ms) 1.01
top_k-score-asc-high-selectivity - alternative 1 24.5678045 mean ms (±0.061 ms) 24.6739466 mean ms (±0.043 ms) 1.00
top_k-score-asc-medium-selectivity 13.3894209 mean ms (±0.110 ms) 13.124812 mean ms (±0.054 ms) 1.02
top_k-score-asc-medium-selectivity - alternative 1 18.742181199999997 mean ms (±0.031 ms) 18.8351613 mean ms (±0.054 ms) 1.00
top_k-score-asc 12.810359199999999 mean ms (±0.391 ms) 12.5499117 mean ms (±0.100 ms) 1.02
top_k-score-asc - alternative 1 14.642239799999999 mean ms (±0.032 ms) 14.695489399999996 mean ms (±0.035 ms) 1.00
top_k-score-desc-high-selectivity 4.7286994 mean ms (±0.015 ms) 4.723494099999999 mean ms (±0.015 ms) 1.00
top_k-score-desc-high-selectivity - alternative 1 4.6826836 mean ms (±0.030 ms) 4.7080516999999995 mean ms (±0.016 ms) 0.99
top_k-score-desc-medium-selectivity 4.563913099999999 mean ms (±0.013 ms) 4.5809600999999995 mean ms (±0.014 ms) 1.00
top_k-score-desc-medium-selectivity - alternative 1 4.5583013 mean ms (±0.011 ms) 4.5958141 mean ms (±0.018 ms) 0.99
top_k-score-desc-tiebreaker 10.582471799999999 mean ms (±0.042 ms) 10.679723700000002 mean ms (±0.036 ms) 0.99
top_k-score-desc-tiebreaker - alternative 1 10.6139649 mean ms (±0.066 ms) 10.752499700000001 mean ms (±0.060 ms) 0.99
top_k-score-desc 4.3920211 mean ms (±0.014 ms) 4.3835667 mean ms (±0.010 ms) 1.00
top_k-score-desc - alternative 1 4.389753799999999 mean ms (±0.013 ms) 4.377682500000001 mean ms (±0.008 ms) 1.00
top_k-score-multi-term-asc 17.8672039 mean ms (±0.055 ms) 17.806437900000002 mean ms (±0.074 ms) 1.00
top_k-score-multi-term-asc - alternative 1 32.57334349999999 mean ms (±0.046 ms) 32.6699263 mean ms (±0.060 ms) 1.00
top_k-score-multi-term-desc 15.881758600000001 mean ms (±0.078 ms) 15.6443174 mean ms (±0.055 ms) 1.02
top_k-score-multi-term-desc - alternative 1 18.626484500000004 mean ms (±0.031 ms) 18.659804599999998 mean ms (±0.041 ms) 1.00
top_k-string 7.388219100000001 mean ms (±0.027 ms) 7.379421099999999 mean ms (±0.025 ms) 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions github-actions Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark 'pg_search 'stackoverflow (bm25)' (20m rows)'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.15.

Benchmark suite Current: c573b54 Previous: 4a5c755 Ratio
join_conjunctive_score_sort 140.95074639999999 mean ms (±24.659 ms) 119.837551 mean ms (±5.071 ms) 1.18
join_semi_filter - alternative 1 66.5495263 mean ms (±8.648 ms) 55.9662811 mean ms (±2.360 ms) 1.19

This comment was automatically generated by workflow using github-action-benchmark.

CC: @stuhood

@stuhood
stuhood force-pushed the stuhood.range-fixes branch from f804091 to a0802b6 Compare September 15, 2026 18:18
@stuhood stuhood added the benchmark-stackoverflow Add this label to a PR to run the StackOverflow benchmark. Automatically removed. label Sep 15, 2026
@github-actions github-actions Bot removed the benchmark-stackoverflow Add this label to a PR to run the StackOverflow benchmark. Automatically removed. label Sep 15, 2026
@stuhood
stuhood force-pushed the stuhood.range-fixes branch from ed7d34f to 86023df Compare September 15, 2026 22:59
@stuhood stuhood added the benchmark-stackoverflow Add this label to a PR to run the StackOverflow benchmark. Automatically removed. label Sep 15, 2026
@github-actions github-actions Bot removed the benchmark-stackoverflow Add this label to a PR to run the StackOverflow benchmark. Automatically removed. label Sep 15, 2026
@stuhood
stuhood force-pushed the stuhood.range-fixes branch from 60b0fab to c161ff8 Compare September 15, 2026 23:14
@stuhood stuhood added the benchmark-stackoverflow Add this label to a PR to run the StackOverflow benchmark. Automatically removed. label Sep 15, 2026
@github-actions github-actions Bot removed the benchmark-stackoverflow Add this label to a PR to run the StackOverflow benchmark. Automatically removed. label Sep 15, 2026
@stuhood
stuhood force-pushed the stuhood.range-fixes branch from 94cee29 to e3e2382 Compare September 16, 2026 03:18
@stuhood stuhood added the benchmark-stackoverflow Add this label to a PR to run the StackOverflow benchmark. Automatically removed. label Sep 16, 2026
@github-actions github-actions Bot removed the benchmark-stackoverflow Add this label to a PR to run the StackOverflow benchmark. Automatically removed. label Sep 16, 2026
@stuhood
stuhood force-pushed the stuhood.range-fixes branch from e8960cb to 11176ea Compare September 16, 2026 16:23
@stuhood
stuhood force-pushed the stuhood.range-fixes branch from 0bb0115 to c5e098a Compare September 18, 2026 18:39
@stuhood stuhood added the benchmark-stackoverflow Add this label to a PR to run the StackOverflow benchmark. Automatically removed. label Sep 18, 2026
@github-actions github-actions Bot removed the benchmark-stackoverflow Add this label to a PR to run the StackOverflow benchmark. Automatically removed. label Sep 18, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark 'pg_search 'stackoverflow (bm25)' (100k rows)'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.15.

Benchmark suite Current: c5e098a Previous: 0b47855 Ratio
sum-int-filter 5.105289 mean ms (±0.012 ms) 4.2854045 mean ms (±0.020 ms) 1.19

This comment was automatically generated by workflow using github-action-benchmark.

CC: @stuhood

@stuhood
stuhood requested a review from mdashti September 18, 2026 19:25
@stuhood
stuhood marked this pull request as ready for review September 18, 2026 19:25
@stuhood
stuhood requested a review from a team as a code owner September 18, 2026 19:25
@stuhood
stuhood force-pushed the stuhood.range-fixes branch from 0456d15 to 97d6890 Compare September 18, 2026 19:43
Comment thread pg_search/Cargo.toml Resolved
@stuhood
stuhood force-pushed the stuhood.range-fixes branch from 75762e1 to a2757ba Compare September 18, 2026 23:27

@mdashti mdashti left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@stuhood Thanks. All is good, but I'd rework the decode plumbing. The new df-d pin pulls in maybe_roundtrip_plan_to_sever_in_memory_dynamic_filter_relationships, so the leader now decodes and re-encodes each dispatched task plan. The Snapshot fallbacks in deferred_lookup.rs, tantivy_fetch_exec.rs and segmented_topk_exec.rs, the _expr_context_guard, and the codec expr_context all exist to prevent that decode. For us it's overhead only. StagePlanDispatchSource serializes the plan right after, so no in-memory filter link remains anyway, and the leader opens full readers only to drop them. I'd move the roundtrip into the MaybeEncoded::Decoded arm in df-d and keep the Internal errors here.

Blocking only on the branch pins, which you already flagged. The rest is inline.

Comment thread pg_search/src/scan/table_provider.rs Resolved
Comment thread pg_search/src/gucs.rs Resolved
@stuhood
stuhood force-pushed the stuhood.range-fixes branch from d3befb9 to c573b54 Compare September 19, 2026 06:03
@stuhood stuhood added the benchmark-stackoverflow Add this label to a PR to run the StackOverflow benchmark. Automatically removed. label Sep 19, 2026
@github-actions github-actions Bot removed the benchmark-stackoverflow Add this label to a PR to run the StackOverflow benchmark. Automatically removed. label Sep 19, 2026
@stuhood
stuhood force-pushed the stuhood.range-fixes branch from 06f5759 to 19fc0c4 Compare September 19, 2026 06:35
@stuhood
stuhood force-pushed the stuhood.range-fixes branch from df489bf to b841669 Compare September 19, 2026 07:37
@stuhood
stuhood merged commit 44544cd into main Sep 19, 2026
23 checks passed
@stuhood
stuhood deleted the stuhood.range-fixes branch September 19, 2026 08:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Do Not Cherry Pick PR should not be cherry-picked to other branches

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants