From c78a4928635554b09c70249546ec083b65e3890b Mon Sep 17 00:00:00 2001 From: yihong Date: Fri, 17 Jan 2025 21:50:37 +0800 Subject: [PATCH] refactor: drop useless clone for some better performance using static chek (#5388) refactor: drop useless clone for some better performance using static check Signed-off-by: yihong0618 --- src/api/src/v1/column_def.rs | 8 ++--- src/common/grpc-expr/src/util.rs | 38 +++++++++++------------ src/common/query/src/logical_plan/expr.rs | 5 ++- src/table/src/metadata.rs | 2 +- 4 files changed, 25 insertions(+), 28 deletions(-) diff --git a/src/api/src/v1/column_def.rs b/src/api/src/v1/column_def.rs index 9cb14a4fee..c17a72cf0d 100644 --- a/src/api/src/v1/column_def.rs +++ b/src/api/src/v1/column_def.rs @@ -57,13 +57,13 @@ pub fn try_as_column_schema(column_def: &ColumnDef) -> Result { } if let Some(options) = column_def.options.as_ref() { if let Some(fulltext) = options.options.get(FULLTEXT_GRPC_KEY) { - metadata.insert(FULLTEXT_KEY.to_string(), fulltext.clone()); + metadata.insert(FULLTEXT_KEY.to_string(), fulltext.to_owned()); } if let Some(inverted_index) = options.options.get(INVERTED_INDEX_GRPC_KEY) { - metadata.insert(INVERTED_INDEX_KEY.to_string(), inverted_index.clone()); + metadata.insert(INVERTED_INDEX_KEY.to_string(), inverted_index.to_owned()); } if let Some(skipping_index) = options.options.get(SKIPPING_INDEX_GRPC_KEY) { - metadata.insert(SKIPPING_INDEX_KEY.to_string(), skipping_index.clone()); + metadata.insert(SKIPPING_INDEX_KEY.to_string(), skipping_index.to_owned()); } } @@ -82,7 +82,7 @@ pub fn options_from_column_schema(column_schema: &ColumnSchema) -> Option primary_keys.push(column_name.to_string()), + v if v == SemanticType::Tag as i32 => primary_keys.push(column_name.to_owned()), v if v == SemanticType::Timestamp as i32 => { ensure!( time_index.is_none(), DuplicatedTimestampColumnSnafu { - exists: time_index.unwrap(), + exists: time_index.as_ref().unwrap(), duplicated: column_name, } ); - time_index = Some(column_name.to_string()); + time_index = Some(column_name.to_owned()); // Timestamp column must not be null. is_nullable = false; } @@ -158,8 +159,8 @@ pub fn build_create_table_expr( } ); - let column_def = ColumnDef { - name: column_name.to_string(), + column_defs.push(ColumnDef { + name: column_name.to_owned(), data_type: datatype, is_nullable, default_constraint: vec![], @@ -167,15 +168,14 @@ pub fn build_create_table_expr( comment: String::new(), datatype_extension: datatype_extension.clone(), options: options.clone(), - }; - column_defs.push(column_def); + }); } let time_index = time_index.context(MissingTimestampColumnSnafu { msg: format!("table is {}", table_name.table), })?; - let expr = CreateTableExpr { + Ok(CreateTableExpr { catalog_name: table_name.catalog.to_string(), schema_name: table_name.schema.to_string(), table_name: table_name.table.to_string(), @@ -187,9 +187,7 @@ pub fn build_create_table_expr( table_options: Default::default(), table_id: table_id.map(|id| api::v1::TableId { id }), engine: engine.to_string(), - }; - - Ok(expr) + }) } /// Find columns that are not present in the schema and return them as `AddColumns` diff --git a/src/common/query/src/logical_plan/expr.rs b/src/common/query/src/logical_plan/expr.rs index 3b9f6cd120..ec12324252 100644 --- a/src/common/query/src/logical_plan/expr.rs +++ b/src/common/query/src/logical_plan/expr.rs @@ -28,14 +28,13 @@ pub fn build_same_type_ts_filter( ts_schema: &ColumnSchema, time_range: Option, ) -> Option { - let ts_type = ts_schema.data_type.clone(); let time_range = time_range?; let start = time_range .start() - .and_then(|start| ts_type.try_cast(Value::Timestamp(start))); + .and_then(|start| ts_schema.data_type.try_cast(Value::Timestamp(start))); let end = time_range .end() - .and_then(|end| ts_type.try_cast(Value::Timestamp(end))); + .and_then(|end| ts_schema.data_type.try_cast(Value::Timestamp(end))); let time_range = match (start, end) { (Some(Value::Timestamp(start)), Some(Value::Timestamp(end))) => { diff --git a/src/table/src/metadata.rs b/src/table/src/metadata.rs index 658efba557..032938de3c 100644 --- a/src/table/src/metadata.rs +++ b/src/table/src/metadata.rs @@ -1138,7 +1138,7 @@ fn unset_column_fulltext_options( ) -> Result<()> { ensure!( current_options - .clone() + .as_ref() .is_some_and(|options| options.enable), error::InvalidColumnOptionSnafu { column_name,