From a427cb0f68386d42ba91b9c012a9175d37cbc9ff Mon Sep 17 00:00:00 2001 From: "Lei, HUANG" Date: Wed, 6 May 2026 23:12:27 +0800 Subject: [PATCH] revert: use inline dropped table task protos Point GreptimeDB at the proto revision that restores direct dropped table task fields and remove wrapper-expression conversion code. Files: - `Cargo.toml` - `Cargo.lock` - `src/api/src/helper.rs` - `src/common/meta/src/rpc/ddl.rs` Signed-off-by: Lei, HUANG --- Cargo.lock | 6 +-- src/api/src/helper.rs | 2 - src/common/meta/src/rpc/ddl.rs | 69 +++++++++++----------------------- 3 files changed, 25 insertions(+), 52 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 073e0fc405..6450baed34 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -11135,7 +11135,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac6c3320f9abac597dcbc668774ef006702672474aad53c6d596b62e487b40b1" dependencies = [ "heck 0.5.0", - "itertools 0.10.5", + "itertools 0.11.0", "log", "multimap", "once_cell", @@ -11183,7 +11183,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" dependencies = [ "anyhow", - "itertools 0.10.5", + "itertools 0.11.0", "proc-macro2", "quote", "syn 2.0.117", @@ -11196,7 +11196,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9120690fafc389a67ba3803df527d0ec9cbbc9cc45e4cc20b332996dfb672425" dependencies = [ "anyhow", - "itertools 0.10.5", + "itertools 0.11.0", "proc-macro2", "quote", "syn 2.0.117", diff --git a/src/api/src/helper.rs b/src/api/src/helper.rs index e650ddfcf2..ed8d64b57a 100644 --- a/src/api/src/helper.rs +++ b/src/api/src/helper.rs @@ -713,8 +713,6 @@ fn ddl_request_type(request: &DdlRequest) -> &'static str { Some(Expr::DropView(_)) => "ddl.drop_view", Some(Expr::AlterDatabase(_)) => "ddl.alter_database", Some(Expr::CommentOn(_)) => "ddl.comment_on", - Some(Expr::UndropTable(_)) => "ddl.undrop_table", - Some(Expr::PurgeDroppedTable(_)) => "ddl.purge_dropped_table", None => "ddl.empty", } } diff --git a/src/common/meta/src/rpc/ddl.rs b/src/common/meta/src/rpc/ddl.rs index 00f91baff2..d78c72b31a 100644 --- a/src/common/meta/src/rpc/ddl.rs +++ b/src/common/meta/src/rpc/ddl.rs @@ -38,7 +38,7 @@ use api::v1::{ AlterDatabaseExpr, AlterTableExpr, CommentObjectType as PbCommentObjectType, CommentOnExpr, CreateDatabaseExpr, CreateFlowExpr, CreateTableExpr, CreateViewExpr, DropDatabaseExpr, DropFlowExpr, DropTableExpr, DropViewExpr, EvalInterval, ExpireAfter, Option as PbOption, - PurgeDroppedTableExpr, QueryContext as PbQueryContext, TruncateTableExpr, UndropTableExpr, + QueryContext as PbQueryContext, TruncateTableExpr, }; use base64::Engine as _; use base64::engine::general_purpose; @@ -262,7 +262,7 @@ impl TryFrom for DdlTask { Ok(DdlTask::UndropTable(undrop_table.try_into()?)) } Task::PurgeDroppedTableTask(purge_dropped_table) => { - Ok(DdlTask::PurgeDroppedTable(purge_dropped_table.try_into()?)) + Ok(DdlTask::PurgeDroppedTable(purge_dropped_table.into())) } Task::AlterTableTask(alter_table) => Ok(DdlTask::AlterTable(alter_table.try_into()?)), Task::TruncateTableTask(truncate_table) => { @@ -693,15 +693,11 @@ impl TryFrom for UndropTableTask { type Error = error::Error; fn try_from(pb: PbUndropTableTask) -> Result { - let undrop_table = pb.undrop_table.context(error::InvalidProtoMsgSnafu { - err_msg: "expected undrop table", - })?; - Ok(Self { - catalog: undrop_table.catalog_name, - schema: undrop_table.schema_name, - table: undrop_table.table_name, - table_id: undrop_table + catalog: pb.catalog_name, + schema: pb.schema_name, + table: pb.table_name, + table_id: pb .table_id .context(error::InvalidProtoMsgSnafu { err_msg: "expected table_id", @@ -714,44 +710,32 @@ impl TryFrom for UndropTableTask { impl From for PbUndropTableTask { fn from(task: UndropTableTask) -> Self { Self { - undrop_table: Some(UndropTableExpr { - catalog_name: task.catalog, - schema_name: task.schema, - table_name: task.table, - table_id: Some(api::v1::TableId { id: task.table_id }), - }), + catalog_name: task.catalog, + schema_name: task.schema, + table_name: task.table, + table_id: Some(api::v1::TableId { id: task.table_id }), } } } -impl TryFrom for PurgeDroppedTableTask { - type Error = error::Error; - - fn try_from(pb: PbPurgeDroppedTableTask) -> Result { - let purge_dropped_table = pb - .purge_dropped_table - .context(error::InvalidProtoMsgSnafu { - err_msg: "expected purge dropped table", - })?; - - Ok(Self { - catalog: purge_dropped_table.catalog_name, - schema: purge_dropped_table.schema_name, - table: purge_dropped_table.table_name, - table_id: purge_dropped_table.table_id.map(|table_id| table_id.id), - }) +impl From for PurgeDroppedTableTask { + fn from(pb: PbPurgeDroppedTableTask) -> Self { + Self { + catalog: pb.catalog_name, + schema: pb.schema_name, + table: pb.table_name, + table_id: pb.table_id.map(|table_id| table_id.id), + } } } impl From for PbPurgeDroppedTableTask { fn from(task: PurgeDroppedTableTask) -> Self { Self { - purge_dropped_table: Some(PurgeDroppedTableExpr { - catalog_name: task.catalog, - schema_name: task.schema, - table_name: task.table, - table_id: task.table_id.map(|id| api::v1::TableId { id }), - }), + catalog_name: task.catalog, + schema_name: task.schema, + table_name: task.table, + table_id: task.table_id.map(|id| api::v1::TableId { id }), } } } @@ -1964,15 +1948,6 @@ mod tests { assert!(matches!(de, DdlTask::PurgeDroppedTable(task) if task == expected)); } - #[test] - fn test_purge_dropped_table_task_requires_expr() { - let result = DdlTask::try_from(Task::PurgeDroppedTableTask( - PbPurgeDroppedTableTask::default(), - )); - - assert!(result.is_err()); - } - #[test] fn test_sort_columns() { // construct RawSchema