Skip to content

Commit 3a88a8f

Browse files
committed
Update sqlserver.rb
1 parent 9662595 commit 3a88a8f

File tree

1 file changed

+14
-17
lines changed

1 file changed

+14
-17
lines changed

lib/arel/visitors/sqlserver.rb

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -34,34 +34,31 @@ def visit_Arel_Nodes_UpdateStatement(o, collector)
3434
o.limit = Nodes::Limit.new(9_223_372_036_854_775_807)
3535
end
3636

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
3744

38-
39-
collector.retryable = false
40-
# o = prepare_update_statement(o)
41-
45+
def _visit_Arel_Nodes_UpdateStatement(o, collector)
4246
collector << "UPDATE "
4347

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
4653

4754
collect_nodes_for o.values, collector, " SET "
4855

4956
collector << " FROM "
50-
visit o.relation.left, collector
51-
52-
collector << " "
53-
collector = visit o.relation.right, collector
57+
visit o.relation, collector
5458

5559
collect_nodes_for o.wheres, collector, " WHERE ", " AND "
5660
collect_nodes_for o.orders, collector, " ORDER BY "
5761
maybe_visit o.limit, collector
58-
59-
60-
#
61-
62-
63-
64-
# super
6562
end
6663

6764
def visit_Arel_Nodes_Lock(o, collector)

0 commit comments

Comments
 (0)