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

Reply via email to