mirror of
https://github.com/apache/datafusion-sqlparser-rs.git
synced 2025-07-07 17:04:59 +00:00
Add support for DROP EXTENSION (#1610)
This commit is contained in:
parent
d89cf801dd
commit
7dbf31b587
4 changed files with 144 additions and 1 deletions
|
@ -662,6 +662,100 @@ fn parse_create_extension() {
|
|||
.verified_stmt("CREATE EXTENSION extension_name WITH SCHEMA schema_name VERSION version");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parse_drop_extension() {
|
||||
assert_eq!(
|
||||
pg_and_generic().verified_stmt("DROP EXTENSION extension_name"),
|
||||
Statement::DropExtension {
|
||||
names: vec!["extension_name".into()],
|
||||
if_exists: false,
|
||||
cascade_or_restrict: None,
|
||||
}
|
||||
);
|
||||
assert_eq!(
|
||||
pg_and_generic().verified_stmt("DROP EXTENSION extension_name CASCADE"),
|
||||
Statement::DropExtension {
|
||||
names: vec!["extension_name".into()],
|
||||
if_exists: false,
|
||||
cascade_or_restrict: Some(ReferentialAction::Cascade),
|
||||
}
|
||||
);
|
||||
|
||||
assert_eq!(
|
||||
pg_and_generic().verified_stmt("DROP EXTENSION extension_name RESTRICT"),
|
||||
Statement::DropExtension {
|
||||
names: vec!["extension_name".into()],
|
||||
if_exists: false,
|
||||
cascade_or_restrict: Some(ReferentialAction::Restrict),
|
||||
}
|
||||
);
|
||||
|
||||
assert_eq!(
|
||||
pg_and_generic().verified_stmt("DROP EXTENSION extension_name, extension_name2 CASCADE"),
|
||||
Statement::DropExtension {
|
||||
names: vec!["extension_name".into(), "extension_name2".into()],
|
||||
if_exists: false,
|
||||
cascade_or_restrict: Some(ReferentialAction::Cascade),
|
||||
}
|
||||
);
|
||||
|
||||
assert_eq!(
|
||||
pg_and_generic().verified_stmt("DROP EXTENSION extension_name, extension_name2 RESTRICT"),
|
||||
Statement::DropExtension {
|
||||
names: vec!["extension_name".into(), "extension_name2".into()],
|
||||
if_exists: false,
|
||||
cascade_or_restrict: Some(ReferentialAction::Restrict),
|
||||
}
|
||||
);
|
||||
|
||||
assert_eq!(
|
||||
pg_and_generic().verified_stmt("DROP EXTENSION IF EXISTS extension_name"),
|
||||
Statement::DropExtension {
|
||||
names: vec!["extension_name".into()],
|
||||
if_exists: true,
|
||||
cascade_or_restrict: None,
|
||||
}
|
||||
);
|
||||
|
||||
assert_eq!(
|
||||
pg_and_generic().verified_stmt("DROP EXTENSION IF EXISTS extension_name CASCADE"),
|
||||
Statement::DropExtension {
|
||||
names: vec!["extension_name".into()],
|
||||
if_exists: true,
|
||||
cascade_or_restrict: Some(ReferentialAction::Cascade),
|
||||
}
|
||||
);
|
||||
|
||||
assert_eq!(
|
||||
pg_and_generic().verified_stmt("DROP EXTENSION IF EXISTS extension_name RESTRICT"),
|
||||
Statement::DropExtension {
|
||||
names: vec!["extension_name".into()],
|
||||
if_exists: true,
|
||||
cascade_or_restrict: Some(ReferentialAction::Restrict),
|
||||
}
|
||||
);
|
||||
|
||||
assert_eq!(
|
||||
pg_and_generic()
|
||||
.verified_stmt("DROP EXTENSION IF EXISTS extension_name1, extension_name2 CASCADE"),
|
||||
Statement::DropExtension {
|
||||
names: vec!["extension_name1".into(), "extension_name2".into()],
|
||||
if_exists: true,
|
||||
cascade_or_restrict: Some(ReferentialAction::Cascade),
|
||||
}
|
||||
);
|
||||
|
||||
assert_eq!(
|
||||
pg_and_generic()
|
||||
.verified_stmt("DROP EXTENSION IF EXISTS extension_name1, extension_name2 RESTRICT"),
|
||||
Statement::DropExtension {
|
||||
names: vec!["extension_name1".into(), "extension_name2".into()],
|
||||
if_exists: true,
|
||||
cascade_or_restrict: Some(ReferentialAction::Restrict),
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parse_alter_table_alter_column() {
|
||||
pg().one_statement_parses_to(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue