1pub static RESERVED_KEYWORDS: &[&str] = &[
4 "ADD",
5 "ALL",
6 "ALTER",
7 "AND",
8 "ANY",
9 "AS",
10 "ASC",
11 "BEGIN",
12 "BETWEEN",
13 "BREAK",
14 "BY",
15 "CASE",
16 "CAST",
17 "CATCH",
18 "CHECK",
19 "CLOSE",
20 "CLUSTERED",
21 "COALESCE",
22 "COLUMN",
23 "COMMIT",
24 "CONSTRAINT",
25 "CONTINUE",
26 "CONVERT",
27 "CREATE",
28 "CROSS",
29 "CURRENT",
30 "CURRENT_DATE",
31 "CURRENT_TIME",
32 "CURRENT_TIMESTAMP",
33 "CURSOR",
34 "DEALLOCATE",
35 "DECLARE",
36 "DEFAULT",
37 "DELETE",
38 "DESC",
39 "DISTINCT",
40 "DROP",
41 "ELSE",
42 "END",
43 "EXCEPT",
44 "EXEC",
45 "EXECUTE",
46 "EXISTS",
47 "FALSE",
48 "FETCH",
49 "FOLLOWING",
50 "FOR",
51 "FOREIGN",
52 "FROM",
53 "FULL",
54 "FUNCTION",
55 "GO",
56 "GOTO",
57 "GROUP",
58 "GROUPS",
59 "HAVING",
60 "HOLDLOCK",
61 "IDENTITY",
62 "IF",
63 "IN",
64 "INDEX",
65 "INNER",
66 "INSERT",
67 "INTERSECT",
68 "INTO",
69 "IS",
70 "JOIN",
71 "KEY",
72 "LEFT",
73 "LIKE",
74 "LIMIT",
75 "MERGE",
76 "NEXT",
77 "NOCOUNT",
78 "NONCLUSTERED",
79 "NOLOCK",
80 "NOT",
81 "NULL",
82 "NULLIF",
83 "OFFSET",
84 "ON",
85 "OPEN",
86 "OR",
87 "ORDER",
88 "OUTER",
89 "OUTPUT",
90 "OVER",
91 "PARTITION",
92 "PRECEDING",
93 "PRIMARY",
94 "PRINT",
95 "PROCEDURE",
96 "RAISERROR",
97 "RANGE",
98 "REFERENCES",
99 "RETURN",
100 "RETURNING",
101 "RIGHT",
102 "ROLLBACK",
103 "ROW",
104 "ROWLOCK",
105 "ROWS",
106 "SCOPE_IDENTITY",
107 "SELECT",
108 "SET",
109 "TABLE",
110 "THEN",
111 "THROW",
112 "TOP",
113 "TRAN",
114 "TRANSACTION",
115 "TRIGGER",
116 "TRUE",
117 "TRUNCATE",
118 "TRY",
119 "UNBOUNDED",
120 "UNION",
121 "UNIQUE",
122 "UPDATE",
123 "UPDLOCK",
124 "USE",
125 "USING",
126 "VALUES",
127 "WHEN",
128 "WHERE",
129 "WHILE",
130 "WITH",
131];
132
133pub fn is_keyword(word: &str) -> bool {
136 RESERVED_KEYWORDS
137 .binary_search_by(|kw| {
138 kw.as_bytes()
139 .iter()
140 .copied()
141 .cmp(word.as_bytes().iter().map(|b| b.to_ascii_uppercase()))
142 })
143 .is_ok()
144}