[feature-wip](unique-key-merge-on-write) unique key table with MOW supports sequence column (#11808)
This commit is contained in:
@ -245,7 +245,9 @@ public class Column implements Writable {
|
||||
}
|
||||
|
||||
public boolean isSequenceColumn() {
|
||||
return !visible && aggregationType == AggregateType.REPLACE && nameEquals(SEQUENCE_COL, true);
|
||||
// aggregationType is NONE for unique table with merge on write.
|
||||
return !visible && (aggregationType == AggregateType.REPLACE
|
||||
|| aggregationType == AggregateType.NONE) && nameEquals(SEQUENCE_COL, true);
|
||||
}
|
||||
|
||||
public PrimitiveType getDataType() {
|
||||
|
||||
@ -885,8 +885,16 @@ public class OlapTable extends Table {
|
||||
this.hasSequenceCol = true;
|
||||
this.sequenceType = type;
|
||||
|
||||
// sequence column is value column with REPLACE aggregate type
|
||||
Column sequenceCol = ColumnDef.newSequenceColumnDef(type, AggregateType.REPLACE).toColumn();
|
||||
Column sequenceCol;
|
||||
if (getEnableUniqueKeyMergeOnWrite()) {
|
||||
// sequence column is value column with NONE aggregate type for
|
||||
// unique key table with merge on write
|
||||
sequenceCol = ColumnDef.newSequenceColumnDef(type, AggregateType.NONE).toColumn();
|
||||
} else {
|
||||
// sequence column is value column with REPLACE aggregate type for
|
||||
// unique key table
|
||||
sequenceCol = ColumnDef.newSequenceColumnDef(type, AggregateType.REPLACE).toColumn();
|
||||
}
|
||||
// add sequence column at last
|
||||
fullSchema.add(sequenceCol);
|
||||
nameToColumn.put(Column.SEQUENCE_COL, sequenceCol);
|
||||
|
||||
@ -1903,11 +1903,6 @@ public class InternalCatalog implements CatalogIf<Database> {
|
||||
try {
|
||||
sequenceColType = PropertyAnalyzer.analyzeSequenceType(properties, olapTable.getKeysType());
|
||||
if (sequenceColType != null) {
|
||||
// TODO(zhannngchen) will support sequence column later.
|
||||
if (olapTable.getEnableUniqueKeyMergeOnWrite()) {
|
||||
throw new AnalysisException("Unique key table with MoW(merge on write) not support "
|
||||
+ "sequence column for now");
|
||||
}
|
||||
olapTable.setSequenceInfo(sequenceColType);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
||||
Reference in New Issue
Block a user