OmniSciDB  c07336695a
ReservedKeywords.h
Go to the documentation of this file.
1 /*
2  * Copyright 2017 MapD Technologies, Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef PARSER_RESERVEDKEYWORDS_H
18 #define PARSER_RESERVEDKEYWORDS_H
19 
20 #include <set>
21 #include <string>
22 
23 static std::set<std::string> reserved_keywords{
24 
25  // MapD reserved keywords
26 
27  "ACCESS",
28  "ADD", // legacy
29  "AMMSC",
30  "ASC",
31  "CONTINUE",
32  "COPY",
33  "DASHBOARD",
34  "DATABASE",
35  "DATETIME",
36  "DATE_TRUNC",
37  "DESC",
38  "EDIT",
39  "EDITOR",
40  "FIRST",
41  "FOUND",
42  "GEOGRAPHY", // geo type
43  "GEOMETRY", // geo type
44  "IF",
45  "ILIKE",
46  "LAST",
47  "LENGTH",
48  "LINESTRING", // geo type
49  "MULTIPOLYGON", // geo type
50  "NOW",
51  "NULLX",
52  "OPTION",
53  "POINT", // geo type
54  "POLYGON", // geo type
55  "PRIVILEGES",
56  "PUBLIC",
57  "RENAME",
58  "ROLE", // permissions
59  "ROWID", // hidden column name
60  "SCHEMA",
61  "SQL",
62  "TEMPORARY", // in-memory tables
63  "TEXT",
64  "VIEW",
65  "WORK",
66 
67  // Calcite reserved keywords
68  // https://calcite.apache.org/docs/reference.html#keywords
69  // As of apache/calcite@9085b601081689b5b7f1e9f57deb20e2229910cb
70 
71  "ABS",
72  "ALL",
73  "ALLOCATE",
74  "ALLOW",
75  "ALTER",
76  "AND",
77  "ANY",
78  "ARE",
79  "ARRAY",
80  "ARRAY_MAX_CARDINALITY",
81  "AS",
82  "ASENSITIVE",
83  "ASYMMETRIC",
84  "AT",
85  "ATOMIC",
86  "AUTHORIZATION",
87  "AVG",
88  "BEGIN",
89  "BEGIN_FRAME",
90  "BEGIN_PARTITION",
91  "BETWEEN",
92  "BIGINT",
93  "BINARY",
94  "BIT",
95  "BLOB",
96  "BOOLEAN",
97  "BOTH",
98  "BY",
99  "CALL",
100  "CALLED",
101  "CARDINALITY",
102  "CASCADED",
103  "CASE",
104  "CAST",
105  "CEIL",
106  "CEILING",
107  "CHAR",
108  "CHARACTER",
109  "CHARACTER_LENGTH",
110  "CHAR_LENGTH",
111  "CHECK",
112  "CLASSIFIER",
113  "CLOB",
114  "CLOSE",
115  "COALESCE",
116  "COLLATE",
117  "COLLECT",
118  "COLUMN",
119  "COMMIT",
120  "CONDITION",
121  "CONNECT",
122  "CONSTRAINT",
123  "CONTAINS",
124  "CONVERT",
125  "CORR",
126  "CORRESPONDING",
127  "COUNT",
128  "COVAR_POP",
129  "COVAR_SAMP",
130  "CREATE",
131  "CROSS",
132  "CUBE",
133  "CUME_DIST",
134  "CURRENT",
135  "CURRENT_CATALOG",
136  "CURRENT_DATE",
137  "CURRENT_DEFAULT_TRANSFORM_GROUP",
138  "CURRENT_PATH",
139  "CURRENT_ROLE",
140  "CURRENT_ROW",
141  "CURRENT_SCHEMA",
142  "CURRENT_TIME",
143  "CURRENT_TIMESTAMP",
144  "CURRENT_TRANSFORM_GROUP_FOR_TYPE",
145  "CURRENT_USER",
146  "CURSOR",
147  "CYCLE",
148  "DATE",
149  "DAY",
150  "DEALLOCATE",
151  "DEC",
152  "DECIMAL",
153  "DECLARE",
154  "DEFAULT",
155  "DEFINE",
156  "DELETE",
157  "DENSE_RANK",
158  "DEREF",
159  "DESCRIBE",
160  "DETERMINISTIC",
161  "DISALLOW",
162  "DISCONNECT",
163  "DISTINCT",
164  "DOUBLE",
165  "DROP",
166  "DYNAMIC",
167  "EACH",
168  "ELEMENT",
169  "ELSE",
170  "EMPTY",
171  "END",
172  "END-EXEC",
173  "END_FRAME",
174  "END_PARTITION",
175  "EQUALS",
176  "ESCAPE",
177  "EVERY",
178  "EXCEPT",
179  "EXEC",
180  "EXECUTE",
181  "EXISTS",
182  "EXP",
183  "EXPLAIN",
184  "EXTEND",
185  "EXTERNAL",
186  "EXTRACT",
187  "FALSE",
188  "FETCH",
189  "FILTER",
190  "FIRST_VALUE",
191  "FLOAT",
192  "FLOOR",
193  "FOR",
194  "FOREIGN",
195  "FRAME_ROW",
196  "FREE",
197  "FROM",
198  "FULL",
199  "FUNCTION",
200  "FUSION",
201  "GET",
202  "GLOBAL",
203  "GRANT",
204  "GROUP",
205  "GROUPING",
206  "GROUPS",
207  "HAVING",
208  "HOLD",
209  "HOUR",
210  "IDENTITY",
211  "IMPORT",
212  "IN",
213  "INDICATOR",
214  "INITIAL",
215  "INNER",
216  "INOUT",
217  "INSENSITIVE",
218  "INSERT",
219  "INT",
220  "INTEGER",
221  "INTERSECT",
222  "INTERSECTION",
223  "INTERVAL",
224  "INTO",
225  "IS",
226  "JOIN",
227  "LAG",
228  "LANGUAGE",
229  "LARGE",
230  "LAST_VALUE",
231  "LATERAL",
232  "LEAD",
233  "LEADING",
234  "LEFT",
235  "LIKE",
236  "LIKE_REGEX",
237  "LIMIT",
238  "LN",
239  "LOCAL",
240  "LOCALTIME",
241  "LOCALTIMESTAMP",
242  "LOWER",
243  "MATCH",
244  "MATCHES",
245  "MATCH_NUMBER",
246  "MATCH_RECOGNIZE",
247  "MAX",
248  "MEASURES",
249  "MEMBER",
250  "MERGE",
251  "METHOD",
252  "MIN",
253  "MINUS",
254  "MINUTE",
255  "MOD",
256  "MODIFIES",
257  "MODULE",
258  "MONTH",
259  "MULTISET",
260  "NATIONAL",
261  "NATURAL",
262  "NCHAR",
263  "NCLOB",
264  "NEW",
265  "NEXT",
266  "NO",
267  "NONE",
268  "NORMALIZE",
269  "NOT",
270  "NTH_VALUE",
271  "NTILE",
272  "NULL",
273  "NULLIF",
274  "NUMERIC",
275  "OCCURRENCES_REGEX",
276  "OCTET_LENGTH",
277  "OF",
278  "OFFSET",
279  "OLD",
280  "OMIT",
281  "ON",
282  "ONE",
283  "ONLY",
284  "OPEN",
285  "OPTIMIZE",
286  "OR",
287  "ORDER",
288  "OUT",
289  "OUTER",
290  "OVER",
291  "OVERLAPS",
292  "OVERLAY",
293  "PARAMETER",
294  "PARTITION",
295  "PATTERN",
296  "PER",
297  "PERCENT",
298  "PERCENTILE_CONT",
299  "PERCENTILE_DISC",
300  "PERCENT_RANK",
301  "PERIOD",
302  "PERMUTE",
303  "PORTION",
304  "POSITION",
305  "POSITION_REGEX",
306  "POWER",
307  "PRECEDES",
308  "PRECISION",
309  "PREPARE",
310  "PREV",
311  "PRIMARY",
312  "PROCEDURE",
313  "RANGE",
314  "RANK",
315  "READS",
316  "REAL",
317  "RECURSIVE",
318  "REF",
319  "REFERENCES",
320  "REFERENCING",
321  "REGR_AVGX",
322  "REGR_AVGY",
323  "REGR_COUNT",
324  "REGR_INTERCEPT",
325  "REGR_R2",
326  "REGR_SLOPE",
327  "REGR_SXX",
328  "REGR_SXY",
329  "REGR_SYY",
330  "RELEASE",
331  "RESET",
332  "RESULT",
333  "RETURN",
334  "RETURNS",
335  "REVOKE",
336  "RIGHT",
337  "ROLLBACK",
338  "ROLLUP",
339  "ROW",
340  "ROWS",
341  "ROW_NUMBER",
342  "RUNNING",
343  "SAVEPOINT",
344  "SCOPE",
345  "SCROLL",
346  "SEARCH",
347  "SECOND",
348  "SEEK",
349  "SELECT",
350  "SENSITIVE",
351  "SESSION_USER",
352  "SET",
353  "SHOW",
354  "SIMILAR",
355  "SKIP",
356  "SMALLINT",
357  "SOME",
358  "SPECIFIC",
359  "SPECIFICTYPE",
360  "SQL",
361  "SQLEXCEPTION",
362  "SQLSTATE",
363  "SQLWARNING",
364  "SQRT",
365  "START",
366  "STATIC",
367  "STDDEV_POP",
368  "STDDEV_SAMP",
369  "STREAM",
370  "SUBMULTISET",
371  "SUBSET",
372  "SUBSTRING",
373  "SUBSTRING_REGEX",
374  "SUCCEEDS",
375  "SUM",
376  "SYMMETRIC",
377  "SYSTEM",
378  "SYSTEM_TIME",
379  "SYSTEM_USER",
380  "TABLE",
381  "TABLESAMPLE",
382  "THEN",
383  "TIME",
384  "TIMESTAMP",
385  "TIMEZONE_HOUR",
386  "TIMEZONE_MINUTE",
387  "TINYINT",
388  "TO",
389  "TRAILING",
390  "TRANSLATE",
391  "TRANSLATE_REGEX",
392  "TRANSLATION",
393  "TREAT",
394  "TRIGGER",
395  "TRIM",
396  "TRIM_ARRAY",
397  "TRUE",
398  "TRUNCATE",
399  "UESCAPE",
400  "UNION",
401  "UNIQUE",
402  "UNKNOWN",
403  "UNNEST",
404  "UPDATE",
405  "UPPER",
406  "UPSERT",
407  "USER",
408  "USING",
409  "VALUE",
410  "VALUES",
411  "VALUE_OF",
412  "VARBINARY",
413  "VARCHAR",
414  "VARYING",
415  "VAR_POP",
416  "VAR_SAMP",
417  "VERSIONING",
418  "WHEN",
419  "WHENEVER",
420  "WHERE",
421  "WIDTH_BUCKET",
422  "WINDOW",
423  "WITH",
424  "WITHIN",
425  "WITHOUT",
426  "YEAR",
427 };
428 
429 #endif // PARSER_RESERVEDKEYWORDS_H
static std::set< std::string > reserved_keywords