pub mod select;
pub mod insert;
pub mod update;
pub mod delete;
pub(crate) fn quote_table(name: &str) -> String {
if name.contains('.') {
name.split('.')
.map(|part| format!("\"{}\"", part))
.collect::<Vec<_>>()
.join(".")
} else {
name.to_string()
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn quote_simple_table() {
assert_eq!(quote_table("users"), "users");
}
#[test]
fn quote_schema_qualified() {
assert_eq!(quote_table("auth.users"), "\"auth\".\"users\"");
}
#[test]
fn quote_triple_qualified() {
assert_eq!(quote_table("catalog.schema.table"), "\"catalog\".\"schema\".\"table\"");
}
}