@@ -3267,11 +3267,13 @@ def optimize_rewrite_update(self, expression, config, arguments):
32673267 primary_tables = [self .optimize_rewrite_parse_table (expression , config , arguments , expression .args ["this" ])]
32683268 if not primary_tables [0 ]["table_name" ]:
32693269 return expression
3270+ primary_tables [0 ]["expression" ] = expression .args ["this" ]
32703271 if expression .args ["this" ].args .get ("table_expressions" ):
32713272 for table_expression in expression .args ["this" ].args ["table_expressions" ]:
32723273 primary_table = self .optimize_rewrite_parse_table (expression , config , arguments , table_expression )
32733274 if not primary_table ["table_name" ]:
32743275 return expression
3276+ primary_table ["expression" ] = table_expression
32753277 primary_tables .append (primary_table )
32763278
32773279 primary_table , primary_keys , set_expressions = (primary_tables [0 ] if len (primary_tables ) == 1 else None ), [], []
@@ -3334,8 +3336,8 @@ def optimize_rewrite_update(self, expression, config, arguments):
33343336 sql .append (", " .join (select_sql ))
33353337 sql .append ("FROM" )
33363338 if expression .args ["this" ].args .get ("table_expressions" ):
3337- sql .append (", " .join ([self .generate_sql (expression . args [ "this " ])] +
3338- [self .generate_sql (table_expression ) for table_expression in expression . args [ "this" ]. args [ "table_expressions" ] ]))
3339+ sql .append (", " .join ([self .generate_sql (primary_table [ "expression " ])] +
3340+ [self .generate_sql (pt [ "expression" ] ) for pt in primary_tables if pt is not primary_table ]))
33393341 else :
33403342 sql .append (self .generate_sql (expression .args ["this" ]))
33413343 if expression .args ["this" ].args .get ("join_expressions" ):
0 commit comments