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