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