OmniSciDB  dfae7c3b14
ReservedKeywords.h
Go to the documentation of this file.
1 /*
2  * Copyright 2020 OmniSci, 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 #pragma once
18 
19 #include <set>
20 #include <string>
21 
22 static std::set<std::string> reserved_keywords{
23 
24  // OmniSci reserved keywords
25 
26  "ACCESS",
27  "ADD", // legacy
28  "AMMSC",
29  "ARCHIVE",
30  "ASC",
31  "CONTINUE",
32  "COPY",
33  "DASHBOARD",
34  "DATABASE",
35  "DATAFRAME",
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 };
static std::set< std::string > reserved_keywords