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.
*/