From acb076e8803baadbec6ae8a36176f931413fd8c1 Mon Sep 17 00:00:00 2001 From: walter Date: Tue, 15 Oct 2024 15:34:55 +0800 Subject: [PATCH] [chore](ddl) support force_enable_feature_binlog (#41796) ... for testing --- .../src/main/java/org/apache/doris/common/Config.java | 5 +++++ .../main/java/org/apache/doris/analysis/CreateDbStmt.java | 7 +++++++ .../src/main/java/org/apache/doris/catalog/Database.java | 3 +++ 3 files changed, 15 insertions(+) diff --git a/fe/fe-common/src/main/java/org/apache/doris/common/Config.java b/fe/fe-common/src/main/java/org/apache/doris/common/Config.java index 1ddfc216068703..f180d5118ae322 100644 --- a/fe/fe-common/src/main/java/org/apache/doris/common/Config.java +++ b/fe/fe-common/src/main/java/org/apache/doris/common/Config.java @@ -2353,6 +2353,11 @@ public class Config extends ConfigBase { "Whether to enable binlog feature"}) public static boolean enable_feature_binlog = false; + @ConfField(mutable = false, description = { + "是否默认为 Database/Table 启用binlog特性", + "Whether to enable binlog feature for Database/Table by default"}) + public static boolean force_enable_feature_binlog = false; + @ConfField(mutable = false, masterOnly = false, varType = VariableAnnotation.EXPERIMENTAL, description = { "设置 binlog 消息最字节长度", "Set the maximum byte length of binlog message"}) diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateDbStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateDbStmt.java index 917784d25ca000..358ee5e4debef8 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateDbStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateDbStmt.java @@ -18,12 +18,14 @@ package org.apache.doris.analysis; import org.apache.doris.catalog.Env; +import org.apache.doris.common.Config; import org.apache.doris.common.ErrorCode; import org.apache.doris.common.ErrorReport; import org.apache.doris.common.FeNameFormat; import org.apache.doris.common.UserException; import org.apache.doris.common.util.InternalDatabaseUtil; import org.apache.doris.common.util.PrintableMap; +import org.apache.doris.common.util.PropertyAnalyzer; import org.apache.doris.mysql.privilege.PrivPredicate; import org.apache.doris.qe.ConnectContext; @@ -43,6 +45,11 @@ public CreateDbStmt(boolean ifNotExists, DbName dbName, Map prop this.ctlName = dbName.getCtl(); this.dbName = dbName.getDb(); this.properties = properties == null ? new HashMap<>() : properties; + + if (Config.force_enable_feature_binlog + && !this.properties.containsKey(PropertyAnalyzer.PROPERTIES_BINLOG_ENABLE)) { + this.properties.put(PropertyAnalyzer.PROPERTIES_BINLOG_ENABLE, "true"); + } } public String getFullDbName() { diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Database.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/Database.java index 6862c3b61c02a3..f6d46db5ee53e8 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Database.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Database.java @@ -289,6 +289,9 @@ public DatabaseProperty getDbProperties() { public void setDbProperties(DatabaseProperty dbProperties) { this.dbProperties = dbProperties; + if (PropertyAnalyzer.hasBinlogConfig(dbProperties.getProperties())) { + binlogConfig = dbProperties.getBinlogConfig(); + } } public long getUsedDataQuotaWithLock() {