@@ -29,40 +29,63 @@ def visit_Arel_Nodes_Concat(o, collector)
29
29
visit o . right , collector
30
30
end
31
31
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
+
32
42
def visit_Arel_Nodes_UpdateStatement ( o , collector )
33
43
34
44
45
+
46
+
47
+
35
48
# binding.pry if $DEBUG
36
49
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?
39
52
_visit_Arel_Nodes_UpdateStatement ( o , collector )
40
53
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
-
45
54
super
46
55
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
47
68
end
48
69
49
70
def _visit_Arel_Nodes_UpdateStatement ( o , collector )
50
71
collector << "UPDATE "
51
72
52
- if has_join_sources? ( o )
73
+ # binding.pry if $DEBUG
74
+
75
+ # if has_join_sources?(o)
53
76
visit o . relation . left , collector
54
- else
55
- visit o . relation , collector
56
- end
77
+ # else
78
+ # visit o.relation, collector
79
+ # end
57
80
58
81
collect_nodes_for o . values , collector , " SET "
59
82
60
83
collector << " FROM "
61
84
visit o . relation , collector
62
85
63
86
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
66
89
end
67
90
68
91
def visit_Arel_Nodes_Lock ( o , collector )
0 commit comments