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();