Skip to content

Commit

Permalink
refine
Browse files Browse the repository at this point in the history
  • Loading branch information
chenzl25 committed Jul 27, 2023
1 parent d2a9c9b commit de2b7d2
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 31 deletions.
6 changes: 5 additions & 1 deletion src/meta/src/manager/catalog/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -807,10 +807,14 @@ where
let mut views = BTreeMapTransaction::new(&mut database_core.views);
let mut users = BTreeMapTransaction::new(&mut user_core.user_info);

// The deque holds all the relations we need to drop.
// As we traverse the relation DAG,
// more relations will be added and popped from this.
let mut deque = VecDeque::new();

// Relation dependencies is a DAG rather than a tree, so we need to use `HashSet` instead of
// `Vec` to record ids. Sink
// `Vec` to record ids.
// Sink
// |
// MView
// / \
Expand Down
10 changes: 10 additions & 0 deletions src/meta/src/rpc/ddl_controller.rs
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,16 @@ pub enum DropMode {
Cascade,
}

impl DropMode {
pub fn from_request_setting(cascade: bool) -> DropMode {
if cascade {
DropMode::Cascade
} else {
DropMode::Restrict
}
}
}

pub enum StreamingJobId {
MaterializedView(TableId),
Sink(SinkId),
Expand Down
36 changes: 6 additions & 30 deletions src/meta/src/rpc/service/ddl_service.rs
Original file line number Diff line number Diff line change
Expand Up @@ -196,11 +196,7 @@ where
) -> Result<Response<DropSourceResponse>, Status> {
let request = request.into_inner();
let source_id = request.source_id;
let drop_mode = if request.cascade {
DropMode::Cascade
} else {
DropMode::Restrict
};
let drop_mode = DropMode::from_request_setting(request.cascade);
let version = self
.ddl_controller
.run_command(DdlCommand::DropSource(source_id, drop_mode))
Expand Down Expand Up @@ -249,11 +245,7 @@ where
) -> Result<Response<DropSinkResponse>, Status> {
let request = request.into_inner();
let sink_id = request.sink_id;
let drop_mode = if request.cascade {
DropMode::Cascade
} else {
DropMode::Restrict
};
let drop_mode = DropMode::from_request_setting(request.cascade);
let version = self
.ddl_controller
.run_command(DdlCommand::DropStreamingJob(
Expand Down Expand Up @@ -302,11 +294,7 @@ where

let request = request.into_inner();
let table_id = request.table_id;
let drop_mode = if request.cascade {
DropMode::Cascade
} else {
DropMode::Restrict
};
let drop_mode = DropMode::from_request_setting(request.cascade);

let version = self
.ddl_controller
Expand Down Expand Up @@ -357,11 +345,7 @@ where

let request = request.into_inner();
let index_id = request.index_id;
let drop_mode = if request.cascade {
DropMode::Cascade
} else {
DropMode::Restrict
};
let drop_mode = DropMode::from_request_setting(request.cascade);
let version = self
.ddl_controller
.run_command(DdlCommand::DropStreamingJob(
Expand Down Expand Up @@ -476,11 +460,7 @@ where
let source_id = request.source_id;
let table_id = request.table_id;

let drop_mode = if request.cascade {
DropMode::Cascade
} else {
DropMode::Restrict
};
let drop_mode = DropMode::from_request_setting(request.cascade);
let version = self
.ddl_controller
.run_command(DdlCommand::DropStreamingJob(
Expand Down Expand Up @@ -522,11 +502,7 @@ where
) -> Result<Response<DropViewResponse>, Status> {
let request = request.into_inner();
let view_id = request.get_view_id();
let drop_mode = if request.cascade {
DropMode::Cascade
} else {
DropMode::Restrict
};
let drop_mode = DropMode::from_request_setting(request.cascade);
let version = self
.ddl_controller
.run_command(DdlCommand::DropView(view_id, drop_mode))
Expand Down

0 comments on commit de2b7d2

Please sign in to comment.