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 8dbe45ba58 [test] Add test for overwrite-upgrade (#6841)
8dbe45ba58 is described below

commit 8dbe45ba58f6c4be4d2d7c4c1bdc59d7a1df4ecb
Author: yuzelin <[email protected]>
AuthorDate: Fri Dec 19 17:49:16 2025 +0800

    [test] Add test for overwrite-upgrade (#6841)
---
 .../paimon/operation/FileStoreCommitImpl.java      |  2 +-
 .../apache/paimon/flink/BatchFileStoreITCase.java  | 30 ++++++++++++++++++++--
 2 files changed, 29 insertions(+), 3 deletions(-)

diff --git 
a/paimon-core/src/main/java/org/apache/paimon/operation/FileStoreCommitImpl.java
 
b/paimon-core/src/main/java/org/apache/paimon/operation/FileStoreCommitImpl.java
index a161b5ab26..033c06d9e8 100644
--- 
a/paimon-core/src/main/java/org/apache/paimon/operation/FileStoreCommitImpl.java
+++ 
b/paimon-core/src/main/java/org/apache/paimon/operation/FileStoreCommitImpl.java
@@ -655,12 +655,12 @@ public class FileStoreCommitImpl implements 
FileStoreCommit {
                     continue outer;
                 }
             }
+            LOG.info("Upgraded for overwrite commit.");
             for (ManifestEntry entry : newEntries) {
                 results.add(entry.upgrade(maxLevel));
             }
         }
 
-        LOG.info("Upgraded for overwrite commit.");
         return results;
     }
 
diff --git 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/BatchFileStoreITCase.java
 
b/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/BatchFileStoreITCase.java
index e22df34b7e..22271c8a7e 100644
--- 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/BatchFileStoreITCase.java
+++ 
b/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/BatchFileStoreITCase.java
@@ -1111,7 +1111,7 @@ public class BatchFileStoreITCase extends 
CatalogITCaseBase {
     }
 
     @Test
-    public void testOverwriteDvUpgradeForOrdinaryPk() {
+    public void testOverwriteUpgradeForOrdinaryPk() {
         boolean dynamicBucket = ThreadLocalRandom.current().nextBoolean();
         sql(
                 "CREATE TABLE test_table (a INT, b STRING, pt STRING, PRIMARY 
KEY (a, pt) NOT ENFORCED) PARTITIONED BY (pt)"
@@ -1131,7 +1131,7 @@ public class BatchFileStoreITCase extends 
CatalogITCaseBase {
     }
 
     @Test
-    public void testOverwriteDvUpgradeForPostpone() {
+    public void testOverwriteUpgradeForPostpone() {
         sql(
                 "CREATE TABLE test_table (a INT, b STRING, pt STRING, PRIMARY 
KEY (a, pt) NOT ENFORCED) PARTITIONED BY (pt)"
                         + "WITH ('bucket' = '-2', 'deletion-vectors.enabled' = 
'true', 'write-only' = 'true')");
@@ -1158,4 +1158,30 @@ public class BatchFileStoreITCase extends 
CatalogITCaseBase {
         sql("INSERT OVERWRITE test_table VALUES (6, 'F', '2025-12-01')");
         assertThat(sql("SELECT * FROM test_table")).isEmpty();
     }
+
+    @Test
+    public void testNoOverwriteUpgradeWhenFilesOverlapped() {
+        sql(
+                "CREATE TABLE test_table (a INT, b STRING, pt STRING, PRIMARY 
KEY (a, pt) NOT ENFORCED) "
+                        + "PARTITIONED BY (pt) WITH ('bucket' = '4', 
'deletion-vectors.enabled' = 'true', "
+                        + "'write-only' = 'true', 'write-buffer-spillable' = 
'false', 'page-size' = '64 b', "
+                        + "'write-buffer-size' = '1 kb')");
+        sql("INSERT INTO test_table VALUES (1, 'A', '2025-12-01')");
+        assertThat(sql("SELECT * FROM test_table")).isEmpty();
+
+        sql(
+                "CREATE TEMPORARY TABLE gen (a INT, b STRING) "
+                        + "WITH ('connector' = 'datagen', 'fields.a.kind' = 
'sequence', 'fields.a.start' = '1', "
+                        + "'fields.a.end' = '500', 'number-of-rows' = '500')");
+
+        sql("INSERT OVERWRITE test_table SELECT a, b, '2025-12-01' FROM gen");
+
+        assertThat(sql("SELECT * FROM test_table")).isEmpty();
+
+        sql(
+                "ALTER TABLE test_table RESET ('write-buffer-spillable', 
'page-size', 'write-buffer-size')");
+        sql("CALL sys.compact(`table` => 'default.test_table')");
+
+        assertThat(sql("SELECT SUM(a) FROM 
test_table")).containsExactly(Row.of(125250));
+    }
 }

Reply via email to