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 AT,
135 ATOMIC,
136 ATTACH,
137 AUDIT,
138 AUTHENTICATION,
139 AUTHORIZATION,
140 AUTHORIZATIONS,
141 AUTO,
142 AUTOEXTEND_SIZE,
143 AUTOINCREMENT,
144 AUTO_INCREMENT,
145 AVG,
146 AVG_ROW_LENGTH,
147 AVRO,
148 BACKUP,
149 BACKWARD,
150 BASE64,
151 BASE_LOCATION,
152 BEFORE,
153 BEGIN,
154 BEGIN_FRAME,
155 BEGIN_PARTITION,
156 BERNOULLI,
157 BETWEEN,
158 BIGDECIMAL,
159 BIGINT,
160 BIGNUMERIC,
161 BINARY,
162 BIND,
163 BINDING,
164 BIT,
165 BLANKSASNULL,
166 BLOB,
167 BLOCK,
168 BLOOM,
169 BLOOMFILTER,
170 BOOL,
171 BOOLEAN,
172 BOOST,
173 BOTH,
174 BOX,
175 BRIN,
176 BROWSE,
177 BTREE,
178 BUCKET,
179 BUCKETS,
180 BY,
181 BYPASSRLS,
182 BYTEA,
183 BYTES,
184 BZIP2,
185 CACHE,
186 CALL,
187 CALLED,
188 CANONICAL,
189 CARDINALITY,
190 CASCADE,
191 CASCADED,
192 CASE,
193 CASES,
194 CAST,
195 CATALOG,
196 CATALOGS,
197 CATALOG_SYNC,
198 CATALOG_SYNC_NAMESPACE_FLATTEN_DELIMITER,
199 CATALOG_SYNC_NAMESPACE_MODE,
200 CATCH,
201 CATEGORY,
202 CEIL,
203 CEILING,
204 CENTURY,
205 CHAIN,
206 CHANGE,
207 CHANGES,
208 CHANGE_TRACKING,
209 CHANNEL,
210 CHAR,
211 CHARACTER,
212 CHARACTERISTICS,
213 CHARACTERS,
214 CHARACTER_LENGTH,
215 CHARSET,
216 CHAR_LENGTH,
217 CHECK,
218 CHECKSUM,
219 CIRCLE,
220 CLASS,
221 CLEANPATH,
222 CLEAR,
223 CLOB,
224 CLONE,
225 CLOSE,
226 CLUSTER,
227 CLUSTERED,
228 CLUSTERING,
229 COALESCE,
230 COLLATABLE,
231 COLLATE,
232 COLLATION,
233 COLLECT,
234 COLLECTION,
235 COLUMN,
236 COLUMNS,
237 COLUMNSTORE,
238 COMMENT,
239 COMMIT,
240 COMMITTED,
241 COMMUTATOR,
242 COMPATIBLE,
243 COMPRESS,
244 COMPRESSION,
245 COMPUPDATE,
246 COMPUTE,
247 CONFIGURATION,
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 DICTIONARY,
338 DIMENSIONS,
339 DIRECTORY,
340 DISABLE,
341 DISCARD,
342 DISCONNECT,
343 DISTINCT,
344 DISTINCTROW,
345 DISTKEY,
346 DISTRIBUTE,
347 DISTSTYLE,
348 DIV,
349 DO,
350 DOMAIN,
351 DOUBLE,
352 DOW,
353 DOWNSTREAM,
354 DOY,
355 DROP,
356 DRY,
357 DUO,
358 DUPLICATE,
359 DYNAMIC,
360 EACH,
361 ELEMENT,
362 ELEMENTS,
363 ELSE,
364 ELSEIF,
365 EMPTY,
366 EMPTYASNULL,
367 ENABLE,
368 ENABLE_SCHEMA_EVOLUTION,
369 ENCODING,
370 ENCRYPTED,
371 ENCRYPTION,
372 END,
373 END_EXEC = "END-EXEC",
374 ENDPOINT,
375 END_FRAME,
376 END_PARTITION,
377 ENFORCED,
378 ENGINE,
379 ENGINE_ATTRIBUTE,
380 ENROLL,
381 ENUM,
382 ENUM16,
383 ENUM8,
384 EPHEMERAL,
385 EPOCH,
386 EQUALS,
387 ERROR,
388 ESCAPE,
389 ESCAPED,
390 ESTIMATE,
391 EVEN,
392 EVENT,
393 EVERY,
394 EVOLVE,
395 EXCEPT,
396 EXCEPTION,
397 EXCHANGE,
398 EXCLUDE,
399 EXCLUDING,
400 EXCLUSIVE,
401 EXEC,
402 EXECUTE,
403 EXECUTION,
404 EXISTS,
405 EXP,
406 EXPANSION,
407 EXPLAIN,
408 EXPLICIT,
409 EXPORT,
410 EXTEND,
411 EXTENDED,
412 EXTENSION,
413 EXTERNAL,
414 EXTERNAL_VOLUME,
415 EXTRACT,
416 FACTS,
417 FAIL,
418 FAILOVER,
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 HANDLER,
482 HASH,
483 HASHES,
484 HAVING,
485 HEADER,
486 HEAP,
487 HIGH_PRIORITY,
488 HISTORY,
489 HIVEVAR,
490 HOLD,
491 HOSTS,
492 HOUR,
493 HOURS,
494 HUGEINT,
495 IAM_ROLE,
496 ICEBERG,
497 ID,
498 IDENTIFIED,
499 IDENTITY,
500 IDENTITY_INSERT,
501 IF,
502 IGNORE,
503 IGNOREHEADER,
504 ILIKE,
505 IMMEDIATE,
506 IMMUTABLE,
507 IMPORT,
508 IMPORTED,
509 IN,
510 INCLUDE,
511 INCLUDE_NULL_VALUES,
512 INCLUDING,
513 INCREMENT,
514 INCREMENTAL,
515 INDEX,
516 INDICATOR,
517 INHERIT,
518 INHERITS,
519 INITIALIZE,
520 INITIALLY,
521 INNER,
522 INOUT,
523 INPATH,
524 INPLACE,
525 INPUT,
526 INPUTFORMAT,
527 INSENSITIVE,
528 INSERT,
529 INSERT_METHOD,
530 INSTALL,
531 INSTANT,
532 INSTEAD,
533 INT,
534 INT128,
535 INT16,
536 INT2,
537 INT256,
538 INT32,
539 INT4,
540 INT64,
541 INT8,
542 INTEGER,
543 INTEGRATION,
544 INTERNALLENGTH,
545 INTERPOLATE,
546 INTERSECT,
547 INTERSECTION,
548 INTERVAL,
549 INTO,
550 INVISIBLE,
551 INVOKER,
552 IO,
553 IS,
554 ISODOW,
555 ISOLATION,
556 ISOWEEK,
557 ISOYEAR,
558 ITEMS,
559 JAR,
560 JOIN,
561 JSON,
562 JSONB,
563 JSONFILE,
564 JSON_TABLE,
565 JULIAN,
566 KEY,
567 KEYS,
568 KEY_BLOCK_SIZE,
569 KILL,
570 LAG,
571 LAMBDA,
572 LANGUAGE,
573 LARGE,
574 LAST,
575 LAST_VALUE,
576 LATERAL,
577 LEAD,
578 LEADING,
579 LEAKPROOF,
580 LEAST,
581 LEFT,
582 LEFTARG,
583 LEVEL,
584 LIFECYCLE,
585 LIKE,
586 LIKE_REGEX,
587 LIMIT,
588 LINE,
589 LINES,
590 LIST,
591 LISTEN,
592 LISTING,
593 LN,
594 LOAD,
595 LOCAL,
596 LOCALTIME,
597 LOCALTIMESTAMP,
598 LOCATION,
599 LOCK,
600 LOCKED,
601 LOG,
602 LOGIN,
603 LOGS,
604 LONG,
605 LONGBLOB,
606 LONGTEXT,
607 LOWCARDINALITY,
608 LOWER,
609 LOW_PRIORITY,
610 LS,
611 LSEG,
612 MACRO,
613 MAIN,
614 MANAGE,
615 MANAGED,
616 MANAGEDLOCATION,
617 MANIFEST,
618 MAP,
619 MASKING,
620 MATCH,
621 MATCHED,
622 MATCHES,
623 MATCH_CONDITION,
624 MATCH_RECOGNIZE,
625 MATERIALIZE,
626 MATERIALIZED,
627 MAX,
628 MAXFILESIZE,
629 MAXVALUE,
630 MAX_DATA_EXTENSION_TIME_IN_DAYS,
631 MAX_ROWS,
632 MB,
633 MEASURES,
634 MEDIUMBLOB,
635 MEDIUMINT,
636 MEDIUMTEXT,
637 MEMBER,
638 MERGE,
639 MERGES,
640 MESSAGE,
641 METADATA,
642 METHOD,
643 METRIC,
644 METRICS,
645 MFA,
646 MICROSECOND,
647 MICROSECONDS,
648 MILLENIUM,
649 MILLENNIUM,
650 MILLISECOND,
651 MILLISECONDS,
652 MIN,
653 MINUS,
654 MINUTE,
655 MINUTES,
656 MINVALUE,
657 MIN_ROWS,
658 MOD,
659 MODE,
660 MODIFIES,
661 MODIFY,
662 MODULE,
663 MODULUS,
664 MONITOR,
665 MONTH,
666 MONTHS,
667 MSCK,
668 MULTIRANGE_TYPE_NAME,
669 MULTISET,
670 MUTATION,
671 NAME,
672 NAMES,
673 NANOSECOND,
674 NANOSECONDS,
675 NATIONAL,
676 NATURAL,
677 NCHAR,
678 NCLOB,
679 NEGATOR,
680 NEST,
681 NESTED,
682 NETWORK,
683 NEW,
684 NEXT,
685 NFC,
686 NFD,
687 NFKC,
688 NFKD,
689 NO,
690 NOBYPASSRLS,
691 NOCOMPRESS,
692 NOCREATEDB,
693 NOCREATEROLE,
694 NOCYCLE,
695 NOINHERIT,
696 NOLOGIN,
697 NONE,
698 NOORDER,
699 NOREPLICATION,
700 NORMALIZE,
701 NORMALIZED,
702 NOSCAN,
703 NOSUPERUSER,
704 NOT,
705 NOTHING,
706 NOTIFY,
707 NOTNULL,
708 NOWAIT,
709 NO_WRITE_TO_BINLOG,
710 NTH_VALUE,
711 NTILE,
712 NULL,
713 NULLABLE,
714 NULLIF,
715 NULLS,
716 NUMBER,
717 NUMERIC,
718 NVARCHAR,
719 OBJECT,
720 OBJECTS,
721 OCCURRENCES_REGEX,
722 OCTETS,
723 OCTET_LENGTH,
724 OF,
725 OFF,
726 OFFSET,
727 OFFSETS,
728 OLD,
729 OMIT,
730 ON,
731 ONE,
732 ONLY,
733 ON_CREATE,
734 ON_SCHEDULE,
735 OPEN,
736 OPENJSON,
737 OPERATE,
738 OPERATOR,
739 OPTIMIZATION,
740 OPTIMIZE,
741 OPTIMIZED,
742 OPTIMIZER_COSTS,
743 OPTION,
744 OPTIONS,
745 OR,
746 ORC,
747 ORDER,
748 ORDINALITY,
749 ORGANIZATION,
750 OTHER,
751 OTP,
752 OUT,
753 OUTER,
754 OUTPUT,
755 OUTPUTFORMAT,
756 OVER,
757 OVERFLOW,
758 OVERLAPS,
759 OVERLAY,
760 OVERRIDE,
761 OVERWRITE,
762 OWNED,
763 OWNER,
764 OWNERSHIP,
765 PACKAGE,
766 PACKAGES,
767 PACK_KEYS,
768 PARALLEL,
769 PARAMETER,
770 PARQUET,
771 PARSER,
772 PART,
773 PARTIAL,
774 PARTITION,
775 PARTITIONED,
776 PARTITIONS,
777 PASSEDBYVALUE,
778 PASSING,
779 PASSKEY,
780 PASSWORD,
781 PAST,
782 PATH,
783 PATTERN,
784 PCTFREE,
785 PER,
786 PERCENT,
787 PERCENTILE_CONT,
788 PERCENTILE_DISC,
789 PERCENT_RANK,
790 PERIOD,
791 PERMISSIVE,
792 PERSISTENT,
793 PIVOT,
794 PLACING,
795 PLAIN,
796 PLAN,
797 PLANS,
798 POINT,
799 POLICY,
800 POLYGON,
801 POOL,
802 PORTION,
803 POSITION,
804 POSITION_REGEX,
805 POWER,
806 PRAGMA,
807 PRECEDES,
808 PRECEDING,
809 PRECISION,
810 PREFERRED,
811 PREPARE,
812 PRESERVE,
813 PRESET,
814 PREWHERE,
815 PRIMARY,
816 PRINT,
817 PRIOR,
818 PRIVILEGES,
819 PROCEDURE,
820 PROCESSLIST,
821 PROFILE,
822 PROGRAM,
823 PROJECTION,
824 PUBLIC,
825 PURCHASE,
826 PURGE,
827 QUALIFY,
828 QUARTER,
829 QUERIES,
830 QUERY,
831 QUOTE,
832 RAISE,
833 RAISERROR,
834 RANGE,
835 RANK,
836 RAW,
837 RCFILE,
838 READ,
839 READS,
840 READ_ONLY,
841 REAL,
842 RECEIVE,
843 RECLUSTER,
844 RECURSIVE,
845 REF,
846 REFERENCES,
847 REFERENCING,
848 REFRESH,
849 REFRESH_MODE,
850 REGCLASS,
851 REGEXP,
852 REGION,
853 REGR_AVGX,
854 REGR_AVGY,
855 REGR_COUNT,
856 REGR_INTERCEPT,
857 REGR_R2,
858 REGR_SLOPE,
859 REGR_SXX,
860 REGR_SXY,
861 REGR_SYY,
862 REINDEX,
863 RELATIVE,
864 RELAY,
865 RELEASE,
866 RELEASES,
867 REMAINDER,
868 REMOTE,
869 REMOVE,
870 REMOVEQUOTES,
871 RENAME,
872 REORG,
873 REPAIR,
874 REPEATABLE,
875 REPLACE,
876 REPLACE_INVALID_CHARACTERS,
877 REPLICA,
878 REPLICATE,
879 REPLICATION,
880 REQUIRE,
881 RESET,
882 RESOLVE,
883 RESOURCE,
884 RESPECT,
885 RESTART,
886 RESTRICT,
887 RESTRICTED,
888 RESTRICTIONS,
889 RESTRICTIVE,
890 RESULT,
891 RESULTSET,
892 RESUME,
893 RETAIN,
894 RETURN,
895 RETURNING,
896 RETURNS,
897 REVOKE,
898 RIGHT,
899 RIGHTARG,
900 RLIKE,
901 RM,
902 ROLE,
903 ROLES,
904 ROLLBACK,
905 ROLLUP,
906 ROOT,
907 ROW,
908 ROWGROUPSIZE,
909 ROWID,
910 ROWS,
911 ROW_FORMAT,
912 ROW_NUMBER,
913 RULE,
914 RUN,
915 SAFE,
916 SAFE_CAST,
917 SAMPLE,
918 SAVEPOINT,
919 SCHEMA,
920 SCHEMAS,
921 SCOPE,
922 SCROLL,
923 SEARCH,
924 SECOND,
925 SECONDARY,
926 SECONDARY_ENGINE_ATTRIBUTE,
927 SECONDS,
928 SECRET,
929 SECURE,
930 SECURITY,
931 SEED,
932 SELECT,
933 SEMANTIC_VIEW,
934 SEMI,
935 SEND,
936 SENSITIVE,
937 SEPARATOR,
938 SEQUENCE,
939 SEQUENCEFILE,
940 SEQUENCES,
941 SERDE,
942 SERDEPROPERTIES,
943 SERIALIZABLE,
944 SERVER,
945 SERVICE,
946 SESSION,
947 SESSION_USER,
948 SET,
949 SETERROR,
950 SETOF,
951 SETS,
952 SETTINGS,
953 SHARE,
954 SHARED,
955 SHARING,
956 SHOW,
957 SIGNED,
958 SIMILAR,
959 SIMPLE,
960 SIZE,
961 SKIP,
962 SLOW,
963 SMALLINT,
964 SNAPSHOT,
965 SOME,
966 SORT,
967 SORTED,
968 SORTKEY,
969 SOURCE,
970 SPATIAL,
971 SPECIFIC,
972 SPECIFICTYPE,
973 SPGIST,
974 SQL,
975 SQLEXCEPTION,
976 SQLSTATE,
977 SQLWARNING,
978 SQL_BIG_RESULT,
979 SQL_BUFFER_RESULT,
980 SQL_CALC_FOUND_ROWS,
981 SQL_NO_CACHE,
982 SQL_SMALL_RESULT,
983 SQRT,
984 SRID,
985 STABLE,
986 STAGE,
987 START,
988 STARTS,
989 STATEMENT,
990 STATIC,
991 STATISTICS,
992 STATS_AUTO_RECALC,
993 STATS_PERSISTENT,
994 STATS_SAMPLE_PAGES,
995 STATUPDATE,
996 STATUS,
997 STDDEV_POP,
998 STDDEV_SAMP,
999 STDIN,
1000 STDOUT,
1001 STEP,
1002 STORAGE,
1003 STORAGE_INTEGRATION,
1004 STORAGE_SERIALIZATION_POLICY,
1005 STORED,
1006 STRAIGHT_JOIN,
1007 STREAM,
1008 STRICT,
1009 STRING,
1010 STRUCT,
1011 SUBMULTISET,
1012 SUBSCRIPT,
1013 SUBSTR,
1014 SUBSTRING,
1015 SUBSTRING_REGEX,
1016 SUBTYPE,
1017 SUBTYPE_DIFF,
1018 SUBTYPE_OPCLASS,
1019 SUCCEEDS,
1020 SUM,
1021 SUPER,
1022 SUPERUSER,
1023 SUPPORT,
1024 SUSPEND,
1025 SWAP,
1026 SYMMETRIC,
1027 SYNC,
1028 SYNONYM,
1029 SYSTEM,
1030 SYSTEM_TIME,
1031 SYSTEM_USER,
1032 TABLE,
1033 TABLES,
1034 TABLESAMPLE,
1035 TABLESPACE,
1036 TAG,
1037 TARGET,
1038 TARGET_LAG,
1039 TASK,
1040 TBLPROPERTIES,
1041 TEMP,
1042 TEMPLATE,
1043 TEMPORARY,
1044 TEMPTABLE,
1045 TERMINATED,
1046 TERSE,
1047 TEXT,
1048 TEXTFILE,
1049 THEN,
1050 THROW,
1051 TIES,
1052 TIME,
1053 TIMEFORMAT,
1054 TIMESTAMP,
1055 TIMESTAMPTZ,
1056 TIMESTAMP_NTZ,
1057 TIMETZ,
1058 TIMEZONE,
1059 TIMEZONE_ABBR,
1060 TIMEZONE_HOUR,
1061 TIMEZONE_MINUTE,
1062 TIMEZONE_REGION,
1063 TINYBLOB,
1064 TINYINT,
1065 TINYTEXT,
1066 TO,
1067 TOP,
1068 TOTALS,
1069 TOTP,
1070 TRACE,
1071 TRAILING,
1072 TRAN,
1073 TRANSACTION,
1074 TRANSIENT,
1075 TRANSLATE,
1076 TRANSLATE_REGEX,
1077 TRANSLATION,
1078 TREAT,
1079 TREE,
1080 TRIGGER,
1081 TRIM,
1082 TRIM_ARRAY,
1083 TRUE,
1084 TRUNCATE,
1085 TRUNCATECOLUMNS,
1086 TRY,
1087 TRY_CAST,
1088 TRY_CONVERT,
1089 TSQUERY,
1090 TSVECTOR,
1091 TUPLE,
1092 TYPE,
1093 TYPMOD_IN,
1094 TYPMOD_OUT,
1095 UBIGINT,
1096 UESCAPE,
1097 UHUGEINT,
1098 UINT128,
1099 UINT16,
1100 UINT256,
1101 UINT32,
1102 UINT64,
1103 UINT8,
1104 UNBOUNDED,
1105 UNCACHE,
1106 UNCOMMITTED,
1107 UNDEFINED,
1108 UNFREEZE,
1109 UNION,
1110 UNIQUE,
1111 UNKNOWN,
1112 UNLISTEN,
1113 UNLOAD,
1114 UNLOCK,
1115 UNLOGGED,
1116 UNMATCHED,
1117 UNNEST,
1118 UNPIVOT,
1119 UNSAFE,
1120 UNSET,
1121 UNSIGNED,
1122 UNTIL,
1123 UPDATE,
1124 UPPER,
1125 URL,
1126 USAGE,
1127 USE,
1128 USER,
1129 USER_RESOURCES,
1130 USING,
1131 USMALLINT,
1132 UTINYINT,
1133 UUID,
1134 VACUUM,
1135 VALID,
1136 VALIDATE,
1137 VALIDATION_MODE,
1138 VALIDATOR,
1139 VALUE,
1140 VALUES,
1141 VALUE_OF,
1142 VARBINARY,
1143 VARBIT,
1144 VARCHAR,
1145 VARCHAR2,
1146 VARIABLE,
1147 VARIABLES,
1148 VARIADIC,
1149 VARYING,
1150 VAR_POP,
1151 VAR_SAMP,
1152 VERBOSE,
1153 VERSION,
1154 VERSIONING,
1155 VERSIONS,
1156 VIEW,
1157 VIEWS,
1158 VIRTUAL,
1159 VOLATILE,
1160 VOLUME,
1161 WAITFOR,
1162 WAREHOUSE,
1163 WAREHOUSES,
1164 WEEK,
1165 WEEKS,
1166 WHEN,
1167 WHENEVER,
1168 WHERE,
1169 WHILE,
1170 WIDTH_BUCKET,
1171 WINDOW,
1172 WITH,
1173 WITHIN,
1174 WITHOUT,
1175 WITHOUT_ARRAY_WRAPPER,
1176 WORK,
1177 WORKLOAD_IDENTITY,
1178 WRAPPER,
1179 WRITE,
1180 XML,
1181 XMLNAMESPACES,
1182 XMLTABLE,
1183 XOR,
1184 YEAR,
1185 YEARS,
1186 YES,
1187 ZONE,
1188 ZORDER,
1189 ZSTD
1190);
1191
1192pub const RESERVED_FOR_TABLE_ALIAS: &[Keyword] = &[
1195 Keyword::WITH,
1197 Keyword::EXPLAIN,
1198 Keyword::ANALYZE,
1199 Keyword::SELECT,
1200 Keyword::WHERE,
1201 Keyword::GROUP,
1202 Keyword::SORT,
1203 Keyword::HAVING,
1204 Keyword::ORDER,
1205 Keyword::PIVOT,
1206 Keyword::UNPIVOT,
1207 Keyword::TOP,
1208 Keyword::LATERAL,
1209 Keyword::VIEW,
1210 Keyword::LIMIT,
1211 Keyword::OFFSET,
1212 Keyword::FETCH,
1213 Keyword::UNION,
1214 Keyword::EXCEPT,
1215 Keyword::INTERSECT,
1216 Keyword::MINUS,
1217 Keyword::ON,
1219 Keyword::JOIN,
1220 Keyword::INNER,
1221 Keyword::CROSS,
1222 Keyword::FULL,
1223 Keyword::LEFT,
1224 Keyword::RIGHT,
1225 Keyword::NATURAL,
1226 Keyword::USING,
1227 Keyword::CLUSTER,
1228 Keyword::DISTRIBUTE,
1229 Keyword::GLOBAL,
1230 Keyword::ANTI,
1231 Keyword::SEMI,
1232 Keyword::RETURNING,
1233 Keyword::OUTPUT,
1234 Keyword::ASOF,
1235 Keyword::MATCH_CONDITION,
1236 Keyword::OUTER,
1238 Keyword::SET,
1239 Keyword::QUALIFY,
1240 Keyword::WINDOW,
1241 Keyword::END,
1242 Keyword::FOR,
1243 Keyword::PARTITION,
1245 Keyword::PREWHERE,
1247 Keyword::SETTINGS,
1248 Keyword::FORMAT,
1249 Keyword::START,
1251 Keyword::CONNECT,
1252 Keyword::MATCH_RECOGNIZE,
1254 Keyword::SAMPLE,
1256 Keyword::TABLESAMPLE,
1257 Keyword::FROM,
1258 Keyword::OPEN,
1259];
1260
1261pub const RESERVED_FOR_COLUMN_ALIAS: &[Keyword] = &[
1264 Keyword::WITH,
1266 Keyword::EXPLAIN,
1267 Keyword::ANALYZE,
1268 Keyword::SELECT,
1269 Keyword::WHERE,
1270 Keyword::GROUP,
1271 Keyword::SORT,
1272 Keyword::HAVING,
1273 Keyword::ORDER,
1274 Keyword::TOP,
1275 Keyword::LATERAL,
1276 Keyword::VIEW,
1277 Keyword::LIMIT,
1278 Keyword::OFFSET,
1279 Keyword::FETCH,
1280 Keyword::UNION,
1281 Keyword::EXCEPT,
1282 Keyword::EXCLUDE,
1283 Keyword::INTERSECT,
1284 Keyword::MINUS,
1285 Keyword::CLUSTER,
1286 Keyword::DISTRIBUTE,
1287 Keyword::RETURNING,
1288 Keyword::VALUES,
1289 Keyword::FROM,
1291 Keyword::INTO,
1292 Keyword::END,
1293];
1294
1295pub const RESERVED_FOR_TABLE_FACTOR: &[Keyword] = &[
1299 Keyword::INTO,
1300 Keyword::LIMIT,
1301 Keyword::HAVING,
1302 Keyword::WHERE,
1303];
1304
1305pub const RESERVED_FOR_IDENTIFIER: &[Keyword] = &[
1309 Keyword::EXISTS,
1310 Keyword::INTERVAL,
1311 Keyword::STRUCT,
1312 Keyword::TRIM,
1313];