diff options
author | Mike Dalessio <mike@csa.net> | 2010-08-16 23:59:18 -0400 |
---|---|---|
committer | Mike Dalessio <mike@csa.net> | 2010-08-19 01:37:18 -0400 |
commit | 02ab2b37d7fdd823cf3aaac66052437dde36daa3 (patch) | |
tree | a9a1d16dd070ef00ee2aba04e613f3ebb838832a /lib | |
parent | 788f33fb59af40e8cb29a233a8d6be9941b52ea7 (diff) | |
download | rails-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.rb | 6 | ||||
-rw-r--r-- | lib/arel/nodes/select_statement.rb | 5 | ||||
-rw-r--r-- | lib/arel/nodes/update_statement.rb | 6 |
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 |