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

lzljs3620320 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 e8e90ded1b [core] fix btree index row range (#7242)
e8e90ded1b is described below

commit e8e90ded1b5c4a536bfcc64c8d594692bd7fbeed
Author: Faiz <[email protected]>
AuthorDate: Mon Feb 9 22:49:43 2026 +0800

    [core] fix btree index row range (#7242)
---
 .../org/apache/paimon/globalindex/btree/BTreeGlobalIndexBuilder.java  | 2 +-
 .../paimon/spark/procedure/CreateGlobalIndexProcedureTest.scala       | 4 +++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git 
a/paimon-core/src/main/java/org/apache/paimon/globalindex/btree/BTreeGlobalIndexBuilder.java
 
b/paimon-core/src/main/java/org/apache/paimon/globalindex/btree/BTreeGlobalIndexBuilder.java
index 3a3dcc2697..7bceb4ed4f 100644
--- 
a/paimon-core/src/main/java/org/apache/paimon/globalindex/btree/BTreeGlobalIndexBuilder.java
+++ 
b/paimon-core/src/main/java/org/apache/paimon/globalindex/btree/BTreeGlobalIndexBuilder.java
@@ -255,7 +255,7 @@ public class BTreeGlobalIndexBuilder implements 
Serializable {
             for (DataFileMeta file : dataSplit.dataFiles()) {
                 long firstRowId = file.nonNullFirstRowId();
                 start = Math.min(start, firstRowId);
-                end = Math.max(end, firstRowId + file.rowCount());
+                end = Math.max(end, firstRowId + file.rowCount() - 1);
             }
         }
         return start == Long.MAX_VALUE ? null : new Range(start, end);
diff --git 
a/paimon-spark/paimon-spark-ut/src/test/scala/org/apache/paimon/spark/procedure/CreateGlobalIndexProcedureTest.scala
 
b/paimon-spark/paimon-spark-ut/src/test/scala/org/apache/paimon/spark/procedure/CreateGlobalIndexProcedureTest.scala
index 8fd0d541a5..e20469c371 100644
--- 
a/paimon-spark/paimon-spark-ut/src/test/scala/org/apache/paimon/spark/procedure/CreateGlobalIndexProcedureTest.scala
+++ 
b/paimon-spark/paimon-spark-ut/src/test/scala/org/apache/paimon/spark/procedure/CreateGlobalIndexProcedureTest.scala
@@ -180,10 +180,12 @@ class CreateGlobalIndexProcedureTest extends 
PaimonSparkTestBase with StreamTest
       table.store().newGlobalIndexScanBuilder().shardList()
       assert(btreeEntries.nonEmpty)
 
-      // 1. assert total row count and file count
+      // 1. assert total row count, file count and row range
       val totalRowCount = btreeEntries.map(_.rowCount()).sum
       assert(btreeEntries.size == 100)
       assert(totalRowCount == 100000L)
+      assert(btreeEntries.head.globalIndexMeta().rowRangeStart() == 0L)
+      assert(btreeEntries.head.globalIndexMeta().rowRangeEnd() == 99999L)
 
       // 2. assert global index meta not null
       btreeEntries.foreach(e => assert(e.globalIndexMeta() != null))

Reply via email to