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