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