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

morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-doris.git


The following commit(s) were added to refs/heads/master by this push:
     new ae01804  [Alter] Support replication_num setting for table level 
(#2737)
ae01804 is described below

commit ae018043b06c529d76e2177485bf14308dac38c5
Author: caiconghui <[email protected]>
AuthorDate: Sat Jan 18 21:17:22 2020 +0800

    [Alter] Support replication_num setting for table level (#2737)
    
    Support replication_num setting for table level, so There is no need for 
user to set replication_num for every alter table add partition statement.
    
    eg:
    `alter table tbl set ("default.replication_num" = "2");`
---
 .../apache/doris/alter/SchemaChangeHandler.java    |  3 +
 .../analysis/ModifyTablePropertiesClause.java      |  9 +++
 .../java/org/apache/doris/catalog/Catalog.java     | 73 +++++++++++++---------
 .../java/org/apache/doris/catalog/OlapTable.java   | 19 +++++-
 .../org/apache/doris/catalog/TableProperty.java    | 37 ++++++++++-
 .../doris/common/util/DynamicPartitionUtil.java    |  5 +-
 .../apache/doris/http/rest/GetDdlStmtAction.java   |  3 +-
 .../org/apache/doris/journal/JournalEntity.java    |  7 ++-
 .../java/org/apache/doris/persist/EditLog.java     | 13 ++--
 ...o.java => ModifyTablePropertyOperationLog.java} |  8 +--
 .../org/apache/doris/persist/OperationType.java    |  3 +
 .../java/org/apache/doris/qe/ShowExecutor.java     |  2 +-
 .../java/org/apache/doris/catalog/FakeEditLog.java |  4 +-
 .../persist/ModifyDynamicPartitionInfoTest.java    |  6 +-
 .../java/org/apache/doris/qe/ShowExecutorTest.java |  4 +-
 15 files changed, 141 insertions(+), 55 deletions(-)

diff --git a/fe/src/main/java/org/apache/doris/alter/SchemaChangeHandler.java 
b/fe/src/main/java/org/apache/doris/alter/SchemaChangeHandler.java
index 92edff6..fbe36e5 100644
--- a/fe/src/main/java/org/apache/doris/alter/SchemaChangeHandler.java
+++ b/fe/src/main/java/org/apache/doris/alter/SchemaChangeHandler.java
@@ -1345,6 +1345,9 @@ public class SchemaChangeHandler extends AlterHandler {
                 } else if 
(DynamicPartitionUtil.checkDynamicPartitionPropertiesExist(properties)) {
                     
Catalog.getCurrentCatalog().modifyTableDynamicPartition(db, olapTable, 
properties);
                     return;
+                } else if 
(properties.containsKey(PropertyAnalyzer.PROPERTIES_REPLICATION_NUM)) {
+                    Catalog.getCurrentCatalog().modifyTableReplicationNum(db, 
olapTable, properties);
+                    return;
                 }
             }
 
diff --git 
a/fe/src/main/java/org/apache/doris/analysis/ModifyTablePropertiesClause.java 
b/fe/src/main/java/org/apache/doris/analysis/ModifyTablePropertiesClause.java
index e9b3018..1f4618e 100644
--- 
a/fe/src/main/java/org/apache/doris/analysis/ModifyTablePropertiesClause.java
+++ 
b/fe/src/main/java/org/apache/doris/analysis/ModifyTablePropertiesClause.java
@@ -76,6 +76,15 @@ public class ModifyTablePropertiesClause extends 
AlterTableClause {
             }
         } else if 
