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