This is an automated email from the ASF dual-hosted git repository.

924060929 pushed a commit to branch fe_local_shuffle_optimize
in repository https://gitbox.apache.org/repos/asf/doris.git

commit 3dfc9aa66fcfb3cd8d1ac17f514a397835432e9a
Author: 924060929 <[email protected]>
AuthorDate: Thu Jun 4 21:09:52 2026 +0800

    [test](local shuffle) forced runtime-filter correctness case for the bucket 
upgrade
---
 .../local_shuffle/test_local_shuffle_bucket_upgrade.groovy   | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git 
a/regression-test/suites/nereids_p0/local_shuffle/test_local_shuffle_bucket_upgrade.groovy
 
b/regression-test/suites/nereids_p0/local_shuffle/test_local_shuffle_bucket_upgrade.groovy
index e6710f0027e..3d0a0e08f76 100644
--- 
a/regression-test/suites/nereids_p0/local_shuffle/test_local_shuffle_bucket_upgrade.groovy
+++ 
b/regression-test/suites/nereids_p0/local_shuffle/test_local_shuffle_bucket_upgrade.groovy
@@ -153,6 +153,18 @@ suite("test_local_shuffle_bucket_upgrade") {
     assertTrue(stackedUpgradedText.contains("LOCAL_EXECUTION_HASH_SHUFFLE"),
         "ratio=1.1 must upgrade the stacked bucket chain to LOCAL hash")
 
+    // Forced-RF killer case: with the upgrade, the join build is hash-sliced; 
the
+    // per-instance IN/MIN_MAX partial filters MUST be merged before 
application
+    // (TRuntimeFilterDesc.force_local_merge). Before that fix this query 
silently
+    // lost up to 96% of its rows.
+    def rfHints = { ratio ->
+        hints('true', ratio).replace(")*/",
+            ", enable_runtime_filter_prune=false, 
runtime_filter_type='IN,MIN_MAX')*/")
+    }
+    def single_up_rf = sql "SELECT ${rfHints('1.1')} p.pk % 10 AS g, COUNT(*) 
c, SUM(f.v) sv, SUM(p.w) sw FROM lsbu_fact f JOIN lsbu_probe p ON p.k = f.k 
GROUP BY g ORDER BY g"
+    assertEquals(single_baseline, single_up_rf,
+        "upgraded bucket join with forced IN/MIN_MAX runtime filters must stay 
correct")
+
     def stacked_baseline = sql stackedJoin(hints('false', '0'))
     def stacked_bucket = sql stackedJoin(hints('true', '0'))
     def stacked_upgraded = sql stackedJoin(hints('true', '1.1'))


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to