nodedb_sql/parser/
normalize.rs1pub fn normalize_ident(ident: &sqlparser::ast::Ident) -> String {
5 if ident.quote_style.is_some() {
6 ident.value.clone()
7 } else {
8 ident.value.to_lowercase()
9 }
10}
11
12pub fn normalize_object_name(name: &sqlparser::ast::ObjectName) -> String {
14 name.0
15 .last()
16 .map(|part| match part {
17 sqlparser::ast::ObjectNamePart::Identifier(ident) => normalize_ident(ident),
18 _ => String::new(),
19 })
20 .unwrap_or_default()
21}
22
23pub fn table_name_from_factor(
25 factor: &sqlparser::ast::TableFactor,
26) -> Option<(String, Option<String>)> {
27 match factor {
28 sqlparser::ast::TableFactor::Table { name, alias, .. } => {
29 let table = normalize_object_name(name);
30 let alias_name = alias.as_ref().map(|a| normalize_ident(&a.name));
31 Some((table, alias_name))
32 }
33 _ => None,
34 }
35}