Skip to content

Commit

Permalink
[opt] (binlog) Support Modify ViewDef binlog (apache#41167)
Browse files Browse the repository at this point in the history
[opt] (binlog) Support Modify ViewDef binlog

---------

Co-authored-by: yanmingfu <[email protected]>
Co-authored-by: walter <[email protected]>
  • Loading branch information
3 people authored Nov 13, 2024
1 parent a1dcdf3 commit 900bf91
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import org.apache.doris.common.proc.BaseProcResult;
import org.apache.doris.common.proc.ProcResult;
import org.apache.doris.persist.AlterDatabasePropertyInfo;
import org.apache.doris.persist.AlterViewInfo;
import org.apache.doris.persist.BarrierLog;
import org.apache.doris.persist.BatchModifyPartitionsInfo;
import org.apache.doris.persist.BinlogGcInfo;
Expand Down Expand Up @@ -354,6 +355,18 @@ public void addColumnRename(TableRenameColumnInfo info, long commitSeq) {
addBinlog(dbId, tableIds, commitSeq, timestamp, type, data, false, info);
}

// add Modify view
public void addModifyViewDef(AlterViewInfo alterViewInfo, long commitSeq) {
long dbId = alterViewInfo.getDbId();
List<Long> tableIds = Lists.newArrayList();
tableIds.add(alterViewInfo.getTableId());
long timestamp = -1;
TBinlogType type = TBinlogType.MODIFY_VIEW_DEF;
String data = alterViewInfo.toJson();

addBinlog(dbId, tableIds, commitSeq, timestamp, type, data, false, alterViewInfo);
}

// get binlog by dbId, return first binlog.version > version
public Pair<TStatus, TBinlog> getBinlog(long dbId, long tableId, long prevCommitSeq) {
TStatus status = new TStatus(TStatusCode.OK);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,4 +105,8 @@ public static AlterViewInfo read(DataInput in) throws IOException {
String json = Text.readString(in);
return GsonUtils.GSON.fromJson(json, AlterViewInfo.class);
}

public String toJson() {
return GsonUtils.GSON.toJson(this);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -312,6 +312,7 @@ public static void loadJournal(Env env, Long logId, JournalEntity journal) {
case OperationType.OP_MODIFY_VIEW_DEF: {
AlterViewInfo info = (AlterViewInfo) journal.getData();
env.getAlterInstance().replayModifyViewDef(info);
env.getBinlogManager().addModifyViewDef(info, logId);
break;
}
case OperationType.OP_RENAME_PARTITION: {
Expand Down Expand Up @@ -1576,7 +1577,11 @@ public void logTableRename(TableInfo tableInfo) {
}

public void logModifyViewDef(AlterViewInfo alterViewInfo) {
logEdit(OperationType.OP_MODIFY_VIEW_DEF, alterViewInfo);
long logId = logEdit(OperationType.OP_MODIFY_VIEW_DEF, alterViewInfo);
if (LOG.isDebugEnabled()) {
LOG.debug("log modify view, logId : {}, infos: {}", logId, alterViewInfo);
}
Env.getCurrentEnv().getBinlogManager().addModifyViewDef(alterViewInfo, logId);
}

public void logRollupRename(TableInfo tableInfo) {
Expand Down
4 changes: 2 additions & 2 deletions gensrc/thrift/FrontendService.thrift
Original file line number Diff line number Diff line change
Expand Up @@ -1190,6 +1190,7 @@ enum TBinlogType {
RENAME_TABLE = 14,
RENAME_COLUMN = 15,
MODIFY_COMMENT = 16,
MODIFY_VIEW_DEF = 17,

// Keep some IDs for allocation so that when new binlog types are added in the
// future, the changes can be picked back to the old versions without breaking
Expand All @@ -1206,8 +1207,7 @@ enum TBinlogType {
// MODIFY_XXX = 17,
// MIN_UNKNOWN = 18,
// UNKNOWN_3 = 19,
MIN_UNKNOWN = 17,
UNKNOWN_2 = 18,
MIN_UNKNOWN = 18,
UNKNOWN_3 = 19,
UNKNOWN_4 = 20,
UNKNOWN_5 = 21,
Expand Down

0 comments on commit 900bf91

Please sign in to comment.