mirror of
https://github.com/apache/datafusion-sqlparser-rs.git
synced 2025-08-04 14:28:22 +00:00
modularize dialects into their own submodules
remove assertion in copy sql, conversion to_string is unfinished
This commit is contained in:
parent
ba8a9bd48f
commit
d66e4848bd
5 changed files with 541 additions and 527 deletions
103
src/dialect/postgresql.rs
Normal file
103
src/dialect/postgresql.rs
Normal file
|
@ -0,0 +1,103 @@
|
|||
use dialect::Dialect;
|
||||
|
||||
pub struct PostgreSqlDialect {}
|
||||
|
||||
impl Dialect for PostgreSqlDialect {
|
||||
fn keywords(&self) -> Vec<&'static str> {
|
||||
return vec![
|
||||
"ALTER",
|
||||
"ONLY",
|
||||
"SELECT",
|
||||
"FROM",
|
||||
"WHERE",
|
||||
"LIMIT",
|
||||
"ORDER",
|
||||
"GROUP",
|
||||
"BY",
|
||||
"HAVING",
|
||||
"UNION",
|
||||
"ALL",
|
||||
"INSERT",
|
||||
"INTO",
|
||||
"UPDATE",
|
||||
"DELETE",
|
||||
"IN",
|
||||
"IS",
|
||||
"NULL",
|
||||
"SET",
|
||||
"CREATE",
|
||||
"EXTERNAL",
|
||||
"TABLE",
|
||||
"ASC",
|
||||
"DESC",
|
||||
"AND",
|
||||
"OR",
|
||||
"NOT",
|
||||
"AS",
|
||||
"STORED",
|
||||
"CSV",
|
||||
"PARQUET",
|
||||
"LOCATION",
|
||||
"WITH",
|
||||
"WITHOUT",
|
||||
"HEADER",
|
||||
"ROW",
|
||||
// SQL types
|
||||
"CHAR",
|
||||
"CHARACTER",
|
||||
"VARYING",
|
||||
"LARGE",
|
||||
"OBJECT",
|
||||
"VARCHAR",
|
||||
"CLOB",
|
||||
"BINARY",
|
||||
"VARBINARY",
|
||||
"BLOB",
|
||||
"FLOAT",
|
||||
"REAL",
|
||||
"DOUBLE",
|
||||
"PRECISION",
|
||||
"INT",
|
||||
"INTEGER",
|
||||
"SMALLINT",
|
||||
"BIGINT",
|
||||
"NUMERIC",
|
||||
"DECIMAL",
|
||||
"DEC",
|
||||
"BOOLEAN",
|
||||
"DATE",
|
||||
"TIME",
|
||||
"TIMESTAMP",
|
||||
"VALUES",
|
||||
"DEFAULT",
|
||||
"ZONE",
|
||||
"REGCLASS",
|
||||
"TEXT",
|
||||
"BYTEA",
|
||||
"TRUE",
|
||||
"FALSE",
|
||||
"COPY",
|
||||
"STDIN",
|
||||
"PRIMARY",
|
||||
"KEY",
|
||||
"UNIQUE",
|
||||
"UUID",
|
||||
"ADD",
|
||||
"CONSTRAINT",
|
||||
"FOREIGN",
|
||||
"REFERENCES",
|
||||
];
|
||||
}
|
||||
|
||||
fn is_identifier_start(&self, ch: char) -> bool {
|
||||
(ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') || ch == '@'
|
||||
}
|
||||
|
||||
fn is_identifier_part(&self, ch: char) -> bool {
|
||||
(ch >= 'a' && ch <= 'z')
|
||||
|| (ch >= 'A' && ch <= 'Z')
|
||||
|| (ch >= '0' && ch <= '9')
|
||||
|| ch == '@'
|
||||
|| ch == '_'
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue