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