From e0cd25c13e6cf2d058542f1b5d13f6047a11700b Mon Sep 17 00:00:00 2001 From: KnightChess <981159963@qq.com> Date: Mon, 1 Aug 2022 15:46:27 +0800 Subject: [PATCH] [HUDI-4447] fix no partitioned path extractor error when sync meta --- .../java/org/apache/hudi/sync/common/HoodieSyncConfig.java | 2 +- .../org/apache/hudi/sync/common/TestHoodieSyncConfig.java | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/hudi-sync/hudi-sync-common/src/main/java/org/apache/hudi/sync/common/HoodieSyncConfig.java b/hudi-sync/hudi-sync-common/src/main/java/org/apache/hudi/sync/common/HoodieSyncConfig.java index 093ecdfefd890..d38cbc9524ef8 100644 --- a/hudi-sync/hudi-sync-common/src/main/java/org/apache/hudi/sync/common/HoodieSyncConfig.java +++ b/hudi-sync/hudi-sync-common/src/main/java/org/apache/hudi/sync/common/HoodieSyncConfig.java @@ -86,7 +86,7 @@ public class HoodieSyncConfig extends HoodieConfig { .key("hoodie.datasource.hive_sync.partition_extractor_class") .defaultValue("org.apache.hudi.hive.SlashEncodedDayPartitionValueExtractor") .withInferFunction(cfg -> { - if (cfg.contains(KeyGeneratorOptions.PARTITIONPATH_FIELD_NAME)) { + if (StringUtils.nonEmpty(cfg.getString(KeyGeneratorOptions.PARTITIONPATH_FIELD_NAME))) { int numOfPartFields = cfg.getString(KeyGeneratorOptions.PARTITIONPATH_FIELD_NAME).split(",").length; if (numOfPartFields == 1 && cfg.contains(KeyGeneratorOptions.HIVE_STYLE_PARTITIONING_ENABLE) diff --git a/hudi-sync/hudi-sync-common/src/test/java/org/apache/hudi/sync/common/TestHoodieSyncConfig.java b/hudi-sync/hudi-sync-common/src/test/java/org/apache/hudi/sync/common/TestHoodieSyncConfig.java index eb9d44b9efbb7..ddf07b836e5fc 100644 --- a/hudi-sync/hudi-sync-common/src/test/java/org/apache/hudi/sync/common/TestHoodieSyncConfig.java +++ b/hudi-sync/hudi-sync-common/src/test/java/org/apache/hudi/sync/common/TestHoodieSyncConfig.java @@ -100,6 +100,12 @@ void testInferPartitonExtractorClass() { HoodieSyncConfig config3 = new HoodieSyncConfig(new Properties(), new Configuration()); assertEquals("org.apache.hudi.hive.NonPartitionedExtractor", config3.getStringOrDefault(META_SYNC_PARTITION_EXTRACTOR_CLASS)); + + Properties props4 = new Properties(); + props4.setProperty(KeyGeneratorOptions.PARTITIONPATH_FIELD_NAME.key(), ""); + HoodieSyncConfig config4 = new HoodieSyncConfig(props4, new Configuration()); + assertEquals("org.apache.hudi.hive.NonPartitionedExtractor", + config4.getStringOrDefault(META_SYNC_PARTITION_EXTRACTOR_CLASS)); } @Test