aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/arel/nodes/delete_statement.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/lib/arel/nodes/delete_statement.rb')
-rw-r--r--activerecord/lib/arel/nodes/delete_statement.rb37
1 files changed, 37 insertions, 0 deletions
diff --git a/activerecord/lib/arel/nodes/delete_statement.rb b/activerecord/lib/arel/nodes/delete_statement.rb
new file mode 100644
index 0000000000..063a5341e5
--- /dev/null
+++ b/activerecord/lib/arel/nodes/delete_statement.rb
@@ -0,0 +1,37 @@
+# frozen_string_literal: true
+module Arel
+ module Nodes
+ class DeleteStatement < Arel::Nodes::Node
+ attr_accessor :left, :right
+ attr_accessor :limit
+
+ alias :relation :left
+ alias :relation= :left=
+ alias :wheres :right
+ alias :wheres= :right=
+
+ def initialize relation = nil, wheres = []
+ super()
+ @left = relation
+ @right = wheres
+ end
+
+ def initialize_copy other
+ super
+ @left = @left.clone if @left
+ @right = @right.clone if @right
+ end
+
+ def hash
+ [self.class, @left, @right].hash
+ end
+
+ def eql? other
+ self.class == other.class &&
+ self.left == other.left &&
+ self.right == other.right
+ end
+ alias :== :eql?
+ end
+ end
+end