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 SETS,
925 SETTINGS,
926 SHARE,
927 SHARED,
928 SHARING,
929 SHOW,
930 SIGNED,
931 SIMILAR,
932 SIMPLE,
933 SIZE,
934 SKIP,
935 SLOW,
936 SMALLINT,
937 SNAPSHOT,
938 SOME,
939 SORT,
940 SORTED,
941 SOURCE,
942 SPATIAL,
943 SPECIFIC,
944 SPECIFICTYPE,
945 SPGIST,
946 SQL,
947 SQLEXCEPTION,
948 SQLSTATE,
949 SQLWARNING,
950 SQRT,
951 SRID,
952 STABLE,
953 STAGE,
954 START,
955 STARTS,
956 STATEMENT,
957 STATIC,
958 STATISTICS,
959 STATS_AUTO_RECALC,
960 STATS_PERSISTENT,
961 STATS_SAMPLE_PAGES,
962 STATUPDATE,
963 STATUS,
964 STDDEV_POP,
965 STDDEV_SAMP,
966 STDIN,
967 STDOUT,
968 STEP,
969 STORAGE,
970 STORAGE_INTEGRATION,
971 STORAGE_SERIALIZATION_POLICY,
972 STORED,
973 STRAIGHT_JOIN,
974 STREAM,
975 STRICT,
976 STRING,
977 STRUCT,
978 SUBMULTISET,
979 SUBSCRIPT,
980 SUBSTR,
981 SUBSTRING,
982 SUBSTRING_REGEX,
983 SUBTYPE,
984 SUBTYPE_DIFF,
985 SUBTYPE_OPCLASS,
986 SUCCEEDS,
987 SUM,
988 SUPER,
989 SUPERUSER,
990 SUPPORT,
991 SUSPEND,
992 SWAP,
993 SYMMETRIC,
994 SYNC,
995 SYNONYM,
996 SYSTEM,
997 SYSTEM_TIME,
998 SYSTEM_USER,
999 TABLE,
1000 TABLES,
1001 TABLESAMPLE,
1002 TABLESPACE,
1003 TAG,
1004 TARGET,
1005 TARGET_LAG,
1006 TASK,
1007 TBLPROPERTIES,
1008 TEMP,
1009 TEMPORARY,
1010 TEMPTABLE,
1011 TERMINATED,
1012 TERSE,
1013 TEXT,
1014 TEXTFILE,
1015 THEN,
1016 TIES,
1017 TIME,
1018 TIMEFORMAT,
1019 TIMESTAMP,
1020 TIMESTAMPTZ,
1021 TIMESTAMP_NTZ,
1022 TIMETZ,
1023 TIMEZONE,
1024 TIMEZONE_ABBR,
1025 TIMEZONE_HOUR,
1026 TIMEZONE_MINUTE,
1027 TIMEZONE_REGION,
1028 TINYBLOB,
1029 TINYINT,
1030 TINYTEXT,
1031 TO,
1032 TOP,
1033 TOTALS,
1034 TOTP,
1035 TRACE,
1036 TRAILING,
1037 TRANSACTION,
1038 TRANSIENT,
1039 TRANSLATE,
1040 TRANSLATE_REGEX,
1041 TRANSLATION,
1042 TREAT,
1043 TRIGGER,
1044 TRIM,
1045 TRIM_ARRAY,
1046 TRUE,
1047 TRUNCATE,
1048 TRUNCATECOLUMNS,
1049 TRY,
1050 TRY_CAST,
1051 TRY_CONVERT,
1052 TSQUERY,
1053 TSVECTOR,
1054 TUPLE,
1055 TYPE,
1056 TYPMOD_IN,
1057 TYPMOD_OUT,
1058 UBIGINT,
1059 UESCAPE,
1060 UHUGEINT,
1061 UINT128,
1062 UINT16,
1063 UINT256,
1064 UINT32,
1065 UINT64,
1066 UINT8,
1067 UNBOUNDED,
1068 UNCACHE,
1069 UNCOMMITTED,
1070 UNDEFINED,
1071 UNFREEZE,
1072 UNION,
1073 UNIQUE,
1074 UNKNOWN,
1075 UNLISTEN,
1076 UNLOAD,
1077 UNLOCK,
1078 UNLOGGED,
1079 UNMATCHED,
1080 UNNEST,
1081 UNPIVOT,
1082 UNSAFE,
1083 UNSET,
1084 UNSIGNED,
1085 UNTIL,
1086 UPDATE,
1087 UPPER,
1088 URL,
1089 USAGE,
1090 USE,
1091 USER,
1092 USER_RESOURCES,
1093 USING,
1094 USMALLINT,
1095 UTINYINT,
1096 UUID,
1097 VACUUM,
1098 VALID,
1099 VALIDATE,
1100 VALIDATION_MODE,
1101 VALUE,
1102 VALUES,
1103 VALUE_OF,
1104 VARBINARY,
1105 VARBIT,
1106 VARCHAR,
1107 VARCHAR2,
1108 VARIABLE,
1109 VARIABLES,
1110 VARYING,
1111 VAR_POP,
1112 VAR_SAMP,
1113 VERBOSE,
1114 VERSION,
1115 VERSIONING,
1116 VERSIONS,
1117 VIEW,
1118 VIEWS,
1119 VIRTUAL,
1120 VOLATILE,
1121 VOLUME,
1122 WAREHOUSE,
1123 WAREHOUSES,
1124 WEEK,
1125 WEEKS,
1126 WHEN,
1127 WHENEVER,
1128 WHERE,
1129 WHILE,
1130 WIDTH_BUCKET,
1131 WINDOW,
1132 WITH,
1133 WITHIN,
1134 WITHOUT,
1135 WITHOUT_ARRAY_WRAPPER,
1136 WORK,
1137 WORKLOAD_IDENTITY,
1138 WRAPPER,
1139 WRITE,
1140 XML,
1141 XMLNAMESPACES,
1142 XMLTABLE,
1143 XOR,
1144 YEAR,
1145 YEARS,
1146 ZONE,
1147 ZORDER,
1148 ZSTD
1149);
1150
1151pub const RESERVED_FOR_TABLE_ALIAS: &[Keyword] = &[
1154 Keyword::WITH,
1156 Keyword::EXPLAIN,
1157 Keyword::ANALYZE,
1158 Keyword::SELECT,
1159 Keyword::WHERE,
1160 Keyword::GROUP,
1161 Keyword::SORT,
1162 Keyword::HAVING,
1163 Keyword::ORDER,
1164 Keyword::PIVOT,
1165 Keyword::UNPIVOT,
1166 Keyword::TOP,
1167 Keyword::LATERAL,
1168 Keyword::VIEW,
1169 Keyword::LIMIT,
1170 Keyword::OFFSET,
1171 Keyword::FETCH,
1172 Keyword::UNION,
1173 Keyword::EXCEPT,
1174 Keyword::INTERSECT,
1175 Keyword::MINUS,
1176 Keyword::ON,
1178 Keyword::JOIN,
1179 Keyword::INNER,
1180 Keyword::CROSS,
1181 Keyword::FULL,
1182 Keyword::LEFT,
1183 Keyword::RIGHT,
1184 Keyword::NATURAL,
1185 Keyword::USING,
1186 Keyword::CLUSTER,
1187 Keyword::DISTRIBUTE,
1188 Keyword::GLOBAL,
1189 Keyword::ANTI,
1190 Keyword::SEMI,
1191 Keyword::RETURNING,
1192 Keyword::ASOF,
1193 Keyword::MATCH_CONDITION,
1194 Keyword::OUTER,
1196 Keyword::SET,
1197 Keyword::QUALIFY,
1198 Keyword::WINDOW,
1199 Keyword::END,
1200 Keyword::FOR,
1201 Keyword::PARTITION,
1203 Keyword::PREWHERE,
1205 Keyword::SETTINGS,
1206 Keyword::FORMAT,
1207 Keyword::START,
1209 Keyword::CONNECT,
1210 Keyword::MATCH_RECOGNIZE,
1212 Keyword::SAMPLE,
1214 Keyword::TABLESAMPLE,
1215 Keyword::FROM,
1216 Keyword::OPEN,
1217];
1218
1219pub const RESERVED_FOR_COLUMN_ALIAS: &[Keyword] = &[
1222 Keyword::WITH,
1224 Keyword::EXPLAIN,
1225 Keyword::ANALYZE,
1226 Keyword::SELECT,
1227 Keyword::WHERE,
1228 Keyword::GROUP,
1229 Keyword::SORT,
1230 Keyword::HAVING,
1231 Keyword::ORDER,
1232 Keyword::TOP,
1233 Keyword::LATERAL,
1234 Keyword::VIEW,
1235 Keyword::LIMIT,
1236 Keyword::OFFSET,
1237 Keyword::FETCH,
1238 Keyword::UNION,
1239 Keyword::EXCEPT,
1240 Keyword::EXCLUDE,
1241 Keyword::INTERSECT,
1242 Keyword::MINUS,
1243 Keyword::CLUSTER,
1244 Keyword::DISTRIBUTE,
1245 Keyword::RETURNING,
1246 Keyword::FROM,
1248 Keyword::INTO,
1249 Keyword::END,
1250];
1251
1252pub const RESERVED_FOR_TABLE_FACTOR: &[Keyword] = &[
1256 Keyword::INTO,
1257 Keyword::LIMIT,
1258 Keyword::HAVING,
1259 Keyword::WHERE,
1260];
1261
1262pub const RESERVED_FOR_IDENTIFIER: &[Keyword] = &[
1266 Keyword::EXISTS,
1267 Keyword::INTERVAL,
1268 Keyword::STRUCT,
1269 Keyword::TRIM,
1270];