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

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

commit 0910fd4b240c5c896c7fc65e148fb37d3d1a47a2
Author: 924060929 <[email protected]>
AuthorDate: Wed May 27 10:57:50 2026 +0800

    [test](local shuffle) update LocalShuffleNodeCoverageTest.testRepeatNode 
for noRequire fix
    
    The RepeatNode fix (stop forwarding the parent HASH require) changed this 
unit
    test's expected behavior: RepeatNode now passes noRequire to its child (no 
hash LE
    below the Repeat) and reports the child's own distribution (NOOP) instead 
of forcing
    LOCAL_EXECUTION_HASH_SHUFFLE.  Assert the child receives NoRequire, the 
output type
    is NOOP, and no LocalExchange is inserted below the Repeat.
---
 .../apache/doris/planner/LocalShuffleNodeCoverageTest.java    | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/planner/LocalShuffleNodeCoverageTest.java
 
b/fe/fe-core/src/test/java/org/apache/doris/planner/LocalShuffleNodeCoverageTest.java
index c7c9f67dd76..4abd9286384 100644
--- 
a/fe/fe-core/src/test/java/org/apache/doris/planner/LocalShuffleNodeCoverageTest.java
+++ 
b/fe/fe-core/src/test/java/org/apache/doris/planner/LocalShuffleNodeCoverageTest.java
@@ -88,9 +88,14 @@ public class LocalShuffleNodeCoverageTest {
                 Collections.singletonList(Collections.emptyList()));
         Pair<PlanNode, LocalExchangeType> output = 
repeatNode.enforceAndDeriveLocalExchange(
                 ctx, null, LocalExchangeTypeRequire.requireHash());
-        // resolveExchangeType with RequireHash always returns 
LOCAL_EXECUTION_HASH_SHUFFLE
-        
Assertions.assertEquals(LocalExchangeType.LOCAL_EXECUTION_HASH_SHUFFLE, 
output.second);
-        assertChildLocalExchangeType(repeatNode, 0, 
LocalExchangeType.LOCAL_EXECUTION_HASH_SHUFFLE);
+        // RepeatNode must NOT forward the parent's HASH require to its child: 
it recurses
+        // with noRequire (so no hash LE is pushed below the Repeat) and 
reports the child's
+        // own distribution (NOOP) so the parent places the hash LE ABOVE the 
Repeat instead.
+        // Pre-fix this forwarded RequireHash and inserted a LOCAL_HASH LE 
below the Repeat
+        // (tpcds q67 skew).
+        Assertions.assertEquals(LocalExchangeNode.NoRequire.class, 
childNoop.lastRequire.getClass());
+        Assertions.assertEquals(LocalExchangeType.NOOP, output.second);
+        Assertions.assertSame(childNoop, repeatNode.getChild(0));
     }
 
     @Test


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

Reply via email to