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