(DynamicPartitionUtil.checkDynamicPartitionPropertiesExist(properties)) {
             // do nothing, dynamic properties will be analyzed in 
SchemaChangeHandler.process
+        } else if 
(properties.containsKey(PropertyAnalyzer.PROPERTIES_REPLICATION_NUM)) {
+            String defaultReplicationNumName = "default." + 
PropertyAnalyzer.PROPERTIES_REPLICATION_NUM;
+            throw new AnalysisException("Please use " + 
defaultReplicationNumName +
+                    " instead of " + 
PropertyAnalyzer.PROPERTIES_REPLICATION_NUM + " config to escape misleading, 
this operation" +
+                    " doesn't support changing the replication_num of the 
table data");
+        } else if (properties.containsKey("default." + 
PropertyAnalyzer.PROPERTIES_REPLICATION_NUM)) {
+            String defaultReplicationNumName = "default." + 
PropertyAnalyzer.PROPERTIES_REPLICATION_NUM;
+            properties.put(PropertyAnalyzer.PROPERTIES_REPLICATION_NUM, 
properties.get(defaultReplicationNumName));
+            properties.remove(defaultReplicationNumName);
         } else {
             throw new AnalysisException("Unknown table property: " + 
properties.keySet());
         }
diff --git a/fe/src/main/java/org/apache/doris/catalog/Catalog.java 
b/fe/src/main/java/org/apache/doris/catalog/Catalog.java
index 704193d..52c4ecc 100644
--- a/fe/src/main/java/org/apache/doris/catalog/Catalog.java
+++ b/fe/src/main/java/org/apache/doris/catalog/Catalog.java
@@ -157,7 +157,7 @@ import org.apache.doris.persist.DatabaseInfo;
 import org.apache.doris.persist.DropInfo;
 import org.apache.doris.persist.DropLinkDbAndUpdateDbInfo;
 import org.apache.doris.persist.DropPartitionInfo;
-import org.apache.doris.persist.ModifyDynamicPartitionInfo;
+import org.apache.doris.persist.ModifyTablePropertyOperationLog;
 import org.apache.doris.persist.EditLog;
 import org.apache.doris.persist.ModifyPartitionInfo;
 import org.apache.doris.persist.PartitionPersistInfo;
@@ -242,6 +242,7 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicLong;
 
+
 public class Catalog {
     private static final Logger LOG = LogManager.getLogger(Catalog.class);
     // 0 ~ 9999 used for qe
@@ -2912,8 +2913,13 @@ public class Catalog {
             // check range
             RangePartitionInfo rangePartitionInfo = (RangePartitionInfo) 
partitionInfo;
             // here we check partition's properties
-            
singlePartitionDesc.analyze(rangePartitionInfo.getPartitionColumns().size(), 
null);
-
+            Short replicationNum = olapTable.getReplicationNum();
+            Map<String, String> partitionDescProperties = null;
+            if (replicationNum != null) {
+                partitionDescProperties = new HashMap<>();
+                
partitionDescProperties.put(PropertyAnalyzer.PROPERTIES_REPLICATION_NUM, 
replicationNum.toString());
+            }
+            
singlePartitionDesc.analyze(rangePartitionInfo.getPartitionColumns().size(), 
partitionDescProperties);
             rangePartitionInfo.checkAndCreateRange(singlePartitionDesc);
 
             // get distributionInfo
@@ -3473,6 +3479,18 @@ public class Catalog {
             throw new DdlException(e.getMessage());
         }
 
+        // analyze replication_num
+        short replicationNum = FeConstants.default_replication_num;
+        try {
+            boolean isReplicationNumSet = properties != null && 
properties.containsKey(PropertyAnalyzer.PROPERTIES_REPLICATION_NUM);
+            replicationNum = 
PropertyAnalyzer.analyzeReplicationNum(properties, replicationNum);
+            if (isReplicationNumSet) {
+                olapTable.setReplicationNum(replicationNum);
+            }
+        } catch (AnalysisException e) {
+            throw new DdlException(e.getMessage());
+        }
+
         if (partitionInfo.getType() == PartitionType.UNPARTITIONED) {
             // if this is an unpartitioned table, we should analyze data 
property and replication num here.
             // if this is a partitioned table, there properties are already 
analyzed in RangePartitionDesc analyze phase.
@@ -3489,14 +3507,6 @@ public class Catalog {
             }
             Preconditions.checkNotNull(dataProperty);
             partitionInfo.setDataProperty(partitionId, dataProperty);
-
-            // analyze replication num
-            short replicationNum = FeConstants.default_replication_num;
-            try {
-                replicationNum = 
PropertyAnalyzer.analyzeReplicationNum(properties, replicationNum);
-            } catch (AnalysisException e) {
-                throw new DdlException(e.getMessage());
-            }
             partitionInfo.setReplicationNum(partitionId, replicationNum);
         }
 
@@ -3573,8 +3583,6 @@ public class Catalog {
                     // just for remove entries in stmt.getProperties(),
                     // and then check if there still has unknown properties
                     PropertyAnalyzer.analyzeDataProperty(stmt.getProperties(), 
DataProperty.DEFAULT_HDD_DATA_PROPERTY);
-                    PropertyAnalyzer.analyzeReplicationNum(properties, 
FeConstants.default_replication_num);
-
                     
DynamicPartitionUtil.checkAndSetDynamicPartitionProperty(olapTable, properties);
 
                     if (properties != null && !properties.isEmpty()) {
@@ -3787,8 +3795,7 @@ public class Catalog {
     }
 
     public static void getDdlStmt(Table table, List<String> createTableStmt, 
List<String> addPartitionStmt,
-                                  List<String> createRollupStmt, boolean 
separatePartition, short replicationNum,
-                                  boolean hidePassword) {
+                                  List<String> createRollupStmt, boolean 
separatePartition, boolean hidePassword) {
         StringBuilder sb = new StringBuilder();
 
         // 1. create table
@@ -3891,11 +3898,6 @@ public class Catalog {
                         .append("\"");
             }
 
-            if (replicationNum > 0) {
-                sb.append(",\n 
\"").append(PropertyAnalyzer.PROPERTIES_REPLICATION_NUM).append("\" = \"");
-                sb.append(replicationNum).append("\"");
-            }
-
             // 5. colocateTable
             String colocateTable = olapTable.getColocateGroup();
             if (colocateTable != null) {
@@ -3908,6 +3910,12 @@ public class Catalog {
                 
sb.append(olapTable.getTableProperty().getDynamicPartitionProperty().toString());
             }
 
+            // 7. replicationNum
+            Short replicationNum = olapTable.getReplicationNum();
+            if (replicationNum != null) {
+                sb.append(",\n 
\"").append(PropertyAnalyzer.PROPERTIES_REPLICATION_NUM).append("\" = \"");
+                sb.append(replicationNum).append("\"");
+            }
             sb.append("\n)");
         } else if (table.getType() == TableType.MYSQL) {
             MysqlTable mysqlTable = (MysqlTable) table;
@@ -3996,14 +4004,9 @@ public class Catalog {
                 sb.append(" ADD PARTITION 
").append(partition.getName()).append(" VALUES [");
                 sb.append(entry.getValue().lowerEndpoint().toSql());
                 sb.append(", 
").append(entry.getValue().upperEndpoint().toSql()).append(")");
-
                 sb.append("(\"version_info\" = \"");
                 sb.append(Joiner.on(",").join(partition.getVisibleVersion(), 
partition.getVisibleVersionHash()))
                         .append("\"");
-                if (replicationNum > 0) {
-                    sb.append(", \"replication_num\" = 
\"").append(replicationNum).append("\"");
-                }
-
                 sb.append(");");
                 addPartitionStmt.add(sb.toString());
             }
@@ -5094,16 +5097,17 @@ public class Catalog {
         } else {
             Map<String, String> analyzedDynamicPartition = 
DynamicPartitionUtil.analyzeDynamicPartition(properties);
             tableProperty.modifyTableProperties(analyzedDynamicPartition);
+            tableProperty.buildDynamicProperty();
         }
 
         DynamicPartitionUtil.registerOrRemoveDynamicPartitionTable(db.getId(), 
table);
         dynamicPartitionScheduler.createOrUpdateRuntimeInfo(
                 table.getName(), DynamicPartitionScheduler.LAST_UPDATE_TIME, 
TimeUtils.getCurrentFormatTime());
-        ModifyDynamicPartitionInfo info = new 
ModifyDynamicPartitionInfo(db.getId(), table.getId(), 
table.getTableProperty().getProperties());
+        ModifyTablePropertyOperationLog info = new 
ModifyTablePropertyOperationLog(db.getId(), table.getId(), properties);
         editLog.logDynamicPartition(info);
     }
 
-    public void replayModifyTableDynamicPartition(ModifyDynamicPartitionInfo 
info) {
+    public void replayModifyTableProperty(short opCode, 
ModifyTablePropertyOperationLog info) {
         long dbId = info.getDbId();
         long tableId = info.getTableId();
         Map<String, String> properties = info.getProperties();
@@ -5114,15 +5118,28 @@ public class Catalog {
             OlapTable olapTable = (OlapTable) db.getTable(tableId);
             TableProperty tableProperty = olapTable.getTableProperty();
             if (tableProperty == null) {
-                olapTable.setTableProperty(new 
TableProperty(properties).buildDynamicProperty());
+                olapTable.setTableProperty(new 
TableProperty(properties).buildProperty(opCode));
             } else {
                 tableProperty.modifyTableProperties(properties);
+                tableProperty.buildProperty(opCode);
             }
         } finally {
             db.writeUnlock();
         }
     }
 
+    public void modifyTableReplicationNum(Database db, OlapTable table, 
Map<String, String> properties) throws DdlException {
+        TableProperty tableProperty = table.getTableProperty();
+        if (tableProperty == null) {
+            tableProperty = new TableProperty(properties);
+        } else {
+            tableProperty.modifyTableProperties(properties);
+        }
+        tableProperty.buildReplicationNum();
+        ModifyTablePropertyOperationLog info = new 
ModifyTablePropertyOperationLog(db.getId(), table.getId(), properties);
+        editLog.logModifyReplicationNum(info);
+    }
+
     /*
      * used for handling AlterClusterStmt
      * (for client is the ALTER CLUSTER command).
diff --git a/fe/src/main/java/org/apache/doris/catalog/OlapTable.java 
b/fe/src/main/java/org/apache/doris/catalog/OlapTable.java
index 459d023..62374a9 100644
--- a/fe/src/main/java/org/apache/doris/catalog/OlapTable.java
+++ b/fe/src/main/java/org/apache/doris/catalog/OlapTable.java
@@ -898,7 +898,7 @@ public class OlapTable extends Table {
             out.writeBoolean(false);
         }
       
-        //dynamicProperties
+        // tableProperty
         if (tableProperty == null) {
             out.writeBoolean(false);
         } else {
@@ -1005,7 +1005,7 @@ public class OlapTable extends Table {
                 this.indexes = TableIndexes.read(in);
             }
         }
-        // dynamic partition
+        // tableProperty
         if (Catalog.getCurrentCatalogJournalVersion() >= 
FeMetaVersion.VERSION_71) {
             if (in.readBoolean()) {
                 tableProperty = TableProperty.read(in);
@@ -1203,4 +1203,19 @@ public class OlapTable extends Table {
         }
         return hasChanged;
     }
+
+    public void setReplicationNum(Short replicationNum) {
+        if (tableProperty == null) {
+            tableProperty = new TableProperty(new HashMap<>());
+        }
+        
tableProperty.modifyTableProperties(PropertyAnalyzer.PROPERTIES_REPLICATION_NUM,
 replicationNum.toString());
+        tableProperty.buildReplicationNum();
+    }
+
+    public Short getReplicationNum() {
+        if (tableProperty != null) {
+            return tableProperty.getReplicationNum();
+        }
+        return null;
+    }
 }
diff --git a/fe/src/main/java/org/apache/doris/catalog/TableProperty.java 
b/fe/src/main/java/org/apache/doris/catalog/TableProperty.java
index ed9d966..e5c090e 100644
--- a/fe/src/main/java/org/apache/doris/catalog/TableProperty.java
+++ b/fe/src/main/java/org/apache/doris/catalog/TableProperty.java
@@ -20,6 +20,8 @@ package org.apache.doris.catalog;
 import com.google.gson.annotations.SerializedName;
 import org.apache.doris.common.io.Text;
 import org.apache.doris.common.io.Writable;
+import org.apache.doris.common.util.PropertyAnalyzer;
+import org.apache.doris.persist.OperationType;
 import org.apache.doris.persist.gson.GsonUtils;
 
 import java.io.DataInput;
@@ -41,8 +43,12 @@ public class TableProperty implements Writable {
 
     private DynamicPartitionProperty dynamicPartitionProperty;
 
+    private Short replicationNum;
+
     public TableProperty(Map<String, String> properties) {
         this.properties = properties;
+        dynamicPartitionProperty = null;
+        replicationNum = null;
     }
 
     public static boolean isSamePrefixProperties(Map<String, String> 
properties, String prefix) {
@@ -54,6 +60,19 @@ public class TableProperty implements Writable {
         return true;
     }
 
+    public TableProperty buildProperty(short opCode) {
+        switch (opCode) {
+            case OperationType.OP_DYNAMIC_PARTITION:
+                buildDynamicProperty();
+                break;
+            case OperationType.OP_MODIFY_REPLICATION_NUM:
+                buildReplicationNum();
+                break;
+            default:
+                break;
+        }
+        return this;
+    }
     public TableProperty buildDynamicProperty() {
         HashMap<String, String> dynamicPartitionProperties = new HashMap<>();
         for (Map.Entry<String, String> entry : properties.entrySet()) {
@@ -65,9 +84,19 @@ public class TableProperty implements Writable {
         return this;
     }
 
+    public TableProperty buildReplicationNum() {
+        if 
(properties.containsKey(PropertyAnalyzer.PROPERTIES_REPLICATION_NUM)) {
+            replicationNum = 
Short.valueOf(properties.get(PropertyAnalyzer.PROPERTIES_REPLICATION_NUM));
+        }
+        return this;
+    }
+
     void modifyTableProperties(Map<String, String> modifyProperties) {
         properties.putAll(modifyProperties);
-        buildDynamicProperty();
+    }
+
+    void modifyTableProperties(String key, String value) {
+        properties.put(key, value);
     }
 
     public Map<String, String> getProperties() {
@@ -78,12 +107,16 @@ public class TableProperty implements Writable {
         return dynamicPartitionProperty;
     }
 
+    public Short getReplicationNum() {
+        return replicationNum;
+    }
+
     @Override
     public void write(DataOutput out) throws IOException {
         Text.writeString(out, GsonUtils.GSON.toJson(this));
     }
 
     public static TableProperty read(DataInput in) throws IOException {
-        return GsonUtils.GSON.fromJson(Text.readString(in), 
TableProperty.class).buildDynamicProperty();
+        return GsonUtils.GSON.fromJson(Text.readString(in), 
TableProperty.class).buildDynamicProperty().buildReplicationNum();
     }
 }
diff --git 
a/fe/src/main/java/org/apache/doris/common/util/DynamicPartitionUtil.java 
b/fe/src/main/java/org/apache/doris/common/util/DynamicPartitionUtil.java
index 83f5097..deff014 100644
--- a/fe/src/main/java/org/apache/doris/common/util/DynamicPartitionUtil.java
+++ b/fe/src/main/java/org/apache/doris/common/util/DynamicPartitionUtil.java
@@ -35,6 +35,7 @@ import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.DdlException;
 import org.apache.doris.common.ErrorCode;
 import org.apache.doris.common.ErrorReport;
+import org.apache.doris.common.FeConstants;
 import org.apache.doris.common.FeNameFormat;
 
 import java.text.SimpleDateFormat;
@@ -193,7 +194,7 @@ public class DynamicPartitionUtil {
 
     public static void checkAlterAllowed(OlapTable olapTable) throws 
DdlException {
         TableProperty tableProperty = olapTable.getTableProperty();
-        if (tableProperty != null &&
+        if (tableProperty != null && 
tableProperty.getDynamicPartitionProperty() != null &&
                 tableProperty.getDynamicPartitionProperty().isExist() &&
                 tableProperty.getDynamicPartitionProperty().getEnable()) {
             throw new DdlException("Cannot modify partition on a Dynamic 
Partition Table, set `dynamic_partition.enable` to false firstly.");
@@ -254,7 +255,7 @@ public class DynamicPartitionUtil {
     }
 
     public static int estimateReplicateNum(OlapTable table) {
-        int replicateNum = 3;
+        int replicateNum = table.getReplicationNum() == null ? 
FeConstants.default_replication_num : table.getReplicationNum();
         long maxPartitionId = 0;
         for (Partition partition: table.getPartitions()) {
             if (partition.getId() > maxPartitionId) {
diff --git a/fe/src/main/java/org/apache/doris/http/rest/GetDdlStmtAction.java 
b/fe/src/main/java/org/apache/doris/http/rest/GetDdlStmtAction.java
index e44b080..bd26e59 100644
--- a/fe/src/main/java/org/apache/doris/http/rest/GetDdlStmtAction.java
+++ b/fe/src/main/java/org/apache/doris/http/rest/GetDdlStmtAction.java
@@ -88,8 +88,7 @@ public class GetDdlStmtAction extends RestBaseAction {
                 throw new DdlException("Table[" + tableName + "] does not 
exist");
             }
 
-            Catalog.getDdlStmt(table, createTableStmt, addPartitionStmt, 
createRollupStmt, true, (short) 1,
-                               false /* show password */);
+            Catalog.getDdlStmt(table, createTableStmt, addPartitionStmt, 
createRollupStmt, true, false /* show password */);
 
         } finally {
             db.readUnlock();
diff --git a/fe/src/main/java/org/apache/doris/journal/JournalEntity.java 
b/fe/src/main/java/org/apache/doris/journal/JournalEntity.java
index ddffb73..c03c33d 100644
--- a/fe/src/main/java/org/apache/doris/journal/JournalEntity.java
+++ b/fe/src/main/java/org/apache/doris/journal/JournalEntity.java
@@ -54,9 +54,9 @@ import org.apache.doris.persist.DatabaseInfo;
 import org.apache.doris.persist.DropInfo;
 import org.apache.doris.persist.DropLinkDbAndUpdateDbInfo;
 import org.apache.doris.persist.DropPartitionInfo;
-import org.apache.doris.persist.ModifyDynamicPartitionInfo;
 import org.apache.doris.persist.HbPackage;
 import org.apache.doris.persist.ModifyPartitionInfo;
+import org.apache.doris.persist.ModifyTablePropertyOperationLog;
 import org.apache.doris.persist.OperationType;
 import org.apache.doris.persist.PartitionPersistInfo;
 import org.apache.doris.persist.PrivInfo;
@@ -498,8 +498,9 @@ public class JournalEntity implements Writable {
                 isRead = true;
                 break;
             }
-            case OperationType.OP_DYNAMIC_PARTITION: {
-                data = ModifyDynamicPartitionInfo.read(in);
+            case OperationType.OP_DYNAMIC_PARTITION:
+            case OperationType.OP_MODIFY_REPLICATION_NUM: {
+                data = ModifyTablePropertyOperationLog.read(in);
                 isRead = true;
                 break;
             }
diff --git a/fe/src/main/java/org/apache/doris/persist/EditLog.java 
b/fe/src/main/java/org/apache/doris/persist/EditLog.java
index 2e26de1..0d7f25b 100644
--- a/fe/src/main/java/org/apache/doris/persist/EditLog.java
+++ b/fe/src/main/java/org/apache/doris/persist/EditLog.java
@@ -697,9 +697,10 @@ public class EditLog {
                     catalog.replayConvertDistributionType(tableInfo);
                     break;
                 }
-                case OperationType.OP_DYNAMIC_PARTITION: {
-                    ModifyDynamicPartitionInfo modifyDynamicPartitionInfo = 
(ModifyDynamicPartitionInfo) journal.getData();
-                    
catalog.replayModifyTableDynamicPartition(modifyDynamicPartitionInfo);
+                case OperationType.OP_DYNAMIC_PARTITION:
+                case OperationType.OP_MODIFY_REPLICATION_NUM: {
+                    ModifyTablePropertyOperationLog 
modifyTablePropertyOperationLog = (ModifyTablePropertyOperationLog) 
journal.getData();
+                    catalog.replayModifyTableProperty(opCode, 
modifyTablePropertyOperationLog);
                     break;
                 }
                 default: {
@@ -1204,7 +1205,11 @@ public class EditLog {
         logEdit(OperationType.OP_MODIFY_DISTRIBUTION_TYPE, tableInfo);
     }
 
-    public void logDynamicPartition(ModifyDynamicPartitionInfo info) {
+    public void logDynamicPartition(ModifyTablePropertyOperationLog info) {
         logEdit(OperationType.OP_DYNAMIC_PARTITION, info);
     }
+
+    public void logModifyReplicationNum(ModifyTablePropertyOperationLog info) {
+        logEdit(OperationType.OP_MODIFY_REPLICATION_NUM, info);
+    }
 }
diff --git 
a/fe/src/main/java/org/apache/doris/persist/ModifyDynamicPartitionInfo.java 
b/fe/src/main/java/org/apache/doris/persist/ModifyTablePropertyOperationLog.java
similarity index 86%
rename from 
fe/src/main/java/org/apache/doris/persist/ModifyDynamicPartitionInfo.java
rename to 
fe/src/main/java/org/apache/doris/persist/ModifyTablePropertyOperationLog.java
index 90051be..044ded7 100644
--- a/fe/src/main/java/org/apache/doris/persist/ModifyDynamicPartitionInfo.java
+++ 
b/fe/src/main/java/org/apache/doris/persist/ModifyTablePropertyOperationLog.java
@@ -28,7 +28,7 @@ import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
 
-public class ModifyDynamicPartitionInfo implements Writable {
+public class ModifyTablePropertyOperationLog implements Writable {
 
     @SerializedName(value = "dbId")
     private long dbId;
@@ -37,7 +37,7 @@ public class ModifyDynamicPartitionInfo implements Writable {
     @SerializedName(value = "properties")
     private Map<String, String> properties = new HashMap<>();
 
-    public ModifyDynamicPartitionInfo(long dbId, long tableId, Map<String, 
String> properties) {
+    public ModifyTablePropertyOperationLog(long dbId, long tableId, 
Map<String, String> properties) {
         this.dbId = dbId;
         this.tableId = tableId;
         this.properties = properties;
@@ -60,7 +60,7 @@ public class ModifyDynamicPartitionInfo implements Writable {
         Text.writeString(out, GsonUtils.GSON.toJson(this));
     }
 
-    public static ModifyDynamicPartitionInfo read(DataInput in) throws 
IOException {
-        return GsonUtils.GSON.fromJson(Text.readString(in), 
ModifyDynamicPartitionInfo.class);
+    public static ModifyTablePropertyOperationLog read(DataInput in) throws 
IOException {
+        return GsonUtils.GSON.fromJson(Text.readString(in), 
ModifyTablePropertyOperationLog.class);
     }
 }
diff --git a/fe/src/main/java/org/apache/doris/persist/OperationType.java 
b/fe/src/main/java/org/apache/doris/persist/OperationType.java
index 0e117a0..cd569a9 100644
--- a/fe/src/main/java/org/apache/doris/persist/OperationType.java
+++ b/fe/src/main/java/org/apache/doris/persist/OperationType.java
@@ -156,4 +156,7 @@ public class OperationType {
 
     // dynamic partition 261~265
     public static final short OP_DYNAMIC_PARTITION = 261;
+
+    // set table replicatin_num config 266
+    public static final short OP_MODIFY_REPLICATION_NUM = 266;
 }
diff --git a/fe/src/main/java/org/apache/doris/qe/ShowExecutor.java 
b/fe/src/main/java/org/apache/doris/qe/ShowExecutor.java
index 5201d26..82b8d02 100644
--- a/fe/src/main/java/org/apache/doris/qe/ShowExecutor.java
+++ b/fe/src/main/java/org/apache/doris/qe/ShowExecutor.java
@@ -560,7 +560,7 @@ public class ShowExecutor {
             }
 
             List<String> createTableStmt = Lists.newArrayList();
-            Catalog.getDdlStmt(table, createTableStmt, null, null, false, 
(short) -1, true /* hide password */);
+            Catalog.getDdlStmt(table, createTableStmt, null, null, false, true 
/* hide password */);
             if (createTableStmt.isEmpty()) {
                 resultSet = new ShowResultSet(showStmt.getMetaData(), rows);
                 return;
diff --git a/fe/src/test/java/org/apache/doris/catalog/FakeEditLog.java 
b/fe/src/test/java/org/apache/doris/catalog/FakeEditLog.java
index 05ff493..e101424 100644
--- a/fe/src/test/java/org/apache/doris/catalog/FakeEditLog.java
+++ b/fe/src/test/java/org/apache/doris/catalog/FakeEditLog.java
@@ -22,7 +22,7 @@ import org.apache.doris.alter.RollupJob;
 import org.apache.doris.alter.SchemaChangeJob;
 import org.apache.doris.cluster.Cluster;
 import org.apache.doris.persist.EditLog;
-import org.apache.doris.persist.ModifyDynamicPartitionInfo;
+import org.apache.doris.persist.ModifyTablePropertyOperationLog;
 import org.apache.doris.persist.RoutineLoadOperation;
 import org.apache.doris.system.Backend;
 import org.apache.doris.transaction.TransactionState;
@@ -103,7 +103,7 @@ public class FakeEditLog extends MockUp<EditLog> {
     }
 
     @Mock
-    public void logDynamicPartition(ModifyDynamicPartitionInfo info) {
+    public void logDynamicPartition(ModifyTablePropertyOperationLog info) {
 
     }
 
diff --git 
a/fe/src/test/java/org/apache/doris/persist/ModifyDynamicPartitionInfoTest.java 
b/fe/src/test/java/org/apache/doris/persist/ModifyDynamicPartitionInfoTest.java
index 27406e2..6e0dbf6 100644
--- 
a/fe/src/test/java/org/apache/doris/persist/ModifyDynamicPartitionInfoTest.java
+++ 
b/fe/src/test/java/org/apache/doris/persist/ModifyDynamicPartitionInfoTest.java
@@ -31,7 +31,7 @@ import java.io.IOException;
 import java.util.HashMap;
 
 public class ModifyDynamicPartitionInfoTest {
-    private String fileName = "./ModifyDynamicPartitionInfoTest";
+    private String fileName = "./ModifyTablePropertyOperationLogTest";
 
     @After
     public void tearDown() {
@@ -52,14 +52,14 @@ public class ModifyDynamicPartitionInfoTest {
         properties.put(DynamicPartitionProperty.END, "3");
         properties.put(DynamicPartitionProperty.PREFIX, "p");
         properties.put(DynamicPartitionProperty.BUCKETS, "30");
-        ModifyDynamicPartitionInfo modifyDynamicPartitionInfo = new 
ModifyDynamicPartitionInfo(100L, 200L, properties);
+        ModifyTablePropertyOperationLog modifyDynamicPartitionInfo = new 
ModifyTablePropertyOperationLog(100L, 200L, properties);
         modifyDynamicPartitionInfo.write(out);
         out.flush();
         out.close();
 
         // 2. Read objects from file
         DataInputStream in = new DataInputStream(new FileInputStream(file));
-        ModifyDynamicPartitionInfo readModifyDynamicPartitionInfo = 
ModifyDynamicPartitionInfo.read(in);
+        ModifyTablePropertyOperationLog readModifyDynamicPartitionInfo = 
ModifyTablePropertyOperationLog.read(in);
         Assert.assertEquals(readModifyDynamicPartitionInfo.getDbId(), 100L);
         Assert.assertEquals(readModifyDynamicPartitionInfo.getTableId(), 200L);
         Assert.assertEquals(readModifyDynamicPartitionInfo.getProperties(), 
properties);
diff --git a/fe/src/test/java/org/apache/doris/qe/ShowExecutorTest.java 
b/fe/src/test/java/org/apache/doris/qe/ShowExecutorTest.java
index 003156f..397c49c 100644
--- a/fe/src/test/java/org/apache/doris/qe/ShowExecutorTest.java
+++ b/fe/src/test/java/org/apache/doris/qe/ShowExecutorTest.java
@@ -199,10 +199,10 @@ public class ShowExecutorTest {
                 minTimes = 0;
                 result = catalog;
 
-                Catalog.getDdlStmt((Table) any, (List) any, (List) any, (List) 
any, anyBoolean, anyShort, anyBoolean);
+                Catalog.getDdlStmt((Table) any, (List) any, (List) any, (List) 
any, anyBoolean, anyBoolean);
                 minTimes = 0;
 
-                Catalog.getDdlStmt((Table) any, (List) any, null, null, 
anyBoolean, anyShort, anyBoolean);
+                Catalog.getDdlStmt((Table) any, (List) any, null, null, 
anyBoolean, anyBoolean);
                 minTimes = 0;
             }
         };


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to