mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
4acb6660e2
MySQL does not support GROUP_BY and HAVING on UPDATE, we need to use a Subquery.
46 lines
1.2 KiB
Ruby
46 lines
1.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module Arel # :nodoc: all
|
|
module Nodes
|
|
class UpdateStatement < Arel::Nodes::Node
|
|
attr_accessor :relation, :wheres, :values, :groups, :havings, :orders, :limit, :offset, :key
|
|
|
|
def initialize(relation = nil)
|
|
super()
|
|
@relation = relation
|
|
@wheres = []
|
|
@values = []
|
|
@groups = []
|
|
@havings = []
|
|
@orders = []
|
|
@limit = nil
|
|
@offset = nil
|
|
@key = nil
|
|
end
|
|
|
|
def initialize_copy(other)
|
|
super
|
|
@wheres = @wheres.clone
|
|
@values = @values.clone
|
|
end
|
|
|
|
def hash
|
|
[@relation, @wheres, @values, @orders, @limit, @offset, @key].hash
|
|
end
|
|
|
|
def eql?(other)
|
|
self.class == other.class &&
|
|
self.relation == other.relation &&
|
|
self.wheres == other.wheres &&
|
|
self.values == other.values &&
|
|
self.groups == other.groups &&
|
|
self.havings == other.havings &&
|
|
self.orders == other.orders &&
|
|
self.limit == other.limit &&
|
|
self.offset == other.offset &&
|
|
self.key == other.key
|
|
end
|
|
alias :== :eql?
|
|
end
|
|
end
|
|
end
|