@@ -34,34 +34,31 @@ def visit_Arel_Nodes_UpdateStatement(o, collector)
34
34
o . limit = Nodes ::Limit . new ( 9_223_372_036_854_775_807 )
35
35
end
36
36
37
+ if o . key && o . key . size > 1
38
+ collector . retryable = false
39
+ _visit_Arel_Nodes_UpdateStatement ( o , collector )
40
+ else
41
+ super
42
+ end
43
+ end
37
44
38
-
39
- collector . retryable = false
40
- # o = prepare_update_statement(o)
41
-
45
+ def _visit_Arel_Nodes_UpdateStatement ( o , collector )
42
46
collector << "UPDATE "
43
47
44
-
45
- visit o . relation . left , collector
48
+ if has_join_sources? ( o )
49
+ visit o . relation . left , collector
50
+ else
51
+ visit o . relation , collector
52
+ end
46
53
47
54
collect_nodes_for o . values , collector , " SET "
48
55
49
56
collector << " FROM "
50
- visit o . relation . left , collector
51
-
52
- collector << " "
53
- collector = visit o . relation . right , collector
57
+ visit o . relation , collector
54
58
55
59
collect_nodes_for o . wheres , collector , " WHERE " , " AND "
56
60
collect_nodes_for o . orders , collector , " ORDER BY "
57
61
maybe_visit o . limit , collector
58
-
59
-
60
- #
61
-
62
-
63
-
64
- # super
65
62
end
66
63
67
64
def visit_Arel_Nodes_Lock ( o , collector )
0 commit comments