From fecaccd7d2a4c5d4d14eee48071c242a315219f6 Mon Sep 17 00:00:00 2001 From: luofucong Date: Wed, 31 Dec 2025 11:09:05 +0800 Subject: [PATCH] resolve PR comments Signed-off-by: luofucong --- src/api/src/v1/column_def.rs | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/src/api/src/v1/column_def.rs b/src/api/src/v1/column_def.rs index f7ec3d525f..b02b06feaf 100644 --- a/src/api/src/v1/column_def.rs +++ b/src/api/src/v1/column_def.rs @@ -36,6 +36,14 @@ const INVERTED_INDEX_GRPC_KEY: &str = "inverted_index"; /// Key used to store skip index options in gRPC column options. const SKIPPING_INDEX_GRPC_KEY: &str = "skipping_index"; +const COLUMN_OPTION_MAPPINGS: [(&str, &str); 5] = [ + (FULLTEXT_GRPC_KEY, FULLTEXT_KEY), + (INVERTED_INDEX_GRPC_KEY, INVERTED_INDEX_KEY), + (SKIPPING_INDEX_GRPC_KEY, SKIPPING_INDEX_KEY), + (EXTENSION_TYPE_NAME_KEY, EXTENSION_TYPE_NAME_KEY), + (EXTENSION_TYPE_METADATA_KEY, EXTENSION_TYPE_METADATA_KEY), +]; + /// Tries to construct a `ColumnSchema` from the given `ColumnDef`. pub fn try_as_column_schema(column_def: &ColumnDef) -> Result { let data_type = ColumnDataTypeWrapper::try_new( @@ -133,25 +141,15 @@ pub fn try_as_column_def(column_schema: &ColumnSchema, is_primary_key: bool) -> /// Collect the [ColumnOptions] into the [Metadata] that can be used in, for example, [ColumnSchema]. pub fn collect_column_options(column_options: Option<&ColumnOptions>) -> Metadata { - let mut metadata = Metadata::default(); let Some(ColumnOptions { options }) = column_options else { - return metadata; + return Metadata::default(); }; - if let Some(v) = options.get(FULLTEXT_GRPC_KEY) { - metadata.insert(FULLTEXT_KEY.to_string(), v.clone()); - } - if let Some(v) = options.get(INVERTED_INDEX_GRPC_KEY) { - metadata.insert(INVERTED_INDEX_KEY.to_string(), v.clone()); - } - if let Some(v) = options.get(SKIPPING_INDEX_GRPC_KEY) { - metadata.insert(SKIPPING_INDEX_KEY.to_string(), v.clone()); - } - if let Some(v) = options.get(EXTENSION_TYPE_NAME_KEY) { - metadata.insert(EXTENSION_TYPE_NAME_KEY.to_string(), v.clone()); - } - if let Some(v) = options.get(EXTENSION_TYPE_METADATA_KEY) { - metadata.insert(EXTENSION_TYPE_METADATA_KEY.to_string(), v.clone()); + let mut metadata = Metadata::with_capacity(options.len()); + for (x, y) in COLUMN_OPTION_MAPPINGS { + if let Some(v) = options.get(x) { + metadata.insert(y.to_string(), v.clone()); + } } metadata }