()
| 40 | } |
| 41 | |
| 42 | fn sql_keywords() -> &'static HashSet<&'static str> { |
| 43 | static SQL_KEYWORDS: OnceLock<HashSet<&str>> = OnceLock::new(); |
| 44 | SQL_KEYWORDS.get_or_init(|| { |
| 45 | let mut m = HashSet::new(); |
| 46 | m.extend(SQLITE_KEYWORDS); |
| 47 | m.extend(POSTGRES_KEYWORDS); |
| 48 | m.extend(DUCKDB_KEYWORDS); |
| 49 | m.extend(BIGQUERY_KEYWORDS); |
| 50 | |
| 51 | let reverse_index: HashMap<&Keyword, usize> = ALL_KEYWORDS_INDEX |
| 52 | .iter() |
| 53 | .enumerate() |
| 54 | .map(|(idx, kw)| (kw, idx)) |
| 55 | .collect(); |
| 56 | |
| 57 | m.extend( |
| 58 | RESERVED_FOR_COLUMN_ALIAS |
| 59 | .iter() |
| 60 | .map(|x| ALL_KEYWORDS[reverse_index[x]]), |
| 61 | ); |
| 62 | |
| 63 | m.extend( |
| 64 | RESERVED_FOR_TABLE_ALIAS |
| 65 | .iter() |
| 66 | .map(|x| ALL_KEYWORDS[reverse_index[x]]), |
| 67 | ); |
| 68 | m |
| 69 | }) |
| 70 | } |
| 71 | |
| 72 | const SQLITE_KEYWORDS: &[&str] = &[ |
| 73 | "ABORT", |
no test coverage detected