mirror of
https://github.com/apache/datafusion-sqlparser-rs.git
synced 2025-07-08 01:15:00 +00:00
feat: adjust create and drop trigger for mysql dialect (#1734)
This commit is contained in:
parent
c335c8883b
commit
648efd7057
4 changed files with 62 additions and 8 deletions
|
@ -3291,3 +3291,51 @@ fn parse_looks_like_single_line_comment() {
|
|||
"UPDATE account SET balance = balance WHERE account_id = 5752",
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parse_create_trigger() {
|
||||
let sql_create_trigger = r#"
|
||||
CREATE TRIGGER emp_stamp BEFORE INSERT ON emp
|
||||
FOR EACH ROW EXECUTE FUNCTION emp_stamp();
|
||||
"#;
|
||||
let create_stmt = mysql().one_statement_parses_to(sql_create_trigger, "");
|
||||
assert_eq!(
|
||||
create_stmt,
|
||||
Statement::CreateTrigger {
|
||||
or_replace: false,
|
||||
is_constraint: false,
|
||||
name: ObjectName::from(vec![Ident::new("emp_stamp")]),
|
||||
period: TriggerPeriod::Before,
|
||||
events: vec![TriggerEvent::Insert],
|
||||
table_name: ObjectName::from(vec![Ident::new("emp")]),
|
||||
referenced_table_name: None,
|
||||
referencing: vec![],
|
||||
trigger_object: TriggerObject::Row,
|
||||
include_each: true,
|
||||
condition: None,
|
||||
exec_body: TriggerExecBody {
|
||||
exec_type: TriggerExecBodyType::Function,
|
||||
func_desc: FunctionDesc {
|
||||
name: ObjectName::from(vec![Ident::new("emp_stamp")]),
|
||||
args: None,
|
||||
}
|
||||
},
|
||||
characteristics: None,
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parse_drop_trigger() {
|
||||
let sql_drop_trigger = "DROP TRIGGER emp_stamp;";
|
||||
let drop_stmt = mysql().one_statement_parses_to(sql_drop_trigger, "");
|
||||
assert_eq!(
|
||||
drop_stmt,
|
||||
Statement::DropTrigger {
|
||||
if_exists: false,
|
||||
trigger_name: ObjectName::from(vec![Ident::new("emp_stamp")]),
|
||||
table_name: None,
|
||||
option: None,
|
||||
}
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue