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]