From 89bdc04a24328a2fc112174bba0e81e498dfa9e5 Mon Sep 17 00:00:00 2001
From: xuyu <11161569@vivo.com>
Date: Tue, 7 Jan 2025 20:12:43 +0800
Subject: [PATCH 01/11] [core] Support auto create tag with custom duration
---
.../generated/core_configuration.html | 8 +-
.../java/org/apache/paimon/CoreOptions.java | 14 ++-
.../apache/paimon/tag/TagPeriodHandler.java | 37 ++++++++
.../system/CustomDurationTagsTableTest.java | 94 +++++++++++++++++++
4 files changed, 151 insertions(+), 2 deletions(-)
create mode 100644 paimon-core/src/test/java/org/apache/paimon/table/system/CustomDurationTagsTableTest.java
diff --git a/docs/layouts/shortcodes/generated/core_configuration.html b/docs/layouts/shortcodes/generated/core_configuration.html
index f60d0ec91009..e17f72026ce5 100644
--- a/docs/layouts/shortcodes/generated/core_configuration.html
+++ b/docs/layouts/shortcodes/generated/core_configuration.html
@@ -928,7 +928,13 @@
tag.creation-period |
daily |
Enum |
- What frequency is used to generate tags.
Possible values:- "daily": Generate a tag every day.
- "hourly": Generate a tag every hour.
- "two-hours": Generate a tag every two hours.
|
+ What frequency is used to generate tags.
Possible values:- "daily": Generate a tag every day.
- "hourly": Generate a tag every hour.
- "two-hours": Generate a tag every two hours.
- "custom-duration": Generate a tag with custom duration.
|
+
+
+ tag.custom-duration |
+ (none) |
+ Duration |
+ The custom duration for tag auto create periods. |
tag.default-time-retained |
diff --git a/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java b/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java
index efd886501266..42652695f27d 100644
--- a/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java
+++ b/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java
@@ -1242,6 +1242,12 @@ public class CoreOptions implements Serializable {
.defaultValue(TagPeriodFormatter.WITH_DASHES)
.withDescription("The date format for tag periods.");
+ public static final ConfigOption TAG_CUSTOM_DURATION =
+ key("tag.custom-duration")
+ .durationType()
+ .noDefaultValue()
+ .withDescription("The custom duration for tag auto create periods.");
+
public static final ConfigOption TAG_NUM_RETAINED_MAX =
key("tag.num-retained-max")
.intType()
@@ -2238,6 +2244,10 @@ public TagPeriodFormatter tagPeriodFormatter() {
return options.get(TAG_PERIOD_FORMATTER);
}
+ public Optional tagCustomDuration() {
+ return options.getOptional(TAG_CUSTOM_DURATION);
+ }
+
@Nullable
public Integer tagNumRetainedMax() {
return options.get(TAG_NUM_RETAINED_MAX);
@@ -2874,7 +2884,9 @@ public InlineElement getDescription() {
public enum TagCreationPeriod implements DescribedEnum {
DAILY("daily", "Generate a tag every day."),
HOURLY("hourly", "Generate a tag every hour."),
- TWO_HOURS("two-hours", "Generate a tag every two hours.");
+ TWO_HOURS("two-hours", "Generate a tag every two hours."),
+
+ CUSTOM_DURATION("custom-duration", "Generate a tag with custom duration.");
private final String value;
private final String description;
diff --git a/paimon-core/src/main/java/org/apache/paimon/tag/TagPeriodHandler.java b/paimon-core/src/main/java/org/apache/paimon/tag/TagPeriodHandler.java
index c0fbe718c8fa..77846b3b4bb3 100644
--- a/paimon-core/src/main/java/org/apache/paimon/tag/TagPeriodHandler.java
+++ b/paimon-core/src/main/java/org/apache/paimon/tag/TagPeriodHandler.java
@@ -31,6 +31,7 @@
import static java.time.temporal.ChronoField.DAY_OF_MONTH;
import static java.time.temporal.ChronoField.HOUR_OF_DAY;
+import static java.time.temporal.ChronoField.MINUTE_OF_HOUR;
import static java.time.temporal.ChronoField.MONTH_OF_YEAR;
import static java.time.temporal.ChronoField.YEAR;
import static org.apache.paimon.utils.Preconditions.checkArgument;
@@ -60,6 +61,16 @@ public interface TagPeriodHandler {
.toFormatter()
.withResolverStyle(ResolverStyle.LENIENT);
+ DateTimeFormatter MINUTE_FORMATTER =
+ new DateTimeFormatterBuilder()
+ .appendValue(YEAR, 1, 10, SignStyle.NORMAL)
+ .appendValue(MONTH_OF_YEAR, 2, 2, SignStyle.NORMAL)
+ .appendValue(DAY_OF_MONTH, 2, 2, SignStyle.NORMAL)
+ .appendValue(HOUR_OF_DAY, 2, 2, SignStyle.NORMAL)
+ .appendValue(MINUTE_OF_HOUR, 2, 2, SignStyle.NORMAL)
+ .toFormatter()
+ .withResolverStyle(ResolverStyle.LENIENT);
+
DateTimeFormatter DAY_FORMATTER =
new DateTimeFormatterBuilder()
.appendValue(YEAR, 1, 10, SignStyle.NORMAL)
@@ -218,6 +229,26 @@ protected DateTimeFormatter formatter() {
}
}
+ /** Two Hours {@link TagPeriodHandler}. */
+ class CustomDurationTagPeriodHandler extends BaseTagPeriodHandler {
+
+ Duration customDuration;
+
+ public CustomDurationTagPeriodHandler(Duration duration) {
+ this.customDuration = duration;
+ }
+
+ @Override
+ protected Duration onePeriod() {
+ return customDuration;
+ }
+
+ @Override
+ protected DateTimeFormatter formatter() {
+ return MINUTE_FORMATTER;
+ }
+ }
+
static TagPeriodHandler create(CoreOptions options) {
switch (options.tagCreationPeriod()) {
case DAILY:
@@ -226,6 +257,12 @@ static TagPeriodHandler create(CoreOptions options) {
return new HourlyTagPeriodHandler(options.tagPeriodFormatter());
case TWO_HOURS:
return new TwoHoursTagPeriodHandler();
+ case CUSTOM_DURATION:
+ if (!options.tagCustomDuration().isPresent()) {
+ throw new IllegalArgumentException(
+ "tag.custom-duration must be set if use custom-duration");
+ }
+ return new CustomDurationTagPeriodHandler(options.tagCustomDuration().get());
default:
throw new UnsupportedOperationException(
"Unsupported " + options.tagCreationPeriod());
diff --git a/paimon-core/src/test/java/org/apache/paimon/table/system/CustomDurationTagsTableTest.java b/paimon-core/src/test/java/org/apache/paimon/table/system/CustomDurationTagsTableTest.java
new file mode 100644
index 000000000000..8ab961f78902
--- /dev/null
+++ b/paimon-core/src/test/java/org/apache/paimon/table/system/CustomDurationTagsTableTest.java
@@ -0,0 +1,94 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.paimon.table.system;
+
+import org.apache.paimon.catalog.Identifier;
+import org.apache.paimon.data.InternalRow;
+import org.apache.paimon.data.Timestamp;
+import org.apache.paimon.manifest.ManifestCommittable;
+import org.apache.paimon.schema.Schema;
+import org.apache.paimon.table.FileStoreTable;
+import org.apache.paimon.table.TableTestBase;
+import org.apache.paimon.table.sink.TableCommitImpl;
+import org.apache.paimon.types.DataTypes;
+import org.apache.paimon.utils.TagManager;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import java.io.IOException;
+import java.time.LocalDateTime;
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+/** Unit tests for {@link TagsTable}. */
+public class CustomDurationTagsTableTest extends TableTestBase {
+
+ private static final String tableName = "TagTestTable";
+ private TagsTable tagsTable;
+ private TagManager tagManager;
+ private FileStoreTable table;
+
+ @BeforeEach
+ void before() throws Exception {
+ Identifier identifier = identifier(tableName);
+ Schema schema =
+ Schema.newBuilder()
+ .column("product_id", DataTypes.INT())
+ .column("price", DataTypes.INT())
+ .column("sales", DataTypes.INT())
+ .primaryKey("product_id")
+ .option("tag.automatic-creation", "watermark")
+ .option("tag.creation-period", "custom-duration")
+ .option("tag.custom-duration", "120 s")
+ .build();
+ catalog.createTable(identifier, schema, true);
+ table = (FileStoreTable) catalog.getTable(identifier);
+ TableCommitImpl commit = table.newCommit(commitUser).ignoreEmptyCommit(false);
+
+ commit.commit(
+ new ManifestCommittable(
+ 0,
+ Timestamp.fromLocalDateTime(LocalDateTime.parse("2025-01-07T12:00:01"))
+ .getMillisecond()));
+ commit.commit(
+ new ManifestCommittable(
+ 1,
+ Timestamp.fromLocalDateTime(LocalDateTime.parse("2025-01-07T15:00:01"))
+ .getMillisecond()));
+
+ tagsTable = (TagsTable) catalog.getTable(identifier(tableName + "$tags"));
+ tagManager = table.store().newTagManager();
+ }
+
+ @Test
+ void testTagsTable() throws Exception {
+ List result = read(tagsTable);
+ assertThat(result.size()).isEqualTo(2);
+ assertThat(result.get(0).getString(0).toString()).isEqualTo("202501071158");
+ assertThat(result.get(1).getString(0).toString()).isEqualTo("202501071458");
+ }
+
+ @Override
+ public void after() throws IOException {
+ table.deleteTag("202501071158");
+ table.deleteTag("202501071458");
+ }
+}
From e9845fa76f5a3e089940d074ed01a61aa650cd55 Mon Sep 17 00:00:00 2001
From: xuyu <11161569@vivo.com>
Date: Tue, 7 Jan 2025 20:22:00 +0800
Subject: [PATCH 02/11] fix style
---
paimon-common/src/main/java/org/apache/paimon/CoreOptions.java | 1 -
1 file changed, 1 deletion(-)
diff --git a/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java b/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java
index 42652695f27d..6e7099e92ede 100644
--- a/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java
+++ b/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java
@@ -2885,7 +2885,6 @@ public enum TagCreationPeriod implements DescribedEnum {
DAILY("daily", "Generate a tag every day."),
HOURLY("hourly", "Generate a tag every hour."),
TWO_HOURS("two-hours", "Generate a tag every two hours."),
-
CUSTOM_DURATION("custom-duration", "Generate a tag with custom duration.");
private final String value;
From ffe566866a87048eb8efcc5918eee331cb56f4de Mon Sep 17 00:00:00 2001
From: xuyu <11161569@vivo.com>
Date: Wed, 8 Jan 2025 10:03:58 +0800
Subject: [PATCH 03/11] fix comments
---
.../shortcodes/generated/core_configuration.html | 4 ++--
.../src/main/java/org/apache/paimon/CoreOptions.java | 4 ++--
.../java/org/apache/paimon/tag/TagPeriodHandler.java | 10 ++++------
.../table/system/CustomDurationTagsTableTest.java | 9 +++------
4 files changed, 11 insertions(+), 16 deletions(-)
diff --git a/docs/layouts/shortcodes/generated/core_configuration.html b/docs/layouts/shortcodes/generated/core_configuration.html
index e17f72026ce5..3eab0d0218f2 100644
--- a/docs/layouts/shortcodes/generated/core_configuration.html
+++ b/docs/layouts/shortcodes/generated/core_configuration.html
@@ -931,10 +931,10 @@
What frequency is used to generate tags.
Possible values:- "daily": Generate a tag every day.
- "hourly": Generate a tag every hour.
- "two-hours": Generate a tag every two hours.
- "custom-duration": Generate a tag with custom duration.
|
- tag.custom-duration |
+ tag.create-custom-duration |
(none) |
Duration |
- The custom duration for tag auto create periods. |
+ The custom duration for tag auto create periods.If user set it, tag.creation-period would be invalid. |
tag.default-time-retained |
diff --git a/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java b/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java
index 6e7099e92ede..9dcb45135135 100644
--- a/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java
+++ b/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java
@@ -1243,10 +1243,10 @@ public class CoreOptions implements Serializable {
.withDescription("The date format for tag periods.");
public static final ConfigOption TAG_CUSTOM_DURATION =
- key("tag.custom-duration")
+ key("tag.create-custom-duration")
.durationType()
.noDefaultValue()
- .withDescription("The custom duration for tag auto create periods.");
+ .withDescription("The custom duration for tag auto create periods.If user set it, tag.creation-period would be invalid.");
public static final ConfigOption TAG_NUM_RETAINED_MAX =
key("tag.num-retained-max")
diff --git a/paimon-core/src/main/java/org/apache/paimon/tag/TagPeriodHandler.java b/paimon-core/src/main/java/org/apache/paimon/tag/TagPeriodHandler.java
index 77846b3b4bb3..bb5d19006880 100644
--- a/paimon-core/src/main/java/org/apache/paimon/tag/TagPeriodHandler.java
+++ b/paimon-core/src/main/java/org/apache/paimon/tag/TagPeriodHandler.java
@@ -250,6 +250,10 @@ protected DateTimeFormatter formatter() {
}
static TagPeriodHandler create(CoreOptions options) {
+ if (options.tagCustomDuration().isPresent()) {
+ return new CustomDurationTagPeriodHandler(options.tagCustomDuration().get());
+ }
+
switch (options.tagCreationPeriod()) {
case DAILY:
return new DailyTagPeriodHandler(options.tagPeriodFormatter());
@@ -257,12 +261,6 @@ static TagPeriodHandler create(CoreOptions options) {
return new HourlyTagPeriodHandler(options.tagPeriodFormatter());
case TWO_HOURS:
return new TwoHoursTagPeriodHandler();
- case CUSTOM_DURATION:
- if (!options.tagCustomDuration().isPresent()) {
- throw new IllegalArgumentException(
- "tag.custom-duration must be set if use custom-duration");
- }
- return new CustomDurationTagPeriodHandler(options.tagCustomDuration().get());
default:
throw new UnsupportedOperationException(
"Unsupported " + options.tagCreationPeriod());
diff --git a/paimon-core/src/test/java/org/apache/paimon/table/system/CustomDurationTagsTableTest.java b/paimon-core/src/test/java/org/apache/paimon/table/system/CustomDurationTagsTableTest.java
index 8ab961f78902..7e821125663c 100644
--- a/paimon-core/src/test/java/org/apache/paimon/table/system/CustomDurationTagsTableTest.java
+++ b/paimon-core/src/test/java/org/apache/paimon/table/system/CustomDurationTagsTableTest.java
@@ -41,9 +41,8 @@
/** Unit tests for {@link TagsTable}. */
public class CustomDurationTagsTableTest extends TableTestBase {
- private static final String tableName = "TagTestTable";
+ private static final String tableName = "3TagTestTable";
private TagsTable tagsTable;
- private TagManager tagManager;
private FileStoreTable table;
@BeforeEach
@@ -56,8 +55,7 @@ void before() throws Exception {
.column("sales", DataTypes.INT())
.primaryKey("product_id")
.option("tag.automatic-creation", "watermark")
- .option("tag.creation-period", "custom-duration")
- .option("tag.custom-duration", "120 s")
+ .option("tag.create-custom-duration", "120 s")
.build();
catalog.createTable(identifier, schema, true);
table = (FileStoreTable) catalog.getTable(identifier);
@@ -75,11 +73,10 @@ void before() throws Exception {
.getMillisecond()));
tagsTable = (TagsTable) catalog.getTable(identifier(tableName + "$tags"));
- tagManager = table.store().newTagManager();
}
@Test
- void testTagsTable() throws Exception {
+ void testCreateTagsWithCustomDuration() throws Exception {
List result = read(tagsTable);
assertThat(result.size()).isEqualTo(2);
assertThat(result.get(0).getString(0).toString()).isEqualTo("202501071158");
From 56ecca62db6836c28041ed8d38ddd6bce501f840 Mon Sep 17 00:00:00 2001
From: xuyu <11161569@vivo.com>
Date: Wed, 8 Jan 2025 10:05:52 +0800
Subject: [PATCH 04/11] fix comments
---
paimon-common/src/main/java/org/apache/paimon/CoreOptions.java | 3 ++-
.../paimon/table/system/CustomDurationTagsTableTest.java | 1 -
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java b/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java
index 9dcb45135135..0c6146b9d098 100644
--- a/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java
+++ b/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java
@@ -1246,7 +1246,8 @@ public class CoreOptions implements Serializable {
key("tag.create-custom-duration")
.durationType()
.noDefaultValue()
- .withDescription("The custom duration for tag auto create periods.If user set it, tag.creation-period would be invalid.");
+ .withDescription(
+ "The custom duration for tag auto create periods.If user set it, tag.creation-period would be invalid.");
public static final ConfigOption TAG_NUM_RETAINED_MAX =
key("tag.num-retained-max")
diff --git a/paimon-core/src/test/java/org/apache/paimon/table/system/CustomDurationTagsTableTest.java b/paimon-core/src/test/java/org/apache/paimon/table/system/CustomDurationTagsTableTest.java
index 7e821125663c..806db56e511e 100644
--- a/paimon-core/src/test/java/org/apache/paimon/table/system/CustomDurationTagsTableTest.java
+++ b/paimon-core/src/test/java/org/apache/paimon/table/system/CustomDurationTagsTableTest.java
@@ -27,7 +27,6 @@
import org.apache.paimon.table.TableTestBase;
import org.apache.paimon.table.sink.TableCommitImpl;
import org.apache.paimon.types.DataTypes;
-import org.apache.paimon.utils.TagManager;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
From ab8011ce8bddf26532fb6e7aa0720f1e4118b392 Mon Sep 17 00:00:00 2001
From: xuyu <11161569@vivo.com>
Date: Wed, 8 Jan 2025 10:23:52 +0800
Subject: [PATCH 05/11] fix comments
---
docs/layouts/shortcodes/generated/core_configuration.html | 2 +-
paimon-common/src/main/java/org/apache/paimon/CoreOptions.java | 2 +-
.../apache/paimon/table/system/CustomDurationTagsTableTest.java | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/layouts/shortcodes/generated/core_configuration.html b/docs/layouts/shortcodes/generated/core_configuration.html
index 3eab0d0218f2..ddc8844292dd 100644
--- a/docs/layouts/shortcodes/generated/core_configuration.html
+++ b/docs/layouts/shortcodes/generated/core_configuration.html
@@ -931,7 +931,7 @@
What frequency is used to generate tags.
Possible values:- "daily": Generate a tag every day.
- "hourly": Generate a tag every hour.
- "two-hours": Generate a tag every two hours.
- "custom-duration": Generate a tag with custom duration.
|
- tag.create-custom-duration |
+ tag.creation-period-duration |
(none) |
Duration |
The custom duration for tag auto create periods.If user set it, tag.creation-period would be invalid. |
diff --git a/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java b/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java
index 0c6146b9d098..60882f677a47 100644
--- a/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java
+++ b/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java
@@ -1243,7 +1243,7 @@ public class CoreOptions implements Serializable {
.withDescription("The date format for tag periods.");
public static final ConfigOption TAG_CUSTOM_DURATION =
- key("tag.create-custom-duration")
+ key("tag.creation-period-duration")
.durationType()
.noDefaultValue()
.withDescription(
diff --git a/paimon-core/src/test/java/org/apache/paimon/table/system/CustomDurationTagsTableTest.java b/paimon-core/src/test/java/org/apache/paimon/table/system/CustomDurationTagsTableTest.java
index 806db56e511e..a5304f8853d1 100644
--- a/paimon-core/src/test/java/org/apache/paimon/table/system/CustomDurationTagsTableTest.java
+++ b/paimon-core/src/test/java/org/apache/paimon/table/system/CustomDurationTagsTableTest.java
@@ -54,7 +54,7 @@ void before() throws Exception {
.column("sales", DataTypes.INT())
.primaryKey("product_id")
.option("tag.automatic-creation", "watermark")
- .option("tag.create-custom-duration", "120 s")
+ .option("tag.creation-period-duration", "120 s")
.build();
catalog.createTable(identifier, schema, true);
table = (FileStoreTable) catalog.getTable(identifier);
From 6456c58463b238d64e0f340f311aee4a49f37952 Mon Sep 17 00:00:00 2001
From: xuyu <11161569@vivo.com>
Date: Wed, 8 Jan 2025 10:30:03 +0800
Subject: [PATCH 06/11] fix doc
---
docs/layouts/shortcodes/generated/core_configuration.html | 2 +-
paimon-common/src/main/java/org/apache/paimon/CoreOptions.java | 3 +--
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/docs/layouts/shortcodes/generated/core_configuration.html b/docs/layouts/shortcodes/generated/core_configuration.html
index ddc8844292dd..9ef2ddecab58 100644
--- a/docs/layouts/shortcodes/generated/core_configuration.html
+++ b/docs/layouts/shortcodes/generated/core_configuration.html
@@ -928,7 +928,7 @@
tag.creation-period |
daily |
Enum |
- What frequency is used to generate tags.
Possible values:- "daily": Generate a tag every day.
- "hourly": Generate a tag every hour.
- "two-hours": Generate a tag every two hours.
- "custom-duration": Generate a tag with custom duration.
|
+ What frequency is used to generate tags.
Possible values:- "daily": Generate a tag every day.
- "hourly": Generate a tag every hour.
- "two-hours": Generate a tag every two hours.
|
tag.creation-period-duration |
diff --git a/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java b/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java
index 60882f677a47..15cad793ac26 100644
--- a/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java
+++ b/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java
@@ -2885,8 +2885,7 @@ public InlineElement getDescription() {
public enum TagCreationPeriod implements DescribedEnum {
DAILY("daily", "Generate a tag every day."),
HOURLY("hourly", "Generate a tag every hour."),
- TWO_HOURS("two-hours", "Generate a tag every two hours."),
- CUSTOM_DURATION("custom-duration", "Generate a tag with custom duration.");
+ TWO_HOURS("two-hours", "Generate a tag every two hours.");
private final String value;
private final String description;
From e15d960a006fedf14148a4c6c41c59c8f4a7be73 Mon Sep 17 00:00:00 2001
From: xuyu <11161569@vivo.com>
Date: Wed, 8 Jan 2025 10:38:28 +0800
Subject: [PATCH 07/11] fix name
---
.../src/main/java/org/apache/paimon/CoreOptions.java | 6 +++---
.../main/java/org/apache/paimon/tag/TagPeriodHandler.java | 4 ++--
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java b/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java
index 15cad793ac26..c6eafc196935 100644
--- a/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java
+++ b/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java
@@ -1242,7 +1242,7 @@ public class CoreOptions implements Serializable {
.defaultValue(TagPeriodFormatter.WITH_DASHES)
.withDescription("The date format for tag periods.");
- public static final ConfigOption TAG_CUSTOM_DURATION =
+ public static final ConfigOption TAG_PERIOD_DURATION =
key("tag.creation-period-duration")
.durationType()
.noDefaultValue()
@@ -2245,8 +2245,8 @@ public TagPeriodFormatter tagPeriodFormatter() {
return options.get(TAG_PERIOD_FORMATTER);
}
- public Optional tagCustomDuration() {
- return options.getOptional(TAG_CUSTOM_DURATION);
+ public Optional tagPeriodDuration() {
+ return options.getOptional(TAG_PERIOD_DURATION);
}
@Nullable
diff --git a/paimon-core/src/main/java/org/apache/paimon/tag/TagPeriodHandler.java b/paimon-core/src/main/java/org/apache/paimon/tag/TagPeriodHandler.java
index bb5d19006880..381b943baf4f 100644
--- a/paimon-core/src/main/java/org/apache/paimon/tag/TagPeriodHandler.java
+++ b/paimon-core/src/main/java/org/apache/paimon/tag/TagPeriodHandler.java
@@ -250,8 +250,8 @@ protected DateTimeFormatter formatter() {
}
static TagPeriodHandler create(CoreOptions options) {
- if (options.tagCustomDuration().isPresent()) {
- return new CustomDurationTagPeriodHandler(options.tagCustomDuration().get());
+ if (options.tagPeriodDuration().isPresent()) {
+ return new CustomDurationTagPeriodHandler(options.tagPeriodDuration().get());
}
switch (options.tagCreationPeriod()) {
From 4a95594ded53b936fe7d1b3e5ae547b0d31ca506 Mon Sep 17 00:00:00 2001
From: xuyu <11161569@vivo.com>
Date: Wed, 8 Jan 2025 10:41:49 +0800
Subject: [PATCH 08/11] rename
---
...ationTagsTableTest.java => PeriodDurationTagsTableTest.java} | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
rename paimon-core/src/test/java/org/apache/paimon/table/system/{CustomDurationTagsTableTest.java => PeriodDurationTagsTableTest.java} (98%)
diff --git a/paimon-core/src/test/java/org/apache/paimon/table/system/CustomDurationTagsTableTest.java b/paimon-core/src/test/java/org/apache/paimon/table/system/PeriodDurationTagsTableTest.java
similarity index 98%
rename from paimon-core/src/test/java/org/apache/paimon/table/system/CustomDurationTagsTableTest.java
rename to paimon-core/src/test/java/org/apache/paimon/table/system/PeriodDurationTagsTableTest.java
index a5304f8853d1..713ff131494e 100644
--- a/paimon-core/src/test/java/org/apache/paimon/table/system/CustomDurationTagsTableTest.java
+++ b/paimon-core/src/test/java/org/apache/paimon/table/system/PeriodDurationTagsTableTest.java
@@ -38,7 +38,7 @@
import static org.assertj.core.api.Assertions.assertThat;
/** Unit tests for {@link TagsTable}. */
-public class CustomDurationTagsTableTest extends TableTestBase {
+public class PeriodDurationTagsTableTest extends TableTestBase {
private static final String tableName = "3TagTestTable";
private TagsTable tagsTable;
From 6bd6d8a04f464afc84515671931d10a4501b4657 Mon Sep 17 00:00:00 2001
From: xuyu <11161569@vivo.com>
Date: Wed, 8 Jan 2025 10:43:51 +0800
Subject: [PATCH 09/11] rename
---
.../main/java/org/apache/paimon/tag/TagPeriodHandler.java | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/paimon-core/src/main/java/org/apache/paimon/tag/TagPeriodHandler.java b/paimon-core/src/main/java/org/apache/paimon/tag/TagPeriodHandler.java
index 381b943baf4f..8b5df7e54503 100644
--- a/paimon-core/src/main/java/org/apache/paimon/tag/TagPeriodHandler.java
+++ b/paimon-core/src/main/java/org/apache/paimon/tag/TagPeriodHandler.java
@@ -229,12 +229,12 @@ protected DateTimeFormatter formatter() {
}
}
- /** Two Hours {@link TagPeriodHandler}. */
- class CustomDurationTagPeriodHandler extends BaseTagPeriodHandler {
+ /** Period duration {@link TagPeriodHandler}. */
+ class PeriodDurationTagPeriodHandler extends BaseTagPeriodHandler {
Duration customDuration;
- public CustomDurationTagPeriodHandler(Duration duration) {
+ public PeriodDurationTagPeriodHandler(Duration duration) {
this.customDuration = duration;
}
@@ -251,7 +251,7 @@ protected DateTimeFormatter formatter() {
static TagPeriodHandler create(CoreOptions options) {
if (options.tagPeriodDuration().isPresent()) {
- return new CustomDurationTagPeriodHandler(options.tagPeriodDuration().get());
+ return new PeriodDurationTagPeriodHandler(options.tagPeriodDuration().get());
}
switch (options.tagCreationPeriod()) {
From 609aaf6b73b1dec765ef2bcee49b56028550a5f4 Mon Sep 17 00:00:00 2001
From: xuyu <11161569@vivo.com>
Date: Wed, 8 Jan 2025 10:44:56 +0800
Subject: [PATCH 10/11] rename doc
---
docs/layouts/shortcodes/generated/core_configuration.html | 2 +-
paimon-common/src/main/java/org/apache/paimon/CoreOptions.java | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/layouts/shortcodes/generated/core_configuration.html b/docs/layouts/shortcodes/generated/core_configuration.html
index 9ef2ddecab58..aa5dcccc3b18 100644
--- a/docs/layouts/shortcodes/generated/core_configuration.html
+++ b/docs/layouts/shortcodes/generated/core_configuration.html
@@ -934,7 +934,7 @@
tag.creation-period-duration |
(none) |
Duration |
- The custom duration for tag auto create periods.If user set it, tag.creation-period would be invalid. |
+ The period duration for tag auto create periods.If user set it, tag.creation-period would be invalid. |
tag.default-time-retained |
diff --git a/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java b/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java
index c6eafc196935..75ca93b26e89 100644
--- a/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java
+++ b/paimon-common/src/main/java/org/apache/paimon/CoreOptions.java
@@ -1247,7 +1247,7 @@ public class CoreOptions implements Serializable {
.durationType()
.noDefaultValue()
.withDescription(
- "The custom duration for tag auto create periods.If user set it, tag.creation-period would be invalid.");
+ "The period duration for tag auto create periods.If user set it, tag.creation-period would be invalid.");
public static final ConfigOption TAG_NUM_RETAINED_MAX =
key("tag.num-retained-max")
From 940a8289dd2f5d17869cc24acafbb2e729d65912 Mon Sep 17 00:00:00 2001
From: xuyu <11161569@vivo.com>
Date: Wed, 8 Jan 2025 10:46:43 +0800
Subject: [PATCH 11/11] remove period
---
.../main/java/org/apache/paimon/tag/TagPeriodHandler.java | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/paimon-core/src/main/java/org/apache/paimon/tag/TagPeriodHandler.java b/paimon-core/src/main/java/org/apache/paimon/tag/TagPeriodHandler.java
index 8b5df7e54503..761c3c297315 100644
--- a/paimon-core/src/main/java/org/apache/paimon/tag/TagPeriodHandler.java
+++ b/paimon-core/src/main/java/org/apache/paimon/tag/TagPeriodHandler.java
@@ -232,15 +232,15 @@ protected DateTimeFormatter formatter() {
/** Period duration {@link TagPeriodHandler}. */
class PeriodDurationTagPeriodHandler extends BaseTagPeriodHandler {
- Duration customDuration;
+ Duration periodDuration;
public PeriodDurationTagPeriodHandler(Duration duration) {
- this.customDuration = duration;
+ this.periodDuration = duration;
}
@Override
protected Duration onePeriod() {
- return customDuration;
+ return periodDuration;
}
@Override