@@ -1160,7 +1160,7 @@ protected void visitSetAssignment(Assignment assignment) {
11601160 final List <ColumnReference > columnReferences = assignable .getColumnReferences ();
11611161 final Expression assignedValue = assignment .getAssignedValue ();
11621162 if ( columnReferences .size () == 1 ) {
1163- columnReferences .get ( 0 ). appendColumnForWrite ( this , null );
1163+ appendColumn ( columnReferences .get ( 0 ) );
11641164 appendSql ( '=' );
11651165 final SqlTuple sqlTuple = getSqlTuple ( assignedValue );
11661166 if ( sqlTuple != null ) {
@@ -1175,7 +1175,7 @@ else if ( assignedValue instanceof SelectStatement ) {
11751175 char separator = OPEN_PARENTHESIS ;
11761176 for ( ColumnReference columnReference : columnReferences ) {
11771177 appendSql ( separator );
1178- columnReference . appendColumnForWrite ( this , null );
1178+ appendColumn ( columnReference );
11791179 separator = COMMA_SEPARATOR_CHAR ;
11801180 }
11811181 appendSql ( ")=" );
@@ -1184,7 +1184,7 @@ else if ( assignedValue instanceof SelectStatement ) {
11841184 else {
11851185 assert assignedValue instanceof SqlTupleContainer ;
11861186 final List <? extends Expression > expressions = ( (SqlTupleContainer ) assignedValue ).getSqlTuple ().getExpressions ();
1187- columnReferences .get ( 0 ). appendColumnForWrite ( this , null );
1187+ appendColumn ( columnReferences .get ( 0 ) );
11881188 appendSql ( '=' );
11891189 expressions .get ( 0 ).accept ( this );
11901190 for ( int i = 1 ; i < columnReferences .size (); i ++ ) {
@@ -1196,6 +1196,15 @@ else if ( assignedValue instanceof SelectStatement ) {
11961196 }
11971197 }
11981198
1199+ private void appendColumn (ColumnReference column ) {
1200+ if ( affectedTableNames .size () > 1 ) {
1201+ column .appendColumnForWrite ( this );
1202+ }
1203+ else {
1204+ column .appendColumnForWrite ( this , null );
1205+ }
1206+ }
1207+
11991208 protected void visitSetAssignmentEmulateJoin (Assignment assignment , UpdateStatement statement ) {
12001209 final Assignable assignable = assignment .getAssignable ();
12011210 if ( assignable instanceof SqmPathInterpretation <?> sqmPathInterpretation ) {
0 commit comments