From 62a0defd638b13f79479dd3bda465e664012f070 Mon Sep 17 00:00:00 2001 From: Jeremyhi Date: Thu, 1 Aug 2024 15:06:13 +0800 Subject: [PATCH] feat: improve extract hints (#4479) --- src/servers/src/grpc/database.rs | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/src/servers/src/grpc/database.rs b/src/servers/src/grpc/database.rs index 4c3cf2c72b0d..572f3c66f4d2 100644 --- a/src/servers/src/grpc/database.rs +++ b/src/servers/src/grpc/database.rs @@ -151,19 +151,12 @@ fn extract_hints(metadata: &MetadataMap) -> Vec<(String, String)> { return None; }; let key = key.as_str(); - if !key.starts_with(GREPTIME_DB_HEADER_HINT_PREFIX) { - return None; - } + let new_key = key.strip_prefix(GREPTIME_DB_HEADER_HINT_PREFIX)?; let Ok(value) = value.to_str() else { // Simply return None for non-string values. return None; }; - // Safety: we already checked the prefix. - let new_key = key - .strip_prefix(GREPTIME_DB_HEADER_HINT_PREFIX) - .unwrap() - .to_string(); - Some((new_key, value.trim().to_string())) + Some((new_key.to_string(), value.trim().to_string())) }) .collect() } @@ -181,6 +174,7 @@ mod tests { "x-greptime-hint-append_mode", MetadataValue::from_static("true"), ); + metadata.insert("test-key", MetadataValue::from_static("test-value")); assert!(prev.is_none()); let hints = extract_hints(&metadata); assert_eq!(hints, vec![("append_mode".to_string(), "true".to_string())]);