mirror of
https://github.com/apache/datafusion-sqlparser-rs.git
synced 2025-08-03 22:08:16 +00:00
add create index and drop index support
This commit is contained in:
parent
2644bc4ac7
commit
5aacc5ebcd
4 changed files with 98 additions and 3 deletions
|
@ -2631,6 +2631,44 @@ fn ensure_multiple_dialects_are_tested() {
|
|||
let _ = parse_sql_statements("SELECT @foo");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parse_create_index() {
|
||||
let sql = "CREATE UNIQUE INDEX IF NOT EXISTS idx_name ON test(name,age);";
|
||||
let ident_vec = vec![Ident::new("name"), Ident::new("age")];
|
||||
match verified_stmt(sql) {
|
||||
Statement::CreateIndex {
|
||||
name,
|
||||
table_name,
|
||||
columns,
|
||||
unique,
|
||||
if_not_exists,
|
||||
} => {
|
||||
assert_eq!("idx_name", name.to_string());
|
||||
assert_eq!("test", table_name.to_string());
|
||||
assert_eq!(ident_vec, columns);
|
||||
assert_eq!(true, unique);
|
||||
assert_eq!(true, if_not_exists)
|
||||
}
|
||||
_ => unreachable!(),
|
||||
}
|
||||
}
|
||||
#[test]
|
||||
fn parse_drop_index() {
|
||||
let sql = "DROP INDEX idx_a";
|
||||
match verified_stmt(sql) {
|
||||
Statement::Drop {
|
||||
names, object_type, ..
|
||||
} => {
|
||||
assert_eq!(
|
||||
vec!["idx_a"],
|
||||
names.iter().map(ToString::to_string).collect::<Vec<_>>()
|
||||
);
|
||||
assert_eq!(ObjectType::Index, object_type);
|
||||
}
|
||||
_ => unreachable!(),
|
||||
}
|
||||
}
|
||||
|
||||
fn parse_sql_statements(sql: &str) -> Result<Vec<Statement>, ParserError> {
|
||||
all_dialects().parse_sql_statements(sql)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue