cli/metadata/control/
utils.rs1use common_error::ext::BoxedError;
16use common_meta::error::Result as CommonMetaResult;
17use common_meta::key::table_name::{TableNameKey, TableNameManager};
18use common_meta::rpc::KeyValue;
19use serde::Serialize;
20use store_api::storage::TableId;
21
22pub fn decode_key_value(kv: KeyValue) -> CommonMetaResult<(String, String)> {
24 let key = String::from_utf8_lossy(&kv.key).to_string();
25 let value = String::from_utf8_lossy(&kv.value).to_string();
26 Ok((key, value))
27}
28
29pub fn json_fromatter<T>(pretty: bool, value: &T) -> String
31where
32 T: Serialize,
33{
34 if pretty {
35 serde_json::to_string_pretty(value).unwrap()
36 } else {
37 serde_json::to_string(value).unwrap()
38 }
39}
40
41pub async fn get_table_id_by_name(
43 table_name_manager: &TableNameManager,
44 catalog_name: &str,
45 schema_name: &str,
46 table_name: &str,
47) -> Result<Option<TableId>, BoxedError> {
48 let table_name_key = TableNameKey::new(catalog_name, schema_name, table_name);
49 let Some(table_name_value) = table_name_manager
50 .get(table_name_key)
51 .await
52 .map_err(BoxedError::new)?
53 else {
54 return Ok(None);
55 };
56 Ok(Some(table_name_value.table_id()))
57}