This is an automated email from the ASF dual-hosted git repository.

danny0405 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hudi.git


The following commit(s) were added to refs/heads/master by this push:
     new da189952aaca fix(flink): set canonical base path in Hive sync config 
(#18884)
da189952aaca is described below

commit da189952aacabc867ce45701ab2812fd23bd22be
Author: fhan <[email protected]>
AuthorDate: Mon Jun 1 10:51:31 2026 +0800

    fix(flink): set canonical base path in Hive sync config (#18884)
    
    Co-authored-by: fhan <[email protected]>
---
 .../org/apache/hudi/sink/utils/HiveSyncContext.java     |  2 ++
 .../org/apache/hudi/sink/utils/TestHiveSyncContext.java | 17 +++++++++++++++++
 2 files changed, 19 insertions(+)

diff --git 
a/hudi-flink-datasource/hudi-flink/src/main/java/org/apache/hudi/sink/utils/HiveSyncContext.java
 
b/hudi-flink-datasource/hudi-flink/src/main/java/org/apache/hudi/sink/utils/HiveSyncContext.java
index 05b8878c0157..349084e128d9 100644
--- 
a/hudi-flink-datasource/hudi-flink/src/main/java/org/apache/hudi/sink/utils/HiveSyncContext.java
+++ 
b/hudi-flink-datasource/hudi-flink/src/main/java/org/apache/hudi/sink/utils/HiveSyncContext.java
@@ -36,6 +36,7 @@ import org.apache.hadoop.hive.conf.HiveConf;
 
 import java.util.Properties;
 
+import static org.apache.hudi.common.config.HoodieCommonConfig.BASE_PATH;
 import static 
org.apache.hudi.hive.HiveSyncConfigHolder.HIVE_AUTO_CREATE_DATABASE;
 import static org.apache.hudi.hive.HiveSyncConfigHolder.HIVE_IGNORE_EXCEPTIONS;
 import static org.apache.hudi.hive.HiveSyncConfigHolder.HIVE_PASS;
@@ -101,6 +102,7 @@ public class HiveSyncContext {
   @VisibleForTesting
   public static Properties buildSyncConfig(Configuration conf) {
     TypedProperties props = StreamerUtil.flinkConf2TypedProperties(conf);
+    props.setPropertyIfNonNull(BASE_PATH.key(), conf.get(FlinkOptions.PATH));
     props.setPropertyIfNonNull(META_SYNC_BASE_PATH.key(), 
conf.get(FlinkOptions.PATH));
     props.setPropertyIfNonNull(META_SYNC_BASE_FILE_FORMAT.key(), 
conf.get(FlinkOptions.HIVE_SYNC_FILE_FORMAT));
     props.setPropertyIfNonNull(META_SYNC_DATABASE_NAME.key(), 
conf.get(FlinkOptions.HIVE_SYNC_DB));
diff --git 
a/hudi-flink-datasource/hudi-flink/src/test/java/org/apache/hudi/sink/utils/TestHiveSyncContext.java
 
b/hudi-flink-datasource/hudi-flink/src/test/java/org/apache/hudi/sink/utils/TestHiveSyncContext.java
index f246662b5efe..e15135d871c4 100644
--- 
a/hudi-flink-datasource/hudi-flink/src/test/java/org/apache/hudi/sink/utils/TestHiveSyncContext.java
+++ 
b/hudi-flink-datasource/hudi-flink/src/test/java/org/apache/hudi/sink/utils/TestHiveSyncContext.java
@@ -28,6 +28,8 @@ import org.junit.jupiter.api.Test;
 
 import java.util.Properties;
 
+import static org.apache.hudi.common.config.HoodieCommonConfig.BASE_PATH;
+import static org.apache.hudi.sync.common.HoodieSyncConfig.META_SYNC_BASE_PATH;
 import static 
org.apache.hudi.sync.common.HoodieSyncConfig.META_SYNC_PARTITION_FIELDS;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -58,6 +60,21 @@ public class TestHiveSyncContext {
     assertEquals(partitionPathField, 
props2.getProperty(META_SYNC_PARTITION_FIELDS.key()));
   }
 
+  /**
+   * Test table path syncs to both canonical and meta sync base path configs.
+   */
+  @Test
+  void testSyncedBasePath() {
+    Configuration configuration = new Configuration();
+    String basePath = "/tmp/hudi_table";
+    configuration.set(FlinkOptions.PATH, basePath);
+
+    Properties props = HiveSyncContext.buildSyncConfig(configuration);
+
+    assertEquals(basePath, props.getProperty(BASE_PATH.key()));
+    assertEquals(basePath, props.getProperty(META_SYNC_BASE_PATH.key()));
+  }
+
   /**
    * Test an option that has no shortcut key.
    */

Reply via email to