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