add support for update statements that contain tuple assignments (#1317)

This commit is contained in:
Ophir LOJKINE 2024-06-18 15:28:39 +02:00 committed by GitHub
parent 0330f9def5
commit 345e2098fb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 114 additions and 24 deletions

View file

@ -1557,7 +1557,7 @@ fn parse_pg_on_conflict() {
assert_eq!(
OnConflictAction::DoUpdate(DoUpdate {
assignments: vec![Assignment {
id: vec!["dname".into()],
target: AssignmentTarget::ColumnName(ObjectName(vec!["dname".into()])),
value: Expr::CompoundIdentifier(vec!["EXCLUDED".into(), "dname".into()])
},],
selection: None
@ -1588,14 +1588,14 @@ fn parse_pg_on_conflict() {
OnConflictAction::DoUpdate(DoUpdate {
assignments: vec![
Assignment {
id: vec!["dname".into()],
target: AssignmentTarget::ColumnName(ObjectName(vec!["dname".into()])),
value: Expr::CompoundIdentifier(vec![
"EXCLUDED".into(),
"dname".into()
])
},
Assignment {
id: vec!["area".into()],
target: AssignmentTarget::ColumnName(ObjectName(vec!["area".into()])),
value: Expr::CompoundIdentifier(vec!["EXCLUDED".into(), "area".into()])
},
],
@ -1645,7 +1645,7 @@ fn parse_pg_on_conflict() {
assert_eq!(
OnConflictAction::DoUpdate(DoUpdate {
assignments: vec![Assignment {
id: vec!["dname".into()],
target: AssignmentTarget::ColumnName(ObjectName(vec!["dname".into()])),
value: Expr::Value(Value::Placeholder("$1".to_string()))
},],
selection: Some(Expr::BinaryOp {
@ -1682,7 +1682,7 @@ fn parse_pg_on_conflict() {
assert_eq!(
OnConflictAction::DoUpdate(DoUpdate {
assignments: vec![Assignment {
id: vec!["dname".into()],
target: AssignmentTarget::ColumnName(ObjectName(vec!["dname".into()])),
value: Expr::Value(Value::Placeholder("$1".to_string()))
},],
selection: Some(Expr::BinaryOp {