This is an automated email from the ASF dual-hosted git repository.
luoyuxia pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/fluss.git
The following commit(s) were added to refs/heads/main by this push:
new b336f2eb8 [server] Allow altering datalake auto-compaction before lake
enabled (#3458)
b336f2eb8 is described below
commit b336f2eb8502598c64bae9852ece15358a4adfee
Author: Liurnly <[email protected]>
AuthorDate: Wed Jun 10 10:21:38 2026 +0800
[server] Allow altering datalake auto-compaction before lake enabled (#3458)
---
.../org/apache/fluss/config/FlussConfigUtils.java | 1 +
.../server/coordinator/LakeTableManagerITCase.java | 69 ++++++++++++++++++++++
2 files changed, 70 insertions(+)
diff --git
a/fluss-common/src/main/java/org/apache/fluss/config/FlussConfigUtils.java
b/fluss-common/src/main/java/org/apache/fluss/config/FlussConfigUtils.java
index d87e11b84..237acf528 100644
--- a/fluss-common/src/main/java/org/apache/fluss/config/FlussConfigUtils.java
+++ b/fluss-common/src/main/java/org/apache/fluss/config/FlussConfigUtils.java
@@ -48,6 +48,7 @@ public class FlussConfigUtils {
Arrays.asList(
ConfigOptions.TABLE_DATALAKE_ENABLED.key(),
ConfigOptions.TABLE_DATALAKE_FRESHNESS.key(),
+ ConfigOptions.TABLE_DATALAKE_AUTO_COMPACTION.key(),
ConfigOptions.TABLE_TIERED_LOG_LOCAL_SEGMENTS.key(),
ConfigOptions.TABLE_AUTO_PARTITION_NUM_RETENTION.key(),
ConfigOptions.TABLE_AUTO_PARTITION_NUM_PRECREATE.key(),
diff --git
a/fluss-server/src/test/java/org/apache/fluss/server/coordinator/LakeTableManagerITCase.java
b/fluss-server/src/test/java/org/apache/fluss/server/coordinator/LakeTableManagerITCase.java
index dd25e0ef1..52dcafe6f 100644
---
a/fluss-server/src/test/java/org/apache/fluss/server/coordinator/LakeTableManagerITCase.java
+++
b/fluss-server/src/test/java/org/apache/fluss/server/coordinator/LakeTableManagerITCase.java
@@ -238,6 +238,75 @@ class LakeTableManagerITCase {
adminGateway.dropDatabase(newDropDatabaseRequest(db1, false,
true)).get();
}
+ @Test
+ void testAlterDatalakeAutoCompaction() throws Exception {
+ AdminGateway adminGateway = getAdminGateway();
+
+ String db1 = "test_alter_datalake_auto_compaction_db";
+ String tb1 = "tb1";
+ TablePath tablePath = TablePath.of(db1, tb1);
+ adminGateway.createDatabase(newCreateDatabaseRequest(db1,
false)).get();
+
+ Map<String, String> initialProperties = new HashMap<>();
+ initialProperties.put(ConfigOptions.TABLE_DATALAKE_ENABLED.key(),
"true");
+ adminGateway
+ .createTable(
+ newCreateTableRequest(
+ tablePath,
newPkTable().withProperties(initialProperties), false))
+ .get();
+
+ Map<String, String> setProperties = new HashMap<>();
+ setProperties.put(ConfigOptions.TABLE_DATALAKE_AUTO_COMPACTION.key(),
"true");
+ adminGateway
+ .alterTable(
+ newAlterTableRequest(
+ tablePath,
+ setProperties,
+ Collections.emptyList(),
+ Collections.emptyList(),
+ false))
+ .get();
+
+ TableDescriptor disabledLakeTableDescriptor =
+ TableDescriptor.fromJsonBytes(
+ adminGateway
+
.getTableInfo(newGetTableInfoRequest(tablePath))
+ .get()
+ .getTableJson());
+ assertThat(
+ disabledLakeTableDescriptor
+ .getProperties()
+
.get(ConfigOptions.TABLE_DATALAKE_AUTO_COMPACTION.key()))
+ .isEqualTo("true");
+
+ Map<String, String> resetProperties = new HashMap<>();
+
resetProperties.put(ConfigOptions.TABLE_DATALAKE_AUTO_COMPACTION.key(),
"false");
+ adminGateway
+ .alterTable(
+ newAlterTableRequest(
+ tablePath,
+ resetProperties,
+ Collections.emptyList(),
+ Collections.emptyList(),
+ false))
+ .get();
+
+ TableDescriptor tableDescriptorAfterReset =
+ TableDescriptor.fromJsonBytes(
+ adminGateway
+
.getTableInfo(newGetTableInfoRequest(tablePath))
+ .get()
+ .getTableJson());
+ assertThat(
+ tableDescriptorAfterReset
+ .getProperties()
+
.get(ConfigOptions.TABLE_DATALAKE_AUTO_COMPACTION.key()))
+ .isEqualTo("false");
+
+ adminGateway.dropTable(newDropTableRequest(db1, tb1, false)).get();
+ adminGateway.dropDatabase(newDropDatabaseRequest(db1, false,
true)).get();
+ }
+
@Test
void testAlterTableDatalakeFreshnessAffectsTiering() throws Exception {
AdminGateway adminGateway = getAdminGateway();