aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorMike Dalessio <mike@csa.net>2010-08-16 23:59:18 -0400
committerMike Dalessio <mike@csa.net>2010-08-19 01:37:18 -0400
commit02ab2b37d7fdd823cf3aaac66052437dde36daa3 (patch)
treea9a1d16dd070ef00ee2aba04e613f3ebb838832a /lib
parent788f33fb59af40e8cb29a233a8d6be9941b52ea7 (diff)
downloadrails-02ab2b37d7fdd823cf3aaac66052437dde36daa3.tar.gz
rails-02ab2b37d7fdd823cf3aaac66052437dde36daa3.tar.bz2
rails-02ab2b37d7fdd823cf3aaac66052437dde36daa3.zip
Statement nodes deep-copy AST nodes
Diffstat (limited to 'lib')
-rw-r--r--lib/arel/nodes/insert_statement.rb6
-rw-r--r--lib/arel/nodes/select_statement.rb5
-rw-r--r--lib/arel/nodes/update_statement.rb6
3 files changed, 17 insertions, 0 deletions
diff --git a/lib/arel/nodes/insert_statement.rb b/lib/arel/nodes/insert_statement.rb
index ed601aa841..8c6e1234d0 100644
--- a/lib/arel/nodes/insert_statement.rb
+++ b/lib/arel/nodes/insert_statement.rb
@@ -8,6 +8,12 @@ module Arel
@columns = []
@values = []
end
+
+ def initialize_copy other
+ super
+ @columns = @columns.map { |o| o.clone }
+ @values = @values.map { |o| o.clone }
+ end
end
end
end
diff --git a/lib/arel/nodes/select_statement.rb b/lib/arel/nodes/select_statement.rb
index 122f6275fe..50fef776f6 100644
--- a/lib/arel/nodes/select_statement.rb
+++ b/lib/arel/nodes/select_statement.rb
@@ -8,6 +8,11 @@ module Arel
@cores = cores
@limit = nil
end
+
+ def initialize_copy other
+ super
+ @cores = @cores.map { |o| o.clone }
+ end
end
end
end
diff --git a/lib/arel/nodes/update_statement.rb b/lib/arel/nodes/update_statement.rb
index 9f069cddb3..27e3e4e6ac 100644
--- a/lib/arel/nodes/update_statement.rb
+++ b/lib/arel/nodes/update_statement.rb
@@ -8,6 +8,12 @@ module Arel
@wheres = []
@values = []
end
+
+ def initialize_copy other
+ super
+ @wheres = @wheres.map { |o| o.clone }
+ @values = @values.map { |o| o.clone }
+ end
end
end
end