1#[cfg(feature = "serde")]
31use serde::{Deserialize, Serialize};
32
33#[cfg(feature = "visitor")]
34use sqltk_parser_derive::{Visit, VisitMut};
35
36macro_rules! kw_def {
39 ($ident:ident = $string_keyword:expr) => {
40 pub const $ident: &'static str = $string_keyword;
41 };
42 ($ident:ident) => {
43 kw_def!($ident = stringify!($ident));
44 };
45}
46
47macro_rules! define_keywords {
50 ($(
51 $ident:ident $(= $string_keyword:expr)?
52 ),*) => {
53 #[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Hash)]
54 #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
55 #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))]
56 #[allow(non_camel_case_types)]
57 pub enum Keyword {
58 NoKeyword,
59 $($ident),*
60 }
61
62 pub const ALL_KEYWORDS_INDEX: &[Keyword] = &[
63 $(Keyword::$ident),*
64 ];
65
66 $(kw_def!($ident $(= $string_keyword)?);)*
67 pub const ALL_KEYWORDS: &[&str] = &[
68 $($ident),*
69 ];
70 };
71}
72
73define_keywords!(
75 ABORT,
76 ABS,
77 ABSENT,
78 ABSOLUTE,
79 ACCESS,
80 ACCOUNT,
81 ACTION,
82 ADD,
83 ADMIN,
84 AFTER,
85 AGAINST,
86 AGGREGATE,
87 AGGREGATION,
88 ALERT,
89 ALGORITHM,
90 ALIAS,
91 ALL,
92 ALLOCATE,
93 ALTER,
94 ALWAYS,
95 ANALYZE,
96 AND,
97 ANTI,
98 ANY,
99 APPLICATION,
100 APPLY,
101 APPLYBUDGET,
102 ARCHIVE,
103 ARE,
104 ARRAY,
105 ARRAY_MAX_CARDINALITY,
106 AS,
107 ASC,
108 ASENSITIVE,
109 ASOF,
110 ASSERT,
111 ASYMMETRIC,
112 AT,
113 ATOMIC,
114 ATTACH,
115 AUDIT,
116 AUTHENTICATION,
117 AUTHORIZATION,
118 AUTO,
119 AUTOEXTEND_SIZE,
120 AUTOINCREMENT,
121 AUTO_INCREMENT,
122 AVG,
123 AVG_ROW_LENGTH,
124 AVRO,
125 BACKWARD,
126 BASE64,
127 BASE_LOCATION,
128 BEFORE,
129 BEGIN,
130 BEGIN_FRAME,
131 BEGIN_PARTITION,
132 BERNOULLI,
133 BETWEEN,
134 BIGDECIMAL,
135 BIGINT,
136 BIGNUMERIC,
137 BINARY,
138 BIND,
139 BINDING,
140 BIT,
141 BLOB,
142 BLOCK,
143 BLOOM,
144 BLOOMFILTER,
145 BOOL,
146 BOOLEAN,
147 BOTH,
148 BOX,
149 BRIN,
150 BROWSE,
151 BTREE,
152 BUCKET,
153 BUCKETS,
154 BY,
155 BYPASSRLS,
156 BYTEA,
157 BYTES,
158 CACHE,
159 CALL,
160 CALLED,
161 CARDINALITY,
162 CASCADE,
163 CASCADED,
164 CASE,
165 CASES,
166 CAST,
167 CATALOG,
168 CATALOG_SYNC,
169 CATCH,
170 CEIL,
171 CEILING,
172 CENTURY,
173 CHAIN,
174 CHANGE,
175 CHANGE_TRACKING,
176 CHANNEL,
177 CHAR,
178 CHARACTER,
179 CHARACTERISTICS,
180 CHARACTERS,
181 CHARACTER_LENGTH,
182 CHARSET,
183 CHAR_LENGTH,
184 CHECK,
185 CHECKSUM,
186 CIRCLE,
187 CLEAR,
188 CLOB,
189 CLONE,
190 CLOSE,
191 CLUSTER,
192 CLUSTERED,
193 CLUSTERING,
194 COALESCE,
195 COLLATE,
196 COLLATION,
197 COLLECT,
198 COLLECTION,
199 COLUMN,
200 COLUMNS,
201 COLUMNSTORE,
202 COMMENT,
203 COMMIT,
204 COMMITTED,
205 COMPATIBLE,
206 COMPRESSION,
207 COMPUTE,
208 CONCURRENTLY,
209 CONDITION,
210 CONFLICT,
211 CONNECT,
212 CONNECTION,
213 CONNECTOR,
214 CONNECT_BY_ROOT,
215 CONSTRAINT,
216 CONTAINS,
217 CONTINUE,
218 CONVERT,
219 COPY,
220 COPY_OPTIONS,
221 CORR,
222 CORRESPONDING,
223 COUNT,
224 COVAR_POP,
225 COVAR_SAMP,
226 CREATE,
227 CREATEDB,
228 CREATEROLE,
229 CREDENTIALS,
230 CROSS,
231 CSV,
232 CUBE,
233 CUME_DIST,
234 CURRENT,
235 CURRENT_CATALOG,
236 CURRENT_DATE,
237 CURRENT_DEFAULT_TRANSFORM_GROUP,
238 CURRENT_PATH,
239 CURRENT_ROLE,
240 CURRENT_ROW,
241 CURRENT_SCHEMA,
242 CURRENT_TIME,
243 CURRENT_TIMESTAMP,
244 CURRENT_TRANSFORM_GROUP_FOR_TYPE,
245 CURRENT_USER,
246 CURSOR,
247 CYCLE,
248 DATA,
249 DATABASE,
250 DATABASES,
251 DATA_RETENTION_TIME_IN_DAYS,
252 DATE,
253 DATE32,
254 DATETIME,
255 DATETIME64,
256 DAY,
257 DAYOFWEEK,
258 DAYOFYEAR,
259 DAYS,
260 DCPROPERTIES,
261 DEALLOCATE,
262 DEC,
263 DECADE,
264 DECIMAL,
265 DECLARE,
266 DEDUPLICATE,
267 DEFAULT,
268 DEFAULT_DDL_COLLATION,
269 DEFERRABLE,
270 DEFERRED,
271 DEFINE,
272 DEFINED,
273 DEFINER,
274 DELAYED,
275 DELAY_KEY_WRITE,
276 DELETE,
277 DELIMITED,
278 DELIMITER,
279 DELTA,
280 DENSE_RANK,
281 DEREF,
282 DESC,
283 DESCRIBE,
284 DETACH,
285 DETAIL,
286 DETERMINISTIC,
287 DIRECTORY,
288 DISABLE,
289 DISCARD,
290 DISCONNECT,
291 DISTINCT,
292 DISTRIBUTE,
293 DIV,
294 DO,
295 DOMAIN,
296 DOUBLE,
297 DOW,
298 DOY,
299 DROP,
300 DRY,
301 DUPLICATE,
302 DYNAMIC,
303 EACH,
304 ELEMENT,
305 ELEMENTS,
306 ELSE,
307 ELSEIF,
308 EMPTY,
309 ENABLE,
310 ENABLE_SCHEMA_EVOLUTION,
311 ENCODING,
312 ENCRYPTION,
313 END,
314 END_EXEC = "END-EXEC",
315 ENDPOINT,
316 END_FRAME,
317 END_PARTITION,
318 ENFORCED,
319 ENGINE,
320 ENGINE_ATTRIBUTE,
321 ENUM,
322 ENUM16,
323 ENUM8,
324 EPHEMERAL,
325 EPOCH,
326 EQUALS,
327 ERROR,
328 ESCAPE,
329 ESCAPED,
330 ESTIMATE,
331 EVENT,
332 EVERY,
333 EVOLVE,
334 EXCEPT,
335 EXCEPTION,
336 EXCHANGE,
337 EXCLUDE,
338 EXCLUSIVE,
339 EXEC,
340 EXECUTE,
341 EXECUTION,
342 EXISTS,
343 EXP,
344 EXPANSION,
345 EXPLAIN,
346 EXPLICIT,
347 EXPORT,
348 EXTEND,
349 EXTENDED,
350 EXTENSION,
351 EXTERNAL,
352 EXTERNAL_VOLUME,
353 EXTRACT,
354 FAIL,
355 FAILOVER,
356 FALSE,
357 FETCH,
358 FIELDS,
359 FILE,
360 FILES,
361 FILE_FORMAT,
362 FILL,
363 FILTER,
364 FINAL,
365 FIRST,
366 FIRST_VALUE,
367 FIXEDSTRING,
368 FLOAT,
369 FLOAT32,
370 FLOAT4,
371 FLOAT64,
372 FLOAT8,
373 FLOOR,
374 FLUSH,
375 FN,
376 FOLLOWING,
377 FOR,
378 FORCE,
379 FORCE_NOT_NULL,
380 FORCE_NULL,
381 FORCE_QUOTE,
382 FOREIGN,
383 FORMAT,
384 FORMATTED,
385 FORWARD,
386 FRAME_ROW,
387 FREE,
388 FREEZE,
389 FROM,
390 FSCK,
391 FULFILLMENT,
392 FULL,
393 FULLTEXT,
394 FUNCTION,
395 FUNCTIONS,
396 FUSION,
397 GENERAL,
398 GENERATE,
399 GENERATED,
400 GEOGRAPHY,
401 GET,
402 GIN,
403 GIST,
404 GLOBAL,
405 GRANT,
406 GRANTED,
407 GRANTS,
408 GRAPHVIZ,
409 GROUP,
410 GROUPING,
411 GROUPS,
412 HASH,
413 HAVING,
414 HEADER,
415 HEAP,
416 HIGH_PRIORITY,
417 HISTORY,
418 HIVEVAR,
419 HOLD,
420 HOSTS,
421 HOUR,
422 HOURS,
423 HUGEINT,
424 ICEBERG,
425 ID,
426 IDENTITY,
427 IDENTITY_INSERT,
428 IF,
429 IGNORE,
430 ILIKE,
431 IMMEDIATE,
432 IMMUTABLE,
433 IMPORT,
434 IMPORTED,
435 IN,
436 INCLUDE,
437 INCLUDE_NULL_VALUES,
438 INCREMENT,
439 INDEX,
440 INDICATOR,
441 INHERIT,
442 INHERITS,
443 INITIALLY,
444 INNER,
445 INOUT,
446 INPATH,
447 INPLACE,
448 INPUT,
449 INPUTFORMAT,
450 INSENSITIVE,
451 INSERT,
452 INSERT_METHOD,
453 INSTALL,
454 INSTANT,
455 INSTEAD,
456 INT,
457 INT128,
458 INT16,
459 INT2,
460 INT256,
461 INT32,
462 INT4,
463 INT64,
464 INT8,
465 INTEGER,
466 INTEGRATION,
467 INTERPOLATE,
468 INTERSECT,
469 INTERSECTION,
470 INTERVAL,
471 INTO,
472 INVOKER,
473 IO,
474 IS,
475 ISODOW,
476 ISOLATION,
477 ISOWEEK,
478 ISOYEAR,
479 ITEMS,
480 JAR,
481 JOIN,
482 JSON,
483 JSONB,
484 JSONFILE,
485 JSON_TABLE,
486 JULIAN,
487 KEY,
488 KEYS,
489 KEY_BLOCK_SIZE,
490 KILL,
491 LAG,
492 LANGUAGE,
493 LARGE,
494 LAST,
495 LAST_VALUE,
496 LATERAL,
497 LEAD,
498 LEADING,
499 LEFT,
500 LEVEL,
501 LIKE,
502 LIKE_REGEX,
503 LIMIT,
504 LINE,
505 LINES,
506 LIST,
507 LISTEN,
508 LISTING,
509 LN,
510 LOAD,
511 LOCAL,
512 LOCALTIME,
513 LOCALTIMESTAMP,
514 LOCATION,
515 LOCK,
516 LOCKED,
517 LOG,
518 LOGIN,
519 LOGS,
520 LONGBLOB,
521 LONGTEXT,
522 LOWCARDINALITY,
523 LOWER,
524 LOW_PRIORITY,
525 LS,
526 LSEG,
527 MACRO,
528 MANAGE,
529 MANAGED,
530 MANAGEDLOCATION,
531 MAP,
532 MASKING,
533 MATCH,
534 MATCHED,
535 MATCHES,
536 MATCH_CONDITION,
537 MATCH_RECOGNIZE,
538 MATERIALIZE,
539 MATERIALIZED,
540 MAX,
541 MAXVALUE,
542 MAX_DATA_EXTENSION_TIME_IN_DAYS,
543 MAX_ROWS,
544 MEASURES,
545 MEDIUMBLOB,
546 MEDIUMINT,
547 MEDIUMTEXT,
548 MEMBER,
549 MERGE,
550 MESSAGE,
551 METADATA,
552 METHOD,
553 METRIC,
554 MICROSECOND,
555 MICROSECONDS,
556 MILLENIUM,
557 MILLENNIUM,
558 MILLISECOND,
559 MILLISECONDS,
560 MIN,
561 MINUS,
562 MINUTE,
563 MINUTES,
564 MINVALUE,
565 MIN_ROWS,
566 MOD,
567 MODE,
568 MODIFIES,
569 MODIFY,
570 MODULE,
571 MONITOR,
572 MONTH,
573 MONTHS,
574 MSCK,
575 MULTISET,
576 MUTATION,
577 NAME,
578 NAMES,
579 NANOSECOND,
580 NANOSECONDS,
581 NATIONAL,
582 NATURAL,
583 NCHAR,
584 NCLOB,
585 NESTED,
586 NETWORK,
587 NEW,
588 NEXT,
589 NFC,
590 NFD,
591 NFKC,
592 NFKD,
593 NO,
594 NOBYPASSRLS,
595 NOCREATEDB,
596 NOCREATEROLE,
597 NOINHERIT,
598 NOLOGIN,
599 NONE,
600 NOORDER,
601 NOREPLICATION,
602 NORMALIZE,
603 NORMALIZED,
604 NOSCAN,
605 NOSUPERUSER,
606 NOT,
607 NOTHING,
608 NOTIFY,
609 NOWAIT,
610 NO_WRITE_TO_BINLOG,
611 NTH_VALUE,
612 NTILE,
613 NULL,
614 NULLABLE,
615 NULLIF,
616 NULLS,
617 NUMERIC,
618 NVARCHAR,
619 OBJECT,
620 OBJECTS,
621 OCCURRENCES_REGEX,
622 OCTETS,
623 OCTET_LENGTH,
624 OF,
625 OFF,
626 OFFSET,
627 OFFSETS,
628 OLD,
629 OMIT,
630 ON,
631 ONE,
632 ONLY,
633 OPEN,
634 OPENJSON,
635 OPERATE,
636 OPERATOR,
637 OPTIMIZATION,
638 OPTIMIZE,
639 OPTIMIZED,
640 OPTIMIZER_COSTS,
641 OPTION,
642 OPTIONS,
643 OR,
644 ORC,
645 ORDER,
646 ORDINALITY,
647 ORGANIZATION,
648 OUT,
649 OUTER,
650 OUTPUT,
651 OUTPUTFORMAT,
652 OVER,
653 OVERFLOW,
654 OVERLAPS,
655 OVERLAY,
656 OVERRIDE,
657 OVERWRITE,
658 OWNED,
659 OWNER,
660 OWNERSHIP,
661 PACKAGE,
662 PACKAGES,
663 PACK_KEYS,
664 PARALLEL,
665 PARAMETER,
666 PARQUET,
667 PART,
668 PARTITION,
669 PARTITIONED,
670 PARTITIONS,
671 PASSING,
672 PASSWORD,
673 PAST,
674 PATH,
675 PATTERN,
676 PER,
677 PERCENT,
678 PERCENTILE_CONT,
679 PERCENTILE_DISC,
680 PERCENT_RANK,
681 PERIOD,
682 PERMISSIVE,
683 PERSISTENT,
684 PIVOT,
685 PLACING,
686 PLAN,
687 PLANS,
688 POINT,
689 POLICY,
690 POLYGON,
691 POOL,
692 PORTION,
693 POSITION,
694 POSITION_REGEX,
695 POWER,
696 PRAGMA,
697 PRECEDES,
698 PRECEDING,
699 PRECISION,
700 PREPARE,
701 PRESERVE,
702 PREWHERE,
703 PRIMARY,
704 PRINT,
705 PRIOR,
706 PRIVILEGES,
707 PROCEDURE,
708 PROFILE,
709 PROGRAM,
710 PROJECTION,
711 PUBLIC,
712 PURCHASE,
713 PURGE,
714 QUALIFY,
715 QUARTER,
716 QUERY,
717 QUOTE,
718 RAISE,
719 RAISERROR,
720 RANGE,
721 RANK,
722 RAW,
723 RCFILE,
724 READ,
725 READS,
726 READ_ONLY,
727 REAL,
728 RECLUSTER,
729 RECURSIVE,
730 REF,
731 REFERENCES,
732 REFERENCING,
733 REGCLASS,
734 REGEXP,
735 REGR_AVGX,
736 REGR_AVGY,
737 REGR_COUNT,
738 REGR_INTERCEPT,
739 REGR_R2,
740 REGR_SLOPE,
741 REGR_SXX,
742 REGR_SXY,
743 REGR_SYY,
744 RELATIVE,
745 RELAY,
746 RELEASE,
747 RELEASES,
748 REMOTE,
749 REMOVE,
750 RENAME,
751 REORG,
752 REPAIR,
753 REPEATABLE,
754 REPLACE,
755 REPLICA,
756 REPLICATE,
757 REPLICATION,
758 RESET,
759 RESOLVE,
760 RESOURCE,
761 RESPECT,
762 RESTART,
763 RESTRICT,
764 RESTRICTED,
765 RESTRICTIONS,
766 RESTRICTIVE,
767 RESULT,
768 RESULTSET,
769 RESUME,
770 RETAIN,
771 RETURN,
772 RETURNING,
773 RETURNS,
774 REVOKE,
775 RIGHT,
776 RLIKE,
777 RM,
778 ROLE,
779 ROLES,
780 ROLLBACK,
781 ROLLUP,
782 ROOT,
783 ROW,
784 ROWID,
785 ROWS,
786 ROW_FORMAT,
787 ROW_NUMBER,
788 RULE,
789 RUN,
790 SAFE,
791 SAFE_CAST,
792 SAMPLE,
793 SAVEPOINT,
794 SCHEMA,
795 SCHEMAS,
796 SCOPE,
797 SCROLL,
798 SEARCH,
799 SECOND,
800 SECONDARY,
801 SECONDARY_ENGINE_ATTRIBUTE,
802 SECONDS,
803 SECRET,
804 SECURITY,
805 SEED,
806 SELECT,
807 SEMI,
808 SENSITIVE,
809 SEPARATOR,
810 SEQUENCE,
811 SEQUENCEFILE,
812 SEQUENCES,
813 SERDE,
814 SERDEPROPERTIES,
815 SERIALIZABLE,
816 SERVICE,
817 SESSION,
818 SESSION_USER,
819 SET,
820 SETERROR,
821 SETS,
822 SETTINGS,
823 SHARE,
824 SHARED,
825 SHARING,
826 SHOW,
827 SIGNED,
828 SIMILAR,
829 SKIP,
830 SLOW,
831 SMALLINT,
832 SNAPSHOT,
833 SOME,
834 SORT,
835 SORTED,
836 SOURCE,
837 SPATIAL,
838 SPECIFIC,
839 SPECIFICTYPE,
840 SPGIST,
841 SQL,
842 SQLEXCEPTION,
843 SQLSTATE,
844 SQLWARNING,
845 SQRT,
846 STABLE,
847 STAGE,
848 START,
849 STARTS,
850 STATEMENT,
851 STATIC,
852 STATISTICS,
853 STATS_AUTO_RECALC,
854 STATS_PERSISTENT,
855 STATS_SAMPLE_PAGES,
856 STATUS,
857 STDDEV_POP,
858 STDDEV_SAMP,
859 STDIN,
860 STDOUT,
861 STEP,
862 STORAGE,
863 STORAGE_INTEGRATION,
864 STORAGE_SERIALIZATION_POLICY,
865 STORED,
866 STRAIGHT_JOIN,
867 STRICT,
868 STRING,
869 STRUCT,
870 SUBMULTISET,
871 SUBSTR,
872 SUBSTRING,
873 SUBSTRING_REGEX,
874 SUCCEEDS,
875 SUM,
876 SUPER,
877 SUPERUSER,
878 SUPPORT,
879 SUSPEND,
880 SWAP,
881 SYMMETRIC,
882 SYNC,
883 SYSTEM,
884 SYSTEM_TIME,
885 SYSTEM_USER,
886 TABLE,
887 TABLES,
888 TABLESAMPLE,
889 TABLESPACE,
890 TAG,
891 TARGET,
892 TASK,
893 TBLPROPERTIES,
894 TEMP,
895 TEMPORARY,
896 TEMPTABLE,
897 TERMINATED,
898 TERSE,
899 TEXT,
900 TEXTFILE,
901 THEN,
902 TIES,
903 TIME,
904 TIMESTAMP,
905 TIMESTAMPTZ,
906 TIMESTAMP_NTZ,
907 TIMETZ,
908 TIMEZONE,
909 TIMEZONE_ABBR,
910 TIMEZONE_HOUR,
911 TIMEZONE_MINUTE,
912 TIMEZONE_REGION,
913 TINYBLOB,
914 TINYINT,
915 TINYTEXT,
916 TO,
917 TOP,
918 TOTALS,
919 TRACE,
920 TRAILING,
921 TRANSACTION,
922 TRANSIENT,
923 TRANSLATE,
924 TRANSLATE_REGEX,
925 TRANSLATION,
926 TREAT,
927 TRIGGER,
928 TRIM,
929 TRIM_ARRAY,
930 TRUE,
931 TRUNCATE,
932 TRY,
933 TRY_CAST,
934 TRY_CONVERT,
935 TUPLE,
936 TYPE,
937 UBIGINT,
938 UESCAPE,
939 UHUGEINT,
940 UINT128,
941 UINT16,
942 UINT256,
943 UINT32,
944 UINT64,
945 UINT8,
946 UNBOUNDED,
947 UNCACHE,
948 UNCOMMITTED,
949 UNDEFINED,
950 UNFREEZE,
951 UNION,
952 UNIQUE,
953 UNKNOWN,
954 UNLISTEN,
955 UNLOAD,
956 UNLOCK,
957 UNLOGGED,
958 UNMATCHED,
959 UNNEST,
960 UNPIVOT,
961 UNSAFE,
962 UNSET,
963 UNSIGNED,
964 UNTIL,
965 UPDATE,
966 UPPER,
967 URL,
968 USAGE,
969 USE,
970 USER,
971 USER_RESOURCES,
972 USING,
973 USMALLINT,
974 UTINYINT,
975 UUID,
976 VACUUM,
977 VALID,
978 VALIDATION_MODE,
979 VALUE,
980 VALUES,
981 VALUE_OF,
982 VARBINARY,
983 VARBIT,
984 VARCHAR,
985 VARIABLES,
986 VARYING,
987 VAR_POP,
988 VAR_SAMP,
989 VERBOSE,
990 VERSION,
991 VERSIONING,
992 VERSIONS,
993 VIEW,
994 VIEWS,
995 VIRTUAL,
996 VOLATILE,
997 VOLUME,
998 WAREHOUSE,
999 WAREHOUSES,
1000 WEEK,
1001 WEEKS,
1002 WHEN,
1003 WHENEVER,
1004 WHERE,
1005 WHILE,
1006 WIDTH_BUCKET,
1007 WINDOW,
1008 WITH,
1009 WITHIN,
1010 WITHOUT,
1011 WITHOUT_ARRAY_WRAPPER,
1012 WORK,
1013 WRITE,
1014 XML,
1015 XMLNAMESPACES,
1016 XMLTABLE,
1017 XOR,
1018 YEAR,
1019 YEARS,
1020 ZONE,
1021 ZORDER
1022);
1023
1024pub const RESERVED_FOR_TABLE_ALIAS: &[Keyword] = &[
1027 Keyword::WITH,
1029 Keyword::EXPLAIN,
1030 Keyword::ANALYZE,
1031 Keyword::SELECT,
1032 Keyword::WHERE,
1033 Keyword::GROUP,
1034 Keyword::SORT,
1035 Keyword::HAVING,
1036 Keyword::ORDER,
1037 Keyword::PIVOT,
1038 Keyword::UNPIVOT,
1039 Keyword::TOP,
1040 Keyword::LATERAL,
1041 Keyword::VIEW,
1042 Keyword::LIMIT,
1043 Keyword::OFFSET,
1044 Keyword::FETCH,
1045 Keyword::UNION,
1046 Keyword::EXCEPT,
1047 Keyword::INTERSECT,
1048 Keyword::MINUS,
1049 Keyword::ON,
1051 Keyword::JOIN,
1052 Keyword::INNER,
1053 Keyword::CROSS,
1054 Keyword::FULL,
1055 Keyword::LEFT,
1056 Keyword::RIGHT,
1057 Keyword::NATURAL,
1058 Keyword::USING,
1059 Keyword::CLUSTER,
1060 Keyword::DISTRIBUTE,
1061 Keyword::GLOBAL,
1062 Keyword::ANTI,
1063 Keyword::SEMI,
1064 Keyword::RETURNING,
1065 Keyword::ASOF,
1066 Keyword::MATCH_CONDITION,
1067 Keyword::OUTER,
1069 Keyword::SET,
1070 Keyword::QUALIFY,
1071 Keyword::WINDOW,
1072 Keyword::END,
1073 Keyword::FOR,
1074 Keyword::PARTITION,
1076 Keyword::PREWHERE,
1078 Keyword::SETTINGS,
1079 Keyword::FORMAT,
1080 Keyword::START,
1082 Keyword::CONNECT,
1083 Keyword::MATCH_RECOGNIZE,
1085 Keyword::SAMPLE,
1087 Keyword::TABLESAMPLE,
1088 Keyword::FROM,
1089 Keyword::OPEN,
1090];
1091
1092pub const RESERVED_FOR_COLUMN_ALIAS: &[Keyword] = &[
1095 Keyword::WITH,
1097 Keyword::EXPLAIN,
1098 Keyword::ANALYZE,
1099 Keyword::SELECT,
1100 Keyword::WHERE,
1101 Keyword::GROUP,
1102 Keyword::SORT,
1103 Keyword::HAVING,
1104 Keyword::ORDER,
1105 Keyword::TOP,
1106 Keyword::LATERAL,
1107 Keyword::VIEW,
1108 Keyword::LIMIT,
1109 Keyword::OFFSET,
1110 Keyword::FETCH,
1111 Keyword::UNION,
1112 Keyword::EXCEPT,
1113 Keyword::INTERSECT,
1114 Keyword::MINUS,
1115 Keyword::CLUSTER,
1116 Keyword::DISTRIBUTE,
1117 Keyword::RETURNING,
1118 Keyword::FROM,
1120 Keyword::INTO,
1121 Keyword::END,
1122];
1123
1124pub const RESERVED_FOR_TABLE_FACTOR: &[Keyword] = &[
1128 Keyword::INTO,
1129 Keyword::LIMIT,
1130 Keyword::HAVING,
1131 Keyword::WHERE,
1132];
1133
1134pub const RESERVED_FOR_IDENTIFIER: &[Keyword] = &[
1138 Keyword::EXISTS,
1139 Keyword::INTERVAL,
1140 Keyword::STRUCT,
1141 Keyword::TRIM,
1142];