You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@paimon.apache.org by lz...@apache.org on 2026/07/07 15:23:11 UTC

(paimon) branch master updated: [core] Fix DataEvolutionBatchScan shard chaining (#8500)

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

JingsongLi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/paimon.git


The following commit(s) were added to refs/heads/master by this push:
     new 5b797ef63f [core] Fix DataEvolutionBatchScan shard chaining (#8500)
5b797ef63f is described below

commit 5b797ef63fba5e98bf4fd285fb5a34877c91ee81
Author: QuakeWang <45...@users.noreply.github.com>
AuthorDate: Tue Jul 7 23:23:05 2026 +0800

    [core] Fix DataEvolutionBatchScan shard chaining (#8500)
---
 .../apache/paimon/globalindex/DataEvolutionBatchScan.java   |  3 ++-
 .../paimon/globalindex/DataEvolutionBatchScanTest.java      | 13 +++++++++++++
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/paimon-core/src/main/java/org/apache/paimon/globalindex/DataEvolutionBatchScan.java b/paimon-core/src/main/java/org/apache/paimon/globalindex/DataEvolutionBatchScan.java
index 39634f012c..ca83c6b497 100644
--- a/paimon-core/src/main/java/org/apache/paimon/globalindex/DataEvolutionBatchScan.java
+++ b/paimon-core/src/main/java/org/apache/paimon/globalindex/DataEvolutionBatchScan.java
@@ -78,7 +78,8 @@ public class DataEvolutionBatchScan implements DataTableScan {
 
     @Override
     public DataTableScan withShard(int indexOfThisSubtask, int numberOfParallelSubtasks) {
-        return batchScan.withShard(indexOfThisSubtask, numberOfParallelSubtasks);
+        batchScan.withShard(indexOfThisSubtask, numberOfParallelSubtasks);
+        return this;
     }
 
     @Override
diff --git a/paimon-core/src/test/java/org/apache/paimon/globalindex/DataEvolutionBatchScanTest.java b/paimon-core/src/test/java/org/apache/paimon/globalindex/DataEvolutionBatchScanTest.java
index 4c7cc83d07..b406b9793f 100644
--- a/paimon-core/src/test/java/org/apache/paimon/globalindex/DataEvolutionBatchScanTest.java
+++ b/paimon-core/src/test/java/org/apache/paimon/globalindex/DataEvolutionBatchScanTest.java
@@ -24,6 +24,7 @@ import org.apache.paimon.predicate.Predicate;
 import org.apache.paimon.predicate.PredicateBuilder;
 import org.apache.paimon.table.source.DataSplit;
 import org.apache.paimon.table.source.DataTableBatchScan;
+import org.apache.paimon.table.source.DataTableScan;
 import org.apache.paimon.table.source.Split;
 import org.apache.paimon.table.source.snapshot.SnapshotReader;
 import org.apache.paimon.types.DataField;
@@ -99,6 +100,18 @@ public class DataEvolutionBatchScanTest {
         assertThat(captor.getValue()).isSameAs(nonRowIdPredicate);
     }
 
+    @Test
+    public void testWithShardKeepsDataEvolutionWrapper() {
+        DataTableBatchScan batchScan = mock(DataTableBatchScan.class);
+        when(batchScan.withShard(0, 2)).thenReturn(batchScan);
+
+        DataEvolutionBatchScan scan = new DataEvolutionBatchScan(null, batchScan);
+        DataTableScan returned = scan.withShard(0, 2);
+
+        assertThat(returned).isSameAs(scan);
+        verify(batchScan).withShard(0, 2);
+    }
+
     @Test
     public void testWrapToIndexSplitsRandomly() {
         Random random = new Random();