diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateTableStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateTableStmt.java index de10c63b47..8180b7681e 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateTableStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateTableStmt.java @@ -376,9 +376,9 @@ public class CreateTableStmt extends DdlStmt { if (Config.enable_batch_delete_by_default && keysDesc != null && keysDesc.getKeysType() == KeysType.UNIQUE_KEYS) { - // TODO(zhangchen): Disable the delete sign column for primary key temporary, will replace - // with a better solution later. - if (!enableUniqueKeyMergeOnWrite) { + if (enableUniqueKeyMergeOnWrite) { + columnDefs.add(ColumnDef.newDeleteSignColumnDef(AggregateType.NONE)); + } else { columnDefs.add(ColumnDef.newDeleteSignColumnDef(AggregateType.REPLACE)); } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Column.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/Column.java index 669f2bfe6d..0ee50d7651 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Column.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Column.java @@ -241,7 +241,9 @@ public class Column implements Writable { } public boolean isDeleteSignColumn() { - return !visible && aggregationType == AggregateType.REPLACE && nameEquals(DELETE_SIGN, true); + // aggregationType is NONE for unique table with merge on write. + return !visible && (aggregationType == AggregateType.REPLACE + || aggregationType == AggregateType.NONE) && nameEquals(DELETE_SIGN, true); } public boolean isSequenceColumn() {