@@ -4239,6 +4239,66 @@ fn parse_drop_function() {
42394239 ) ;
42404240}
42414241
4242+ #[ test]
4243+ fn parse_drop_domain ( ) {
4244+ let sql = "DROP DOMAIN IF EXISTS jpeg_domain" ;
4245+ assert_eq ! (
4246+ pg( ) . verified_stmt( sql) ,
4247+ Statement :: DropDomain {
4248+ if_exists: true ,
4249+ name: ObjectName :: from( vec![ Ident {
4250+ value: "jpeg_domain" . to_string( ) ,
4251+ quote_style: None ,
4252+ span: Span :: empty( ) ,
4253+ } ] ) ,
4254+ drop_behavior: None
4255+ }
4256+ ) ;
4257+
4258+ let sql = "DROP DOMAIN jpeg_domain" ;
4259+ assert_eq ! (
4260+ pg( ) . verified_stmt( sql) ,
4261+ Statement :: DropDomain {
4262+ if_exists: false ,
4263+ name: ObjectName :: from( vec![ Ident {
4264+ value: "jpeg_domain" . to_string( ) ,
4265+ quote_style: None ,
4266+ span: Span :: empty( ) ,
4267+ } ] ) ,
4268+ drop_behavior: None
4269+ }
4270+ ) ;
4271+
4272+ let sql = "DROP DOMAIN IF EXISTS jpeg_domain CASCADE" ;
4273+ assert_eq ! (
4274+ pg( ) . verified_stmt( sql) ,
4275+ Statement :: DropDomain {
4276+ if_exists: true ,
4277+ name: ObjectName :: from( vec![ Ident {
4278+ value: "jpeg_domain" . to_string( ) ,
4279+ quote_style: None ,
4280+ span: Span :: empty( ) ,
4281+ } ] ) ,
4282+ drop_behavior: Some ( DropBehavior :: Cascade )
4283+ }
4284+ ) ;
4285+
4286+ let sql = "DROP DOMAIN IF EXISTS jpeg_domain RESTRICT" ;
4287+
4288+ assert_eq ! (
4289+ pg( ) . verified_stmt( sql) ,
4290+ Statement :: DropDomain {
4291+ if_exists: true ,
4292+ name: ObjectName :: from( vec![ Ident {
4293+ value: "jpeg_domain" . to_string( ) ,
4294+ quote_style: None ,
4295+ span: Span :: empty( ) ,
4296+ } ] ) ,
4297+ drop_behavior: Some ( DropBehavior :: Restrict )
4298+ }
4299+ ) ;
4300+ }
4301+
42424302#[ test]
42434303fn parse_drop_procedure ( ) {
42444304 let sql = "DROP PROCEDURE IF EXISTS test_proc" ;
0 commit comments