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 APPROXIMATE,
125 ARCHIVE,
126 ARE,
127 ARRAY,
128 ARRAY_MAX_CARDINALITY,
129 AS,
130 ASC,
131 ASENSITIVE,
132 ASOF,
133 ASSERT,
134 ASYMMETRIC,
135 ASYNC,
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 CONCURRENTLY,
250 CONDITION,
251 CONFIGURATION,
252 CONFLICT,
253 CONNECT,
254 CONNECTION,
255 CONNECTOR,
256 CONNECT_BY_ROOT,
257 CONSTRAINT,
258 CONTACT,
259 CONTAINS,
260 CONTINUE,
261 CONVERT,
262 COPY,
263 COPY_OPTIONS,
264 CORR,
265 CORRESPONDING,
266 COST,
267 COUNT,
268 COVAR_POP,
269 COVAR_SAMP,
270 CREATE,
271 CREATEDB,
272 CREATEROLE,
273 CREDENTIALS,
274 CROSS,
275 CSV,
276 CUBE,
277 CUME_DIST,
278 CURRENT,
279 CURRENT_CATALOG,
280 CURRENT_DATE,
281 CURRENT_DEFAULT_TRANSFORM_GROUP,
282 CURRENT_PATH,
283 CURRENT_ROLE,
284 CURRENT_ROW,
285 CURRENT_SCHEMA,
286 CURRENT_TIME,
287 CURRENT_TIMESTAMP,
288 CURRENT_TRANSFORM_GROUP_FOR_TYPE,
289 CURRENT_USER,
290 CURSOR,
291 CYCLE,
292 DATA,
293 DATABASE,
294 DATABASES,
295 DATA_RETENTION_TIME_IN_DAYS,
296 DATE,
297 DATE32,
298 DATEFORMAT,
299 DATETIME,
300 DATETIME64,
301 DAY,
302 DAYOFWEEK,
303 DAYOFYEAR,
304 DAYS,
305 DCPROPERTIES,
306 DEALLOCATE,
307 DEC,
308 DECADE,
309 DECIMAL,
310 DECLARE,
311 DEDUPLICATE,
312 DEFAULT,
313 DEFAULTS,
314 DEFAULT_DDL_COLLATION,
315 DEFAULT_MFA_METHOD,
316 DEFAULT_SECONDARY_ROLES,
317 DEFERRABLE,
318 DEFERRED,
319 DEFINE,
320 DEFINED,
321 DEFINER,
322 DELAY,
323 DELAYED,
324 DELAY_KEY_WRITE,
325 DELEGATED,
326 DELETE,
327 DELIMITED,
328 DELIMITER,
329 DELTA,
330 DENSE_RANK,
331 DENY,
332 DEPENDS,
333 DEREF,
334 DESC,
335 DESCRIBE,
336 DETACH,
337 DETAIL,
338 DETERMINISTIC,
339 DIAGNOSTICS,
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 ELSIF,
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 FALLBACK,
424 FALSE,
425 FAMILY,
426 FETCH,
427 FIELDS,
428 FILE,
429 FILES,
430 FILE_FORMAT,
431 FILL,
432 FILTER,
433 FINAL,
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 GLOB,
478 GLOBAL,
479 GRANT,
480 GRANTED,
481 GRANTS,
482 GRAPHVIZ,
483 GROUP,
484 GROUPING,
485 GROUPS,
486 GZIP,
487 HASH,
488 HASHES,
489 HAVING,
490 HEADER,
491 HEAP,
492 HIGH_PRIORITY,
493 HINT,
494 HISTORY,
495 HIVEVAR,
496 HOLD,
497 HOSTS,
498 HOUR,
499 HOURS,
500 HUGEINT,
501 IAM_ROLE,
502 ICEBERG,
503 ID,
504 IDENTIFIED,
505 IDENTITY,
506 IDENTITY_INSERT,
507 IF,
508 IGNORE,
509 IGNOREHEADER,
510 ILIKE,
511 IMMEDIATE,
512 IMMUTABLE,
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 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 LAG,
577 LAMBDA,
578 LANGUAGE,
579 LARGE,
580 LAST,
581 LAST_VALUE,
582 LATERAL,
583 LEAD,
584 LEADING,
585 LEAKPROOF,
586 LEAST,
587 LEFT,
588 LEFTARG,
589 LEVEL,
590 LIFECYCLE,
591 LIKE,
592 LIKE_REGEX,
593 LIMIT,
594 LINE,
595 LINES,
596 LIST,
597 LISTEN,
598 LISTING,
599 LN,
600 LOAD,
601 LOCAL,
602 LOCALTIME,
603 LOCALTIMESTAMP,
604 LOCATION,
605 LOCK,
606 LOCKED,
607 LOG,
608 LOGGED,
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 MASKING,
627 MATCH,
628 MATCHED,
629 MATCHES,
630 MATCH_CONDITION,
631 MATCH_RECOGNIZE,
632 MATERIALIZE,
633 MATERIALIZED,
634 MAX,
635 MAXFILESIZE,
636 MAXVALUE,
637 MAX_DATA_EXTENSION_TIME_IN_DAYS,
638 MAX_ROWS,
639 MB,
640 MEASURES,
641 MEDIUMBLOB,
642 MEDIUMINT,
643 MEDIUMTEXT,
644 MEMBER,
645 MERGE,
646 MERGES,
647 MESSAGE,
648 METADATA,
649 METHOD,
650 METRIC,
651 METRICS,
652 MFA,
653 MICROSECOND,
654 MICROSECONDS,
655 MILLENIUM,
656 MILLENNIUM,
657 MILLISECOND,
658 MILLISECONDS,
659 MIN,
660 MINUS,
661 MINUTE,
662 MINUTES,
663 MINVALUE,
664 MIN_ROWS,
665 MOD,
666 MODE,
667 MODIFIES,
668 MODIFY,
669 MODULE,
670 MODULUS,
671 MONITOR,
672 MONTH,
673 MONTHS,
674 MSCK,
675 MULTIRANGE_TYPE_NAME,
676 MULTISET,
677 MUTATION,
678 NAME,
679 NAMES,
680 NANOSECOND,
681 NANOSECONDS,
682 NATIONAL,
683 NATURAL,
684 NCHAR,
685 NCLOB,
686 NEGATOR,
687 NEST,
688 NESTED,
689 NETWORK,
690 NEW,
691 NEXT,
692 NFC,
693 NFD,
694 NFKC,
695 NFKD,
696 NO,
697 NOBYPASSRLS,
698 NOCOMPRESS,
699 NOCREATEDB,
700 NOCREATEROLE,
701 NOCYCLE,
702 NOINHERIT,
703 NOLOGIN,
704 NONE,
705 NOORDER,
706 NOREPLICATION,
707 NORMALIZE,
708 NORMALIZED,
709 NOSCAN,
710 NOSUPERUSER,
711 NOT,
712 NOTHING,
713 NOTIFY,
714 NOTNULL,
715 NOWAIT,
716 NO_WRITE_TO_BINLOG,
717 NTH_VALUE,
718 NTILE,
719 NULL,
720 NULLABLE,
721 NULLIF,
722 NULLS,
723 NUMBER,
724 NUMERIC,
725 NVARCHAR,
726 OBJECT,
727 OBJECTS,
728 OCCURRENCES_REGEX,
729 OCTETS,
730 OCTET_LENGTH,
731 OF,
732 OFF,
733 OFFSET,
734 OFFSETS,
735 OLD,
736 OMIT,
737 ON,
738 ONE,
739 ONLY,
740 ON_CREATE,
741 ON_SCHEDULE,
742 OPEN,
743 OPENJSON,
744 OPERATE,
745 OPERATOR,
746 OPTIMIZATION,
747 OPTIMIZE,
748 OPTIMIZED,
749 OPTIMIZER_COSTS,
750 OPTION,
751 OPTIONS,
752 OR,
753 ORC,
754 ORDER,
755 ORDINALITY,
756 ORGANIZATION,
757 OTHER,
758 OTP,
759 OUT,
760 OUTER,
761 OUTPUT,
762 OUTPUTFORMAT,
763 OVER,
764 OVERFLOW,
765 OVERLAPS,
766 OVERLAY,
767 OVERRIDE,
768 OVERWRITE,
769 OWNED,
770 OWNER,
771 OWNERSHIP,
772 PACKAGE,
773 PACKAGES,
774 PACK_KEYS,
775 PARALLEL,
776 PARAMETER,
777 PARQUET,
778 PARSER,
779 PART,
780 PARTIAL,
781 PARTITION,
782 PARTITIONED,
783 PARTITIONS,
784 PASSEDBYVALUE,
785 PASSING,
786 PASSKEY,
787 PASSWORD,
788 PAST,
789 PATH,
790 PATTERN,
791 PCTFREE,
792 PER,
793 PERCENT,
794 PERCENTILE_CONT,
795 PERCENTILE_DISC,
796 PERCENT_RANK,
797 PERIOD,
798 PERMISSIVE,
799 PERSISTENT,
800 PIVOT,
801 PLACING,
802 PLAIN,
803 PLAN,
804 PLANS,
805 POINT,
806 POLICY,
807 POLYGON,
808 POOL,
809 PORTION,
810 POSITION,
811 POSITION_REGEX,
812 POWER,
813 PRAGMA,
814 PRECEDES,
815 PRECEDING,
816 PRECISION,
817 PREFERRED,
818 PREPARE,
819 PRESERVE,
820 PRESET,
821 PREWHERE,
822 PRIMARY,
823 PRINT,
824 PRIOR,
825 PRIVILEGES,
826 PROC,
827 PROCEDURE,
828 PROCESSLIST,
829 PROFILE,
830 PROGRAM,
831 PROJECTION,
832 PUBLIC,
833 PURCHASE,
834 PURGE,
835 PUT,
836 QUALIFY,
837 QUARTER,
838 QUERIES,
839 QUERY,
840 QUOTE,
841 RAISE,
842 RAISERROR,
843 RANGE,
844 RANK,
845 RAW,
846 RCFILE,
847 READ,
848 READS,
849 READ_ONLY,
850 REAL,
851 RECEIVE,
852 RECLUSTER,
853 RECURSIVE,
854 REF,
855 REFERENCES,
856 REFERENCING,
857 REFRESH,
858 REFRESH_MODE,
859 REGCLASS,
860 REGEXP,
861 REGION,
862 REGR_AVGX,
863 REGR_AVGY,
864 REGR_COUNT,
865 REGR_INTERCEPT,
866 REGR_R2,
867 REGR_SLOPE,
868 REGR_SXX,
869 REGR_SXY,
870 REGR_SYY,
871 REINDEX,
872 RELATIVE,
873 RELAY,
874 RELEASE,
875 RELEASES,
876 REMAINDER,
877 REMOTE,
878 REMOVE,
879 REMOVEQUOTES,
880 RENAME,
881 REORG,
882 REPAIR,
883 REPEATABLE,
884 REPLACE,
885 REPLACE_INVALID_CHARACTERS,
886 REPLICA,
887 REPLICATE,
888 REPLICATION,
889 REQUIRE,
890 RESET,
891 RESOLVE,
892 RESOURCE,
893 RESPECT,
894 RESTART,
895 RESTRICT,
896 RESTRICTED,
897 RESTRICTIONS,
898 RESTRICTIVE,
899 RESULT,
900 RESULTSET,
901 RESUME,
902 RETAIN,
903 RETURN,
904 RETURNING,
905 RETURNS,
906 REVOKE,
907 RIGHT,
908 RIGHTARG,
909 RLIKE,
910 RM,
911 ROLE,
912 ROLES,
913 ROLLBACK,
914 ROLLUP,
915 ROOT,
916 ROW,
917 ROWGROUPSIZE,
918 ROWID,
919 ROWS,
920 ROW_COUNT,
921 ROW_FORMAT,
922 ROW_NUMBER,
923 RULE,
924 RUN,
925 SAFE,
926 SAFE_CAST,
927 SAMPLE,
928 SAVEPOINT,
929 SCALAR,
930 SCHEMA,
931 SCHEMAS,
932 SCOPE,
933 SCROLL,
934 SEARCH,
935 SECOND,
936 SECONDARY,
937 SECONDARY_ENGINE_ATTRIBUTE,
938 SECONDS,
939 SECRET,
940 SECURE,
941 SECURITY,
942 SEED,
943 SELECT,
944 SEMANTIC_VIEW,
945 SEMI,
946 SEND,
947 SENSITIVE,
948 SEPARATOR,
949 SEQUENCE,
950 SEQUENCEFILE,
951 SEQUENCES,
952 SERDE,
953 SERDEPROPERTIES,
954 SERIALIZABLE,
955 SERVER,
956 SERVICE,
957 SESSION,
958 SESSION_USER,
959 SET,
960 SETERROR,
961 SETOF,
962 SETS,
963 SETTINGS,
964 SHARE,
965 SHARED,
966 SHARING,
967 SHOW,
968 SIGNED,
969 SIMILAR,
970 SIMPLE,
971 SIZE,
972 SKIP,
973 SLOW,
974 SMALLINT,
975 SNAPSHOT,
976 SOME,
977 SORT,
978 SORTED,
979 SORTKEY,
980 SOURCE,
981 SPATIAL,
982 SPECIFIC,
983 SPECIFICTYPE,
984 SPGIST,
985 SQL,
986 SQLEXCEPTION,
987 SQLSTATE,
988 SQLWARNING,
989 SQL_BIG_RESULT,
990 SQL_BUFFER_RESULT,
991 SQL_CALC_FOUND_ROWS,
992 SQL_NO_CACHE,
993 SQL_SMALL_RESULT,
994 SQRT,
995 SRID,
996 STABLE,
997 STAGE,
998 START,
999 STARTS,
1000 STATEMENT,
1001 STATIC,
1002 STATISTICS,
1003 STATS_AUTO_RECALC,
1004 STATS_PERSISTENT,
1005 STATS_SAMPLE_PAGES,
1006 STATUPDATE,
1007 STATUS,
1008 STDDEV_POP,
1009 STDDEV_SAMP,
1010 STDIN,
1011 STDOUT,
1012 STEP,
1013 STORAGE,
1014 STORAGE_INTEGRATION,
1015 STORAGE_SERIALIZATION_POLICY,
1016 STORED,
1017 STRAIGHT_JOIN,
1018 STREAM,
1019 STRICT,
1020 STRING,
1021 STRUCT,
1022 SUBMULTISET,
1023 SUBSCRIPT,
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 TRANSLATE,
1087 TRANSLATE_REGEX,
1088 TRANSLATION,
1089 TREAT,
1090 TREE,
1091 TRIGGER,
1092 TRIM,
1093 TRIM_ARRAY,
1094 TRUE,
1095 TRUNCATE,
1096 TRUNCATECOLUMNS,
1097 TRY,
1098 TRY_CAST,
1099 TRY_CONVERT,
1100 TSQUERY,
1101 TSVECTOR,
1102 TUPLE,
1103 TYPE,
1104 TYPMOD_IN,
1105 TYPMOD_OUT,
1106 UBIGINT,
1107 UESCAPE,
1108 UHUGEINT,
1109 UINT128,
1110 UINT16,
1111 UINT256,
1112 UINT32,
1113 UINT64,
1114 UINT8,
1115 UNBOUNDED,
1116 UNCACHE,
1117 UNCOMMITTED,
1118 UNDEFINED,
1119 UNFREEZE,
1120 UNION,
1121 UNIQUE,
1122 UNKNOWN,
1123 UNLISTEN,
1124 UNLOAD,
1125 UNLOCK,
1126 UNLOGGED,
1127 UNMATCHED,
1128 UNNEST,
1129 UNPIVOT,
1130 UNSAFE,
1131 UNSET,
1132 UNSIGNED,
1133 UNTIL,
1134 UPDATE,
1135 UPPER,
1136 URL,
1137 USAGE,
1138 USE,
1139 USER,
1140 USER_RESOURCES,
1141 USING,
1142 USMALLINT,
1143 UTINYINT,
1144 UUID,
1145 VACUUM,
1146 VALID,
1147 VALIDATE,
1148 VALIDATION_MODE,
1149 VALUE,
1150 VALUES,
1151 VALUE_OF,
1152 VARBINARY,
1153 VARBIT,
1154 VARCHAR,
1155 VARCHAR2,
1156 VARIABLE,
1157 VARIABLES,
1158 VARIADIC,
1159 VARYING,
1160 VAR_POP,
1161 VAR_SAMP,
1162 VERBOSE,
1163 VERSION,
1164 VERSIONING,
1165 VERSIONS,
1166 VIEW,
1167 VIEWS,
1168 VIRTUAL,
1169 VOLATILE,
1170 VOLUME,
1171 WAITFOR,
1172 WAREHOUSE,
1173 WAREHOUSES,
1174 WEEK,
1175 WEEKS,
1176 WHEN,
1177 WHENEVER,
1178 WHERE,
1179 WHILE,
1180 WIDTH_BUCKET,
1181 WINDOW,
1182 WITH,
1183 WITHIN,
1184 WITHOUT,
1185 WITHOUT_ARRAY_WRAPPER,
1186 WORK,
1187 WORKLOAD_IDENTITY,
1188 WRAPPER,
1189 WRITE,
1190 XML,
1191 XMLNAMESPACES,
1192 XMLTABLE,
1193 XOR,
1194 YEAR,
1195 YEARS,
1196 YES,
1197 ZONE,
1198 ZORDER,
1199 ZSTD
1200);
1201
1202pub const RESERVED_FOR_TABLE_ALIAS: &[Keyword] = &[
1205 Keyword::WITH,
1207 Keyword::EXPLAIN,
1208 Keyword::ANALYZE,
1209 Keyword::SELECT,
1210 Keyword::WHERE,
1211 Keyword::GROUP,
1212 Keyword::SORT,
1213 Keyword::HAVING,
1214 Keyword::ORDER,
1215 Keyword::PIVOT,
1216 Keyword::UNPIVOT,
1217 Keyword::TOP,
1218 Keyword::LATERAL,
1219 Keyword::VIEW,
1220 Keyword::LIMIT,
1221 Keyword::OFFSET,
1222 Keyword::FETCH,
1223 Keyword::UNION,
1224 Keyword::EXCEPT,
1225 Keyword::INTERSECT,
1226 Keyword::MINUS,
1227 Keyword::ON,
1229 Keyword::JOIN,
1230 Keyword::INNER,
1231 Keyword::CROSS,
1232 Keyword::FULL,
1233 Keyword::LEFT,
1234 Keyword::RIGHT,
1235 Keyword::NATURAL,
1236 Keyword::USING,
1237 Keyword::CLUSTER,
1238 Keyword::DISTRIBUTE,
1239 Keyword::GLOBAL,
1240 Keyword::ANTI,
1241 Keyword::SEMI,
1242 Keyword::RETURNING,
1243 Keyword::OUTPUT,
1244 Keyword::ASOF,
1245 Keyword::MATCH_CONDITION,
1246 Keyword::OUTER,
1248 Keyword::SET,
1249 Keyword::QUALIFY,
1250 Keyword::WINDOW,
1251 Keyword::END,
1252 Keyword::FOR,
1253 Keyword::PARTITION,
1255 Keyword::ARRAY,
1257 Keyword::PREWHERE,
1259 Keyword::SETTINGS,
1260 Keyword::FORMAT,
1261 Keyword::START,
1263 Keyword::CONNECT,
1264 Keyword::MATCH_RECOGNIZE,
1266 Keyword::SAMPLE,
1268 Keyword::TABLESAMPLE,
1269 Keyword::FROM,
1270 Keyword::OPEN,
1271];
1272
1273pub const RESERVED_FOR_COLUMN_ALIAS: &[Keyword] = &[
1276 Keyword::WITH,
1278 Keyword::EXPLAIN,
1279 Keyword::ANALYZE,
1280 Keyword::SELECT,
1281 Keyword::WHERE,
1282 Keyword::GROUP,
1283 Keyword::SORT,
1284 Keyword::HAVING,
1285 Keyword::ORDER,
1286 Keyword::TOP,
1287 Keyword::LATERAL,
1288 Keyword::VIEW,
1289 Keyword::LIMIT,
1290 Keyword::OFFSET,
1291 Keyword::FETCH,
1292 Keyword::UNION,
1293 Keyword::EXCEPT,
1294 Keyword::EXCLUDE,
1295 Keyword::INTERSECT,
1296 Keyword::MINUS,
1297 Keyword::CLUSTER,
1298 Keyword::DISTRIBUTE,
1299 Keyword::RETURNING,
1300 Keyword::VALUES,
1301 Keyword::FROM,
1303 Keyword::INTO,
1304 Keyword::END,
1305];
1306
1307pub const RESERVED_FOR_TABLE_FACTOR: &[Keyword] = &[
1311 Keyword::INTO,
1312 Keyword::LIMIT,
1313 Keyword::HAVING,
1314 Keyword::WHERE,
1315];
1316
1317pub const RESERVED_FOR_IDENTIFIER: &[Keyword] = &[
1321 Keyword::EXISTS,
1322 Keyword::INTERVAL,
1323 Keyword::STRUCT,
1324 Keyword::TRIM,
1325];