Skip to content

Commit 10dab51

Browse files
Refactored into struct DropDomain
1 parent 4ca1508 commit 10dab51

File tree

3 files changed

+26
-17
lines changed

3 files changed

+26
-17
lines changed

src/ast/mod.rs

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3325,11 +3325,7 @@ pub enum Statement {
33253325
///
33263326
/// DROP DOMAIN [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
33273327
///
3328-
DropDomain {
3329-
if_exists: bool,
3330-
name: ObjectName,
3331-
drop_behavior: Option<DropBehavior>,
3332-
},
3328+
DropDomain(DropDomain),
33333329
/// ```sql
33343330
/// DROP PROCEDURE
33353331
/// ```
@@ -5104,11 +5100,11 @@ impl fmt::Display for Statement {
51045100
}
51055101
Ok(())
51065102
}
5107-
Statement::DropDomain {
5103+
Statement::DropDomain(DropDomain {
51085104
if_exists,
51095105
name,
51105106
drop_behavior,
5111-
} => {
5107+
}) => {
51125108
write!(
51135109
f,
51145110
"DROP DOMAIN{} {name}",
@@ -6854,6 +6850,19 @@ impl fmt::Display for CloseCursor {
68546850
}
68556851
}
68566852

6853+
/// A Drop Domain statement
6854+
#[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)]
6855+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
6856+
#[cfg_attr(feature = "visitor", derive(Visit, VisitMut))]
6857+
pub struct DropDomain {
6858+
/// Whether to drop the domain if it exists
6859+
pub if_exists: bool,
6860+
/// The name of the domain to drop
6861+
pub name: ObjectName,
6862+
/// The behavior to apply when dropping the domain
6863+
pub drop_behavior: Option<DropBehavior>,
6864+
}
6865+
68576866
/// A function call
68586867
#[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)]
68596868
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]

src/parser/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6155,11 +6155,11 @@ impl<'a> Parser<'a> {
61556155
let if_exists = self.parse_keywords(&[Keyword::IF, Keyword::EXISTS]);
61566156
let name = self.parse_object_name(false)?;
61576157
let drop_behavior = self.parse_optional_drop_behavior();
6158-
Ok(Statement::DropDomain {
6158+
Ok(Statement::DropDomain(DropDomain {
61596159
if_exists,
61606160
name,
61616161
drop_behavior,
6162-
})
6162+
}))
61636163
}
61646164

61656165
/// ```sql

tests/sqlparser_postgres.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4244,58 +4244,58 @@ fn parse_drop_domain() {
42444244
let sql = "DROP DOMAIN IF EXISTS jpeg_domain";
42454245
assert_eq!(
42464246
pg().verified_stmt(sql),
4247-
Statement::DropDomain {
4247+
Statement::DropDomain(DropDomain {
42484248
if_exists: true,
42494249
name: ObjectName::from(vec![Ident {
42504250
value: "jpeg_domain".to_string(),
42514251
quote_style: None,
42524252
span: Span::empty(),
42534253
}]),
42544254
drop_behavior: None
4255-
}
4255+
})
42564256
);
42574257

42584258
let sql = "DROP DOMAIN jpeg_domain";
42594259
assert_eq!(
42604260
pg().verified_stmt(sql),
4261-
Statement::DropDomain {
4261+
Statement::DropDomain(DropDomain {
42624262
if_exists: false,
42634263
name: ObjectName::from(vec![Ident {
42644264
value: "jpeg_domain".to_string(),
42654265
quote_style: None,
42664266
span: Span::empty(),
42674267
}]),
42684268
drop_behavior: None
4269-
}
4269+
})
42704270
);
42714271

42724272
let sql = "DROP DOMAIN IF EXISTS jpeg_domain CASCADE";
42734273
assert_eq!(
42744274
pg().verified_stmt(sql),
4275-
Statement::DropDomain {
4275+
Statement::DropDomain(DropDomain {
42764276
if_exists: true,
42774277
name: ObjectName::from(vec![Ident {
42784278
value: "jpeg_domain".to_string(),
42794279
quote_style: None,
42804280
span: Span::empty(),
42814281
}]),
42824282
drop_behavior: Some(DropBehavior::Cascade)
4283-
}
4283+
})
42844284
);
42854285

42864286
let sql = "DROP DOMAIN IF EXISTS jpeg_domain RESTRICT";
42874287

42884288
assert_eq!(
42894289
pg().verified_stmt(sql),
4290-
Statement::DropDomain {
4290+
Statement::DropDomain(DropDomain {
42914291
if_exists: true,
42924292
name: ObjectName::from(vec![Ident {
42934293
value: "jpeg_domain".to_string(),
42944294
quote_style: None,
42954295
span: Span::empty(),
42964296
}]),
42974297
drop_behavior: Some(DropBehavior::Restrict)
4298-
}
4298+
})
42994299
);
43004300
}
43014301

0 commit comments

Comments
 (0)