@@ -403,7 +403,7 @@ fn parse_update_set_from() {
403403 target: AssignmentTarget :: ColumnName ( ObjectName ( vec![ Ident :: new( "name" ) ] ) ) ,
404404 value: Expr :: CompoundIdentifier ( vec![ Ident :: new( "t2" ) , Ident :: new( "name" ) ] )
405405 } ] ,
406- from: Some ( UpdateTableFromKind :: AfterSet ( TableWithJoins {
406+ from: Some ( UpdateTableFromKind :: AfterSet ( vec! [ TableWithJoins {
407407 relation: TableFactor :: Derived {
408408 lateral: false ,
409409 subquery: Box :: new( Query {
@@ -455,7 +455,7 @@ fn parse_update_set_from() {
455455 } )
456456 } ,
457457 joins: vec![ ]
458- } ) ) ,
458+ } ] ) ) ,
459459 selection: Some ( Expr :: BinaryOp {
460460 left: Box :: new( Expr :: CompoundIdentifier ( vec![
461461 Ident :: new( "t1" ) ,
@@ -471,6 +471,9 @@ fn parse_update_set_from() {
471471 or: None ,
472472 }
473473 ) ;
474+
475+ let sql = "UPDATE T SET a = b FROM U, (SELECT foo FROM V) AS W WHERE 1 = 1" ;
476+ dialects. verified_stmt ( sql) ;
474477}
475478
476479#[ test]
@@ -13046,8 +13049,8 @@ fn parse_select_without_projection() {
1304613049
1304713050#[ test]
1304813051fn parse_update_from_before_select ( ) {
13049- all_dialects ( )
13050- . verified_stmt ( "UPDATE t1 FROM (SELECT name, id FROM t1 GROUP BY id ) AS t2 SET name = t2.name WHERE t1.id = t2.id " ) ;
13052+ verified_stmt ( "UPDATE t1 FROM (SELECT name, id FROM t1 GROUP BY id) AS t2 SET name = t2.name WHERE t1.id = t2.id" ) ;
13053+ verified_stmt ( "UPDATE t1 FROM U, (SELECT id FROM V ) AS W SET a = b WHERE 1 = 1 " ) ;
1305113054
1305213055 let query =
1305313056 "UPDATE t1 FROM (SELECT name, id FROM t1 GROUP BY id) AS t2 SET name = t2.name FROM (SELECT name from t2) AS t2" ;
0 commit comments