diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/config/HoodieWriteConfig.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/config/HoodieWriteConfig.java index e167b12c82045..0f48e0d2dca33 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/config/HoodieWriteConfig.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/config/HoodieWriteConfig.java @@ -2175,7 +2175,7 @@ protected void setDefaults() { writeConfig.setDefaultOnCondition(!isPayloadConfigSet, HoodiePayloadConfig.newBuilder().fromProperties(writeConfig.getProps()).build()); writeConfig.setDefaultOnCondition(!isMetadataConfigSet, - HoodieMetadataConfig.newBuilder().fromProperties(writeConfig.getProps()).build()); + HoodieMetadataConfig.newBuilder().withEngineType(engineType).fromProperties(writeConfig.getProps()).build()); writeConfig.setDefaultOnCondition(!isLockConfigSet, HoodieLockConfig.newBuilder().fromProperties(writeConfig.getProps()).build()); writeConfig.setDefaultOnCondition(!isPreCommitValidationConfigSet, diff --git a/hudi-client/hudi-java-client/src/test/java/org/apache/hudi/table/action/commit/TestJavaCopyOnWriteActionExecutor.java b/hudi-client/hudi-java-client/src/test/java/org/apache/hudi/table/action/commit/TestJavaCopyOnWriteActionExecutor.java index 4a3f3d5bcef89..796d7b74a83c5 100644 --- a/hudi-client/hudi-java-client/src/test/java/org/apache/hudi/table/action/commit/TestJavaCopyOnWriteActionExecutor.java +++ b/hudi-client/hudi-java-client/src/test/java/org/apache/hudi/table/action/commit/TestJavaCopyOnWriteActionExecutor.java @@ -21,7 +21,6 @@ import org.apache.hudi.client.HoodieJavaWriteClient; import org.apache.hudi.client.WriteStatus; import org.apache.hudi.common.bloom.BloomFilter; -import org.apache.hudi.common.config.HoodieMetadataConfig; import org.apache.hudi.common.engine.EngineType; import org.apache.hudi.common.fs.FSUtils; import org.apache.hudi.common.model.HoodieKey; @@ -115,8 +114,7 @@ private HoodieWriteConfig.Builder makeHoodieClientConfigBuilder() { return HoodieWriteConfig.newBuilder() .withEngineType(EngineType.JAVA) .withPath(basePath) - .withSchema(SCHEMA.toString()) - .withMetadataConfig(HoodieMetadataConfig.newBuilder().enable(false).build()); + .withSchema(SCHEMA.toString()); } @Test diff --git a/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieMetadataConfig.java b/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieMetadataConfig.java index 75d014521ff41..ea99014eacb50 100644 --- a/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieMetadataConfig.java +++ b/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieMetadataConfig.java @@ -18,6 +18,9 @@ package org.apache.hudi.common.config; +import org.apache.hudi.common.engine.EngineType; +import org.apache.hudi.exception.HoodieNotSupportedException; + import javax.annotation.concurrent.Immutable; import java.io.File; @@ -163,6 +166,7 @@ public boolean enableFullScan() { public static class Builder { + private EngineType engineType = EngineType.SPARK; private final HoodieMetadataConfig metadataConfig = new HoodieMetadataConfig(); public Builder fromFile(File propertiesFile) throws IOException { @@ -233,10 +237,28 @@ public Builder enableFullScan(boolean enableFullScan) { return this; } + public Builder withEngineType(EngineType engineType) { + this.engineType = engineType; + return this; + } + public HoodieMetadataConfig build() { + metadataConfig.setDefaultValue(ENABLE, getDefaultMetadataEnable(engineType)); metadataConfig.setDefaults(HoodieMetadataConfig.class.getName()); return metadataConfig; } + + private boolean getDefaultMetadataEnable(EngineType engineType) { + switch (engineType) { + case SPARK: + return ENABLE.defaultValue(); + case FLINK: + case JAVA: + return false; + default: + throw new HoodieNotSupportedException("Unsupported engine " + engineType); + } + } } /**