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 953c5fdd85 [core] Fix rename tag err msg (#6645)
953c5fdd85 is described below

commit 953c5fdd852d2e3e6b1da6daa3cbe07b6a82b982
Author: aidadenski <[email protected]>
AuthorDate: Fri Nov 21 12:16:02 2025 +0800

    [core] Fix rename tag err msg (#6645)
---
 .../java/org/apache/paimon/utils/TagManager.java   |  2 +-
 .../org/apache/paimon/utils/TagManagerTest.java    | 36 ++++++++++++++++++++++
 2 files changed, 37 insertions(+), 1 deletion(-)

diff --git a/paimon-core/src/main/java/org/apache/paimon/utils/TagManager.java 
b/paimon-core/src/main/java/org/apache/paimon/utils/TagManager.java
index 06f0dc7330..703b93e145 100644
--- a/paimon-core/src/main/java/org/apache/paimon/utils/TagManager.java
+++ b/paimon-core/src/main/java/org/apache/paimon/utils/TagManager.java
@@ -201,7 +201,7 @@ public class TagManager {
         checkArgument(
                 !StringUtils.isNullOrWhitespaceOnly(targetTagName),
                 "New tag name shouldn't be blank.");
-        checkArgument(!tagExists(targetTagName), "Tag '%s' already exists.", 
tagName);
+        checkArgument(!tagExists(targetTagName), "Tag '%s' already exists.", 
targetTagName);
 
         try {
             fileIO.rename(tagPath(tagName), tagPath(targetTagName));
diff --git 
a/paimon-core/src/test/java/org/apache/paimon/utils/TagManagerTest.java 
b/paimon-core/src/test/java/org/apache/paimon/utils/TagManagerTest.java
index abe9ee0b8a..eaf11bc4e7 100644
--- a/paimon-core/src/test/java/org/apache/paimon/utils/TagManagerTest.java
+++ b/paimon-core/src/test/java/org/apache/paimon/utils/TagManagerTest.java
@@ -136,6 +136,42 @@ public class TagManagerTest {
         assertThat(tags.get(0).getValue()).contains("tag");
     }
 
+    @Test
+    public void testRenameTagWithExistingTargetName() throws Exception {
+        TestFileStore store = 
createStore(TestKeyValueGenerator.GeneratorMode.NON_PARTITIONED, 4);
+        tagManager = new TagManager(fileIO, store.options().path());
+        SnapshotManager snapshotManager = store.snapshotManager();
+        TestKeyValueGenerator gen =
+                new 
TestKeyValueGenerator(TestKeyValueGenerator.GeneratorMode.NON_PARTITIONED);
+        BinaryRow partition = gen.getPartition(gen.next());
+
+        Map<BinaryRow, Map<Integer, RecordWriter<KeyValue>>> writers = new 
HashMap<>();
+        for (int bucket : Arrays.asList(0, 1)) {
+            List<KeyValue> kvs = partitionedData(5, gen);
+            writeData(store, kvs, partition, bucket, writers);
+        }
+        commitData(store, commitIdentifier++, writers);
+
+        Snapshot snapshot = snapshotManager.snapshot(1);
+        tagManager.createTag(
+                snapshot,
+                "tag1",
+                store.options().tagDefaultTimeRetained(),
+                Collections.emptyList(),
+                false);
+        tagManager.createTag(
+                snapshot,
+                "tag2",
+                store.options().tagDefaultTimeRetained(),
+                Collections.emptyList(),
+                false);
+
+        IllegalArgumentException exception =
+                Assertions.assertThrows(
+                        IllegalArgumentException.class, () -> 
tagManager.renameTag("tag1", "tag2"));
+        Assertions.assertTrue(exception.getMessage().contains("Tag 'tag2' 
already exists."));
+    }
+
     private TestFileStore createStore(TestKeyValueGenerator.GeneratorMode 
mode, int buckets)
             throws Exception {
         ThreadLocalRandom random = ThreadLocalRandom.current();

Reply via email to