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