Skip to content

Commit 2fe1c67

Browse files
committed
Update sqlserver.rb
1 parent 71eacfa commit 2fe1c67

File tree

1 file changed

+35
-12
lines changed

1 file changed

+35
-12
lines changed

lib/arel/visitors/sqlserver.rb

Lines changed: 35 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,40 +29,63 @@ def visit_Arel_Nodes_Concat(o, collector)
2929
visit o.right, collector
3030
end
3131

32+
33+
# def prepare_update_statement(o)
34+
# if o.offset || has_group_by_and_having?(o) ||
35+
# has_join_sources?(o) && has_limit_or_offset_or_orders?(o)
36+
# super
37+
# else
38+
# o
39+
# end
40+
# end
41+
3242
def visit_Arel_Nodes_UpdateStatement(o, collector)
3343

3444

45+
46+
47+
3548
# binding.pry if $DEBUG
3649

37-
if o.key && o.key.relation.is_a?(Arel::Table) && o.key.relation.instance_variable_get(:@klass).composite_primary_key?
38-
collector.retryable = false
50+
51+
if has_join_sources?(o) && o.relation.left.instance_variable_get(:@klass).composite_primary_key?
3952
_visit_Arel_Nodes_UpdateStatement(o, collector)
4053
else
41-
if o.orders.any? && o.limit.nil?
42-
o.limit = Nodes::Limit.new(9_223_372_036_854_775_807)
43-
end
44-
4554
super
4655
end
56+
57+
58+
# if o.key && o.key.is_a?(Arel::Attributes::Attribute) && o.key.relation.is_a?(Arel::Table) && o.key.relation.instance_variable_get(:@klass).composite_primary_key?
59+
# collector.retryable = false
60+
# _visit_Arel_Nodes_UpdateStatement(o, collector)
61+
# else
62+
# if o.orders.any? && o.limit.nil?
63+
# o.limit = Nodes::Limit.new(9_223_372_036_854_775_807)
64+
# end
65+
#
66+
# super
67+
# end
4768
end
4869

4970
def _visit_Arel_Nodes_UpdateStatement(o, collector)
5071
collector << "UPDATE "
5172

52-
if has_join_sources?(o)
73+
# binding.pry if $DEBUG
74+
75+
# if has_join_sources?(o)
5376
visit o.relation.left, collector
54-
else
55-
visit o.relation, collector
56-
end
77+
# else
78+
# visit o.relation, collector
79+
# end
5780

5881
collect_nodes_for o.values, collector, " SET "
5982

6083
collector << " FROM "
6184
visit o.relation, collector
6285

6386
collect_nodes_for o.wheres, collector, " WHERE ", " AND "
64-
collect_nodes_for o.orders, collector, " ORDER BY "
65-
maybe_visit o.limit, collector
87+
# collect_nodes_for o.orders, collector, " ORDER BY "
88+
# maybe_visit o.limit, collector
6689
end
6790

6891
def visit_Arel_Nodes_Lock(o, collector)

0 commit comments

Comments
 (0)