mirror of
https://github.com/apache/datafusion-sqlparser-rs.git
synced 2025-09-27 16:09:09 +00:00
keywords are now generated via macro to avoid misspellings, dialects should lookup to these list of keywords to avoid mispellings
This commit is contained in:
parent
d66e4848bd
commit
24153aee53
5 changed files with 822 additions and 464 deletions
|
@ -22,6 +22,8 @@ mod ansi_sql;
|
||||||
mod generic_sql;
|
mod generic_sql;
|
||||||
mod postgresql;
|
mod postgresql;
|
||||||
|
|
||||||
|
mod keywords;
|
||||||
|
|
||||||
pub trait Dialect {
|
pub trait Dialect {
|
||||||
/// Get a list of keywords for this dialect
|
/// Get a list of keywords for this dialect
|
||||||
fn keywords(&self) -> Vec<&'static str>;
|
fn keywords(&self) -> Vec<&'static str>;
|
||||||
|
|
|
@ -1,334 +1,336 @@
|
||||||
use dialect::Dialect;
|
use dialect::Dialect;
|
||||||
|
|
||||||
|
use dialect::keywords::*;
|
||||||
|
|
||||||
pub struct AnsiSqlDialect {}
|
pub struct AnsiSqlDialect {}
|
||||||
|
|
||||||
impl Dialect for AnsiSqlDialect {
|
impl Dialect for AnsiSqlDialect {
|
||||||
fn keywords(&self) -> Vec<&'static str> {
|
fn keywords(&self) -> Vec<&'static str> {
|
||||||
return vec![
|
return vec![
|
||||||
"ABS",
|
ABS,
|
||||||
"ALL",
|
ALL,
|
||||||
"ALLOCATE",
|
ALLOCATE,
|
||||||
"ALTER",
|
ALTER,
|
||||||
"AND",
|
AND,
|
||||||
"ANY",
|
ANY,
|
||||||
"ARE",
|
ARE,
|
||||||
"ARRAY",
|
ARRAY,
|
||||||
"ARRAY_AGG",
|
ARRAY_AGG,
|
||||||
"ARRAY_MAX_CARDINALITY",
|
ARRAY_MAX_CARDINALITY,
|
||||||
"AS",
|
AS,
|
||||||
"ASENSITIVE",
|
ASENSITIVE,
|
||||||
"ASYMMETRIC",
|
ASYMMETRIC,
|
||||||
"AT",
|
AT,
|
||||||
"ATOMIC",
|
ATOMIC,
|
||||||
"AUTHORIZATION",
|
AUTHORIZATION,
|
||||||
"AVG",
|
AVG,
|
||||||
"BEGIN",
|
BEGIN,
|
||||||
"BEGIN_FRAME",
|
BEGIN_FRAME,
|
||||||
"BEGIN_PARTITION",
|
BEGIN_PARTITION,
|
||||||
"BETWEEN",
|
BETWEEN,
|
||||||
"BIGINT",
|
BIGINT,
|
||||||
"BINARY",
|
BINARY,
|
||||||
"BLOB",
|
BLOB,
|
||||||
"BOOLEAN",
|
BOOLEAN,
|
||||||
"BOTH",
|
BOTH,
|
||||||
"BY",
|
BY,
|
||||||
"CALL",
|
CALL,
|
||||||
"CALLED",
|
CALLED,
|
||||||
"CARDINALITY",
|
CARDINALITY,
|
||||||
"CASCADED",
|
CASCADED,
|
||||||
"CASE",
|
CASE,
|
||||||
"CAST",
|
CAST,
|
||||||
"CEIL",
|
CEIL,
|
||||||
"CEILING",
|
CEILING,
|
||||||
"CHAR",
|
CHAR,
|
||||||
"CHAR_LENGTH",
|
CHAR_LENGTH,
|
||||||
"CHARACTER",
|
CHARACTER,
|
||||||
"CHARACTER_LENGTH",
|
CHARACTER_LENGTH,
|
||||||
"CHECK",
|
CHECK,
|
||||||
"CLOB",
|
CLOB,
|
||||||
"CLOSE",
|
CLOSE,
|
||||||
"COALESCE",
|
COALESCE,
|
||||||
"COLLATE",
|
COLLATE,
|
||||||
"COLLECT",
|
COLLECT,
|
||||||
"COLUMN",
|
COLUMN,
|
||||||
"COMMIT",
|
COMMIT,
|
||||||
"CONDITION",
|
CONDITION,
|
||||||
"CONNECT",
|
CONNECT,
|
||||||
"CONSTRAINT",
|
CONSTRAINT,
|
||||||
"CONTAINS",
|
CONTAINS,
|
||||||
"CONVERT",
|
CONVERT,
|
||||||
"CORR",
|
CORR,
|
||||||
"CORRESPONDING",
|
CORRESPONDING,
|
||||||
"COUNT",
|
COUNT,
|
||||||
"COVAR_POP",
|
COVAR_POP,
|
||||||
"COVAR_SAMP",
|
COVAR_SAMP,
|
||||||
"CREATE",
|
CREATE,
|
||||||
"CROSS",
|
CROSS,
|
||||||
"CUBE",
|
CUBE,
|
||||||
"CUME_DIST",
|
CUME_DIST,
|
||||||
"CURRENT",
|
CURRENT,
|
||||||
"CURRENT_CATALOG",
|
CURRENT_CATALOG,
|
||||||
"CURRENT_DATE",
|
CURRENT_DATE,
|
||||||
"CURRENT_DEFAULT_TRANSFORM_GROUP",
|
CURRENT_DEFAULT_TRANSFORM_GROUP,
|
||||||
"CURRENT_PATH",
|
CURRENT_PATH,
|
||||||
"CURRENT_ROLE",
|
CURRENT_ROLE,
|
||||||
"CURRENT_ROW",
|
CURRENT_ROW,
|
||||||
"CURRENT_SCHEMA",
|
CURRENT_SCHEMA,
|
||||||
"CURRENT_TIME",
|
CURRENT_TIME,
|
||||||
"CURRENT_TIMESTAMP",
|
CURRENT_TIMESTAMP,
|
||||||
"CURRENT_TRANSFORM_GROUP_FOR_TYPE",
|
CURRENT_TRANSFORM_GROUP_FOR_TYPE,
|
||||||
"CURRENT_USER",
|
CURRENT_USER,
|
||||||
"CURSOR",
|
CURSOR,
|
||||||
"CYCLE",
|
CYCLE,
|
||||||
"DATE",
|
DATE,
|
||||||
"DAY",
|
DAY,
|
||||||
"DEALLOCATE",
|
DEALLOCATE,
|
||||||
"DEC",
|
DEC,
|
||||||
"DECIMAL",
|
DECIMAL,
|
||||||
"DECLARE",
|
DECLARE,
|
||||||
"DEFAULT",
|
DEFAULT,
|
||||||
"DELETE",
|
DELETE,
|
||||||
"DENSE_RANK",
|
DENSE_RANK,
|
||||||
"DEREF",
|
DEREF,
|
||||||
"DESCRIBE",
|
DESCRIBE,
|
||||||
"DETERMINISTIC",
|
DETERMINISTIC,
|
||||||
"DISCONNECT",
|
DISCONNECT,
|
||||||
"DISTINCT",
|
DISTINCT,
|
||||||
"DOUBLE",
|
DOUBLE,
|
||||||
"DROP",
|
DROP,
|
||||||
"DYNAMIC",
|
DYNAMIC,
|
||||||
"EACH",
|
EACH,
|
||||||
"ELEMENT",
|
ELEMENT,
|
||||||
"ELSE",
|
ELSE,
|
||||||
"END",
|
END,
|
||||||
"END_FRAME",
|
END_FRAME,
|
||||||
"END_PARTITION",
|
END_PARTITION,
|
||||||
"END-EXEC",
|
END_EXEC,
|
||||||
"EQUALS",
|
EQUALS,
|
||||||
"ESCAPE",
|
ESCAPE,
|
||||||
"EVERY",
|
EVERY,
|
||||||
"EXCEPT",
|
EXCEPT,
|
||||||
"EXEC",
|
EXEC,
|
||||||
"EXECUTE",
|
EXECUTE,
|
||||||
"EXISTS",
|
EXISTS,
|
||||||
"EXP",
|
EXP,
|
||||||
"EXTERNAL",
|
EXTERNAL,
|
||||||
"EXTRACT",
|
EXTRACT,
|
||||||
"FALSE",
|
FALSE,
|
||||||
"FETCH",
|
FETCH,
|
||||||
"FILTER",
|
FILTER,
|
||||||
"FIRST_VALUE",
|
FIRST_VALUE,
|
||||||
"FLOAT",
|
FLOAT,
|
||||||
"FLOOR",
|
FLOOR,
|
||||||
"FOR",
|
FOR,
|
||||||
"FOREIGN",
|
FOREIGN,
|
||||||
"FRAME_ROW",
|
FRAME_ROW,
|
||||||
"FREE",
|
FREE,
|
||||||
"FROM",
|
FROM,
|
||||||
"FULL",
|
FULL,
|
||||||
"FUNCTION",
|
FUNCTION,
|
||||||
"FUSION",
|
FUSION,
|
||||||
"GET",
|
GET,
|
||||||
"GLOBAL",
|
GLOBAL,
|
||||||
"GRANT",
|
GRANT,
|
||||||
"GROUP",
|
GROUP,
|
||||||
"GROUPING",
|
GROUPING,
|
||||||
"GROUPS",
|
GROUPS,
|
||||||
"HAVING",
|
HAVING,
|
||||||
"HOLD",
|
HOLD,
|
||||||
"HOUR",
|
HOUR,
|
||||||
"IDENTITY",
|
IDENTITY,
|
||||||
"IN",
|
IN,
|
||||||
"INDICATOR",
|
INDICATOR,
|
||||||
"INNER",
|
INNER,
|
||||||
"INOUT",
|
INOUT,
|
||||||
"INSENSITIVE",
|
INSENSITIVE,
|
||||||
"INSERT",
|
INSERT,
|
||||||
"INT",
|
INT,
|
||||||
"INTEGER",
|
INTEGER,
|
||||||
"INTERSECT",
|
INTERSECT,
|
||||||
"INTERSECTION",
|
INTERSECTION,
|
||||||
"INTERVAL",
|
INTERVAL,
|
||||||
"INTO",
|
INTO,
|
||||||
"IS",
|
IS,
|
||||||
"JOIN",
|
JOIN,
|
||||||
"LAG",
|
LAG,
|
||||||
"LANGUAGE",
|
LANGUAGE,
|
||||||
"LARGE",
|
LARGE,
|
||||||
"LAST_VALUE",
|
LAST_VALUE,
|
||||||
"LATERAL",
|
LATERAL,
|
||||||
"LEAD",
|
LEAD,
|
||||||
"LEADING",
|
LEADING,
|
||||||
"LEFT",
|
LEFT,
|
||||||
"LIKE",
|
LIKE,
|
||||||
"LIKE_REGEX",
|
LIKE_REGEX,
|
||||||
"LN",
|
LN,
|
||||||
"LOCAL",
|
LOCAL,
|
||||||
"LOCALTIME",
|
LOCALTIME,
|
||||||
"LOCALTIMESTAMP",
|
LOCALTIMESTAMP,
|
||||||
"LOWER",
|
LOWER,
|
||||||
"MATCH",
|
MATCH,
|
||||||
"MAX",
|
MAX,
|
||||||
"MEMBER",
|
MEMBER,
|
||||||
"MERGE",
|
MERGE,
|
||||||
"METHOD",
|
METHOD,
|
||||||
"MIN",
|
MIN,
|
||||||
"MINUTE",
|
MINUTE,
|
||||||
"MOD",
|
MOD,
|
||||||
"MODIFIES",
|
MODIFIES,
|
||||||
"MODULE",
|
MODULE,
|
||||||
"MONTH",
|
MONTH,
|
||||||
"MULTISET",
|
MULTISET,
|
||||||
"NATIONAL",
|
NATIONAL,
|
||||||
"NATURAL",
|
NATURAL,
|
||||||
"NCHAR",
|
NCHAR,
|
||||||
"NCLOB",
|
NCLOB,
|
||||||
"NEW",
|
NEW,
|
||||||
"NO",
|
NO,
|
||||||
"NONE",
|
NONE,
|
||||||
"NORMALIZE",
|
NORMALIZE,
|
||||||
"NOT",
|
NOT,
|
||||||
"NTH_VALUE",
|
NTH_VALUE,
|
||||||
"NTILE",
|
NTILE,
|
||||||
"NULL",
|
NULL,
|
||||||
"NULLIF",
|
NULLIF,
|
||||||
"NUMERIC",
|
NUMERIC,
|
||||||
"OCTET_LENGTH",
|
OCTET_LENGTH,
|
||||||
"OCCURRENCES_REGEX",
|
OCCURRENCES_REGEX,
|
||||||
"OF",
|
OF,
|
||||||
"OFFSET",
|
OFFSET,
|
||||||
"OLD",
|
OLD,
|
||||||
"ON",
|
ON,
|
||||||
"ONLY",
|
ONLY,
|
||||||
"OPEN",
|
OPEN,
|
||||||
"OR",
|
OR,
|
||||||
"ORDER",
|
ORDER,
|
||||||
"OUT",
|
OUT,
|
||||||
"OUTER",
|
OUTER,
|
||||||
"OVER",
|
OVER,
|
||||||
"OVERLAPS",
|
OVERLAPS,
|
||||||
"OVERLAY",
|
OVERLAY,
|
||||||
"PARAMETER",
|
PARAMETER,
|
||||||
"PARTITION",
|
PARTITION,
|
||||||
"PERCENT",
|
PERCENT,
|
||||||
"PERCENT_RANK",
|
PERCENT_RANK,
|
||||||
"PERCENTILE_CONT",
|
PERCENTILE_CONT,
|
||||||
"PERCENTILE_DISC",
|
PERCENTILE_DISC,
|
||||||
"PERIOD",
|
PERIOD,
|
||||||
"PORTION",
|
PORTION,
|
||||||
"POSITION",
|
POSITION,
|
||||||
"POSITION_REGEX",
|
POSITION_REGEX,
|
||||||
"POWER",
|
POWER,
|
||||||
"PRECEDES",
|
PRECEDES,
|
||||||
"PRECISION",
|
PRECISION,
|
||||||
"PREPARE",
|
PREPARE,
|
||||||
"PRIMARY",
|
PRIMARY,
|
||||||
"PROCEDURE",
|
PROCEDURE,
|
||||||
"RANGE",
|
RANGE,
|
||||||
"RANK",
|
RANK,
|
||||||
"READS",
|
READS,
|
||||||
"REAL",
|
REAL,
|
||||||
"RECURSIVE",
|
RECURSIVE,
|
||||||
"REF",
|
REF,
|
||||||
"REFERENCES",
|
REFERENCES,
|
||||||
"REFERENCING",
|
REFERENCING,
|
||||||
"REGR_AVGX",
|
REGR_AVGX,
|
||||||
"REGR_AVGY",
|
REGR_AVGY,
|
||||||
"REGR_COUNT",
|
REGR_COUNT,
|
||||||
"REGR_INTERCEPT",
|
REGR_INTERCEPT,
|
||||||
"REGR_R2",
|
REGR_R2,
|
||||||
"REGR_SLOPE",
|
REGR_SLOPE,
|
||||||
"REGR_SXX",
|
REGR_SXX,
|
||||||
"REGR_SXY",
|
REGR_SXY,
|
||||||
"REGR_SYY",
|
REGR_SYY,
|
||||||
"RELEASE",
|
RELEASE,
|
||||||
"RESULT",
|
RESULT,
|
||||||
"RETURN",
|
RETURN,
|
||||||
"RETURNS",
|
RETURNS,
|
||||||
"REVOKE",
|
REVOKE,
|
||||||
"RIGHT",
|
RIGHT,
|
||||||
"ROLLBACK",
|
ROLLBACK,
|
||||||
"ROLLUP",
|
ROLLUP,
|
||||||
"ROW",
|
ROW,
|
||||||
"ROW_NUMBER",
|
ROW_NUMBER,
|
||||||
"ROWS",
|
ROWS,
|
||||||
"SAVEPOINT",
|
SAVEPOINT,
|
||||||
"SCOPE",
|
SCOPE,
|
||||||
"SCROLL",
|
SCROLL,
|
||||||
"SEARCH",
|
SEARCH,
|
||||||
"SECOND",
|
SECOND,
|
||||||
"SELECT",
|
SELECT,
|
||||||
"SENSITIVE",
|
SENSITIVE,
|
||||||
"SESSION_USER",
|
SESSION_USER,
|
||||||
"SET",
|
SET,
|
||||||
"SIMILAR",
|
SIMILAR,
|
||||||
"SMALLINT",
|
SMALLINT,
|
||||||
"SOME",
|
SOME,
|
||||||
"SPECIFIC",
|
SPECIFIC,
|
||||||
"SPECIFICTYPE",
|
SPECIFICTYPE,
|
||||||
"SQL",
|
SQL,
|
||||||
"SQLEXCEPTION",
|
SQLEXCEPTION,
|
||||||
"SQLSTATE",
|
SQLSTATE,
|
||||||
"SQLWARNING",
|
SQLWARNING,
|
||||||
"SQRT",
|
SQRT,
|
||||||
"START",
|
START,
|
||||||
"STATIC",
|
STATIC,
|
||||||
"STDDEV_POP",
|
STDDEV_POP,
|
||||||
"STDDEV_SAMP",
|
STDDEV_SAMP,
|
||||||
"SUBMULTISET",
|
SUBMULTISET,
|
||||||
"SUBSTRING",
|
SUBSTRING,
|
||||||
"SUBSTRING_REGEX",
|
SUBSTRING_REGEX,
|
||||||
"SUCCEEDS",
|
SUCCEEDS,
|
||||||
"SUM",
|
SUM,
|
||||||
"SYMMETRIC",
|
SYMMETRIC,
|
||||||
"SYSTEM",
|
SYSTEM,
|
||||||
"SYSTEM_TIME",
|
SYSTEM_TIME,
|
||||||
"SYSTEM_USER",
|
SYSTEM_USER,
|
||||||
"TABLE",
|
TABLE,
|
||||||
"TABLESAMPLE",
|
TABLESAMPLE,
|
||||||
"THEN",
|
THEN,
|
||||||
"TIME",
|
TIME,
|
||||||
"TIMESTAMP",
|
TIMESTAMP,
|
||||||
"TIMEZONE_HOUR",
|
TIMEZONE_HOUR,
|
||||||
"TIMEZONE_MINUTE",
|
TIMEZONE_MINUTE,
|
||||||
"TO",
|
TO,
|
||||||
"TRAILING",
|
TRAILING,
|
||||||
"TRANSLATE",
|
TRANSLATE,
|
||||||
"TRANSLATE_REGEX",
|
TRANSLATE_REGEX,
|
||||||
"TRANSLATION",
|
TRANSLATION,
|
||||||
"TREAT",
|
TREAT,
|
||||||
"TRIGGER",
|
TRIGGER,
|
||||||
"TRUNCATE",
|
TRUNCATE,
|
||||||
"TRIM",
|
TRIM,
|
||||||
"TRIM_ARRAY",
|
TRIM_ARRAY,
|
||||||
"TRUE",
|
TRUE,
|
||||||
"UESCAPE",
|
UESCAPE,
|
||||||
"UNION",
|
UNION,
|
||||||
"UNIQUE",
|
UNIQUE,
|
||||||
"UNKNOWN",
|
UNKNOWN,
|
||||||
"UNNEST",
|
UNNEST,
|
||||||
"UPDATE",
|
UPDATE,
|
||||||
"UPPER",
|
UPPER,
|
||||||
"USER",
|
USER,
|
||||||
"USING",
|
USING,
|
||||||
"VALUE",
|
VALUE,
|
||||||
"VALUES",
|
VALUES,
|
||||||
"VALUE_OF",
|
VALUE_OF,
|
||||||
"VAR_POP",
|
VAR_POP,
|
||||||
"VAR_SAMP",
|
VAR_SAMP,
|
||||||
"VARBINARY",
|
VARBINARY,
|
||||||
"VARCHAR",
|
VARCHAR,
|
||||||
"VARYING",
|
VARYING,
|
||||||
"VERSIONING",
|
VERSIONING,
|
||||||
"WHEN",
|
WHEN,
|
||||||
"WHENEVER",
|
WHENEVER,
|
||||||
"WHERE",
|
WHERE,
|
||||||
"WIDTH_BUCKET",
|
WIDTH_BUCKET,
|
||||||
"WINDOW",
|
WINDOW,
|
||||||
"WITH",
|
WITH,
|
||||||
"WITHIN",
|
WITHIN,
|
||||||
"WITHOUT",
|
WITHOUT,
|
||||||
"YEAR",
|
YEAR,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,71 +1,72 @@
|
||||||
use dialect::Dialect;
|
use dialect::Dialect;
|
||||||
|
|
||||||
|
use dialect::keywords::*;
|
||||||
pub struct GenericSqlDialect {}
|
pub struct GenericSqlDialect {}
|
||||||
|
|
||||||
impl Dialect for GenericSqlDialect {
|
impl Dialect for GenericSqlDialect {
|
||||||
fn keywords(&self) -> Vec<&'static str> {
|
fn keywords(&self) -> Vec<&'static str> {
|
||||||
return vec![
|
return vec![
|
||||||
"SELECT",
|
SELECT,
|
||||||
"FROM",
|
FROM,
|
||||||
"WHERE",
|
WHERE,
|
||||||
"LIMIT",
|
LIMIT,
|
||||||
"ORDER",
|
ORDER,
|
||||||
"GROUP",
|
GROUP,
|
||||||
"BY",
|
BY,
|
||||||
"HAVING",
|
HAVING,
|
||||||
"UNION",
|
UNION,
|
||||||
"ALL",
|
ALL,
|
||||||
"INSERT",
|
INSERT,
|
||||||
"INTO",
|
INTO,
|
||||||
"UPDATE",
|
UPDATE,
|
||||||
"DELETE",
|
DELETE,
|
||||||
"IN",
|
IN,
|
||||||
"IS",
|
IS,
|
||||||
"NULL",
|
NULL,
|
||||||
"SET",
|
SET,
|
||||||
"CREATE",
|
CREATE,
|
||||||
"EXTERNAL",
|
EXTERNAL,
|
||||||
"TABLE",
|
TABLE,
|
||||||
"ASC",
|
ASC,
|
||||||
"DESC",
|
DESC,
|
||||||
"AND",
|
AND,
|
||||||
"OR",
|
OR,
|
||||||
"NOT",
|
NOT,
|
||||||
"AS",
|
AS,
|
||||||
"STORED",
|
STORED,
|
||||||
"CSV",
|
CSV,
|
||||||
"PARQUET",
|
PARQUET,
|
||||||
"LOCATION",
|
LOCATION,
|
||||||
"WITH",
|
WITH,
|
||||||
"WITHOUT",
|
WITHOUT,
|
||||||
"HEADER",
|
HEADER,
|
||||||
"ROW",
|
ROW,
|
||||||
// SQL types
|
// SQL types
|
||||||
"CHAR",
|
CHAR,
|
||||||
"CHARACTER",
|
CHARACTER,
|
||||||
"VARYING",
|
VARYING,
|
||||||
"LARGE",
|
LARGE,
|
||||||
"OBJECT",
|
OBJECT,
|
||||||
"VARCHAR",
|
VARCHAR,
|
||||||
"CLOB",
|
CLOB,
|
||||||
"BINARY",
|
BINARY,
|
||||||
"VARBINARY",
|
VARBINARY,
|
||||||
"BLOB",
|
BLOB,
|
||||||
"FLOAT",
|
FLOAT,
|
||||||
"REAL",
|
REAL,
|
||||||
"DOUBLE",
|
DOUBLE,
|
||||||
"PRECISION",
|
PRECISION,
|
||||||
"INT",
|
INT,
|
||||||
"INTEGER",
|
INTEGER,
|
||||||
"SMALLINT",
|
SMALLINT,
|
||||||
"BIGINT",
|
BIGINT,
|
||||||
"NUMERIC",
|
NUMERIC,
|
||||||
"DECIMAL",
|
DECIMAL,
|
||||||
"DEC",
|
DEC,
|
||||||
"BOOLEAN",
|
BOOLEAN,
|
||||||
"DATE",
|
DATE,
|
||||||
"TIME",
|
TIME,
|
||||||
"TIMESTAMP",
|
TIMESTAMP,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
355
src/dialect/keywords.rs
Normal file
355
src/dialect/keywords.rs
Normal file
|
@ -0,0 +1,355 @@
|
||||||
|
/// make a listing of keywords
|
||||||
|
/// with static str and their stringified value
|
||||||
|
macro_rules! keyword {
|
||||||
|
($($ident:ident),*) => {
|
||||||
|
$(pub static $ident: &'static str = stringify!($ident);)*
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// enumerate all the keywords here for all dialects to support in this project
|
||||||
|
keyword!(
|
||||||
|
ABS,
|
||||||
|
ADD,
|
||||||
|
ASC,
|
||||||
|
ALL,
|
||||||
|
ALLOCATE,
|
||||||
|
ALTER,
|
||||||
|
AND,
|
||||||
|
ANY,
|
||||||
|
ARE,
|
||||||
|
ARRAY,
|
||||||
|
ARRAY_AGG,
|
||||||
|
ARRAY_MAX_CARDINALITY,
|
||||||
|
AS,
|
||||||
|
ASENSITIVE,
|
||||||
|
ASYMMETRIC,
|
||||||
|
AT,
|
||||||
|
ATOMIC,
|
||||||
|
AUTHORIZATION,
|
||||||
|
AVG,
|
||||||
|
BEGIN,
|
||||||
|
BEGIN_FRAME,
|
||||||
|
BEGIN_PARTITION,
|
||||||
|
BETWEEN,
|
||||||
|
BIGINT,
|
||||||
|
BINARY,
|
||||||
|
BLOB,
|
||||||
|
BOOLEAN,
|
||||||
|
BOTH,
|
||||||
|
BY,
|
||||||
|
BYTEA,
|
||||||
|
CALL,
|
||||||
|
CALLED,
|
||||||
|
CARDINALITY,
|
||||||
|
CASCADED,
|
||||||
|
CASE,
|
||||||
|
CAST,
|
||||||
|
CEIL,
|
||||||
|
CEILING,
|
||||||
|
CHAR,
|
||||||
|
CHAR_LENGTH,
|
||||||
|
CHARACTER,
|
||||||
|
CHARACTER_LENGTH,
|
||||||
|
CHECK,
|
||||||
|
CLOB,
|
||||||
|
CLOSE,
|
||||||
|
COALESCE,
|
||||||
|
COLLATE,
|
||||||
|
COLLECT,
|
||||||
|
COLUMN,
|
||||||
|
COMMIT,
|
||||||
|
CONDITION,
|
||||||
|
CONNECT,
|
||||||
|
CONSTRAINT,
|
||||||
|
CONTAINS,
|
||||||
|
CONVERT,
|
||||||
|
COPY,
|
||||||
|
CORR,
|
||||||
|
CORRESPONDING,
|
||||||
|
COUNT,
|
||||||
|
COVAR_POP,
|
||||||
|
COVAR_SAMP,
|
||||||
|
CREATE,
|
||||||
|
CROSS,
|
||||||
|
CSV,
|
||||||
|
CUBE,
|
||||||
|
CUME_DIST,
|
||||||
|
CURRENT,
|
||||||
|
CURRENT_CATALOG,
|
||||||
|
CURRENT_DATE,
|
||||||
|
CURRENT_DEFAULT_TRANSFORM_GROUP,
|
||||||
|
CURRENT_PATH,
|
||||||
|
CURRENT_ROLE,
|
||||||
|
CURRENT_ROW,
|
||||||
|
CURRENT_SCHEMA,
|
||||||
|
CURRENT_TIME,
|
||||||
|
CURRENT_TIMESTAMP,
|
||||||
|
CURRENT_TRANSFORM_GROUP_FOR_TYPE,
|
||||||
|
CURRENT_USER,
|
||||||
|
CURSOR,
|
||||||
|
CYCLE,
|
||||||
|
DATE,
|
||||||
|
DAY,
|
||||||
|
DEALLOCATE,
|
||||||
|
DEC,
|
||||||
|
DECIMAL,
|
||||||
|
DECLARE,
|
||||||
|
DEFAULT,
|
||||||
|
DELETE,
|
||||||
|
DENSE_RANK,
|
||||||
|
DEREF,
|
||||||
|
DESC,
|
||||||
|
DESCRIBE,
|
||||||
|
DETERMINISTIC,
|
||||||
|
DISCONNECT,
|
||||||
|
DISTINCT,
|
||||||
|
DOUBLE,
|
||||||
|
DROP,
|
||||||
|
DYNAMIC,
|
||||||
|
EACH,
|
||||||
|
ELEMENT,
|
||||||
|
ELSE,
|
||||||
|
END,
|
||||||
|
END_FRAME,
|
||||||
|
END_PARTITION,
|
||||||
|
EQUALS,
|
||||||
|
ESCAPE,
|
||||||
|
EVERY,
|
||||||
|
EXCEPT,
|
||||||
|
EXEC,
|
||||||
|
EXECUTE,
|
||||||
|
EXISTS,
|
||||||
|
EXP,
|
||||||
|
EXTERNAL,
|
||||||
|
EXTRACT,
|
||||||
|
FALSE,
|
||||||
|
FETCH,
|
||||||
|
FILTER,
|
||||||
|
FIRST_VALUE,
|
||||||
|
FLOAT,
|
||||||
|
FLOOR,
|
||||||
|
FOR,
|
||||||
|
FOREIGN,
|
||||||
|
FRAME_ROW,
|
||||||
|
FREE,
|
||||||
|
FROM,
|
||||||
|
FULL,
|
||||||
|
FUNCTION,
|
||||||
|
FUSION,
|
||||||
|
GET,
|
||||||
|
GLOBAL,
|
||||||
|
GRANT,
|
||||||
|
GROUP,
|
||||||
|
GROUPING,
|
||||||
|
GROUPS,
|
||||||
|
HAVING,
|
||||||
|
HEADER,
|
||||||
|
HOLD,
|
||||||
|
HOUR,
|
||||||
|
IDENTITY,
|
||||||
|
IN,
|
||||||
|
INDICATOR,
|
||||||
|
INNER,
|
||||||
|
INOUT,
|
||||||
|
INSENSITIVE,
|
||||||
|
INSERT,
|
||||||
|
INT,
|
||||||
|
INTEGER,
|
||||||
|
INTERSECT,
|
||||||
|
INTERSECTION,
|
||||||
|
INTERVAL,
|
||||||
|
INTO,
|
||||||
|
IS,
|
||||||
|
JOIN,
|
||||||
|
KEY,
|
||||||
|
LAG,
|
||||||
|
LANGUAGE,
|
||||||
|
LARGE,
|
||||||
|
LAST_VALUE,
|
||||||
|
LATERAL,
|
||||||
|
LEAD,
|
||||||
|
LEADING,
|
||||||
|
LEFT,
|
||||||
|
LIKE,
|
||||||
|
LIKE_REGEX,
|
||||||
|
LIMIT,
|
||||||
|
LN,
|
||||||
|
LOCAL,
|
||||||
|
LOCALTIME,
|
||||||
|
LOCALTIMESTAMP,
|
||||||
|
LOCATION,
|
||||||
|
LOWER,
|
||||||
|
MATCH,
|
||||||
|
MAX,
|
||||||
|
MEMBER,
|
||||||
|
MERGE,
|
||||||
|
METHOD,
|
||||||
|
MIN,
|
||||||
|
MINUTE,
|
||||||
|
MOD,
|
||||||
|
MODIFIES,
|
||||||
|
MODULE,
|
||||||
|
MONTH,
|
||||||
|
MULTISET,
|
||||||
|
NATIONAL,
|
||||||
|
NATURAL,
|
||||||
|
NCHAR,
|
||||||
|
NCLOB,
|
||||||
|
NEW,
|
||||||
|
NO,
|
||||||
|
NONE,
|
||||||
|
NORMALIZE,
|
||||||
|
NOT,
|
||||||
|
NTH_VALUE,
|
||||||
|
NTILE,
|
||||||
|
NULL,
|
||||||
|
NULLIF,
|
||||||
|
NUMERIC,
|
||||||
|
OBJECT,
|
||||||
|
OCTET_LENGTH,
|
||||||
|
OCCURRENCES_REGEX,
|
||||||
|
OF,
|
||||||
|
OFFSET,
|
||||||
|
OLD,
|
||||||
|
ON,
|
||||||
|
ONLY,
|
||||||
|
OPEN,
|
||||||
|
OR,
|
||||||
|
ORDER,
|
||||||
|
OUT,
|
||||||
|
OUTER,
|
||||||
|
OVER,
|
||||||
|
OVERLAPS,
|
||||||
|
OVERLAY,
|
||||||
|
PARAMETER,
|
||||||
|
PARTITION,
|
||||||
|
PARQUET,
|
||||||
|
PERCENT,
|
||||||
|
PERCENT_RANK,
|
||||||
|
PERCENTILE_CONT,
|
||||||
|
PERCENTILE_DISC,
|
||||||
|
PERIOD,
|
||||||
|
PORTION,
|
||||||
|
POSITION,
|
||||||
|
POSITION_REGEX,
|
||||||
|
POWER,
|
||||||
|
PRECEDES,
|
||||||
|
PRECISION,
|
||||||
|
PREPARE,
|
||||||
|
PRIMARY,
|
||||||
|
PROCEDURE,
|
||||||
|
RANGE,
|
||||||
|
RANK,
|
||||||
|
READS,
|
||||||
|
REAL,
|
||||||
|
RECURSIVE,
|
||||||
|
REF,
|
||||||
|
REFERENCES,
|
||||||
|
REFERENCING,
|
||||||
|
REGCLASS,
|
||||||
|
REGR_AVGX,
|
||||||
|
REGR_AVGY,
|
||||||
|
REGR_COUNT,
|
||||||
|
REGR_INTERCEPT,
|
||||||
|
REGR_R2,
|
||||||
|
REGR_SLOPE,
|
||||||
|
REGR_SXX,
|
||||||
|
REGR_SXY,
|
||||||
|
REGR_SYY,
|
||||||
|
RELEASE,
|
||||||
|
RESULT,
|
||||||
|
RETURN,
|
||||||
|
RETURNS,
|
||||||
|
REVOKE,
|
||||||
|
RIGHT,
|
||||||
|
ROLLBACK,
|
||||||
|
ROLLUP,
|
||||||
|
ROW,
|
||||||
|
ROW_NUMBER,
|
||||||
|
ROWS,
|
||||||
|
SAVEPOINT,
|
||||||
|
SCOPE,
|
||||||
|
SCROLL,
|
||||||
|
SEARCH,
|
||||||
|
SECOND,
|
||||||
|
SELECT,
|
||||||
|
SENSITIVE,
|
||||||
|
SESSION_USER,
|
||||||
|
SET,
|
||||||
|
SIMILAR,
|
||||||
|
SMALLINT,
|
||||||
|
SOME,
|
||||||
|
SPECIFIC,
|
||||||
|
SPECIFICTYPE,
|
||||||
|
SQL,
|
||||||
|
SQLEXCEPTION,
|
||||||
|
SQLSTATE,
|
||||||
|
SQLWARNING,
|
||||||
|
SQRT,
|
||||||
|
START,
|
||||||
|
STATIC,
|
||||||
|
STDDEV_POP,
|
||||||
|
STDDEV_SAMP,
|
||||||
|
STDIN,
|
||||||
|
STORED,
|
||||||
|
SUBMULTISET,
|
||||||
|
SUBSTRING,
|
||||||
|
SUBSTRING_REGEX,
|
||||||
|
SUCCEEDS,
|
||||||
|
SUM,
|
||||||
|
SYMMETRIC,
|
||||||
|
SYSTEM,
|
||||||
|
SYSTEM_TIME,
|
||||||
|
SYSTEM_USER,
|
||||||
|
TABLE,
|
||||||
|
TABLESAMPLE,
|
||||||
|
TEXT,
|
||||||
|
THEN,
|
||||||
|
TIME,
|
||||||
|
TIMESTAMP,
|
||||||
|
TIMEZONE_HOUR,
|
||||||
|
TIMEZONE_MINUTE,
|
||||||
|
TO,
|
||||||
|
TRAILING,
|
||||||
|
TRANSLATE,
|
||||||
|
TRANSLATE_REGEX,
|
||||||
|
TRANSLATION,
|
||||||
|
TREAT,
|
||||||
|
TRIGGER,
|
||||||
|
TRUNCATE,
|
||||||
|
TRIM,
|
||||||
|
TRIM_ARRAY,
|
||||||
|
TRUE,
|
||||||
|
UESCAPE,
|
||||||
|
UNION,
|
||||||
|
UNIQUE,
|
||||||
|
UNKNOWN,
|
||||||
|
UNNEST,
|
||||||
|
UPDATE,
|
||||||
|
UPPER,
|
||||||
|
USER,
|
||||||
|
USING,
|
||||||
|
UUID,
|
||||||
|
VALUE,
|
||||||
|
VALUES,
|
||||||
|
VALUE_OF,
|
||||||
|
VAR_POP,
|
||||||
|
VAR_SAMP,
|
||||||
|
VARBINARY,
|
||||||
|
VARCHAR,
|
||||||
|
VARYING,
|
||||||
|
VERSIONING,
|
||||||
|
WHEN,
|
||||||
|
WHENEVER,
|
||||||
|
WHERE,
|
||||||
|
WIDTH_BUCKET,
|
||||||
|
WINDOW,
|
||||||
|
WITH,
|
||||||
|
WITHIN,
|
||||||
|
WITHOUT,
|
||||||
|
YEAR,
|
||||||
|
ZONE
|
||||||
|
);
|
||||||
|
|
||||||
|
/// special case of keyword where the it is an invalid identifier
|
||||||
|
pub static END_EXEC: &'static str = "END-EXEC";
|
|
@ -1,91 +1,89 @@
|
||||||
use dialect::Dialect;
|
use dialect::Dialect;
|
||||||
|
|
||||||
|
use dialect::keywords::*;
|
||||||
|
|
||||||
pub struct PostgreSqlDialect {}
|
pub struct PostgreSqlDialect {}
|
||||||
|
|
||||||
impl Dialect for PostgreSqlDialect {
|
impl Dialect for PostgreSqlDialect {
|
||||||
fn keywords(&self) -> Vec<&'static str> {
|
fn keywords(&self) -> Vec<&'static str> {
|
||||||
return vec![
|
return vec![
|
||||||
"ALTER",
|
ALTER,
|
||||||
"ONLY",
|
ONLY,
|
||||||
"SELECT",
|
SELECT,
|
||||||
"FROM",
|
FROM,
|
||||||
"WHERE",
|
WHERE,
|
||||||
"LIMIT",
|
LIMIT,
|
||||||
"ORDER",
|
ORDER,
|
||||||
"GROUP",
|
GROUP,
|
||||||
"BY",
|
BY,
|
||||||
"HAVING",
|
HAVING,
|
||||||
"UNION",
|
UNION,
|
||||||
"ALL",
|
ALL,
|
||||||
"INSERT",
|
INSERT,
|
||||||
"INTO",
|
INTO,
|
||||||
"UPDATE",
|
UPDATE,
|
||||||
"DELETE",
|
DELETE,
|
||||||
"IN",
|
IN,
|
||||||
"IS",
|
IS,
|
||||||
"NULL",
|
NULL,
|
||||||
"SET",
|
SET,
|
||||||
"CREATE",
|
CREATE,
|
||||||
"EXTERNAL",
|
EXTERNAL,
|
||||||
"TABLE",
|
TABLE,
|
||||||
"ASC",
|
ASC,
|
||||||
"DESC",
|
DESC,
|
||||||
"AND",
|
AND,
|
||||||
"OR",
|
OR,
|
||||||
"NOT",
|
NOT,
|
||||||
"AS",
|
AS,
|
||||||
"STORED",
|
STORED,
|
||||||
"CSV",
|
CSV,
|
||||||
"PARQUET",
|
WITH,
|
||||||
"LOCATION",
|
WITHOUT,
|
||||||
"WITH",
|
ROW,
|
||||||
"WITHOUT",
|
|
||||||
"HEADER",
|
|
||||||
"ROW",
|
|
||||||
// SQL types
|
// SQL types
|
||||||
"CHAR",
|
CHAR,
|
||||||
"CHARACTER",
|
CHARACTER,
|
||||||
"VARYING",
|
VARYING,
|
||||||
"LARGE",
|
LARGE,
|
||||||
"OBJECT",
|
VARCHAR,
|
||||||
"VARCHAR",
|
CLOB,
|
||||||
"CLOB",
|
BINARY,
|
||||||
"BINARY",
|
VARBINARY,
|
||||||
"VARBINARY",
|
BLOB,
|
||||||
"BLOB",
|
FLOAT,
|
||||||
"FLOAT",
|
REAL,
|
||||||
"REAL",
|
DOUBLE,
|
||||||
"DOUBLE",
|
PRECISION,
|
||||||
"PRECISION",
|
INT,
|
||||||
"INT",
|
INTEGER,
|
||||||
"INTEGER",
|
SMALLINT,
|
||||||
"SMALLINT",
|
BIGINT,
|
||||||
"BIGINT",
|
NUMERIC,
|
||||||
"NUMERIC",
|
DECIMAL,
|
||||||
"DECIMAL",
|
DEC,
|
||||||
"DEC",
|
BOOLEAN,
|
||||||
"BOOLEAN",
|
DATE,
|
||||||
"DATE",
|
TIME,
|
||||||
"TIME",
|
TIMESTAMP,
|
||||||
"TIMESTAMP",
|
VALUES,
|
||||||
"VALUES",
|
DEFAULT,
|
||||||
"DEFAULT",
|
ZONE,
|
||||||
"ZONE",
|
REGCLASS,
|
||||||
"REGCLASS",
|
TEXT,
|
||||||
"TEXT",
|
BYTEA,
|
||||||
"BYTEA",
|
TRUE,
|
||||||
"TRUE",
|
FALSE,
|
||||||
"FALSE",
|
COPY,
|
||||||
"COPY",
|
STDIN,
|
||||||
"STDIN",
|
PRIMARY,
|
||||||
"PRIMARY",
|
KEY,
|
||||||
"KEY",
|
UNIQUE,
|
||||||
"UNIQUE",
|
UUID,
|
||||||
"UUID",
|
ADD,
|
||||||
"ADD",
|
CONSTRAINT,
|
||||||
"CONSTRAINT",
|
FOREIGN,
|
||||||
"FOREIGN",
|
REFERENCES,
|
||||||
"REFERENCES",
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue