From fe48696a6fe7ab6b1e9b5495a5805701c71803cb Mon Sep 17 00:00:00 2001 From: Dennis Zhuang Date: Tue, 9 Jul 2024 14:03:14 -0700 Subject: [PATCH] feat: apply suggestion from AI --- src/common/meta/src/ddl/drop_view.rs | 21 +++++++++++++-------- src/sql/src/statements/drop.rs | 16 ++++++++++------ 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/src/common/meta/src/ddl/drop_view.rs b/src/common/meta/src/ddl/drop_view.rs index 9515184b415c..e71a6a67889f 100644 --- a/src/common/meta/src/ddl/drop_view.rs +++ b/src/common/meta/src/ddl/drop_view.rs @@ -21,7 +21,7 @@ use common_telemetry::info; use serde::{Deserialize, Serialize}; use snafu::{ensure, OptionExt, ResultExt}; use strum::AsRefStr; -use table::metadata::{TableId, TableType}; +use table::metadata::{RawTableInfo, TableId, TableType}; use table::table_reference::TableReference; use super::utils::handle_retry_error; @@ -103,7 +103,6 @@ impl DropViewProcedure { async fn check_view_metadata(&mut self) -> Result<()> { let view_id = self.data.view_id(); - let table_info_value = self .context .table_metadata_manager @@ -114,17 +113,24 @@ impl DropViewProcedure { table: self.data.table_ref().to_string(), })?; - // Ensure the exists one is view, we can't drop other table types + self.ensure_is_view(&table_info_value.table_info)?; + self.ensure_view_info_exists(view_id).await?; + + Ok(()) + } + + fn ensure_is_view(&self, table_info: &RawTableInfo) -> Result<()> { ensure!( - table_info_value.table_info.table_type == TableType::View, + table_info.table_type == TableType::View, error::InvalidViewInfoSnafu { err_msg: format!("{} is not a view", self.data.table_ref()), } ); + Ok(()) + } - // Ensure [ViewInfoValue] exists - let _ = self - .context + async fn ensure_view_info_exists(&self, view_id: TableId) -> Result<()> { + self.context .table_metadata_manager .view_info_manager() .get(view_id) @@ -132,7 +138,6 @@ impl DropViewProcedure { .with_context(|| error::ViewNotFoundSnafu { view_name: self.data.table_ref().to_string(), })?; - Ok(()) } diff --git a/src/sql/src/statements/drop.rs b/src/sql/src/statements/drop.rs index 428a5b9be939..a46450db78f7 100644 --- a/src/sql/src/statements/drop.rs +++ b/src/sql/src/statements/drop.rs @@ -148,12 +148,16 @@ pub struct DropView { impl Display for DropView { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - f.write_str("DROP VIEW")?; - if self.drop_if_exists { - f.write_str(" IF EXISTS")?; - } - let view_name = &self.view_name; - write!(f, r#" {view_name}"#) + write!( + f, + "DROP VIEW{} {}", + if self.drop_if_exists { + " IF EXISTS" + } else { + "" + }, + self.view_name + ) } }