sqlparser_mysql/base/
display_util.rs1use base::CommonParser;
2
3pub struct DisplayUtil;
4
5impl DisplayUtil {
6 pub fn escape_if_keyword(s: &str) -> String {
8 if CommonParser::sql_keyword(s).is_ok() {
9 format!("`{}`", s)
10 } else {
11 s.to_owned()
12 }
13 }
14}
15
16#[cfg(test)]
17mod tests {
18 use crate::{ParseConfig, Parser};
19
20 #[test]
21 fn escaped_keyword() {
22 let str0 = "delete from articles where `key`='aaa'";
23 let str1 = "delete from `where` where user=?";
24
25 let expected0 = "DELETE FROM articles WHERE `key` = 'aaa'";
26 let expected1 = "DELETE FROM `where` WHERE user = ?";
27 let config = ParseConfig::default();
28 let res0 = Parser::parse(&config, str0);
29 let res1 = Parser::parse(&config, str1);
30 assert!(res0.is_ok());
31 assert!(res1.is_ok());
32 assert_eq!(expected0, format!("{}", res0.unwrap()));
33 assert_eq!(expected1, format!("{}", res1.unwrap()));
34 }
35}